]> git.agnieray.net Git - galette.git/blob - galette/includes/routes/management.routes.php
Scrutinizer Auto-Fixes
[galette.git] / galette / includes / routes / management.routes.php
1 <?php
2
3 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
4
5 /**
6 * Management routes
7 *
8 * PHP version 5
9 *
10 * Copyright © 2014 The Galette Team
11 *
12 * This file is part of Galette (http://galette.tuxfamily.org).
13 *
14 * Galette is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation, either version 3 of the License, or
17 * (at your option) any later version.
18 *
19 * Galette is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with Galette. If not, see <http://www.gnu.org/licenses/>.
26 *
27 * @category Routes
28 * @package Galette
29 *
30 * @author Johan Cwiklinski <johan@x-tnd.be>
31 * @copyright 2014 The Galette Team
32 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
33 * @version SVN: $Id$
34 * @link http://galette.tuxfamily.org
35 * @since 0.8.2dev 2014-11-11
36 */
37
38 use Galette\Controllers\GaletteController;
39 use Galette\Controllers\PluginsController;
40 use Galette\Controllers\HistoryController;
41 use Galette\Controllers\DynamicTranslationsController;
42 use Galette\Controllers\Crud;
43 use Galette\Controllers\PdfController;
44 use Galette\Controllers\CsvController;
45 use Galette\Controllers\AdminToolsController;
46
47 use Galette\DynamicFields\DynamicField;
48 use Galette\Repository\Members;
49 use Galette\IO\News;
50 use \Analog\Analog;
51 use Galette\IO\Csv;
52 use Galette\IO\CsvOut;
53 use Galette\IO\CsvIn;
54 use Galette\Entity\Title;
55 use Galette\Repository\Titles;
56 use Galette\Entity\Texts;
57 use Galette\Core\Install;
58 use Galette\Entity\Status;
59
60 //galette's dashboard
61 $app->get(
62 '/dashboard',
63 GaletteController::class . ':dashboard'
64 )->setName('dashboard')->add($authenticate);
65
66 //preferences page
67 $app->get(
68 '/preferences',
69 GaletteController::class . ':preferences'
70 )->setName('preferences')->add($authenticate);
71
72 //preferences procedure
73 $app->post(
74 '/preferences',
75 GaletteController::class . ':storePreferences'
76 )->setName('store-preferences')->add($authenticate);
77
78 $app->get(
79 '/test/email',
80 GaletteController::class . ':testEmail'
81 )->setName('testEmail')->add($authenticate);
82
83 //charts
84 $app->get(
85 '/charts',
86 GaletteController::class . ':charts'
87 )->setName('charts')->add($authenticate);
88
89 //plugins
90 $app->get(
91 '/plugins',
92 PluginsController::class . ':showPlugins'
93 )->setName('plugins')->add($authenticate);
94
95 //plugins (de)activation
96 $app->get(
97 '/plugins/{action:activate|deactivate}/{module_id}',
98 PluginsController::class . ':togglePlugin'
99 )->setName('pluginsActivation')->add($authenticate);
100
101 $app->map(
102 ['GET', 'POST'],
103 '/plugins/initialize-database/{id}',
104 PluginsController::class . ':initPluginDb'
105 )->setName('pluginInitDb')->add($authenticate);
106
107 //galette logs
108 $app->get(
109 '/logs[/{option:page|order}/{value}]',
110 HistoryController::class . ':history'
111 )->setName('history')->add($authenticate);
112
113 $app->post(
114 '/logs/filter',
115 HistoryController::class . ':historyFilter'
116 )->setName(
117 'history_filter'
118 )->add($authenticate);
119
120 $app->get(
121 '/logs/flush',
122 HistoryController::class . ':confirmHistoryFlush'
123 )->setName('flushHistory')->add($authenticate);
124
125 $app->post(
126 '/logs/flush',
127 HistoryController::class . ':flushHistory'
128 )->setName('doFlushHistory')->add($authenticate);
129
130 //mailings management
131 $app->get(
132 '/mailings[/{option:page|order|reset}/{value}]',
133 Crud\MailingsController::class . ':list'
134 )->setName('mailings')->add($authenticate);
135
136 $app->post(
137 '/mailings/filter',
138 Crud\MailingsController::class . ':filter'
139 )->setName('mailings_filter')->add($authenticate);
140
141 $app->get(
142 '/mailings/remove' . '/{id:\d+}',
143 Crud\MailingsController::class . ':confirmDelete'
144 )->setName('removeMailing')->add($authenticate);
145
146 $app->post(
147 '/mailings/remove/{id:\d+}',
148 Crud\MailingsController::class . ':delete'
149 )->setName('doRemoveMailing')->add($authenticate);
150
151 //galette exports
152 $app->get(
153 '/export',
154 CsvController::class . ':export'
155 )->setName('export')->add($authenticate);
156
157 $app->get(
158 '/{type:export|import}/remove/{file}',
159 CsvController::class . ':confirmRemoveFile'
160 )->setName('removeCsv')->add($authenticate);
161
162 $app->post(
163 '/{type:export|import}/remove/{file}',
164 CsvController::class . ':removeFile'
165 )->setName('doRemoveCsv')->add($authenticate);
166
167 $app->post(
168 '/export',
169 CsvController::class . ':doExport'
170 )->setName('doExport')->add($authenticate);
171
172 $app->get(
173 '/{type:export|import}/get/{file}',
174 CsvController::class . ':getFile'
175 )->setName('getCsv')->add($authenticate);
176
177 $app->get(
178 '/import',
179 CsvController::class . ':import'
180 )->setName('import')->add($authenticate);
181
182 $app->post(
183 '/import',
184 CsvController::class . ':doImports'
185 )->setName('doImport')->add($authenticate);
186
187 $app->post(
188 '/import/upload',
189 CsvController::class . ':uploadImportFile'
190 )->setname('uploadImportFile')->add($authenticate);
191
192 $app->get(
193 '/import/model',
194 CsvController::class . ':importModel'
195 )->setName('importModel')->add($authenticate);
196
197 $app->get(
198 '/import/model/get',
199 CsvController::class . ':getImportModel'
200 )->setName('getImportModel')->add($authenticate);
201
202 $app->post(
203 '/import/model/store',
204 CsvController::class . ':storeModel'
205 )->setName('storeImportModel')->add($authenticate);
206
207 $app->get(
208 '/models/pdf[/{id:\d+}]',
209 PdfController::class . ':models'
210 )->setName('pdfModels')->add($authenticate);
211
212 $app->post(
213 '/models/pdf',
214 PdfController::class . ':storeModels'
215 )->setName('pdfModels')->add($authenticate);
216
217 $app->get(
218 '/titles',
219 Crud\TitlesController::class . ':list'
220 )->setName('titles')->add($authenticate);
221
222 $app->post(
223 '/titles',
224 Crud\TitlesController::class . ':doAdd'
225 )->setName('titles')->add($authenticate);
226
227 $app->get(
228 '/titles/remove/{id:\d+}',
229 Crud\TitlesController::class . ':confirmDelete'
230 )->setName('removeTitle')->add($authenticate);
231
232 $app->post(
233 '/titles/remove/{id:\d+}',
234 Crud\TitlesController::class . ':delete'
235 )->setName('doRemoveTitle')->add($authenticate);
236
237 $app->get(
238 '/titles/edit/{id:\d+}',
239 Crud\TitlesController::class . ':edit'
240 )->setname('editTitle')->add($authenticate);
241
242 $app->post(
243 '/titles/edit/{id:\d+}',
244 Crud\TitlesController::class . ':doEdit'
245 )->setname('editTitle')->add($authenticate);
246
247 $app->get(
248 '/texts[/{lang}/{ref}]',
249 function ($request, $response, $args) {
250 if (!isset($args['lang'])) {
251 $args['lang'] = $this->preferences->pref_lang;
252 }
253 if (!isset($args['ref'])) {
254 $args['ref'] = Texts::DEFAULT_REF;
255 }
256
257 $texts = new Texts(
258 $this->preferences,
259 $this->router
260 );
261
262 $mtxt = $texts->getTexts($args['ref'], $args['lang']);
263
264 // display page
265 $this->view->render(
266 $response,
267 'gestion_textes.tpl',
268 [
269 'page_title' => _T("Automatic emails texts edition"),
270 'reflist' => $texts->getRefs($args['lang']),
271 'langlist' => $this->i18n->getList(),
272 'cur_lang' => $args['lang'],
273 'cur_ref' => $args['ref'],
274 'mtxt' => $mtxt,
275 ]
276 );
277 return $response;
278 }
279 )->setName('texts')->add($authenticate);
280
281 $app->post(
282 '/texts/change',
283 function ($request, $response) {
284 $post = $request->getParsedBody();
285 return $response
286 ->withStatus(301)
287 ->withHeader(
288 'Location',
289 $this->router->pathFor(
290 'texts',
291 [
292 'lang' => $post['sel_lang'],
293 'ref' => $post['sel_ref']
294 ]
295 )
296 );
297 }
298 )->setName('changeText')->add($authenticate);
299
300 $app->post(
301 '/texts',
302 function ($request, $response) {
303 $post = $request->getParsedBody();
304 $texts = new Texts($this->preferences, $this->router);
305
306 //set the language
307 $cur_lang = $post['cur_lang'];
308 //set the text entry
309 $cur_ref = $post['cur_ref'];
310
311 $mtxt = $texts->getTexts($cur_ref, $cur_lang, $this->router);
312 $res = $texts->setTexts(
313 $cur_ref,
314 $cur_lang,
315 $post['text_subject'],
316 $post['text_body']
317 );
318
319 if (!$res) {
320 $this->flash->addMessage(
321 'error_detected',
322 preg_replace(
323 '(%s)',
324 $mtxt->tcomment,
325 _T("Email: '%s' has not been modified!")
326 )
327 );
328 } else {
329 $this->flash->addMessage(
330 'success_detected',
331 preg_replace(
332 '(%s)',
333 $mtxt->tcomment,
334 _T("Email: '%s' has been successfully modified.")
335 )
336 );
337 }
338
339 return $response
340 ->withStatus(301)
341 ->withHeader('Location', $this->router->pathFor('texts'));
342 }
343 )->setName('texts')->add($authenticate);
344
345 $app->get(
346 '/{class:contributions-types|status}',
347 Crud\EntitledsController::class . ':list'
348 )->setName('entitleds')->add($authenticate);
349
350 $app->get(
351 '/{class:contributions-types|status}/{action:edit|add}[/{id:\d+}]',
352 Crud\EntitledsController::class . ':edit'
353 )->setName('editEntitled')->add($authenticate);
354
355 $app->post(
356 '/{class:contributions-types|status}/{action:edit|add}[/{id:\d+}]',
357 Crud\EntitledsController::class . ':doEdit'
358 )->setName('doEditEntitled')->add($authenticate);
359
360 $app->get(
361 '/{class:contributions-types|status}/remove/{id:\d+}',
362 Crud\EntitledsController::class . ':confirmDelete'
363 )->setName('removeEntitled')->add($authenticate);
364
365 $app->post(
366 '/{class:contributions-types|status}/remove/{id:\d+}',
367 Crud\EntitledsController::class . ':delete'
368 )->setName('doRemoveEntitled')->add($authenticate);
369
370 $app->get(
371 '/dynamic-translations[/{text_orig}]',
372 DynamicTranslationsController::class . ':dynamicTranslations'
373 )->setName('dynamicTranslations')->add($authenticate);
374
375 $app->post(
376 '/dynamic-translations',
377 DynamicTranslationsController::class . ':doDynamicTranslations'
378 )->setName('editDynamicTranslation')->add($authenticate);
379
380 $app->get(
381 '/lists/{table}/configure',
382 GaletteController::class . ':configureListFields'
383 )->setName('configureListFields')->add($authenticate);
384
385 $app->post(
386 '/lists/{table}/configure',
387 GaletteController::class . ':storeListFields'
388 )->setName('storeListFields')->add($authenticate);
389
390 $app->get(
391 '/fields/core/configure',
392 GaletteController::class . ':configureCoreFields'
393 )->setName('configureCoreFields')->add($authenticate);
394
395 $app->post(
396 '/fields/core/configure',
397 GaletteController::class . ':storeCoreFieldsConfig'
398 )->setName('storeCoreFieldsConfig')->add($authenticate);
399
400 $app->get(
401 '/fields/dynamic/configure[/{form:adh|contrib|trans}]',
402 Crud\DynamicFieldsController::class . ':list'
403 )->setName('configureDynamicFields')->add($authenticate);
404
405 $app->get(
406 '/fields/dynamic/move/{form:adh|contrib|trans}' .
407 '/{direction:up|down}/{id:\d+}',
408 Crud\DynamicFieldsController::class . ':move'
409 )->setName('moveDynamicField')->add($authenticate);
410
411 $app->get(
412 '/fields/dynamic/remove/{form:adh|contrib|trans}/{id:\d+}',
413 Crud\DynamicFieldsController::class . ':confirmDelete'
414 )->setName('removeDynamicField')->add($authenticate);
415
416 $app->post(
417 '/fields/dynamic/remove/{form:adh|contrib|trans}/{id:\d+}',
418 Crud\DynamicFieldsController::class . ':delete'
419 )->setName('doRemoveDynamicField')->add($authenticate);
420
421 $app->get(
422 '/fields/dynamic/add/{form:adh|contrib|trans}',
423 Crud\DynamicFieldsController::class . ':add'
424 )->setName('addDynamicField')->add($authenticate);
425
426 $app->get(
427 '/fields/dynamic/edit/{form:adh|contrib|trans}/{id:\d+}',
428 Crud\DynamicFieldsController::class . ':edit'
429 )->setName('editDynamicField')->add($authenticate);
430
431 $app->post(
432 '/fields/dynamic/add/{form:adh|contrib|trans}',
433 Crud\DynamicFieldsController::class . ':doAdd'
434 )->setName('doAddDynamicField')->add($authenticate);
435
436 $app->post(
437 '/fields/dynamic/edit/{form:adh|contrib|trans}/{id:\d+}',
438 Crud\DynamicFieldsController::class . ':doEdit'
439 )->setName('doEditDynamicField')->add($authenticate);
440
441 if (GALETTE_MODE != 'DEMO') {
442 $app->get(
443 '/generate-data',
444 GaletteController::class . ':fakeData'
445 )->setName('fakeData')->add($authenticate);
446
447 $app->post(
448 '/generate-data',
449 GaletteController::class . ':doFakeData'
450 )->setName('doFakeData')->add($authenticate);
451 }
452
453 $app->get(
454 '/admin-tools',
455 AdminToolsController::class . ':adminTools'
456 )->setName('adminTools')->add($authenticate);
457
458 $app->post(
459 '/admin-tools',
460 AdminToolsController::class . ':process'
461 )->setName('doAdminTools')->add($authenticate);
462
463 $app->get(
464 '/payment-types',
465 Crud\PaymentTypeController::class . ':list'
466 )->setName('paymentTypes')->add($authenticate);
467
468 $app->post(
469 '/payment-types',
470 Crud\PaymentTypeController::class . ':doAdd'
471 )->setName('paymentTypes')->add($authenticate);
472
473 $app->get(
474 '/payment-type/remove/{id:\d+}',
475 Crud\PaymentTypeController::class . ':confirmDelete'
476 )->setName('removePaymentType')->add($authenticate);
477
478 $app->post(
479 '/payment-type/remove/{id:\d+}',
480 Crud\PaymentTypeController::class . ':delete'
481 )->setName('doRemovePaymentType')->add($authenticate);
482
483 $app->get(
484 '/payment-type/edit/{id:\d+}',
485 Crud\PaymentTypeController::class . ':edit'
486 )->setname('editPaymentType')->add($authenticate);
487
488 $app->post(
489 '/payment-type/edit/{id:\d+}',
490 Crud\PaymentTypeController::class . ':doEdit'
491 )->setname('editPaymentType')->add($authenticate);