control.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. /**
  3. * The control file of serverroom of ZenTaoPMS.
  4. *
  5. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
  6. * @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  7. * @author Jiangxiu Peng <pengjiangxiu@cnezsoft.com>
  8. * @package serverroom
  9. * @link https://www.zentao.net
  10. */
  11. class serverroom extends control
  12. {
  13. /**
  14. * 机房列表。
  15. * Server room.
  16. *
  17. * @param string $browseType
  18. * @param int $param
  19. * @param string $orderBy
  20. * @param int $recTotal
  21. * @param int $recPerPage
  22. * @param int $pageID
  23. * @access public
  24. * @return void
  25. */
  26. public function browse($browseType = 'all', $param = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
  27. {
  28. $browseType = strtolower($browseType);
  29. $param = (int)$param;
  30. $this->app->loadClass('pager', true);
  31. $pager = pager::init($recTotal, $recPerPage, $pageID);
  32. $serverRoomList = $this->serverroom->getList($browseType, $param, $orderBy, $pager);
  33. /* Build the search form. */
  34. $actionURL = $this->createLink('serverroom', 'browse', "browseType=bySearch&queryID=myQueryID");
  35. $this->config->serverroom->search['actionURL'] = $actionURL;
  36. $this->config->serverroom->search['queryID'] = $param;
  37. $this->config->serverroom->search['onMenuBar'] = 'no';
  38. $this->loadModel('search')->setSearchParams($this->config->serverroom->search);
  39. $this->view->title = $this->lang->serverroom->common;
  40. $this->view->pager = $pager;
  41. $this->view->param = $param;
  42. $this->view->users = $this->loadModel('user')->getPairs('noletter|nodeleted');
  43. $this->view->orderBy = $orderBy;
  44. $this->view->browseType = $browseType;
  45. $this->view->serverRoomList = $serverRoomList;
  46. $this->display();
  47. }
  48. /**
  49. * 添加机房。
  50. * Create server room.
  51. *
  52. * @access public
  53. * @return void
  54. */
  55. public function create()
  56. {
  57. if($_POST)
  58. {
  59. $room = form::data($this->config->serverroom->form->create)
  60. ->add('createdBy', $this->app->user->account)
  61. ->get();
  62. $createID = $this->serverroom->create($room);
  63. if(dao::isError()) return $this->sendError(dao::getError());
  64. $this->loadModel('action')->create('serverRoom', $createID, 'created');
  65. return $this->sendSuccess(array('load' => $this->createLink('serverroom', 'browse')));
  66. }
  67. $this->view->title = $this->lang->serverroom->create;
  68. $this->view->users = $this->loadModel('user')->getPairs('noletter|nodeleted|noclosed');
  69. $this->display();
  70. }
  71. /**
  72. * 编辑机房。
  73. * Edit server room.
  74. *
  75. * @param int $roomID
  76. * @access public
  77. * @return void
  78. */
  79. public function edit($roomID)
  80. {
  81. if($_POST)
  82. {
  83. $room = form::data($this->config->serverroom->form->edit)
  84. ->add('editedBy', $this->app->user->account)
  85. ->get();
  86. $changes = $this->serverroom->update($roomID, $room);
  87. if(dao::isError()) return $this->sendError(dao::getError());
  88. if($changes)
  89. {
  90. $actionID = $this->loadModel('action')->create('serverRoom', $roomID, 'Edited');
  91. $this->action->logHistory($actionID, $changes);
  92. }
  93. return $this->sendSuccess(array('load' => isInModal() ? true : inLink('browse')));
  94. }
  95. $this->view->title = $this->lang->serverroom->editAction;
  96. $this->view->serverRoom = $this->serverroom->fetchByID($roomID);
  97. $this->view->users = $this->loadModel('user')->getPairs('noletter|nodeleted|noclosed');
  98. $this->display();
  99. }
  100. /**
  101. * 查看机房信息。
  102. * View server room.
  103. *
  104. * @param int $roomID
  105. * @access public
  106. * @return void
  107. */
  108. public function view($roomID)
  109. {
  110. $this->view->title = $this->lang->serverroom->view;
  111. $this->view->serverRoom = $this->serverroom->fetchByID($roomID);
  112. $this->view->users = $this->loadModel('user')->getPairs('noletter|nodeleted');
  113. $this->view->actions = $this->loadModel('action')->getList('serverroom', $roomID);
  114. $this->display();
  115. }
  116. /**
  117. * 删除机房。
  118. * Delete server room.
  119. *
  120. * @param int $roomID
  121. * @access public
  122. * @return void
  123. */
  124. public function delete($roomID)
  125. {
  126. $this->serverroom->delete(TABLE_SERVERROOM, $roomID);
  127. if(dao::isError()) return $this->sendError(dao::getError());
  128. return $this->sendSuccess(array('message' => $this->lang->deleteSuccess, 'load' => true));
  129. }
  130. }