composer update

This commit is contained in:
isUnknown 2025-09-23 08:15:07 +02:00
parent 0b3c362c5e
commit a1f0701630
142 changed files with 4530 additions and 1195 deletions

View file

@ -5,101 +5,61 @@ use Kirby\Panel\UserTotpEnableDialog;
$dialogs = require __DIR__ . '/../users/dialogs.php';
return [
// change email
'account.changeEmail' => [
...$dialogs['user.changeEmail'],
'pattern' => '(account)/changeEmail',
'load' => $dialogs['user.changeEmail']['load'],
'submit' => $dialogs['user.changeEmail']['submit'],
],
// change language
'account.changeLanguage' => [
...$dialogs['user.changeLanguage'],
'pattern' => '(account)/changeLanguage',
'load' => $dialogs['user.changeLanguage']['load'],
'submit' => $dialogs['user.changeLanguage']['submit'],
],
// change name
'account.changeName' => [
...$dialogs['user.changeName'],
'pattern' => '(account)/changeName',
'load' => $dialogs['user.changeName']['load'],
'submit' => $dialogs['user.changeName']['submit'],
],
// change password
'account.changePassword' => [
...$dialogs['user.changePassword'],
'pattern' => '(account)/changePassword',
'load' => $dialogs['user.changePassword']['load'],
'submit' => $dialogs['user.changePassword']['submit'],
],
// change role
'account.changeRole' => [
...$dialogs['user.changeRole'],
'pattern' => '(account)/changeRole',
'load' => $dialogs['user.changeRole']['load'],
'submit' => $dialogs['user.changeRole']['submit'],
],
// delete
'account.delete' => [
...$dialogs['user.delete'],
'pattern' => '(account)/delete',
'load' => $dialogs['user.delete']['load'],
'submit' => $dialogs['user.delete']['submit'],
],
// account fields dialogs
'account.fields' => [
'pattern' => '(account)/files/(:any)/fields/(:any)/(:all?)',
'load' => $dialogs['user.fields']['load'],
'submit' => $dialogs['user.fields']['submit']
...$dialogs['user.fields'],
'pattern' => '(account)/fields/(:any)/(:all?)',
],
// change file name
'account.file.changeName' => [
...$dialogs['user.file.changeName'],
'pattern' => '(account)/files/(:any)/changeName',
'load' => $dialogs['user.file.changeName']['load'],
'submit' => $dialogs['user.file.changeName']['submit'],
],
// change file sort
'account.file.changeSort' => [
...$dialogs['user.file.changeSort'],
'pattern' => '(account)/files/(:any)/changeSort',
'load' => $dialogs['user.file.changeSort']['load'],
'submit' => $dialogs['user.file.changeSort']['submit'],
],
// change file template
'account.file.changeTemplate' => [
...$dialogs['user.file.changeTemplate'],
'pattern' => '(account)/files/(:any)/changeTemplate',
'load' => $dialogs['user.file.changeTemplate']['load'],
'submit' => $dialogs['user.file.changeTemplate']['submit'],
],
// delete
'account.file.delete' => [
...$dialogs['user.file.delete'],
'pattern' => '(account)/files/(:any)/delete',
'load' => $dialogs['user.file.delete']['load'],
'submit' => $dialogs['user.file.delete']['submit'],
],
// account file fields dialogs
'account.file.fields' => [
...$dialogs['user.file.fields'],
'pattern' => '(account)/files/(:any)/fields/(:any)/(:all?)',
'load' => $dialogs['user.file.fields']['load'],
'submit' => $dialogs['user.file.fields']['submit']
],
// account enable TOTP
'account.totp.enable' => [
'pattern' => '(account)/totp/enable',
'load' => fn () => (new UserTotpEnableDialog())->load(),
'submit' => fn () => (new UserTotpEnableDialog())->submit()
],
// account disable TOTP
'account.totp.disable' => [
'pattern' => '(account)/totp/disable',
'load' => $dialogs['user.totp.disable']['load'],
'submit' => $dialogs['user.totp.disable']['submit']
...$dialogs['user.totp.disable'],
],
];

