File indexing completed on 2024-12-22 05:33:32

0001 <?php
0002 
0003 /**
0004  *  ocs-webserver
0005  *
0006  *  Copyright 2016 by pling GmbH.
0007  *
0008  *    This file is part of ocs-webserver.
0009  *
0010  *    This program is free software: you can redistribute it and/or modify
0011  *    it under the terms of the GNU Affero General Public License as
0012  *    published by the Free Software Foundation, either version 3 of the
0013  *    License, or (at your option) any later version.
0014  *
0015  *    This program is distributed in the hope that it will be useful,
0016  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
0017  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0018  *    GNU Affero General Public License for more details.
0019  *
0020  *    You should have received a copy of the GNU Affero General Public License
0021  *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
0022  *
0023  * Created: 31.05.2017
0024  */
0025 class ModerationController extends Local_Controller_Action_DomainSwitch
0026 {
0027 
0028     /** @var Default_Model_Project */
0029     protected $_model;
0030     const DATA_ID_NAME = 'project_id';
0031     const DATA_NOTE = 'note';
0032     const DATA_VALUE = 'value';
0033     protected $_modelName = 'Default_Model_ProjectModeration';
0034     protected $_pageTitle = 'Moderate GHNS excluded';
0035     const RESULT_OK = "OK";
0036     const RESULT_ERROR = "ERROR";
0037     public function init()
0038     {
0039         $this->_model = new $this->_modelName();
0040         $this->view->pageTitle = $this->_pageTitle;
0041         parent::init();
0042     }
0043 
0044 
0045     public function indexAction()
0046     {
0047         $this->view->page = (int)$this->getParam('page', 1);        
0048   }
0049   
0050   
0051 
0052     public function listAction()
0053     {
0054       $startIndex = (int)$this->getParam('jtStartIndex');
0055       $pageSize = (int)$this->getParam('jtPageSize');
0056       $sorting = $this->getParam('jtSorting');
0057       if($sorting==null)
0058       {
0059         $sorting = 'created_at desc';
0060       }
0061       $filter['member_id'] = $this->getParam('filter_member_id');
0062 
0063       $mod = new Default_Model_ProjectModeration();    
0064       $reports = $mod->getList($filter['member_id'],$sorting,(int)$pageSize,$startIndex);
0065       //$reports = $mod->getList();
0066 
0067       $totalRecordCount = $mod->getTotalCount($filter);
0068       
0069       $jTableResult = array();
0070       $jTableResult['Result'] = self::RESULT_OK;
0071       $jTableResult['Records'] = $reports;
0072       $jTableResult['TotalRecordCount'] = $totalRecordCount;
0073 
0074       $this->_helper->json($jTableResult);
0075     }
0076 
0077     public function updateAction()
0078     {
0079       $dataId = (int)$this->getParam(self::DATA_ID_NAME, null);
0080       $note = $this->getParam(self::DATA_NOTE, null);
0081       $value = $this->getParam(self::DATA_VALUE, null);
0082       if($value==null)
0083       {
0084         $value = 0;
0085       }
0086       if($value==0)
0087       {
0088     $tableTags = new Default_Model_Tags();
0089     $tableTags->saveGhnsExcludedTagForProject($dataId, 0);
0090       }
0091 
0092       $auth = Zend_Auth::getInstance();
0093           $identity = $auth->getIdentity();
0094       $mod = new Default_Model_ProjectModeration();   
0095       //createModeration($project_id,$project_moderation_type_id, $is_set, $userid,$note)
0096       $mod->createModeration($dataId,Default_Model_ProjectModeration::M_TYPE_GET_HOT_NEW_STUFF_EXCLUDED, $value, $identity->member_id,$note);
0097       $jTableResult = array();
0098           $jTableResult['Result'] = self::RESULT_OK;                    
0099           $this->_helper->json($jTableResult);
0100     }
0101 
0102 
0103   public function productmoderationAction()
0104     {   
0105     $this->view->headTitle('Watchlist - Product Moderation','SET');   
0106     }
0107 
0108   public function listmoderationAction()
0109     {
0110       $startIndex = (int)$this->getParam('jtStartIndex');
0111       $pageSize = (int)$this->getParam('jtPageSize');
0112       $sorting = $this->getParam('jtSorting');
0113       if($sorting==null)
0114       {
0115         $sorting = 'comment_created_at desc';
0116       }
0117       $mod = new Default_Model_ProjectComments();    
0118       $comments = $mod->fetchCommentsWithType(Default_Model_DbTable_Comments::COMMENT_TYPE_MODERATOR,$sorting,(int)$pageSize,$startIndex);          
0119     $printDateSince = new Default_View_Helper_PrintDateSince();        
0120         $helperImage = new Default_View_Helper_Image();
0121         foreach ($comments as &$value) {            
0122             $value['comment_created_at'] = $printDateSince->printDateSince($value['comment_created_at']);
0123       $value['profile_image_url'] = $helperImage->Image($value['profile_image_url'], array('width' => '200', 'height' => '200', 'crop' => 2)); 
0124       $value['image_small'] = $helperImage->Image($value['image_small'], array('width' => '100', 'height' => '100', 'crop' => 2)); 
0125         }
0126     
0127     
0128     $totalRecordCount = $mod->fetchCommentsWithTypeCount(Default_Model_DbTable_Comments::COMMENT_TYPE_MODERATOR);     
0129       $jTableResult = array();
0130       $jTableResult['Result'] = self::RESULT_OK;
0131       $jTableResult['Records'] = $comments;
0132       $jTableResult['TotalRecordCount'] = $totalRecordCount;
0133       $this->_helper->json($jTableResult);
0134     }
0135 
0136       
0137 
0138 }