TaskManager.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. Lib::loadClass('RouteBase');
  3. Lib::loadClass('ProcesHelper');
  4. Lib::loadClass('Config');
  5. Lib::loadClass('UI');
  6. Lib::loadClass('Request');
  7. Lib::loadClass('ProcesHelper');
  8. Lib::loadClass('Response');
  9. Lib::loadClass('DBG');
  10. class Route_UrlAction_TaskManager extends RouteBase {// TODO: UrlActionBase @see Route_UrlAction
  11. public function getStatsAjaxAction() {
  12. try {
  13. $id = V::get('ID', 0, $_GET, 'int');
  14. if ($id <= 0) throw new Exception("ID is not set.");
  15. $sqlId = DB::getPDO()->quote($id, PDO::PARAM_INT);
  16. $type = V::get('TYPE', 0, $_GET, 'string');
  17. $rows = null;
  18. if ($type == "PROBLEM") {
  19. $rows = DB::getPDO()->fetchAll("
  20. SELECT * FROM _SYNC_TASK_PERCENT WHERE ID_TASK = {$sqlId} AND ID_PROJECT = 0
  21. ");
  22. }
  23. if ($type == "PROJECT") {
  24. $rows = DB::getPDO()->fetchAll("
  25. SELECT * FROM _SYNC_TASK_PERCENT WHERE ID_PROJECT = {$sqlId} AND ID_TASK = 0
  26. ");
  27. }
  28. Response::sendJsonExit($rows);
  29. } catch (Exception $e) {
  30. UI::alert('danger', "Error: " . $e->getMessage());
  31. }
  32. }
  33. public function handleAuth() {
  34. if (!User::logged()) {
  35. User::authByRequest();
  36. }
  37. }
  38. public function reinstallAction() {
  39. try {
  40. $dropTableSql = "DROP TABLE `_SYNC_TASK_PERCENT`";
  41. DBG::nicePrint($dropTableSql, '$dropTableSql');
  42. DB::getPDO()->query($dropTableSql);
  43. } catch (Exception $e) {
  44. // SQLSTATE[42000]: Syntax error or access violation: 1305 PROCEDURE SES_USERS2.PROBLEMS__SYNC_PERCENT does not exist
  45. }
  46. $createTableSql = file_get_contents(__FILE__ . '.create__SYNC_TASK_PERCENT.sql');
  47. DBG::nicePrint($createTableSql, '$createTableSql');
  48. DB::getPDO()->query($createTableSql);
  49. try {
  50. $dropProcedureSql = "DROP PROCEDURE `PROBLEMS__SYNC_PERCENT`";
  51. DBG::nicePrint($dropProcedureSql, '$dropProcedureSql');
  52. DB::getPDO()->query($dropProcedureSql);
  53. } catch (Exception $e) {
  54. // SQLSTATE[42000]: Syntax error or access violation: 1305 PROCEDURE SES_USERS2.PROBLEMS__SYNC_PERCENT does not exist
  55. }
  56. $createProcedureSql = file_get_contents(__FILE__ . '.problems_sync_percent.sql');
  57. DBG::nicePrint($createProcedureSql, '$createProcedureSql');
  58. DB::getPDO()->query($createProcedureSql);
  59. }
  60. public function defaultAction() {
  61. UI::gora();
  62. UI::menu();
  63. try {
  64. DB::getPDO()->query("CALL `PROBLEMS__SYNC_PERCENT`();");// TODO: BUG zamula
  65. $id = 0;
  66. $type = "";
  67. if (!empty(V::get('ID_PROBLEM', 0, $_REQUEST, 'int'))) {
  68. $id = V::get('ID_PROBLEM', 0, $_REQUEST, 'int');
  69. $type = "PROBLEM";
  70. }
  71. if (!empty(V::get('ID_PROJECT', 0, $_REQUEST, 'int'))) {
  72. $id = V::get('ID_PROJECT', 0, $_REQUEST, 'int');
  73. $type = "PROJECT";
  74. }
  75. if ($id <= 0) throw new Exception("Wrong ID");
  76. $this->showManager($id, $type);
  77. } catch (Exception $e) {
  78. UI::alert('danger', "Error: " . $e->getMessage());
  79. }
  80. UI::dol();
  81. }
  82. public function showManager($id, $type) {
  83. echo "<div class=container-fluid>";
  84. echo "<div class=row>";
  85. echo "<div class='col-lg-6 col-lg-push-6' id=right>";
  86. echo "</div>";
  87. echo "<div class='col-lg-6 col-lg-pull-6' id=left>";
  88. echo "</div>";
  89. echo "</div>";
  90. echo "</div>";
  91. echo '<link rel="stylesheet" type="text/css" href="static/sweetalert2.min.css">';
  92. // echo '<link rel="stylesheet" href="static/task.css?'.time().'" type="text/css" />';
  93. UI::startTag('style', ['type' => "text/css"]);
  94. echo file_get_contents(__FILE__ . '.task.css');
  95. UI::endTag('style');
  96. echo '<script src="static/sweetalert2.min.js"></script>';
  97. echo '<script src="static/jquery.ui.autocomplete.js"></script>';
  98. echo '<script src="static/jquery.ui.menu.js"></script>';
  99. // echo "<script>var BASE_URL = '".Request::getPathUri()."';var TASK = ".$id.";var USER = '".User::getLogin()."';var TYPE='".$type."'; var ProblemsTableId=".ProcesHelper::getZasobTableID('PROBLEMS').";var ProjectsTableId=".ProcesHelper::getZasobTableID('IN7_MK_BAZA_DYSTRYBUCJI')."</script>";
  100. // echo '<script src="static/task.js?'.time().'"></script>';
  101. UI::inlineJS(__FILE__ . '.task.js', [
  102. 'BASE_URL' => Request::getPathUri(),
  103. 'TASK' => $id,
  104. 'USER' => User::getLogin(),
  105. 'TYPE' => $type,
  106. 'ProblemsTableId' => ProcesHelper::getZasobTableID('PROBLEMS'),
  107. 'ProjectsTableId' => ProcesHelper::getZasobTableID('IN7_MK_BAZA_DYSTRYBUCJI'),
  108. ]);
  109. }
  110. }