View file

@ -3,17 +3,12 @@
$drawers = require __DIR__ . '/../users/drawers.php';
return [
// account fields drawers
'account.fields' => [
'pattern' => '(account)/files/(:any)/fields/(:any)/(:all?)',
'load' => $drawers['user.fields']['load'],
'submit' => $drawers['user.fields']['submit']
...$drawers['user.fields'],
'pattern' => '(account)/fields/(:any)/(:all?)',
],
// account file fields drawers
'account.file.fields' => [
...$drawers['user.file.fields'],
'pattern' => '(account)/files/(:any)/fields/(:any)/(:all?)',
'load' => $drawers['user.file.fields']['load'],
'submit' => $drawers['user.file.fields']['submit']
],
];

View file

@ -4,19 +4,19 @@ $dropdowns = require __DIR__ . '/../users/dropdowns.php';
return [
'account' => [
...$dropdowns['user'],
'pattern' => '(account)',
'options' => $dropdowns['user']['options']
],
'account.languages' => [
...$dropdowns['user.languages'],
'pattern' => '(account)/languages',
'options' => $dropdowns['user.languages']['options']
],
'account.file' => [
...$dropdowns['user.file'],
'pattern' => '(account)/files/(:any)',
'options' => $dropdowns['user.file']['options']
],
'account.file.languages' => [
...$dropdowns['user.file.languages'],
'pattern' => '(account)/files/(:any)/languages',
'options' => $files['language']
]
];

View file

@ -16,12 +16,14 @@ return [
];
}
$doc = Doc::factory($component);
return [
'component' => 'k-lab-docs-drawer',
'props' => [
'icon' => 'book',
'title' => $component,
'docs' => Doc::factory($component)->toArray()
'docs' => $doc->toArray()
]
];
},

View file

