Proyectos de Subversion LeadersLinked - Backend

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
7308 nelberth 1
<?php
2
declare(strict_types=1);
3
 
4
namespace LeadersLinked\Controller;
5
 
6
use Laminas\Db\Adapter\AdapterInterface;
7
use Laminas\Mvc\Controller\AbstractActionController;
8
use Laminas\Log\LoggerInterface;
9
use Laminas\View\Model\ViewModel;
10
use Laminas\View\Model\JsonModel;
10327 nelberth 11
use LeadersLinked\Model\HighPerformanceTeamsGroupsMembers;
11185 nelberth 12
use LeadersLinked\Model\HighPerformanceTeamsGroups;
9019 nelberth 13
use LeadersLinked\Model\Feed;
11081 nelberth 14
use LeadersLinked\Form\HighPerformanceTeamsGroupsFeedForm;
9627 nelberth 15
use LeadersLinked\Form\TopicForm;
10275 nelberth 16
use LeadersLinked\Form\HighPerformanceTeamsGroupsMembersTypeForm;
7321 nelberth 17
use LeadersLinked\Mapper\HighPerformanceTeamsGroupsMapper;
18
use LeadersLinked\Mapper\HighPerformanceTeamsGroupsMembersMapper;
19
 
7322 nelberth 20
 
