refactor(admin/users): migrate CSV export to core primitive
Replace the inline export implementation with the new generic primitive
(core/Service/Export + helpers/export + app-list-export.js). No more
hand-rolled fputcsv loop, header setup, or escape closure duplicated
here — one implementation, tested once, reused everywhere.
- export().php: uses exportRequireGetRequest, exportCapLimit,
exportResolveFlavor, ExportColumn[], exportSendCsv. Phone/mobile/
short_dial keep allowSignedNumeric=true so +49 numbers render
untouched.
- export(none).phtml: deleted — headers + fputcsv now live in the
core helper.
- index(default).phtml: inline <details class="dropdown"> "Export CSV"
replaced by the reusable app-list-export-dropdown partial, exposing
CSV and Excel flavors. exportUrl added to pageConfig.
- app-users-list.js: hand-rolled export-button binding removed in
favor of initListExport({ gridConfig, exportUrl }).
- admin-users-index.js: forwards config.exportUrl into
initUsersListPage.
Net effect: ~100 lines of duplicated export plumbing removed from the
users page; users gain the Excel flavor for free.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -46,16 +46,7 @@ ob_start();
|
||||
<i class="bi bi-trash3-fill"></i> <?php e(t('Delete')); ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
<details class="dropdown" data-tooltip="<?php e(t("Actions")); ?>" data-tooltip-pos="top">
|
||||
<summary role="button" class="outline secondary"><i class="bi bi-three-dots"></i></summary>
|
||||
<ul dir="rtl">
|
||||
<li dir="ltr">
|
||||
<button class="transparent" type="button" data-users-export>
|
||||
<?php e(t('Export CSV')); ?>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</details>
|
||||
<?php require templatePath('partials/app-list-export-dropdown.phtml'); ?>
|
||||
|
||||
<?php if ($canCreateUser): ?>
|
||||
<a role="button" class="app-action-success" href="<?php e(requestPathWithReturnTarget('admin/users/create', Request::pathWithQuery())); ?>">
|
||||
@@ -119,6 +110,7 @@ $pageConfig = [
|
||||
'gridSearch' => $searchConfig,
|
||||
'filterSchema' => $clientFilterSchema,
|
||||
'filterChipMeta' => $filterChipMeta,
|
||||
'exportUrl' => lurl('admin/users/export'),
|
||||
'currentUserUuid' => (string) $currentUserUuid,
|
||||
'canUpdateUsers' => (bool) $canUpdateUsers,
|
||||
'canUpdateSelf' => (bool) $canUpdateSelf,
|
||||
|
||||
Reference in New Issue
Block a user