BxBaseDashboardServices.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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. *
  6. * @defgroup UnaBaseView UNA Base Representation Classes
  7. * @{
  8. */
  9. /**
  10. * Services for dashboard objects functionality
  11. * @see BxDolChart
  12. */
  13. class BxBaseDashboardServices extends BxDol
  14. {
  15. public function serviceManageReports()
  16. {
  17. $oMenu = BxDolMenu::getObjectInstance('sys_dashboard_reports');
  18. if(!$oMenu)
  19. return '';
  20. $BxDolModuleQuery = BxDolModuleQuery::getInstance();
  21. $aModules = $BxDolModuleQuery->getModulesBy(array('type' => 'modules', 'active' => 1));
  22. $aModulesList = array();
  23. foreach($aModules as $iKey => $aModule){
  24. $oModule = BxDolModule::getInstance($aModule['name']);
  25. if ($oModule instanceof iBxDolContentInfoService){
  26. $CNF = $oModule->_oConfig->CNF;
  27. if (isset($CNF['OBJECT_REPORTS'])){
  28. $aModule['selected'] = false;
  29. $aModulesList[$aModule['uri']] = $aModule;
  30. }
  31. else{
  32. unset($aModules[$iKey]);
  33. }
  34. }
  35. else{
  36. unset($aModules[$iKey]);
  37. }
  38. }
  39. $aModules = array_values($aModules);
  40. $sSelected = bx_get('module');
  41. if ($sSelected == ''){
  42. $aModulesList[$aModules[0]['uri']]['selected'] = true;
  43. $sSelected = $aModules[0]['uri'];
  44. }
  45. else{
  46. $aModulesList[$sSelected]['selected'] = true;
  47. }
  48. $oMenu->setMenuData($aModulesList);
  49. $oGrid = BxDolGrid::getObjectInstance('sys_reports_administration');
  50. $oGrid->setModule($aModulesList[$sSelected]['name']);
  51. if(!$oGrid)
  52. return '';
  53. $oTemplate = BxDolTemplate::getInstance();
  54. $oTemplate->addJs(array('BxDolReportsManageTools.js', 'BxDolGrid.js'));
  55. $oTemplate->addCss(array('manage_tools.css'));
  56. $oTemplate->addJsTranslation(array('_sys_grid_search'));
  57. return array(
  58. 'content' => $oGrid->getCode(),
  59. 'menu' => $oMenu
  60. );
  61. }
  62. public function serviceGetReportsCount($sModule, $iStatus)
  63. {
  64. $iCount = 0;
  65. $oModule = BxDolModule::getInstance($sModule);
  66. if ($oModule instanceof iBxDolContentInfoService){
  67. $CNF = $oModule->_oConfig->CNF;
  68. if (isset($CNF['OBJECT_REPORTS']))
  69. $iCount = BxDolService::call($sModule, 'reports_count_by_status', array($iStatus));
  70. }
  71. if ($iCount > 0)
  72. return $iCount;
  73. return ;
  74. }
  75. public function serviceManageAudit()
  76. {
  77. return bx_srv('system', 'manage_tools', array(), 'TemplAuditServices');
  78. }
  79. public function serviceManageContent()
  80. {
  81. $oMenu = BxDolMenu::getObjectInstance('sys_dashboard_content');
  82. if(!$oMenu)
  83. return '';
  84. $BxDolModuleQuery = BxDolModuleQuery::getInstance();
  85. $aModules = $BxDolModuleQuery->getModulesBy(array('type' => 'modules', 'active' => 1));
  86. $aModulesList = array();
  87. foreach($aModules as $iKey => $aModule){
  88. $oModule = BxDolModule::getInstance($aModule['name']);
  89. if ($oModule instanceof iBxDolContentInfoService && BxDolRequest::serviceExists($aModule['name'], 'manage_tools')){
  90. $aModule['selected'] = false;
  91. $aModulesList[$aModule['uri']] = $aModule;
  92. }
  93. else{
  94. unset($aModules[$iKey]);
  95. }
  96. }
  97. $aModules = array_values($aModules);
  98. $sSelected = bx_get('module');
  99. if ($sSelected == ''){
  100. $aModulesList[$aModules[0]['uri']]['selected'] = true;
  101. $sSelected = $aModules[0]['uri'];
  102. }
  103. else{
  104. $aModulesList[$sSelected]['selected'] = true;
  105. }
  106. $oMenu->setMenuData($aModulesList);
  107. $aGrid = BxDolService::call($aModulesList[$sSelected]['name'], 'manage_tools', array('administration'));
  108. return array(
  109. 'content' => $aGrid['content'],
  110. 'menu' => $oMenu
  111. );
  112. }
  113. }
  114. /** @} */