23 lines
797 B
JavaScript
23 lines
797 B
JavaScript
|
|
import Editor from 'zero/core/editor.ts';
|
|
import Permissions from 'zero/components/permissions.vue';
|
|
|
|
const editor = new Editor('userRole', '@role.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', '@role.tab_permissions', permissionsCount);
|
|
|
|
general.field('name', { label: '@ui.name' }).text(60).required();
|
|
general.field('description').text(120);
|
|
general.field('icon').iconPicker();
|
|
general.field('avatarId').image();
|
|
permissions.field('claims', { hideLabel: true }).custom(Permissions);
|
|
|
|
export default editor; |