3 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
6 * Members related routes
10 * Copyright © 2014-2020 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-2020 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-27
37 use Galette\Controllers\Crud
;
38 use Galette\Controllers\CsvController
;
39 use Galette\Controllers\GaletteController
;
40 use Galette\Controllers\PdfController
;
41 use Galette\Entity\Adherent
;
42 use Galette\Middleware\MembersNavigate
;
47 [Crud\MembersController
::class, 'selfSubscribe']
48 )->setName('subscribe');
50 //members list CSV export
53 '/members/export/csv',
54 [CsvController
::class, 'membersExport']
55 )->setName('csv-memberslist')->add($authenticate);
59 '/members[/{option:page|order}/{value:\d+|\w+}]',
60 [Crud\MembersController
::class, 'list']
61 )->setName('members')->add($authenticate);
63 //members list filtering
66 [Crud\MembersController
::class, 'filter']
67 )->setName('filter-memberslist')->add($authenticate);
72 [Crud\MembersController
::class, 'showMe']
73 )->setName('me')->add($authenticate);
78 [Crud\MembersController
::class, 'show']
79 )->setName('member')->add($authenticate)->add(MembersNavigate
::class);
82 '/member/edit/{id:\d+}',
83 [Crud\MembersController
::class, 'edit']
84 )->setName('editMember')->add($authenticate)->add(MembersNavigate
::class);
88 [Crud\MembersController
::class, 'add']
89 )->setName('addMember')->add($authenticate)->add(MembersNavigate
::class);
93 [Crud\MembersController
::class, 'doSelfSubscribe']
94 )->setName('storeselfmembers');
98 [Crud\MembersController
::class, 'doAdd']
99 )->setName('doAddMember');
102 '/member/store/{id:\d+}',
103 [Crud\MembersController
::class, 'doEdit']
104 )->setName('doEditMember');
107 '/member/remove/{id:\d+}',
108 [Crud\MembersController
::class, 'confirmDelete']
109 )->setName('removeMember')->add($authenticate);
113 [Crud\MembersController
::class, 'confirmDelete']
114 )->setName('removeMembers')->add($authenticate);
117 '/member/remove' . '[/{id:\d+}]',
118 [Crud\MembersController
::class, 'delete']
119 )->setName('doRemoveMember')->add($authenticate);
121 //advanced search page
124 [Crud\MembersController
::class, 'advancedSearch']
125 )->setName('advanced-search')->add($authenticate);
127 //Batch actions on members list
130 [Crud\MembersController
::class, 'handleBatch']
131 )->setName('batch-memberslist')->add($authenticate);
135 '/members/cards[/{' . Adherent
::PK
. ':\d+}]',
136 [PdfController
::class, 'membersCards']
137 )->setName('pdf-members-cards')->add($authenticate);
143 [PdfController
::class, 'membersLabels']
144 )->setName('pdf-members-labels')->add($authenticate);
148 '/members/adhesion-form/{' . Adherent
::PK
. ':\d+}',
149 [PdfController
::class, 'adhesionForm']
150 )->setName('adhesionForm')->add($authenticate);
152 //Empty PDF adhesion form
154 '/members/empty-adhesion-form',
155 [PdfController
::class, 'adhesionForm']
156 )->setName('emptyAdhesionForm');
161 [Crud\MailingsController
::class, 'add']
162 )->setName('mailing')->add($authenticate);
166 [Crud\MailingsController
::class, 'doAdd']
167 )->setName('doMailing')->add($authenticate);
171 '/mailing/preview[/{id:\d+}]',
172 [Crud\MailingsController
::class, 'preview']
173 )->setName('mailingPreview')->add($authenticate);
176 '/mailing/preview/{id:\d+}/attachment/{pos:\d+}',
177 [Crud\MailingsController
::class, 'previewAttachment']
178 )->setName('previewAttachment')->add($authenticate);
181 '/ajax/mailing/set-recipients',
182 [Crud\MailingsController
::class, 'setRecipients']
183 )->setName('mailingRecipients')->add($authenticate);
188 [GaletteController
::class, 'reminders']
189 )->setName('reminders')->add($authenticate);
193 [GaletteController
::class, 'doReminders']
194 )->setName('doReminders')->add($authenticate);
197 '/members/reminder-filter/{membership:nearly|late}/{mail:withmail|withoutmail}',
198 [GaletteController
::class, 'filterReminders']
199 )->setName('reminders-filter')->add($authenticate);
203 '/attendance-sheet/details',
204 [PdfController
::class, 'attendanceSheetConfig']
205 )->setName('attendance_sheet_details')->add($authenticate);
209 [PdfController
::class, 'attendanceSheet']
210 )->setName('attendance_sheet')->add($authenticate);
213 '/ajax/members[/{option:page|order}/{value:\d+}]',
214 [Crud\MembersController
::class, 'ajaxList']
215 )->setName('ajaxMembers')->add($authenticate);
218 '/ajax/group/members',
219 [Crud\GroupsController
::class, 'ajaxMembers']
220 )->setName('ajaxGroupMembers')->add($authenticate);
223 '/member/{id:\d+}/file/{fid:\d+}/{pos:\d+}/{name}',
224 [Crud\MembersController
::class, 'getDynamicFile']
225 )->setName('getDynamicFile')->add($authenticate);
228 '/members/mass-change',
229 [Crud\MembersController
::class, 'massChange']
230 )->setName('masschangeMembers')->add($authenticate);
233 '/members/mass-change/validate',
234 [Crud\MembersController
::class, 'validateMassChange']
235 )->setName('masschangeMembersReview')->add($authenticate);
238 '/members/mass-change',
239 [Crud\MembersController
::class, 'doMassChange']
240 )->setName('massstoremembers')->add($authenticate);
244 '/members/duplicate/{' . Adherent
::PK
. ':\d+}',
245 [Crud\MembersController
::class, 'duplicate']
246 )->setName('duplicateMember')->add($authenticate);
252 [Crud\SavedSearchesController
::class, 'doAdd']
253 )->setName('saveSearch');
256 '/saved-searches[/{option:page|order}/{value:\d+}]',
257 [Crud\SavedSearchesController
::class, 'list']
258 )->setName('searches')->add($authenticate);
261 '/search/remove/{id:\d+}',
262 [Crud\SavedSearchesController
::class, 'confirmDelete']
263 )->setName('removeSearch')->add($authenticate);
267 [Crud\SavedSearchesController
::class, 'confirmDelete']
268 )->setName('removeSearches')->add($authenticate);
271 '/search/remove' . '[/{id:\d+}]',
272 [Crud\SavedSearchesController
::class, 'delete']
273 )->setName('doRemoveSearch')->add($authenticate);
277 [Crud\SavedSearchesController
::class, 'load']
278 )->setName('loadSearch');