_dashboard_for_admin.html.erb 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <div class="row">
  2. <div class="col-md-12">
  3. <div class="col-md-6">
  4. <div class="portlet light">
  5. <div class="portlet-title">
  6. <div class="caption caption-md">
  7. <i class="icon-bar-chart font-red"></i>
  8. <span class="caption-subject font-red uppercase bold">Ingresos por punto de venta</span>
  9. </div>
  10. <div class="actions">
  11. <div class="btn-group btn-group-devided" data-toggle="buttons">
  12. <label class="btn btn-transparent grey-salsa btn-outline btn-circle btn-sm active">
  13. <input type="radio" name="optionsIncomings" class="toggle" value="day">Día
  14. </label>
  15. <label class="btn btn-transparent grey-salsa btn-outline btn-circle btn-sm">
  16. <input type="radio" name="optionsIncomings" class="toggle" value="week">Semana
  17. </label>
  18. <label class="btn btn-transparent grey-salsa btn-outline btn-circle btn-sm">
  19. <input type="radio" name="optionsIncomings" class="toggle" value="month">Mes
  20. </label>
  21. </div>
  22. </div>
  23. </div>
  24. <div id="incomingsByPointsaleChart" class="chart" style="width:100%;height:400px;font-size:11px;"></div>
  25. </div>
  26. </div>
  27. <div class="col-md-6">
  28. <div class="portlet light">
  29. <div class="portlet-title">
  30. <div class="caption caption-md">
  31. <i class="icon-bar-chart font-red"></i>
  32. <span class="caption-subject font-red uppercase bold">10 productos mas vendidos</span>
  33. </div>
  34. <div class="actions">
  35. <div class="btn-group btn-group-devided" data-toggle="buttons">
  36. <label class="btn btn-transparent grey-salsa btn-outline btn-circle btn-sm active">
  37. <input type="radio" name="optionsRanking" class="toggle" value="week">Semana
  38. </label>
  39. <label class="btn btn-transparent grey-salsa btn-outline btn-circle btn-sm">
  40. <input type="radio" name="optionsRanking" class="toggle" value="month">Mes
  41. </label>
  42. </div>
  43. </div>
  44. </div>
  45. <div id="productRankingChart" class="chart" style="width:100%;height:400px;font-size:11px;"></div>
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. <script type="text/javascript">
  51. $(document).on("page:change", function() {
  52. // ingresos por punto de venta
  53. MakeChart('serial', <%= @incomings %>, 'incomingsByPointsaleChart', 'pointsale', 'total');
  54. // ranking de productos
  55. MakeChart('pie', <%= @product_ranking %>, 'productRankingChart', 'product', 'quantity');
  56. });
  57. $('input:radio[name=optionsIncomings]').change(function() {
  58. var period = $('input:radio[name=optionsIncomings]:checked').val();
  59. getChart('incomings', period);
  60. });
  61. $('input:radio[name=optionsRanking]').change(function() {
  62. var period = $('input:radio[name=optionsRanking]:checked').val();
  63. getChart('products', period);
  64. });
  65. setTimeout(function() {
  66. $('.chart a').remove();
  67. }, 1000);
  68. function getChart(chart, period) {
  69. App.blockUI({
  70. target: $((chart == "incomings" ? "#incomingsByPointsaleChart" : "#productRankingChart")),
  71. animate: true
  72. });
  73. $.ajax({
  74. type: "get",
  75. url: '/get_chart_data_for_dashboard/',
  76. data: {
  77. period: period,
  78. chart: chart
  79. },
  80. dataType: 'text',
  81. success: function(data) {
  82. var data = JSON.parse(data);
  83. window.setTimeout(function() {
  84. App.unblockUI($((chart == "incomings" ? "#incomingsByPointsaleChart" : "#productRankingChart")));
  85. if (chart == 'incomings') {
  86. MakeChart('serial', data, 'incomingsByPointsaleChart', 'pointsale', 'total');
  87. } else {
  88. MakeChart('pie', data, 'productRankingChart', 'product', 'quantity');
  89. }
  90. $('.chart a').remove();
  91. }, 100);
  92. }
  93. });
  94. }
  95. </script>