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
33 * @link http://galette.tuxfamily.org
34 * @since 0.8.2dev 2014-11-11
37 use Galette\Controllers\GaletteController
;
38 use Galette\Controllers\PluginsController
;
39 use Galette\Controllers\HistoryController
;
40 use Galette\Controllers\DynamicTranslationsController
;
41 use Galette\Controllers\Crud
;
42 use Galette\Controllers\PdfController
;
43 use Galette\Controllers\CsvController
;
44 use Galette\Controllers\AdminToolsController
;
46 use Galette\DynamicFields\DynamicField
;
47 use Galette\Repository\Members
;
51 use Galette\IO\CsvOut
;
53 use Galette\Entity\Title
;
54 use Galette\Repository\Titles
;
55 use Galette\Entity\Texts
;
56 use Galette\Core\Install
;
57 use Galette\Entity\Status
;
62 GaletteController
::class . ':dashboard'
63 )->setName('dashboard')->add($authenticate);
68 GaletteController
::class . ':preferences'
69 )->setName('preferences')->add($authenticate);
71 //preferences procedure
74 GaletteController
::class . ':storePreferences'
75 )->setName('store-preferences')->add($authenticate);
79 GaletteController
::class . ':testEmail'
80 )->setName('testEmail')->add($authenticate);
85 GaletteController
::class . ':charts'
86 )->setName('charts')->add($authenticate);
91 PluginsController
::class . ':showPlugins'
92 )->setName('plugins')->add($authenticate);
94 //plugins (de)activation
96 '/plugins/{action:activate|deactivate}/{module_id}',
97 PluginsController
::class . ':togglePlugin'
98 )->setName('pluginsActivation')->add($authenticate);
102 '/plugins/initialize-database/{id}',
103 PluginsController
::class . ':initPluginDb'
104 )->setName('pluginInitDb')->add($authenticate);
108 '/logs[/{option:page|order}/{value}]',
109 HistoryController
::class . ':history'
110 )->setName('history')->add($authenticate);
114 HistoryController
::class . ':historyFilter'
117 )->add($authenticate);
121 HistoryController
::class . ':confirmHistoryFlush'
122 )->setName('flushHistory')->add($authenticate);
126 HistoryController
::class . ':flushHistory'
127 )->setName('doFlushHistory')->add($authenticate);
129 //mailings management
131 '/mailings[/{option:page|order|reset}/{value}]',
132 Crud\MailingsController
::class . ':list'
133 )->setName('mailings')->add($authenticate);
137 Crud\MailingsController
::class . ':filter'
138 )->setName('mailings_filter')->add($authenticate);
141 '/mailings/remove' . '/{id:\d+}',
142 Crud\MailingsController
::class . ':confirmDelete'
143 )->setName('removeMailing')->add($authenticate);
146 '/mailings/remove/{id:\d+}',
147 Crud\MailingsController
::class . ':delete'
148 )->setName('doRemoveMailing')->add($authenticate);
153 CsvController
::class . ':export'
154 )->setName('export')->add($authenticate);
157 '/{type:export|import}/remove/{file}',
158 CsvController
::class . ':confirmRemoveFile'
159 )->setName('removeCsv')->add($authenticate);
162 '/{type:export|import}/remove/{file}',
163 CsvController
::class . ':removeFile'
164 )->setName('doRemoveCsv')->add($authenticate);
168 CsvController
::class . ':doExport'
169 )->setName('doExport')->add($authenticate);
172 '/{type:export|import}/get/{file}',
173 CsvController
::class . ':getFile'
174 )->setName('getCsv')->add($authenticate);
178 CsvController
::class . ':import'
179 )->setName('import')->add($authenticate);
183 CsvController
::class . ':doImports'
184 )->setName('doImport')->add($authenticate);
188 CsvController
::class . ':uploadImportFile'
189 )->setname('uploadImportFile')->add($authenticate);
193 CsvController
::class . ':importModel'
194 )->setName('importModel')->add($authenticate);
198 CsvController
::class . ':getImportModel'
199 )->setName('getImportModel')->add($authenticate);
202 '/import/model/store',
203 CsvController
::class . ':storeModel'
204 )->setName('storeImportModel')->add($authenticate);
207 '/models/pdf[/{id:\d+}]',
208 PdfController
::class . ':models'
209 )->setName('pdfModels')->add($authenticate);
213 PdfController
::class . ':storeModels'
214 )->setName('pdfModels')->add($authenticate);
218 Crud\TitlesController
::class . ':list'
219 )->setName('titles')->add($authenticate);
223 Crud\TitlesController
::class . ':doAdd'
224 )->setName('titles')->add($authenticate);
227 '/titles/remove/{id:\d+}',
228 Crud\TitlesController
::class . ':confirmDelete'
229 )->setName('removeTitle')->add($authenticate);
232 '/titles/remove/{id:\d+}',
233 Crud\TitlesController
::class . ':delete'
234 )->setName('doRemoveTitle')->add($authenticate);
237 '/titles/edit/{id:\d+}',
238 Crud\TitlesController
::class . ':edit'
239 )->setname('editTitle')->add($authenticate);
242 '/titles/edit/{id:\d+}',
243 Crud\TitlesController
::class . ':doEdit'
244 )->setname('editTitle')->add($authenticate);
247 '/texts[/{lang}/{ref}]',
248 function ($request, $response, $args) {
249 if (!isset($args['lang'])) {
250 $args['lang'] = $this->preferences
->pref_lang
;
252 if (!isset($args['ref'])) {
253 $args['ref'] = Texts
::DEFAULT_REF
;
261 $mtxt = $texts->getTexts($args['ref'], $args['lang']);
266 'gestion_textes.tpl',
268 'page_title' => _T("Automatic emails texts edition"),
269 'reflist' => $texts->getRefs($args['lang']),
270 'langlist' => $this->i18n
->getList(),
271 'cur_lang' => $args['lang'],
272 'cur_ref' => $args['ref'],
278 )->setName('texts')->add($authenticate);
282 function ($request, $response) {
283 $post = $request->getParsedBody();
288 $this->router
->pathFor(
291 'lang' => $post['sel_lang'],
292 'ref' => $post['sel_ref']
297 )->setName('changeText')->add($authenticate);
301 function ($request, $response) {
302 $post = $request->getParsedBody();
303 $texts = new Texts($this->preferences
, $this->router
);
306 $cur_lang = $post['cur_lang'];
308 $cur_ref = $post['cur_ref'];
310 $mtxt = $texts->getTexts($cur_ref, $cur_lang, $this->router
);
311 $res = $texts->setTexts(
314 $post['text_subject'],
319 $this->flash
->addMessage(
324 _T("Email: '%s' has not been modified!")
328 $this->flash
->addMessage(
333 _T("Email: '%s' has been successfully modified.")
340 ->withHeader('Location', $this->router
->pathFor('texts'));
342 )->setName('texts')->add($authenticate);
345 '/{class:contributions-types|status}',
346 Crud\EntitledsController
::class . ':list'
347 )->setName('entitleds')->add($authenticate);
350 '/{class:contributions-types|status}/{action:edit|add}[/{id:\d+}]',
351 Crud\EntitledsController
::class . ':edit'
352 )->setName('editEntitled')->add($authenticate);
355 '/{class:contributions-types|status}/{action:edit|add}[/{id:\d+}]',
356 Crud\EntitledsController
::class . ':doEdit'
357 )->setName('doEditEntitled')->add($authenticate);
360 '/{class:contributions-types|status}/remove/{id:\d+}',
361 Crud\EntitledsController
::class . ':confirmDelete'
362 )->setName('removeEntitled')->add($authenticate);
365 '/{class:contributions-types|status}/remove/{id:\d+}',
366 Crud\EntitledsController
::class . ':delete'
367 )->setName('doRemoveEntitled')->add($authenticate);
370 '/dynamic-translations[/{text_orig}]',
371 DynamicTranslationsController
::class . ':dynamicTranslations'
372 )->setName('dynamicTranslations')->add($authenticate);
375 '/dynamic-translations',
376 DynamicTranslationsController
::class . ':doDynamicTranslations'
377 )->setName('editDynamicTranslation')->add($authenticate);
380 '/lists/{table}/configure',
381 GaletteController
::class . ':configureListFields'
382 )->setName('configureListFields')->add($authenticate);
385 '/lists/{table}/configure',
386 GaletteController
::class . ':storeListFields'
387 )->setName('storeListFields')->add($authenticate);
390 '/fields/core/configure',
391 GaletteController
::class . ':configureCoreFields'
392 )->setName('configureCoreFields')->add($authenticate);
395 '/fields/core/configure',
396 GaletteController
::class . ':storeCoreFieldsConfig'
397 )->setName('storeCoreFieldsConfig')->add($authenticate);
400 '/fields/dynamic/configure[/{form:adh|contrib|trans}]',
401 Crud\DynamicFieldsController
::class . ':list'
402 )->setName('configureDynamicFields')->add($authenticate);
405 '/fields/dynamic/move/{form:adh|contrib|trans}' .
406 '/{direction:up|down}/{id:\d+}',
407 Crud\DynamicFieldsController
::class . ':move'
408 )->setName('moveDynamicField')->add($authenticate);
411 '/fields/dynamic/remove/{form:adh|contrib|trans}/{id:\d+}',
412 Crud\DynamicFieldsController
::class . ':confirmDelete'
413 )->setName('removeDynamicField')->add($authenticate);
416 '/fields/dynamic/remove/{form:adh|contrib|trans}/{id:\d+}',
417 Crud\DynamicFieldsController
::class . ':delete'
418 )->setName('doRemoveDynamicField')->add($authenticate);
421 '/fields/dynamic/add/{form:adh|contrib|trans}',
422 Crud\DynamicFieldsController
::class . ':add'
423 )->setName('addDynamicField')->add($authenticate);
426 '/fields/dynamic/edit/{form:adh|contrib|trans}/{id:\d+}',
427 Crud\DynamicFieldsController
::class . ':edit'
428 )->setName('editDynamicField')->add($authenticate);
431 '/fields/dynamic/add/{form:adh|contrib|trans}',
432 Crud\DynamicFieldsController
::class . ':doAdd'
433 )->setName('doAddDynamicField')->add($authenticate);
436 '/fields/dynamic/edit/{form:adh|contrib|trans}/{id:\d+}',
437 Crud\DynamicFieldsController
::class . ':doEdit'
438 )->setName('doEditDynamicField')->add($authenticate);
440 if (GALETTE_MODE
!= 'DEMO') {
443 GaletteController
::class . ':fakeData'
444 )->setName('fakeData')->add($authenticate);
448 GaletteController
::class . ':doFakeData'
449 )->setName('doFakeData')->add($authenticate);
454 AdminToolsController
::class . ':adminTools'
455 )->setName('adminTools')->add($authenticate);
459 AdminToolsController
::class . ':process'
460 )->setName('doAdminTools')->add($authenticate);
464 Crud\PaymentTypeController
::class . ':list'
465 )->setName('paymentTypes')->add($authenticate);
469 Crud\PaymentTypeController
::class . ':doAdd'
470 )->setName('paymentTypes')->add($authenticate);
473 '/payment-type/remove/{id:\d+}',
474 Crud\PaymentTypeController
::class . ':confirmDelete'
475 )->setName('removePaymentType')->add($authenticate);
478 '/payment-type/remove/{id:\d+}',
479 Crud\PaymentTypeController
::class . ':delete'
480 )->setName('doRemovePaymentType')->add($authenticate);
483 '/payment-type/edit/{id:\d+}',
484 Crud\PaymentTypeController
::class . ':edit'
485 )->setname('editPaymentType')->add($authenticate);
488 '/payment-type/edit/{id:\d+}',
489 Crud\PaymentTypeController
::class . ':doEdit'
490 )->setname('editPaymentType')->add($authenticate);