Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 4388 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 4388 Rev 4396
Línea 12... Línea 12...
12
use Laminas\Log\LoggerInterface;
12
use Laminas\Log\LoggerInterface;
13
use Laminas\View\Model\ViewModel;
13
use Laminas\View\Model\ViewModel;
14
use Laminas\View\Model\JsonModel;
14
use Laminas\View\Model\JsonModel;
15
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
15
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
Línea -... Línea 16...
-
 
16
 
-
 
17
use LeadersLinked\Mapper\IndustryMapper;
-
 
18
use LeadersLinked\Mapper\GroupTypeMapper;
-
 
19
use LeadersLinked\Mapper\GroupMemberMapper;
-
 
20
use LeadersLinked\Mapper\QueryMapper;
-
 
21
use LeadersLinked\Model\GroupMember;
16
 
22
 
17
class HighPerformanceTeamsMyGroupsController extends AbstractActionController
23
class HighPerformanceTeamsMyGroupsController extends AbstractActionController
18
{
24
{
19
    /**
25
    /**
20
     *
26
     *
Línea 57... Línea 63...
57
        $this->logger       = $logger;
63
        $this->logger       = $logger;
58
        $this->config       = $config;
64
        $this->config       = $config;
Línea 59... Línea 65...
59
        
65
        
60
        
-
 
61
    }
66
        
62
    
67
    }
-
 
68
    public function indexAction()
63
    public function indexAction()
69
    {
Línea 64... Línea 70...
64
    {
70
        $currentUserPlugin = $this->plugin('currentUserPlugin');
65
        $request = $this->getRequest();
71
        $currentUser = $currentUserPlugin->getUser();
Línea 66... Línea -...
66
        
-
 
67
        $request = $this->getRequest();
-
 
68
        if($request->isGet()) {
-
 
69
            
-
 
Línea -... Línea 72...
-
 
72
        
-
 
73
        $request = $this->getRequest();
-
 
74
        if($request->isGet()) {
-
 
75
            
-
 
76
            
-
 
77
            $headers  = $request->getHeaders();
-
 
78
            
-
 
79
            $isJson = false;
-
 
80
            if($headers->has('Accept')) {
-
 
81
                $accept = $headers->get('Accept');
-
 
82
                
-
 
83
                $prioritized = $accept->getPrioritized();
-
 
84
                
-
 
85
                foreach($prioritized as $key => $value) {
-
 
86
                    $raw = trim($value->getRaw());
-
 
87
                    
-
 
88
                    if(!$isJson) {
-
 
89
                        $isJson = strpos($raw, 'json');
-
 
90
                    }
-
 
91
                    
-
 
92
                }
-
 
93
            }
-
 
94
            
-
 
95
            if($isJson) {
-
 
96
                $search = trim(filter_var($this->params()->fromQuery('search', ''), FILTER_SANITIZE_STRING));
-
 
97
                
-
 
98
                $acl = $this->getEvent()->getViewModel()->getVariable('acl');
-
 
99
                $allowView = $acl->isAllowed($currentUser->usertype_id, 'group/view');
-
 
100
                $allowEdit = $acl->isAllowed($currentUser->usertype_id, 'group/my-groups/edit');
-
 
101
                $allowDelete = $acl->isAllowed($currentUser->usertype_id, 'group/my-groups/delete');
-
 
102
                
-
 
103
                
-
 
104
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
105
                
-
 
106
                $select = $queryMapper->getSql()->select(GroupMapper::_TABLE);
-
 
107
                $select->columns(['id', 'uuid', 'name', 'privacy',  'image', 'status']);
-
 
108
                $select->where->equalTo('status', Group::STATUS_ACTIVE);
-
 
109
                
-
 
110
                if($search) {
-
 
111
                    $select->where->like('name', '%' . $search . '%');
-
 
112
                }
-
 
113
                $select->where->equalTo('user_id', $currentUser->id);
-
 
114
                $select->order('name ASC');
-
 
115
                
-
 
116
                $records = $queryMapper->fetchAll($select);
-
 
117
                
-
 
118
                
-
 
119
                $values = [
-
 
120
                    Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
-
 
121
                    Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
-
 
122
                ];
-
 
123
 
-
 
124
                
-
 
125
                $items = [];
-
 
126
                foreach($records as $record)
-
 
127
                {
-
 
128
                    
-
 
129
                    $item = [
-
 
130
                        'name' => $record['name'],
-
 
131
                        'privacy' => $values[$record['privacy']],
-
 
132
                        'image' => $this->url()->fromRoute('storage', ['type' => 'group', 'code' => $record['uuid'], 'filename' => $record['image'] ]),
-
 
133
                        'link_view' => $allowView ? $this->url()->fromRoute('group/view', ['id' => $record['uuid'] ])  : '',
-
 
134
                        'link_edit' => $allowEdit ? $this->url()->fromRoute('group/my-groups/edit', ['id' => $record['uuid'] ])  : '',
-
 
135
                        'link_delete' => $allowDelete ? $this->url()->fromRoute('group/my-groups/delete', ['id' => $record['uuid'] ]) : '',
-
 
136
                        
-
 
137
                    ];
-
 
138
                    
-
 
139
                    array_push($items, $item);
-
 
140
                }
-
 
141
 
-
 
142
                
-
 
143
                
-
 
144
                $response = [
-
 
145
                    'success' => true,
-
 
146
                    'data' => $items
-
 
147
                ];
-
 
148
                
-
 
149
                return new JsonModel($response);
-
 
150
                
-
 
151
                
-
 
152
            } else {
-
 
153
                $industries = [];
-
 
154
                $industryMapper = IndustryMapper::getInstance($this->adapter);
-
 
155
                $records = $industryMapper->fetchAllActives();
-
 
156
                foreach($records as $record)
-
 
157
                {
-
 
158
                    $industries[$record->uuid] = $record->name;
-
 
159
                }
-
 
160
                
-
 
161
                $groupTypes = [];
-
 
162
                $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
-
 
163
                $records = $groupTypeMapper->fetchAllActives();
-
 
164
                foreach($records as $record)
-
 
165
                {
-
 
166
                    $groupTypes[$record->uuid] = $record->name;
-
 
167
                }
-
 
168
                
-
 
169
                $formAdd = new CreateForm($this->adapter);
-
 
170
                
-
 
171
                $this->layout()->setTemplate('layout/layout-backend');
-
 
172
                $viewModel = new ViewModel();
-
 
173
                $viewModel->setTemplate('leaders-linked/high-performance-teams-my-groups/index.phtml');
-
 
174
                $viewModel->setVariables([
-
 
175
                    'industries' => $industries,
Línea 70... Línea 176...
70
            $this->layout()->setTemplate('layout/layout-backend');
176
                    'types' => $groupTypes,
71
            $viewModel = new ViewModel();
177
                    'formAdd' => $formAdd
72
            $viewModel->setTemplate('leaders-linked/high-performance-teams-my-groups/index.phtml');
178
                ]);
73
            return $viewModel ;
179
                return $viewModel ;
74
            
180
            }
75
            
181
            
76
        } else {
182
        } else {
-
 
183
            return new JsonModel([
77
            return new JsonModel([
184
                'success' => false,
78
                'success' => false,
185
                'data' => 'ERROR_METHOD_NOT_ALLOWED'