@ -20,8 +20,6 @@ $fields = require __DIR__ . '/../fields/dialogs.php';
$files = require __DIR__ . '/../files/dialogs.php';
return [
// change page position
'page.changeSort' => [
'pattern' => 'pages/(:any)/changeSort',
'load' => function (string $id) {
@ -61,7 +59,6 @@ return [
}
],
// change page status
'page.changeStatus' => [
'pattern' => 'pages/(:any)/changeStatus',
'load' => function (string $id) {
@ -140,7 +137,6 @@ return [
}
],
// change template
'page.changeTemplate' => [
'pattern' => 'pages/(:any)/changeTemplate',
'load' => function (string $id) {
@ -187,7 +183,6 @@ return [
}
],
// change title
'page.changeTitle' => [
'pattern' => 'pages/(:any)/changeTitle',
'load' => function (string $id) {
@ -282,7 +277,6 @@ return [
}
],
// create a new page
'page.create' => [
'pattern' => 'pages/create',
'load' => function () {
@ -293,6 +287,7 @@ return [
slug: $request->get('slug'),
template: $request->get('template'),
title: $request->get('title'),
uuid: $request->get('uuid'),
viewId: $request->get('view'),
);
@ -306,6 +301,7 @@ return [
slug: $request->get('slug'),
template: $request->get('template'),
title: $request->get('title'),
uuid: $request->get('uuid'),
viewId: $request->get('view'),
);
@ -313,7 +309,6 @@ return [
}
],
// delete page
'page.delete' => [
'pattern' => 'pages/(:any)/delete',
'load' => function (string $id) {
@ -385,7 +380,6 @@ return [
}
],
// duplicate page
'page.duplicate' => [
'pattern' => 'pages/(:any)/duplicate',
'load' => function (string $id) {
@ -474,49 +468,31 @@ return [
}
],
// page field dialogs
'page.fields' => [
'pattern' => '(pages/.*?)/fields/(:any)/(:all?)',
'load' => $fields['model']['load'],
'submit' => $fields['model']['submit']
...$fields['model'],
'pattern' => '(pages/[^/]+)/fields/(:any)/(:all?)',
],
// change filename
'page.file.changeName' => [
'pattern' => '(pages/.*?)/files/(:any)/changeName',
'load' => $files['changeName']['load'],
'submit' => $files['changeName']['submit'],
...$files['changeName'],
'pattern' => '(pages/[^/]+)/files/(:any)/changeName',
],
// change sort
'page.file.changeSort' => [
'pattern' => '(pages/.*?)/files/(:any)/changeSort',
'load' => $files['changeSort']['load'],
'submit' => $files['changeSort']['submit'],
...$files['changeSort'],
'pattern' => '(pages/[^/]+)/files/(:any)/changeSort',
],
// change template
'page.file.changeTemplate' => [
'pattern' => '(pages/.*?)/files/(:any)/changeTemplate',
'load' => $files['changeTemplate']['load'],
'submit' => $files['changeTemplate']['submit'],
...$files['changeTemplate'],
'pattern' => '(pages/[^/]+)/files/(:any)/changeTemplate',
],
// delete
'page.file.delete' => [
'pattern' => '(pages/.*?)/files/(:any)/delete',
'load' => $files['delete']['load'],
'submit' => $files['delete']['submit'],
...$files['delete'],
'pattern' => '(pages/[^/]+)/files/(:any)/delete',
],
// page file field dialogs
'page.file.fields' => [
'pattern' => '(pages/.*?)/files/(:any)/fields/(:any)/(:all?)',
'load' => $fields['file']['load'],
'submit' => $fields['file']['submit'],
...$fields['file'],
'pattern' => '(pages/[^/]+)/files/(:any)/fields/(:any)/(:all?)',
],
// move page
'page.move' => [
'pattern' => 'pages/(:any)/move',
'load' => function (string $id) {
@ -553,7 +529,6 @@ return [
}
],
// change site title
'site.changeTitle' => [
'pattern' => 'site/changeTitle',
'load' => function () {
@ -583,49 +558,31 @@ return [
}
],
// site field dialogs
'site.fields' => [
...$fields['model'],
'pattern' => '(site)/fields/(:any)/(:all?)',
'load' => $fields['model']['load'],
'submit' => $fields['model']['submit'],
],
// change filename
'site.file.changeName' => [
...$files['changeName'],
'pattern' => '(site)/files/(:any)/changeName',
'load' => $files['changeName']['load'],
'submit' => $files['changeName']['submit'],
],
// change sort
'site.file.changeSort' => [
...$files['changeSort'],
'pattern' => '(site)/files/(:any)/changeSort',
'load' => $files['changeSort']['load'],
'submit' => $files['changeSort']['submit'],
],
// change template
'site.file.changeTemplate' => [
...$files['changeTemplate'],
'pattern' => '(site)/files/(:any)/changeTemplate',
'load' => $files['changeTemplate']['load'],
'submit' => $files['changeTemplate']['submit'],
],
// delete
'site.file.delete' => [
...$files['delete'],
'pattern' => '(site)/files/(:any)/delete',
'load' => $files['delete']['load'],
'submit' => $files['delete']['submit'],
],
// site file field dialogs
'site.file.fields' => [
...$fields['file'],
'pattern' => '(site)/files/(:any)/fields/(:any)/(:all?)',
'load' => $fields['file']['load'],
'submit' => $fields['file']['submit'],
],
// content changes
'changes' => [
'pattern' => 'changes',
'load' => function () {

View file

@ -3,31 +3,20 @@
$fields = require __DIR__ . '/../fields/drawers.php';
return [
// page field drawers
'page.fields' => [
'pattern' => '(pages/.*?)/fields/(:any)/(:all?)',
'load' => $fields['model']['load'],
'submit' => $fields['model']['submit']
...$fields['model'],
'pattern' => '(pages/[^/]+)/fields/(:any)/(:all?)',
],
// page file field drawers
'page.file.fields' => [
'pattern' => '(pages/.*?)/files/(:any)/fields/(:any)/(:all?)',
'load' => $fields['file']['load'],
'submit' => $fields['file']['submit'],
...$fields['file'],
'pattern' => '(pages/[^/]+)/files/(:any)/fields/(:any)/(:all?)',
],
// site field drawers
'site.fields' => [
...$fields['model'],
'pattern' => '(site)/fields/(:any)/(:all?)',
'load' => $fields['model']['load'],
'submit' => $fields['model']['submit'],
],
// site file field drawers
'site.file.fields' => [
...$fields['file'],
'pattern' => '(site)/files/(:any)/fields/(:any)/(:all?)',
'load' => $fields['file']['load'],
'submit' => $fields['file']['submit'],
],
];

View file

@ -21,11 +21,11 @@ return [
}
],
'page.file' => [
'pattern' => '(pages/.*?)/files/(:any)',
'pattern' => '(pages/[^/]+)/files/(:any)',
'options' => $files['file']
],
'page.file.languages' => [
'pattern' => '(pages/.*?)/files/(:any)/languages',
'pattern' => '(pages/[^/]+)/files/(:any)/languages',
'options' => $files['language']
],
'site.languages' => [

View file

@ -57,6 +57,28 @@ return [
// @codeCoverageIgnoreEnd
}
],
'license/remove' => [
'load' => function () {
return [
'component' => 'k-remove-dialog',
'props' => [
'text' => I18n::translate('license.remove.text'),
'size' => 'medium',
'submitButton' => [
'icon' => 'trash',
'text' => I18n::translate('remove'),
'theme' => 'negative',
],
]
];
},
'submit' => function () {
// @codeCoverageIgnoreStart
App::instance()->system()->license()->delete();
return true;
// @codeCoverageIgnoreEnd
}
],
// license registration
'registration' => [
'load' => function () {

View file

@ -15,8 +15,6 @@ $fields = require __DIR__ . '/../fields/dialogs.php';
$files = require __DIR__ . '/../files/dialogs.php';
return [
// create
'user.create' => [
'pattern' => 'users/create',
'load' => function () {
@ -79,7 +77,6 @@ return [
}
],
// change email
'user.changeEmail' => [
'pattern' => 'users/(:any)/changeEmail',
'load' => function (string $id) {
@ -114,7 +111,6 @@ return [
}
],
// change language
'user.changeLanguage' => [
'pattern' => 'users/(:any)/changeLanguage',
'load' => function (string $id) {
@ -147,7 +143,6 @@ return [
}
],
// change name
'user.changeName' => [
'pattern' => 'users/(:any)/changeName',
'load' => function (string $id) {
@ -179,7 +174,6 @@ return [
}
],
// change password
'user.changePassword' => [
'pattern' => 'users/(:any)/changePassword',
'load' => function (string $id) {
@ -245,7 +239,6 @@ return [
}
],
// change role
'user.changeRole' => [
'pattern' => 'users/(:any)/changeRole',
'load' => function (string $id) {
@ -282,7 +275,6 @@ return [
}
],
// delete
'user.delete' => [
'pattern' => 'users/(:any)/delete',
'load' => function (string $id) {
@ -324,49 +316,36 @@ return [
}
],
// user field dialogs
'user.fields' => [
'pattern' => '(users/.*?)/fields/(:any)/(:all?)',
'load' => $fields['model']['load'],
'submit' => $fields['model']['submit']
...$fields['model'],
'pattern' => '(users/[^/]+)/fields/(:any)/(:all?)',
],
// change file name
'user.file.changeName' => [
'pattern' => '(users/.*?)/files/(:any)/changeName',
'load' => $files['changeName']['load'],
'submit' => $files['changeName']['submit'],
...$files['changeName'],
'pattern' => '(users/[^/]+)/files/(:any)/changeName',
],
// change file sort
'user.file.changeSort' => [
'pattern' => '(users/.*?)/files/(:any)/changeSort',
'load' => $files['changeSort']['load'],
'submit' => $files['changeSort']['submit'],
...$files['changeSort'],
'pattern' => '(users/[^/]+)/files/(:any)/changeSort',
],
// change file template
'user.file.changeTemplate' => [
'pattern' => '(users/.*?)/files/(:any)/changeTemplate',
'load' => $files['changeTemplate']['load'],
'submit' => $files['changeTemplate']['submit'],
...$files['changeTemplate'],
'pattern' => '(users/[^/]+)/files/(:any)/changeTemplate',
],
// delete file
'user.file.delete' => [
'pattern' => '(users/.*?)/files/(:any)/delete',
'load' => $files['delete']['load'],
'submit' => $files['delete']['submit'],
...$files['delete'],
'pattern' => '(users/[^/]+)/files/(:any)/delete',
],
// user file fields dialogs
'user.file.fields' => [
'pattern' => '(users/.*?)/files/(:any)/fields/(:any)/(:all?)',
'load' => $fields['file']['load'],
'submit' => $fields['file']['submit']
...$fields['file'],
'pattern' => '(users/[^/]+)/files/(:any)/fields/(:any)/(:all?)',
],
// user disable TOTP
'user.totp.disable' => [
'pattern' => 'users/(:any)/totp/disable',
'load' => fn (string $id) => (new UserTotpDisableDialog($id))->load(),

View file

@ -3,16 +3,12 @@
$fields = require __DIR__ . '/../fields/drawers.php';
return [
// user field drawers
'user.fields' => [
'pattern' => '(users/.*?)/fields/(:any)/(:all?)',
'load' => $fields['model']['load'],
'submit' => $fields['model']['submit']
...$fields['model'],
'pattern' => '(users/[^/]+)/fields/(:any)/(:all?)',
],
// user file fields drawers
'user.file.fields' => [
'pattern' => '(users/.*?)/files/(:any)/fields/(:any)/(:all?)',
'load' => $fields['file']['load'],
'submit' => $fields['file']['submit']
...$fields['file'],
'pattern' => '(users/[^/]+)/files/(:any)/fields/(:any)/(:all?)',
],
];

View file

@ -19,11 +19,11 @@ return [
}
],
'user.file' => [
'pattern' => '(users/.*?)/files/(:any)',
'pattern' => '(users/[^/]+)/files/(:any)',
'options' => $files['file']
],
'user.file.languages' => [
'pattern' => '(users/.*?)/files/(:any)/languages',
'pattern' => '(users/[^/]+)/files/(:any)/languages',
'options' => $files['language']
]
];

View file

@ -2,8 +2,9 @@
use Kirby\Cms\App;
use Kirby\Cms\Find;
use Kirby\Panel\Collector\UsersCollector;
use Kirby\Panel\Ui\Buttons\ViewButtons;
use Kirby\Toolkit\Escape;
use Kirby\Panel\Ui\Item\UserItem;
return [
'users' => [
@ -31,29 +32,17 @@ return [
},
'roles' => array_values($roles),
'users' => function () use ($kirby, $role) {
$users = $kirby->users();
$collector = new UsersCollector(
limit: 20,
page: $kirby->request()->get('page', 1),
role: $role,
sortBy: 'username asc',
);
if (empty($role) === false) {
$users = $users->role($role);
}
// sort users alphabetically
$users = $users->sortBy('username', 'asc');
// paginate
$users = $users->paginate([
'limit' => 20,
'page' => $kirby->request()->get('page')
]);
$users = $collector->models(paginated: true);
return [
'data' => $users->values(fn ($user) => [
'id' => $user->id(),
'image' => $user->panel()->image(),
'info' => Escape::html($user->role()->title()),
'link' => $user->panel()->url(true),
'text' => Escape::html($user->username())
]),
'data' => $users->values(fn ($user) => (new UserItem(user: $user))->props()),
'pagination' => $users->pagination()->toArray()
];
},