3 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
10 * Copyright © 2014 The Galette Team
12 * This file is part of Galette (http://galette.tuxfamily.org).
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.
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.
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/>.
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
34 * @link http://galette.tuxfamily.org
35 * @since 0.8.2dev 2014-11-11
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
;
47 use Galette\DynamicFields\DynamicField
;
48 use Galette\Repository\Members
;
52 use Galette\IO\CsvOut
;
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
;
63 GaletteController
::class . ':dashboard'
64 )->setName('dashboard')->add($authenticate);
69 GaletteController
::class . ':preferences'
70 )->setName('preferences')->add($authenticate);
72 //preferences procedure
75 GaletteController
::class . ':storePreferences'
76 )->setName('store-preferences')->add($authenticate);
80 GaletteController
::class . ':testEmail'
81 )->setName('testEmail')->add($authenticate);
86 GaletteController
::class . ':charts'
87 )->setName('charts')->add($authenticate);
92 PluginsController
::class . ':showPlugins'
93 )->setName('plugins')->add($authenticate);
95 //plugins (de)activation
97 '/plugins/{action:activate|deactivate}/{module_id}',
98 PluginsController
::class . ':togglePlugin'
99 )->setName('pluginsActivation')->add($authenticate);
103 '/plugins/initialize-database/{id}',
104 PluginsController
::class . ':initPluginDb'
105 )->setName('pluginInitDb')->add($authenticate);
109 '/logs[/{option:page|order}/{value}]',
110 HistoryController
::class . ':history'
111 )->setName('history')->add($authenticate);
115 HistoryController
::class . ':historyFilter'
118 )->add($authenticate);
122 HistoryController
::class . ':confirmHistoryFlush'
123 )->setName('flushHistory')->add($authenticate);
127 HistoryController
::class . ':flushHistory'
128 )->setName('doFlushHistory')->add($authenticate);
130 //mailings management
132 '/mailings[/{option:page|order|reset}/{value}]',
133 Crud\MailingsController
::class . ':list'
134 )->setName('mailings')->add($authenticate);
138 Crud\MailingsController
::class . ':filter'
139 )->setName('mailings_filter')->add($authenticate);
142 '/mailings/remove' . '/{id:\d+}',
143 Crud\MailingsController
::class . ':confirmDelete'
144 )->setName('removeMailing')->add($authenticate);
147 '/mailings/remove/{id:\d+}',
148 Crud\MailingsController
::class . ':delete'
149 )->setName('doRemoveMailing')->add($authenticate);
154 CsvController
::class . ':export'
155 )->setName('export')->add($authenticate);
158 '/{type:export|import}/remove/{file}',
159 CsvController
::class . ':confirmRemoveFile'
160 )->setName('removeCsv')->add($authenticate);
163 '/{type:export|import}/remove/{file}',
164 CsvController
::class . ':removeFile'
165 )->setName('doRemoveCsv')->add($authenticate);
169 CsvController
::class . ':doExport'
170 )->setName('doExport')->add($authenticate);
173 '/{type:export|import}/get/{file}',
174 CsvController
::class . ':getFile'
175 )->setName('getCsv')->add($authenticate);
179 CsvController
::class . ':import'
180 )->setName('import')->add($authenticate);
184 CsvController
::class . ':doImports'
185 )->setName('doImport')->add($authenticate);
189 CsvController
::class . ':uploadImportFile'
190 )->setname('uploadImportFile')->add($authenticate);
194 CsvController
::class . ':importModel'
195 )->setName('importModel')->add($authenticate);
199 CsvController
::class . ':getImportModel'
200 )->setName('getImportModel')->add($authenticate);
203 '/import/model/store',
204 CsvController
::class . ':storeModel'
205 )->setName('storeImportModel')->add($authenticate);
208 '/models/pdf[/{id:\d+}]',
209 PdfController
::class . ':models'
210 )->setName('pdfModels')->add($authenticate);
214 PdfController
::class . ':storeModels'
215 )->setName('pdfModels')->add($authenticate);
219 Crud\TitlesController
::class . ':list'
220 )->setName('titles')->add($authenticate);
224 Crud\TitlesController
::class . ':doAdd'
225 )->setName('titles')->add($authenticate);
228 '/titles/remove/{id:\d+}',
229 Crud\TitlesController
::class . ':confirmDelete'
230 )->setName('removeTitle')->add($authenticate);
233 '/titles/remove/{id:\d+}',
234 Crud\TitlesController
::class . ':delete'
235 )->setName('doRemoveTitle')->add($authenticate);
238 '/titles/edit/{id:\d+}',
239 Crud\TitlesController
::class . ':edit'
240 )->setname('editTitle')->add($authenticate);
243 '/titles/edit/{id:\d+}',
244 Crud\TitlesController
::class . ':doEdit'
245 )->setname('editTitle')->add($authenticate);
248 '/texts[/{lang}/{ref}]',
249 function ($request, $response, $args) {
250 if (!isset($args['lang'])) {
251 $args['lang'] = $this->preferences
->pref_lang
;
253 if (!isset($args['ref'])) {
254 $args['ref'] = Texts
::DEFAULT_REF
;
262 $mtxt = $texts->getTexts($args['ref'], $args['lang']);
267 'gestion_textes.tpl',
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'],
279 )->setName('texts')->add($authenticate);
283 function ($request, $response) {
284 $post = $request->getParsedBody();
289 $this->router
->pathFor(
292 'lang' => $post['sel_lang'],
293 'ref' => $post['sel_ref']
298 )->setName('changeText')->add($authenticate);
302 function ($request, $response) {
303 $post = $request->getParsedBody();
304 $texts = new Texts($this->preferences
, $this->router
);
307 $cur_lang = $post['cur_lang'];
309 $cur_ref = $post['cur_ref'];
311 $mtxt = $texts->getTexts($cur_ref, $cur_lang, $this->router
);
312 $res = $texts->setTexts(
315 $post['text_subject'],
320 $this->flash
->addMessage(
325 _T("Email: '%s' has not been modified!")
329 $this->flash
->addMessage(
334 _T("Email: '%s' has been successfully modified.")
341 ->withHeader('Location', $this->router
->pathFor('texts'));
343 )->setName('texts')->add($authenticate);
346 '/{class:contributions-types|status}',
347 Crud\EntitledsController
::class . ':list'
348 )->setName('entitleds')->add($authenticate);
351 '/{class:contributions-types|status}/{action:edit|add}[/{id:\d+}]',
352 Crud\EntitledsController
::class . ':edit'
353 )->setName('editEntitled')->add($authenticate);
356 '/{class:contributions-types|status}/{action:edit|add}[/{id:\d+}]',
357 Crud\EntitledsController
::class . ':doEdit'
358 )->setName('doEditEntitled')->add($authenticate);
361 '/{class:contributions-types|status}/remove/{id:\d+}',
362 Crud\EntitledsController
::class . ':confirmDelete'
363 )->setName('removeEntitled')->add($authenticate);
366 '/{class:contributions-types|status}/remove/{id:\d+}',
367 Crud\EntitledsController
::class . ':delete'
368 )->setName('doRemoveEntitled')->add($authenticate);
371 '/dynamic-translations[/{text_orig}]',
372 DynamicTranslationsController
::class . ':dynamicTranslations'
373 )->setName('dynamicTranslations')->add($authenticate);
376 '/dynamic-translations',
377 DynamicTranslationsController
::class . ':doDynamicTranslations'
378 )->setName('editDynamicTranslation')->add($authenticate);
381 '/lists/{table}/configure',
382 GaletteController
::class . ':configureListFields'
383 )->setName('configureListFields')->add($authenticate);
386 '/lists/{table}/configure',
387 GaletteController
::class . ':storeListFields'
388 )->setName('storeListFields')->add($authenticate);
391 '/fields/core/configure',
392 GaletteController
::class . ':configureCoreFields'
393 )->setName('configureCoreFields')->add($authenticate);
396 '/fields/core/configure',
397 GaletteController
::class . ':storeCoreFieldsConfig'
398 )->setName('storeCoreFieldsConfig')->add($authenticate);
401 '/fields/dynamic/configure[/{form:adh|contrib|trans}]',
402 Crud\DynamicFieldsController
::class . ':list'
403 )->setName('configureDynamicFields')->add($authenticate);
406 '/fields/dynamic/move/{form:adh|contrib|trans}' .
407 '/{direction:up|down}/{id:\d+}',
408 Crud\DynamicFieldsController
::class . ':move'
409 )->setName('moveDynamicField')->add($authenticate);
412 '/fields/dynamic/remove/{form:adh|contrib|trans}/{id:\d+}',
413 Crud\DynamicFieldsController
::class . ':confirmDelete'
414 )->setName('removeDynamicField')->add($authenticate);
417 '/fields/dynamic/remove/{form:adh|contrib|trans}/{id:\d+}',
418 Crud\DynamicFieldsController
::class . ':delete'
419 )->setName('doRemoveDynamicField')->add($authenticate);
422 '/fields/dynamic/add/{form:adh|contrib|trans}',
423 Crud\DynamicFieldsController
::class . ':add'
424 )->setName('addDynamicField')->add($authenticate);
427 '/fields/dynamic/edit/{form:adh|contrib|trans}/{id:\d+}',
428 Crud\DynamicFieldsController
::class . ':edit'
429 )->setName('editDynamicField')->add($authenticate);
432 '/fields/dynamic/add/{form:adh|contrib|trans}',
433 Crud\DynamicFieldsController
::class . ':doAdd'
434 )->setName('doAddDynamicField')->add($authenticate);
437 '/fields/dynamic/edit/{form:adh|contrib|trans}/{id:\d+}',
438 Crud\DynamicFieldsController
::class . ':doEdit'
439 )->setName('doEditDynamicField')->add($authenticate);
441 if (GALETTE_MODE
!= 'DEMO') {
444 GaletteController
::class . ':fakeData'
445 )->setName('fakeData')->add($authenticate);
449 GaletteController
::class . ':doFakeData'
450 )->setName('doFakeData')->add($authenticate);
455 AdminToolsController
::class . ':adminTools'
456 )->setName('adminTools')->add($authenticate);
460 AdminToolsController
::class . ':process'
461 )->setName('doAdminTools')->add($authenticate);
465 Crud\PaymentTypeController
::class . ':list'
466 )->setName('paymentTypes')->add($authenticate);
470 Crud\PaymentTypeController
::class . ':doAdd'
471 )->setName('paymentTypes')->add($authenticate);
474 '/payment-type/remove/{id:\d+}',
475 Crud\PaymentTypeController
::class . ':confirmDelete'
476 )->setName('removePaymentType')->add($authenticate);
479 '/payment-type/remove/{id:\d+}',
480 Crud\PaymentTypeController
::class . ':delete'
481 )->setName('doRemovePaymentType')->add($authenticate);
484 '/payment-type/edit/{id:\d+}',
485 Crud\PaymentTypeController
::class . ':edit'
486 )->setname('editPaymentType')->add($authenticate);
489 '/payment-type/edit/{id:\d+}',
490 Crud\PaymentTypeController
::class . ':doEdit'
491 )->setname('editPaymentType')->add($authenticate);