BxTasksGridTimeContextAdministration.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. * @defgroup Tasks Tasks
  6. * @ingroup UnaModules
  7. *
  8. * @{
  9. */
  10. require_once('BxTasksGridTime.php');
  11. class BxTasksGridTimeContextAdministration extends BxTasksGridTime
  12. {
  13. protected $_iContextPid;
  14. public function __construct ($aOptions, $oTemplate = false)
  15. {
  16. parent::__construct ($aOptions, $oTemplate);
  17. if(($iContextPid = bx_get('context_pid')) !== false)
  18. $this->setContextPid($iContextPid);
  19. }
  20. public function setContextPid($iContextPid)
  21. {
  22. $this->_iContextPid = (int)$iContextPid;
  23. $this->_aQueryAppend['context_pid'] = $this->_iContextPid;
  24. /*
  25. * Filter by author_id
  26. */
  27. if($this->_isAdministration())
  28. $this->_initFilter(1, $this->_oModule->getContextMembers($this->_iContextPid));
  29. /*
  30. * Filter by object_id
  31. */
  32. $this->_initFilter(2, $this->_oModule->getContextEntries($this->_iContextPid));
  33. }
  34. public function getFormCallBackUrlAPI($sAction, $iId = 0)
  35. {
  36. return '/api.php?r=system/perfom_action_api/TemplServiceGrid/&params[]=&o=' . $this->_sObject . '&a=' . $sAction . '&context_pid=' . $this->_iContextPid . '&id=' . $iId;
  37. }
  38. public function performActionCalculate()
  39. {
  40. if($this->_isAdministration() && !$this->_isAllowedByConext())
  41. return $this->_getActionResult([]);
  42. return parent::performActionCalculate();
  43. }
  44. public function getCode ($isDisplayHeader = true)
  45. {
  46. if($this->_isAdministration() && !$this->_isAllowedByConext())
  47. return $this->_getActionResult([]);
  48. return parent::getCode($isDisplayHeader);
  49. }
  50. protected function _isAllowedByConext($iContextPid = 0)
  51. {
  52. if(!$iContextPid)
  53. $iContextPid = $this->_iContextPid;
  54. if(!$iContextPid)
  55. return false;
  56. return $this->_oModule->isAllowManageByContext($this->_iContextPid);
  57. }
  58. protected function _getFilterControls()
  59. {
  60. $this->_getFcDefault();
  61. $sContent = $this->_getFilterSelectOne($this->_sFilter1Name, $this->_sFilter1Value, $this->_aFilter1Values, '_bx_tasks_grid_filter_item_title_tm_select_one_author_id');
  62. $sContent .= $this->_getFilterSelectOne($this->_sFilter2Name, $this->_sFilter2Value, $this->_aFilter2Values, '_bx_tasks_grid_filter_item_title_tm_select_one_object_id');
  63. $sContent .= $this->_getFcDateSearch();
  64. return $sContent;
  65. }
  66. protected function _getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage)
  67. {
  68. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND ABS(`tt`.`allow_view_to`)=?", $this->_iContextPid);
  69. $this->_parseFilterValue($sFilter);
  70. if(!empty($this->_sFilter1Value))
  71. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `ttt`.`author_id`=?", $this->_sFilter1Value);
  72. if(!empty($this->_sFilter2Value))
  73. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `ttt`.`object_id`=?", $this->_sFilter2Value);
  74. if(!empty($this->_sFilter3Value))
  75. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `ttt`.`value_date`>=?", strtotime($this->_sFilter3Value));
  76. if(!empty($this->_sFilter4Value))
  77. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `ttt`.`value_date`<=?", strtotime($this->_sFilter4Value));
  78. return parent::__getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage);
  79. }
  80. }
  81. /** @} */