23 lines
818 B
JavaScript
23 lines
818 B
JavaScript
|
|
import Editor from 'zero/core/editor.ts';
|
|
import Permissions from 'zero/components/permissions.vue';
|
|
|
|
const editor = new Editor('user', '@user.fields.');
|
|
editor.options.coreDatabase = true;
|
|
|
|
const permissionsCount = x => (x.claims || []).filter(claim =>
|
|
{
|
|
const value = claim.value.split(':')[1];
|
|
return value !== 'none' && value !== 'false' && !!value;
|
|
}).length;
|
|
|
|
const general = editor.tab('general', '@ui.tab_general');
|
|
const permissions = editor.tab('permissions', '@user.tab_permissions', permissionsCount);
|
|
|
|
general.field('name', { label: '@ui.name' }).text(80).required();
|
|
general.field('email').text(120).required();
|
|
general.field('languageId').culturePicker().required();
|
|
general.field('avatarId').image();
|
|
permissions.field('claims', { hideLabel: true }).custom(Permissions);
|
|
|
|
export default editor; |