- Add user-assignment dependency check to DepartmentService.deleteByUuid (409 when users assigned)
- Standardize POST detection to isMethod('POST') in 10 create/edit actions
- Align RoleService code uniqueness to warning pattern (matching departments)
- Normalize repository create() return types from mixed to int|false (3 repos + 3 interfaces)
- Add JSON response branches to 4 non-user delete actions
- Document delete authorization ordering pattern
- Decompose AdminSettingsService.updateFromAdmin into domain-scoped private methods
Workflow: .agents/runs/CRUD-CONSISTENCY-001/
Reviewed by: Code Reviewer (pass), Security Reviewer (pass), Acceptance Tester (pass)
Quality gates: QG-001 PHPUnit pass, QG-002 PHPStan pass, QG-003 Architecture pass
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
62 lines
1.5 KiB
PHTML
62 lines
1.5 KiB
PHTML
<?php
|
|
|
|
/**
|
|
* @var array<int, string> $errors
|
|
* @var array $form
|
|
*/
|
|
|
|
?>
|
|
<div class="app-details-container">
|
|
<section>
|
|
<?php
|
|
$breadcrumbs = [
|
|
['label' => t('Home'), 'path' => 'admin'],
|
|
['label' => t('Roles'), 'path' => 'admin/roles'],
|
|
['label' => t('Create role')],
|
|
];
|
|
require templatePath('partials/app-breadcrumb.phtml');
|
|
$titlebar = [
|
|
'title' => t('Create role'),
|
|
'backHref' => 'admin/roles',
|
|
'backTitle' => t('Cancel'),
|
|
'actions' => [
|
|
[
|
|
'form' => 'role-form',
|
|
'name' => 'action',
|
|
'value' => 'create',
|
|
'class' => 'secondary outline',
|
|
'label' => t('Create'),
|
|
],
|
|
[
|
|
'form' => 'role-form',
|
|
'name' => 'action',
|
|
'value' => 'create_close',
|
|
'class' => 'primary',
|
|
'label' => t('Create & close'),
|
|
],
|
|
],
|
|
];
|
|
require templatePath('partials/app-details-titlebar.phtml');
|
|
?>
|
|
<?php
|
|
$validationSummaryErrors = $validationSummaryErrors ?? ($errors ?? []);
|
|
require templatePath('partials/app-details-validation-summary.phtml');
|
|
?>
|
|
<?php if (!empty($warnings)): ?>
|
|
<div class="notice" data-variant="info">
|
|
<ul>
|
|
<?php foreach ($warnings as $warning): ?>
|
|
<li><?php e($warning); ?></li>
|
|
<?php endforeach; ?>
|
|
</ul>
|
|
</div>
|
|
<?php endif; ?>
|
|
<?php
|
|
$values = $form ?? [];
|
|
$detailsOpenAll = true;
|
|
$ignoreTabStorage = true;
|
|
require __DIR__ . '/_form.phtml';
|
|
?>
|
|
</section>
|
|
</div>
|