Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 17253 Rev 17255
Línea 71... Línea 71...
71
        $this->translator   = $translator;
71
        $this->translator   = $translator;
72
    }
72
    }
Línea 73... Línea 73...
73
 
73
 
74
    public function indexAction()
74
    public function indexAction()
-
 
75
    {
Línea 75... Línea 76...
75
    {
76
        $request = $this->getRequest();
76
 
77
 
77
        $currentUserPlugin = $this->plugin('currentUserPlugin');
78
        $currentUserPlugin = $this->plugin('currentUserPlugin');
Línea -... Línea 79...
-
 
79
        $currentUser = $currentUserPlugin->getUser();
78
        $currentUser = $currentUserPlugin->getUser();
80
        $currentCompany = $currentUserPlugin->getCompany();
-
 
81
 
-
 
82
        if (!$currentUser) {
-
 
83
            return new JsonModel([
-
 
84
                'success' => false,
Línea -... Línea 85...
-
 
85
                'data' => 'ERROR_USER_NOT_FOUND'
-
 
86
            ]);
-
 
87
        }
-
 
88
 
-
 
89
        if (!$currentCompany) {
-
 
90
            return new JsonModel([
Línea 79... Línea 91...
79
        $currentCompany = $currentUserPlugin->getCompany();
91
                'success' => false,
80
 
92
                'data' => 'ERROR_COMPANY_NOT_FOUND'
-
 
93
            ]);
-
 
94
        }
-
 
95
 
-
 
96
        if ($currentCompany->id != 1) {
Línea -... Línea 97...
-
 
97
            return new JsonModel([
-
 
98
                'success' => false,
81
        $request = $this->getRequest();
99
                'data' => 'ERROR_UNAUTHORIZED'
-
 
100
            ]);
-
 
101
        }
-
 
102
 
Línea 82... Línea 103...
82
 
103
        if (!$request->isGet()) {
83
 
104
            return new JsonModel([
Línea -... Línea 105...
-
 
105
                'success' => false,
-
 
106
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
84
        if ($request->isGet()) {
107
            ]);
Línea 85... Línea 108...
85
            $headers  = $request->getHeaders();
108
        }
86
 
109
 
Línea 87... Línea 110...
87
            $isJson = false;
110
        $headers  = $request->getHeaders();
88
 
111
        $isJson = false;
89
            if ($headers->has('Accept')) {
-
 
90
                $accept = $headers->get('Accept');
112
 
91
 
113
        if ($headers->has('Accept')) {
-
 
114
            $accept = $headers->get('Accept');
Línea 92... Línea 115...
92
                $prioritized = $accept->getPrioritized();
115
            $prioritized = $accept->getPrioritized();
93
 
116
 
94
                foreach ($prioritized as $key => $value) {
117
            foreach ($prioritized as $key => $value) {
95
                    $raw = trim($value->getRaw());
118
                $raw = trim($value->getRaw());
96
 
119
 
97
                    if (!$isJson) {
120
                if (!$isJson) {
98
                        $isJson = strpos($raw, 'json');
121
                    $isJson = strpos($raw, 'json');
99
                    }
122
                }
100
                }
123
            }
101
            }
-
 
102
 
-
 
103
 
-
 
104
            if ($isJson) {
-
 
105
                $search = $this->params()->fromQuery('search');
-
 
106
                $search = empty($search['value']) ? '' : Functions::sanitizeFilterString($search['value']);
-
 
107
 
-
 
Línea 108... Línea 124...
108
                $page               = intval($this->params()->fromQuery('start', 1), 10);
124
        }
109
                $records_x_page     = intval($this->params()->fromQuery('length', 10), 10);
125
 
Línea 110... Línea -...
110
                $order =  $this->params()->fromQuery('order', []);
-
 
111
                $order_field        = empty($order[0]['column']) ? 99 :  intval($order[0]['column'], 10);
-
 
112
                $order_direction    = empty($order[0]['dir']) ? 'ASC' : Functions::sanitizeFilterString(filter_var($order[0]['dir']));
126
 
113
 
-
 
114
                $fields =  ['name'];
-
 
115
                $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'name';
127
        if ($isJson) {
116
 
-
 
117
                if (!in_array($order_direction, ['ASC', 'DESC'])) {
-
 
118
                    $order_direction = 'ASC';
-
 
119
                }
128
            $search = $this->params()->fromQuery('search');
Línea 120... Línea 129...
120
 
129
            $search = empty($search['value']) ? '' : Functions::sanitizeFilterString($search['value']);
121
                $mediaCategoryMapper = MediaCategoryMapper::getInstance($this->adapter);
-
 
Línea -... Línea 130...
-
 
130
 
-
 
131
            $page               = intval($this->params()->fromQuery('start', 1), 10);
-
 
132
            $records_x_page     = intval($this->params()->fromQuery('length', 10), 10);
-
 
133
            $order =  $this->params()->fromQuery('order', []);
122
                $paginator = $mediaCategoryMapper->fetchAllDataTableByCompanyId($currentCompany->id, $search, $page, $records_x_page, $order_field, $order_direction);
134
            $order_field        = empty($order[0]['column']) ? 99 :  intval($order[0]['column'], 10);
123
 
135
            $order_direction    = empty($order[0]['dir']) ? 'ASC' : Functions::sanitizeFilterString(filter_var($order[0]['dir']));
124
                $items = [];
136
 
125
                $records = $paginator->getCurrentItems();
-
 
126
                foreach ($records as $record) {
-
 
127
                    $item = [
-
 
128
                        'name' => $record->name,
137
            $fields =  ['name'];
129
                        'actions' => [
-
 
130
                            'link_edit' => $this->url()->fromRoute('media/categories/edit', ['id' => $record->uuid]),
-
 
131
                            'link_delete' => $this->url()->fromRoute('media/categories/delete', ['id' => $record->uuid])
-
 
132
                        ],
-
 
133
                    ];
-
 
134
 
-
 
135
                    array_push($items, $item);
-
 
136
                }
138
            $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'name';
-
 
139
 
-
 
140
            if (!in_array($order_direction, ['ASC', 'DESC'])) {
-
 
141
                $order_direction = 'ASC';
-
 
142
            }
-
 
143
 
-
 
144
            $mediaCategoryMapper = MediaCategoryMapper::getInstance($this->adapter);
-
 
145
 
-
 
146
            try {
-
 
147
                $paginator = $mediaCategoryMapper->fetchAllDataTableByCompanyId($currentCompany->id, $search, $page, $records_x_page, $order_field, $order_direction);
-
 
148
            } catch (\Exception $e) {
-
 
149
                $this->logger->err('Error in indexAction: ' . $e->getMessage());
-
 
150
                return new JsonModel([
-
 
151
                    'success' => false,
137
 
152
                    'data' => $e->getMessage()
-
 
153
                ]);
138
                return new JsonModel([
154
            }
139
                    'success' => true,
155
 
140
                    'data' => [
156
            $items = [];
-
 
157
            $records = $paginator->getCurrentItems();
-
 
158
            foreach ($records as $record) {
-
 
159
                $item = [
141
                        'items' => $items,
160
                    'name' => $record->name,
142
                        'total' => $paginator->getTotalItemCount(),
161
                    'actions' => [
-
 
162
                        'link_edit' => $this->url()->fromRoute('media/categories/edit', ['id' => $record->uuid]),
-
 
163
                        'link_delete' => $this->url()->fromRoute('media/categories/delete', ['id' => $record->uuid])
-
 
164
                    ],
-
 
165
                ];
-
 
166
 
-
 
167
                array_push($items, $item);
-
 
168
            }
-
 
169
 
143
                    ]
170
            return new JsonModel([
Línea 144... Línea 171...
144
                ]);
171
                'success' => true,
145
            } else {
172
                'data' => [
146
                $form = new CategoryForm();
173
                    'items' => $items,