user_activity.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php /** Created by Anton on 05.03.2020. */
  2. $positions = \app\models\entity\Jobtypes::find()
  3. ->where(['not', ['name' => null]])
  4. ->andWhere(['company' => $companyID])
  5. ->all();
  6. ?>
  7. <form onsubmit="return false;">
  8. <div class="activity">
  9. <input type="text" id="datepicker" value="Выберите дату">
  10. <select name="shift" id="shift">
  11. <option value="0">Дневная</option>
  12. <option value="1">Ночная</option>
  13. </select>
  14. <input type="hidden" id="company" value="<?= $companyID ?>">
  15. <button id="draw">Отрисовать график</button>
  16. <div class="loader"></div>
  17. </div>
  18. <div class="positions">
  19. <select name="position[]" id="positions" multiple>
  20. <?php foreach ($positions as $position): ?>
  21. <option value="<?= $position->id ?>"><?= $position->name ?></option>
  22. <?php endforeach; ?>
  23. </select>
  24. <div class="buttons">
  25. <button id="draw-positions">Отрисовать график по должностям</button>
  26. <button class="print" onclick="print()">В печать</button>
  27. </div>
  28. </div>
  29. </form>
  30. <div id="content"></div>
  31. <script type="application/javascript">
  32. $(document).ready(function() {
  33. //Инициализация datapicker
  34. $('#datepicker').datetimepicker({
  35. format: 'Y-m-d',
  36. lang: 'ru',
  37. timepicker: false
  38. });
  39. //Ajax-запрос и отрисовка при клике
  40. $('#draw').on('click', function() {
  41. $('.loader').css('display', 'inline-block');
  42. $.ajax({
  43. type: 'GET',
  44. url: 'get_user_activity.php',
  45. data: {
  46. date: $('#datepicker').val(),
  47. shift: $('#shift').val(),
  48. company: $('#company').val()
  49. },
  50. success: function (data) {
  51. $('#content').html(data);
  52. $('.loader').css('display', 'none');
  53. }
  54. });
  55. });
  56. //Отрисовка графика по должностям
  57. $('#draw-positions').on('click', function() {
  58. $('.loader').css('display', 'inline-block');
  59. $.ajax({
  60. type: 'GET',
  61. url: 'get_user_activity_by_positions.php',
  62. data: {
  63. date: $('#datepicker').val(),
  64. shift: $('#shift').val(),
  65. company: $('#company').val(),
  66. positions: $('#positions').val(),
  67. },
  68. success: function (data) {
  69. $('#content').html(data);
  70. $('.loader').css('display', 'none');
  71. }
  72. });
  73. });
  74. });
  75. </script>
  76. <link rel="stylesheet" href="css/preloader.css">
  77. <style type="text/css">
  78. .main_content {
  79. overflow: unset;
  80. }
  81. form {
  82. display: flex;
  83. }
  84. .activity, .positions {
  85. border: 1px solid #aaa;
  86. border-radius: 5px;
  87. padding: 10px;
  88. margin: 5px;
  89. position: relative;
  90. }
  91. .activity input, .activity select, .activity button {
  92. margin: 5px;
  93. }
  94. .activity button {
  95. display: block;
  96. margin: 7px auto 0;
  97. }
  98. .loader {
  99. left: 137px;
  100. bottom: 42px;
  101. margin: 0;
  102. }
  103. #positions {
  104. float: left;
  105. margin: 0;
  106. }
  107. .positions button {
  108. display: block;
  109. }
  110. .buttons {
  111. display: inline-block;
  112. }
  113. #draw-positions {
  114. margin-left: 10px;
  115. }
  116. .print {
  117. margin: 0 auto;
  118. }
  119. @-moz-document url-prefix() {
  120. .print {
  121. left: 160px;
  122. }
  123. }
  124. @media print {
  125. .wrapper {
  126. grid-template-columns: 1fr;
  127. grid-template-rows: 1fr;
  128. grid-template-areas: "content";
  129. }
  130. .left, .top, .activity, .positions {
  131. display: none;
  132. }
  133. .main_content {
  134. top: 0;
  135. left: 30px;
  136. padding-top: 0;
  137. }
  138. }
  139. </style>