Просмотр исходного кода

Merge branch 'master' of https://github.com/unaio/una

AntonLV 5 лет назад
Родитель
Сommit
c1c56bda46

+ 5 - 0
inc/classes/BxDolReport.php

@@ -199,6 +199,11 @@ class BxDolReport extends BxDolObject
         return $aReport['count'];
     }
     
+    public function getCountByStatus($iStatus)
+    {
+        return $this->_oQuery->getReportsCountByStatus($iStatus);
+    }
+    
     /**
      * Actions functions
      */

+ 6 - 0
inc/classes/BxDolReportQuery.php

@@ -55,6 +55,12 @@ class BxDolReportQuery extends BxDolObjectQuery
 
         return $aResult;
     }
+    
+    public function getReportsCountByStatus($iStatus)
+    {
+        $sQuery = $this->prepare("SELECT COUNT(*) FROM {$this->_sTableTrack} WHERE `status` = ?", $iStatus);
+        return $this->getOne($sQuery);
+    }
 
     public function putReport($iObjectId, $iAuthorId, $bUndo = false)
     {

+ 2 - 1
install/sql/system.sql

@@ -4639,7 +4639,8 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `conf
 
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `confirm`, `order`, `icon_only`) VALUES
 ('sys_reports_administration', 'single', 'check_in', '_adm_form_btn_reports_check_in', 'lock-open', 0, 1, 1),
-('sys_reports_administration', 'single', 'check_out', '_adm_form_btn_reports_check_out', 'lock', 0, 2, 1);
+('sys_reports_administration', 'single', 'check_out', '_adm_form_btn_reports_check_out', 'lock', 0, 2, 1),
+('sys_reports_administration', 'single', 'audit', '_adm_form_btn_reports_audit', 'history', 0, 3, 1);
 
 
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `order`) VALUES

+ 27 - 0
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -1328,6 +1328,33 @@ class BxBaseModGeneralModule extends BxDolModule
         return $oReport->getReportedByWithComments($CNF['OBJECT_NOTES']);
     }
     
+     /**
+     * @page service Service Calls
+     * @section bx_base_general Base General
+     * @subsection bx_base_general-page_blocks Page Blocks
+     * @subsubsection bx_base_general-reports_count_by_status reports_count_by_status
+     * 
+     * @code bx_srv('bx_posts', 'reports_count_by_status', [...]); @endcode
+     * 
+     * Get number of reports with specified status
+     * @param $iStatus status ID
+     * 
+     * @see BxBaseModGeneralModule::serviceReportsCountByStatus
+     */
+    /** 
+     * @ref bx_base_general-entity_reports "entity_reports"
+     */
+    public function serviceReportsCountByStatus ($iStatus)
+    {
+        $CNF = &$this->_oConfig->CNF;
+        
+        if (!isset($CNF['OBJECT_REPORTS']) || !isset($CNF['OBJECT_NOTES']))
+            return false;
+        
+        $oReport = BxDolReport::getObjectInstance($CNF['OBJECT_REPORTS'], 0, false);
+        return $oReport->getCountByStatus($iStatus);
+    }
+    
     /**
      * @page service Service Calls
      * @section bx_base_general Base General

+ 1 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -744,6 +744,7 @@
   
   <string name="_adm_form_btn_reports_check_in"><![CDATA[Check in]]></string>
   <string name="_adm_form_btn_reports_check_out"><![CDATA[Check out]]></string>
+  <string name="_adm_form_btn_reports_audit"><![CDATA[Audit]]></string>
   <string name="_adm_form_btn_reports_hide"><![CDATA[Hide]]></string>
   <string name="_adm_form_btn_reports_unhide"><![CDATA[Unhide]]></string>
   

+ 14 - 0
template/scripts/BxBaseDashboardServices.php

@@ -68,6 +68,20 @@ class BxBaseDashboardServices extends BxDol
         );
     }
     
+    public function serviceGetReportsCount($sModule, $iStatus)
+    {
+        $iCount = 0;
+        $oModule = BxDolModule::getInstance($sModule);
+        if ($oModule instanceof iBxDolContentInfoService){
+            $CNF = $oModule->_oConfig->CNF;
+            if (isset($CNF['OBJECT_REPORTS']))
+                $iCount = BxDolService::call($sModule, 'reports_count_by_status', array($iStatus));
+        }
+        if ($iCount > 0)
+            return $iCount;
+        return ;
+    }
+    
     public function serviceManageAudit()
     {
         return bx_srv('system', 'manage_tools', array(), 'TemplAuditServices');

+ 12 - 2
template/scripts/BxBaseMenuDashboardReportsManage.php

@@ -22,6 +22,7 @@ class BxBaseMenuDashboardReportsManage extends BxTemplMenuCustom
         $this->_aObject['menu_id'] = 'sys-dashboard-reports-manage-menu';
 
         $this->_bShowDivider = false;
+        $this->_bDisplayAddons = true;
     }
 
     public function setMenuData ($aModulesList)
@@ -33,14 +34,23 @@ class BxBaseMenuDashboardReportsManage extends BxTemplMenuCustom
     {
         $aResult = array();
         $aUrl = bx_get_base_url_inline();
-        
+       
         foreach($this->_aModulesList as $aModule){
             $aResult[$aModule['name']] = array(
                 'name' => $aModule['name'],
                 'title' => $aModule['title'],
                 'link' => bx_append_url_params($aUrl[0], array_merge($aUrl[1], array('module' => $aModule['uri']))),
                 'active' => true,
-                'selected' => $aModule['selected']//todo selected
+                'addon' =>  serialize([
+                    'module' => 'system',
+                    'method' => 'get_reports_count',
+                    'params' => [
+                        'module' => $aModule['name'],
+                        'status' => BX_DOL_REPORT_STASUS_NEW
+                    ],
+                    'class' => 'TemplDashboardServices'
+                    ]),
+                'selected' => $aModule['selected']
             );                
     	}
         if(!empty($aResult) && is_array($aResult)){

+ 11 - 0
template/scripts/BxBaseReportsGrid.php

@@ -215,6 +215,17 @@ class BxBaseReportsGrid extends BxTemplGrid
         
         return parent::_getActionDefault ($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);
     }
+    
+    protected function _getActionAudit($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array())
+    {
+        $sUrl = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=dashboard-audit&module=' . $this->_aReportSystemInfo['module_name'] . '&content_id=' . $aRow['object_id']);
+
+    	$a['attr'] = array_merge($a['attr'], array(
+    		"onclick" => "window.open('" . $sUrl . "','_self');"
+    	));
+
+    	return $this->_getActionDefault ($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);
+    }
 
     protected function _getFilterControls()
     {