7310 nelberth 21
class HighPerformanceTeamsGroupsViewController extends AbstractActionController
7308 nelberth 22
{
23
    /**
24
     *
25
     * @var AdapterInterface
26
     */
27
    private $adapter;
28
 
29
    /**
30
     *
31
     * @var  LoggerInterface
32
     */
33
    private $logger;
34
 
35
    /**
36
     *
37
     * @var array
38
     */
39
    private $config;
40
 
41
    /**
42
     *
43
     * @param AdapterInterface $adapter
44
     * @param LoggerInterface $logger
45
     * @param array $config
46
     */
16768 efrain 47
    public function __construct($adapter, $logger, $config)
7308 nelberth 48
    {
16768 efrain 49
        $this->adapter = $adapter;
50
        $this->logger = $logger;
51
        $this->config = $config;
7308 nelberth 52
    }
7320 nelberth 53
 
8685 nelberth 54
    public function IndexAction()
7308 nelberth 55
    {
7320 nelberth 56
        $currentUserPlugin = $this->plugin('currentUserPlugin');
57
        $currentUser = $currentUserPlugin->getUser();
7339 nelberth 58
        $currentCompany = $currentUserPlugin->getCompany();
11084 nelberth 59
        $group_uuid   = $this->params()->fromRoute('group_id');
60
        $topic_uuid   = $this->params()->fromRoute('topic_id');
8634 nelberth 61
 
62
 
7835 nelberth 63
        if(!isset($topic_uuid)){
64
            $topic_uuid='';
7616 nelberth 65
        }
8678 nelberth 66
 
8685 nelberth 67
        $urgent   = $this->params()->fromRoute('urgent');
68
        if(!isset($urgent)){
69
            $urgent='';
70
        }
8734 nelberth 71
 
9513 nelberth 72
 
7339 nelberth 73
        $request = $this->getRequest();
74
        if($request->isGet()) {
75
            $headers  = $request->getHeaders();
7320 nelberth 76
 
7339 nelberth 77
            $isJson = false;
78
            if($headers->has('Accept')) {
79
                $accept = $headers->get('Accept');
7320 nelberth 80
 
7339 nelberth 81
                $prioritized = $accept->getPrioritized();
7320 nelberth 82
 
7339 nelberth 83
                foreach($prioritized as $key => $value) {
84
                    $raw = trim($value->getRaw());
7321 nelberth 85
 
7339 nelberth 86
                    if(!$isJson) {
87
                        $isJson = strpos($raw, 'json');
7321 nelberth 88
                    }
7320 nelberth 89
 
90
                }
7321 nelberth 91
            }
11179 nelberth 92
            $highPerformanceTeamsGroupsMapper = HighPerformanceTeamsGroupsMapper::getInstance($this->adapter);
93
            $highPerformanceTeamsGroups = $highPerformanceTeamsGroupsMapper->fetchOneByUuid($group_uuid);
11184 nelberth 94
            $this->layout()->setTemplate('layout/layout-backend');
95
            $viewModel = new ViewModel();
11182 nelberth 96
            if (!$highPerformanceTeamsGroups) {
11179 nelberth 97
                $viewModel->setTemplate('leaders-linked/no-access/index.phtml');
11182 nelberth 98
                return $viewModel;
99
            }
11185 nelberth 100
 
11184 nelberth 101
            if($highPerformanceTeamsGroups->status != HighPerformanceTeamsGroups::STATUS_ACTIVE) {
102
                $viewModel->setTemplate('leaders-linked/no-access/index.phtml');
103
                return $viewModel ;
104
            }
11179 nelberth 105
 
10326 nelberth 106
            $highPerformanceTeamsGroupsMembersMapper = HighPerformanceTeamsGroupsMembersMapper::getInstance($this->adapter);
107
            $member = $highPerformanceTeamsGroupsMembersMapper->fetchOneByGroupIdAndUserId($highPerformanceTeamsGroups->id,$currentUser->id);
10342 nelberth 108
            if(!$member){
11171 nelberth 109
                $viewModel->setTemplate('leaders-linked/no-access/index.phtml');
110
                return $viewModel ;
11169 nelberth 111
            }
112
            $rolAdmin=true;
10326 nelberth 113
            if($member->type==HighPerformanceTeamsGroupsMembers::TYPE_MODERATOR||$member->type==HighPerformanceTeamsGroupsMembers::TYPE_USER){
114
                $rolAdmin=false;
11169 nelberth 115
            }
12878 nelberth 116
            $formAddTask = new PlanningObjectivesAndGoalsTaskForm($this->adapter, $currentCompany->id);
11081 nelberth 117
            $formFeed = new HighPerformanceTeamsGroupsFeedForm($this->adapter);
9627 nelberth 118
            $formTopicNomal = new TopicForm();
10275 nelberth 119
            $formMemberEdit = new HighPerformanceTeamsGroupsMembersTypeForm();
12623 nelberth 120
            $formAddObjective = new PlanningObjectivesAndGoalsObjectivesForm();
12762 nelberth 121
            $formAddGoal = new PlanningObjectivesAndGoalsGoalsForm();
11522 nelberth 122
            $this->layout()->setTemplate('layout/layout-backend');
7339 nelberth 123
            $viewModel = new ViewModel();
7344 nelberth 124
            $viewModel->setTemplate('leaders-linked/high-performance-teams-groups-view/index.phtml');
7339 nelberth 125
            $viewModel->setVariables([
7347 nelberth 126
                'formFeed'    =>  $formFeed,
7462 nelberth 127
                'group_uuid'  =>  $group_uuid,
7835 nelberth 128
                'topic_uuid'=>$topic_uuid,
8634 nelberth 129
                'formTopicNormal' => $formTopicNomal,
9019 nelberth 130
                'urgent'=>$urgent,
131
                'type_meeting'=>Feed::FILE_TYPE_MEETING,
9233 nelberth 132
                'group_title'=>$highPerformanceTeamsGroups->title,
10275 nelberth 133
                'formMemberEdit'=>$formMemberEdit,
10326 nelberth 134
                'rolAdmin'=>$rolAdmin,
12762 nelberth 135
                'formAddObjective'=>$formAddObjective,
136
                'formAddGoal'=>$formAddGoal,
12878 nelberth 137
                'formAddTask'=>$formAddTask,
7321 nelberth 138
            ]);
7339 nelberth 139
            return $viewModel ;
7321 nelberth 140
 
141
 
142
        } else {
7339 nelberth 143
            return new JsonModel([
144
                'success' => false,
145
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
7320 nelberth 146
            ]);
147
        }
7339 nelberth 148
 
7321 nelberth 149
 
7320 nelberth 150
    }
151
 
8683 nelberth 152
 
7504 nelberth 153
 
7308 nelberth 154
}