Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17320 | Rev 17322 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 17320 Rev 17321
Línea 79... Línea 79...
79
        $this->translator   = $translator;
79
        $this->translator   = $translator;
80
    }
80
    }
Línea 81... Línea 81...
81
 
81
 
82
    public function indexAction()
82
    public function indexAction()
-
 
83
    {
83
    {
84
        try {
84
        $request            = $this->getRequest();
85
            $request            = $this->getRequest();
85
        $currentUserPlugin  = $this->plugin('currentUserPlugin');
86
            $currentUserPlugin  = $this->plugin('currentUserPlugin');
86
        $currentUser        = $currentUserPlugin->getUser();
87
            $currentUser        = $currentUserPlugin->getUser();
87
        $currentCompany     = $currentUserPlugin->getCompany();
88
            $currentCompany     = $currentUserPlugin->getCompany();
88
      
89
        
89
        $request = $this->getRequest();
90
            $request = $this->getRequest();
90
        if($request->isGet()) {
91
            if($request->isGet()) {
91
            $headers  = $request->getHeaders();
92
                $headers  = $request->getHeaders();
92
            
93
                
93
            $isJson = false;
94
                $isJson = false;
94
            if($headers->has('Accept')) {
95
                if($headers->has('Accept')) {
95
                $accept = $headers->get('Accept');
96
                    $accept = $headers->get('Accept');
96
                
97
                    
-
 
98
                    $prioritized = $accept->getPrioritized();
-
 
99
                    
-
 
100
                    foreach($prioritized as $key => $value) {
-
 
101
                        $raw = trim($value->getRaw());
-
 
102
                        
-
 
103
                        if(!$isJson) {
-
 
104
                            $isJson = strpos($raw, 'json');
-
 
105
                        }
-
 
106
                        
-
 
107
                    }
Línea -... Línea 108...
-
 
108
                }
-
 
109
                
-
 
110
                if($isJson) {
-
 
111
                    $acl = $this->getEvent()->getViewModel()->getVariable('acl');
-
 
112
                    $allowQuestion = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/questions');
-
 
113
                    $allowAdd = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/add');
-
 
114
                    $allowEdit = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/edit');
-
 
115
                    $allowDelete = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/delete');
-
 
116
                    $allowCopy = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/copy');
97
                $prioritized = $accept->getPrioritized();
117
                    $allowCheck = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/check');
-
 
118
                    
-
 
119
                    $search = $this->params()->fromQuery('search', []);
-
 
120
                    $search = empty($search['value']) ? '' :  Functions::sanitizeFilterString($search['value']);
-
 
121
                    
-
 
122
                    $page               = intval($this->params()->fromQuery('start', 1), 10);
-
 
123
                    $records_x_page     = intval($this->params()->fromQuery('length', 10), 10);
-
 
124
                    $order =  $this->params()->fromQuery('order', []);
-
 
125
                    $order_field        = empty($order[0]['column']) ? 99 :  intval($order[0]['column'], 10);
98
                
126
                    $order_direction    = empty($order[0]['dir']) ? 'ASC' : strtoupper(Functions::sanitizeFilterString($order[0]['dir']));
-
 
127
                    
Línea 99... Línea 128...
99
                foreach($prioritized as $key => $value) {
128
                    $fields =  ['name'];
100
                    $raw = trim($value->getRaw());
129
                    $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'name';
101
                    
130
                    
Línea 102... Línea -...
102
                    if(!$isJson) {
-
 
103
                        $isJson = strpos($raw, 'json');
-
 
104
                    }
-
 
105
                    
-
 
106
                }
-
 
107
            }
-
 
108
            
-
 
109
            if($isJson) {
-
 
110
                $acl = $this->getEvent()->getViewModel()->getVariable('acl');
-
 
111
                $allowQuestion = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/questions');
-
 
112
                $allowAdd = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/add');
-
 
113
                $allowEdit = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/edit');
-
 
114
                $allowDelete = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/delete');
-
 
115
                $allowCopy = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/copy');
-
 
116
                $allowCheck = $acl->isAllowed($currentUser->usertype_id, 'microlearning/content/quizzes/check');
-
 
117
                
-
 
118
                $search = $this->params()->fromQuery('search', []);
-
 
119
                $search = empty($search['value']) ? '' :  Functions::sanitizeFilterString($search['value']);
-
 
120
                
-
 
121
                $page               = intval($this->params()->fromQuery('start', 1), 10);
-
 
122
                $records_x_page     = intval($this->params()->fromQuery('length', 10), 10);
-
 
123
                $order =  $this->params()->fromQuery('order', []);
-
 
124
                $order_field        = empty($order[0]['column']) ? 99 :  intval($order[0]['column'], 10);
-
 
125
                $order_direction    = empty($order[0]['dir']) ? 'ASC' : strtoupper(Functions::sanitizeFilterString($order[0]['dir']));
-
 
126
                
-
 
127
                $fields =  ['name'];
-
 
128
                $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'name';
-
 
129
                
-
 
Línea 130... Línea -...
130
                if(!in_array($order_direction, ['ASC', 'DESC'])) {
-
 
131
                    $order_direction = 'ASC';
-
 
132
                }
-
 
133
                
-
 
134
 
-
 
135
                
-
 
136
                $microlearningSlideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
-
 
137
                $microlearningQuizMapper = MicrolearningQuizMapper::getInstance($this->adapter);
-
 
138
                $paginator = $microlearningQuizMapper->fetchAllDataTableByCompanyId($currentCompany->id,  $search, $page, $records_x_page, $order_field, $order_direction);
-
 
139
                $items = [];
-
 
Línea -... Línea 131...
-
 
131
                    if(!in_array($order_direction, ['ASC', 'DESC'])) {
-
 
132
                        $order_direction = 'ASC';
-
 
133
                    }
140
                foreach($paginator as $record)
134
                    
141
                {
135
 
142
 
136
                    
-
 
137
                    $microlearningSlideMapper = MicrolearningSlideMapper::getInstance($this->adapter);
-
 
138
                    $microlearningQuizMapper = MicrolearningQuizMapper::getInstance($this->adapter);
-
 
139
                    $paginator = $microlearningQuizMapper->fetchAllDataTableByCompanyId($currentCompany->id,  $search, $page, $records_x_page, $order_field, $order_direction);
-
 
140
                    $items = [];
-
 
141
                    foreach($paginator as $record)
-
 
142
                    {
-
 
143
 
143
                    
144
                        
144
                    $slides = $microlearningSlideMapper->fetchTotalCountByCompanyIdQuizId($currentCompany->id, $record->id);
145
                        $slides = $microlearningSlideMapper->fetchTotalCountByCompanyIdQuizId($currentCompany->id, $record->id);
145
                    
146
                        
146
                    $status_description = '';
147
                        $status_description = '';
147
                    switch ($record->status) 
148
                        switch ($record->status) 
148
                    {
149
                        {
-
 
150
                            case MicrolearningQuiz::STATUS_ACTIVE : 
-
 
151
                                $status_description = 'LABEL_ACTIVE';
-
 
152
                                break;
-
 
153
                                
-
 
154
                            case MicrolearningQuiz::STATUS_INACTIVE :
-
 
155
                                $status_description = 'LABEL_INACTIVE';
-
 
156
                                break;
-
 
157
                        }
-
 
158
                        
-
 
159
                        $check_description = '';
-
 
160
                        switch($record->check)
-
 
161
                        {
-
 
162
                            case MicrolearningQuiz::CHECK_OK :
-
 
163
                                $check_description = 'LABEL_WITHOUT_ERRORS';
-
 
164
                                break;
-
 
165
                                
149
                        case MicrolearningQuiz::STATUS_ACTIVE : 
166
                            case MicrolearningQuiz::CHECK_WRONG :
-
 
167
                                $check_description = 'LABEL_WITH_ERRORS';
-
 
168
                                break;
-
 
169
                                
-
 
170
                            case MicrolearningQuiz::CHECK_PENDING :
-
 
171
                                $check_description = 'LABEL_PENDING';
-
 
172
                                break;
-
 
173
                        }
-
 
174
                        
-
 
175
                        $params = [
-
 
176
                            'quiz_id' => $record->uuid
-
 
177
                        ];
-
 
178
                        
-
 
179
                        $item = [
-
 
180
                            'name' => $record->name,
-
 
181
                            'details' => [
-
 
182
                                'status' => $status_description,
-
 
183
                                'check' => $check_description,
-
 
184
                                'points' => $record->points,
-
 
185
                                'max_time' => $record->max_time,
-
 
186
                                'slides' => $slides,
-
 
187
                            ],
-
 
188
                            'actions' => [
-
 
189
                                'link_question' => $allowQuestion ? $this->url()->fromRoute('microlearning/content/quizzes/questions', $params) : '',
-
 
190
                                'link_edit'     => $allowEdit ? $this->url()->fromRoute('microlearning/content/quizzes/edit', $params) : '',
-
 
191
                                'link_delete'   => $allowDelete ? $this->url()->fromRoute('microlearning/content/quizzes/delete', $params) : '',
-
 
192
                                'link_copy'     => $allowCopy ? $this->url()->fromRoute('microlearning/content/quizzes/copy', $params) : '',
150
                            $status_description = 'LABEL_ACTIVE';
193
                                'link_check'    => $allowCheck ? $this->url()->fromRoute('microlearning/content/quizzes/check', $params) : '',
Línea 151... Línea 194...
151
                            break;
194
                            ],
152
                            
195
                        ];
153
                        case MicrolearningQuiz::STATUS_INACTIVE :
-
 
154
                            $status_description = 'LABEL_INACTIVE';
196
    
155
                            break;
-
 
156
                    }
-
 
157
                    
197
                        
158
                    $check_description = '';
198
                        array_push($items, $item);
159
                    switch($record->check)
199
                    }
160
                    {
200
                    
161
                        case MicrolearningQuiz::CHECK_OK :
-
 
162
                            $check_description = 'LABEL_WITHOUT_ERRORS';
-
 
163
                            break;
-
 
164
                            
201
                    $data = [];
165
                        case MicrolearningQuiz::CHECK_WRONG :
202
                    $data['items'] = $items;
Línea 166... Línea 203...
166
                            $check_description = 'LABEL_WITH_ERRORS';
203
                    $data['total'] = $paginator->getTotalItemCount(); 
167
                            break;
204
                    
-
 
205
                    if($allowAdd) {
168
                            
206
                        $data['link_add'] = $this->url()->fromRoute('microlearning/content/quizzes/add');
Línea 169... Línea -...
169
                        case MicrolearningQuiz::CHECK_PENDING :
-
 
170
                            $check_description = 'LABEL_PENDING';
207
                    }  else {
171
                            break;
-
 
172
                    }
-
 
173
                    
-
 
174
                    $params = [
-
 
175
                        'quiz_id' => $record->uuid
-
 
176
                    ];
-
 
177
                    
-
 
178
                    $item = [
-
 
179
                        'name' => $record->name,
-
 
180
                        'details' => [
-
 
181
                            'status' => $status_description,
-
 
182
                            'check' => $check_description,
-
 
183
                            'points' => $record->points,
-
 
184
                            'max_time' => $record->max_time,
-
 
185
                            'slides' => $slides,
-
 
186
                        ],
-
 
Línea 187... Línea -...
187
                        'actions' => [
-
 
188
                            'link_question' => $allowQuestion ? $this->url()->fromRoute('microlearning/content/quizzes/questions', $params) : '',
-
 
189
                            'link_edit'     => $allowEdit ? $this->url()->fromRoute('microlearning/content/quizzes/edit', $params) : '',
208
                        $data['link_add'] = '';
190
                            'link_delete'   => $allowDelete ? $this->url()->fromRoute('microlearning/content/quizzes/delete', $params) : '',
209
                    }
191
                            'link_copy'     => $allowCopy ? $this->url()->fromRoute('microlearning/content/quizzes/copy', $params) : '',
-
 
192
                            'link_check'    => $allowCheck ? $this->url()->fromRoute('microlearning/content/quizzes/check', $params) : '',
210
                    
193
                        ],
211
                    $response = [
-
 
212
                        'success' => true,
194
                    ];
213
                        'data' => $data
195
  
214
                    ];
-
 
215
                    
-
 
216
                    return new JsonModel($response);
196
                    
217
                    
197
                    array_push($items, $item);
218
                    
198
                }
219
                } else {
Línea 199... Línea -...
199
                
-
 
200
                $data = [];
-
 
201
                $data['items'] = $items;
-
 
202
                $data['total'] = $paginator->getTotalItemCount(); 
-
 
203
                
-
 
204
                if($allowAdd) {
-
 
205
                    $data['link_add'] = $this->url()->fromRoute('microlearning/content/quizzes/add');
-
 
206
                }  else {
-
 
207
                    $data['link_add'] = '';
220
                    $form = new QuizCreateOrEditForm();
208
                }
-
 
209
                
-
 
210
                $response = [
-
 
211
                    'success' => true,
221
                    
212
                    'data' => $data
-
 
213
                ];
222
                    $this->layout()->setTemplate('layout/layout-backend.phtml');
214
                
223
                    $viewModel = new ViewModel();
215
                return new JsonModel($response);
224
                    $viewModel->setTemplate('leaders-linked/microlearning-quizzes/index.phtml');
216
                
-
 
217
                
225
                    $viewModel->setVariables([
218
            } else {
-
 
219
                $form = new QuizCreateOrEditForm();
226
                        'form' => $form,
-
 
227
                    ]);
220
                
228
                    return $viewModel ;
221
                $this->layout()->setTemplate('layout/layout-backend.phtml');
229
                }
222
                $viewModel = new ViewModel();
230
                
223
                $viewModel->setTemplate('leaders-linked/microlearning-quizzes/index.phtml');
231
            } else {
224
                $viewModel->setVariables([
232
                return new JsonModel([
225
                    'form' => $form,
233
                    'success' => false,
Línea 226... Línea 234...
226
                ]);
234
                    'data' => 'ERROR_METHOD_NOT_ALLOWED'