migrate missing JS renderers

This commit is contained in:
2020-07-06 13:08:51 +02:00
parent 94d9200865
commit bcc22eb58c
3 changed files with 122 additions and 4 deletions
+59 -2
View File
@@ -1,4 +1,11 @@
<template>
<ui-form ref="form" class="user" v-slot="form" @submit="onSubmit" @load="onLoad" :route="route">
<ui-form-header v-model="model" title="@user.name" :disabled="disabled" :is-create="!id" :state="form.state" :can-delete="meta.canDelete" @delete="onDelete" />
<ui-editor config="user" v-model="model" :meta="meta" :active-toggle="false" />
</ui-form>
</template>
<!--<template>
<ui-form ref="form" class="user" v-slot="form" @submit="onSubmit" @load="onLoad">
<ui-header-bar :title="model.name" title-empty="@user.name" :back-button="true">
@@ -75,10 +82,60 @@
</ui-tabs>
</ui-form>
</template>
</template>-->
<script>
import { filter as _filter } from 'underscore';
import UsersApi from 'zero/resources/users';
import UiEditor from 'zero/editor/editor';
export default {
props: ['id'],
components: { UiEditor },
data: () => ({
meta: {},
model: {
avatarId: null,
name: null,
email: null,
supportedCultures: []
},
route: zero.alias.sections.settings + '-' + zero.alias.settings.users + '-edit',
disabled: false
}),
methods: {
onLoad(form)
{
form.load(!this.id ? UsersApi.getEmpty() : UsersApi.getById(this.id)).then(response =>
{
this.disabled = !response.meta.canEdit;
this.meta = response.meta;
this.model = response;
});
},
onSubmit(form)
{
form.handle(UsersApi.save(this.model));
},
onDelete(item, opts)
{
opts.hide();
this.$refs.form.onDelete(UsersApi.delete.bind(this, this.id));
}
}
}
</script>
<!--<script>
import UsersApi from 'zero/resources/users';
import Strings from 'zero/services/strings';
import AuthApi from 'zero/services/auth'
@@ -258,4 +315,4 @@
{
margin-bottom: 0;
}
</style>
</style>-->
+60
View File
@@ -0,0 +1,60 @@
import { filter as _filter } from 'underscore';
export default {
alias: 'user',
tabs: [
{
name: 'general',
label: '@ui.tab_general'
},
{
name: 'permissions',
label: '@user.tab_permissions',
count: x =>
{
return _filter(x.claims || [], claim =>
{
const value = claim.value.split(':')[1];
return value !== 'none' && value !== 'false' && !!value;
}).length;
}
}
],
labelTemplate(field)
{
return "@user.fields." + field;
},
descriptionTemplate(field)
{
return "@user.fields." + field + "_text";
},
fields: [
{
field: 'name',
display: 'text',
label: '@ui.name',
required: true
},
{
field: 'email',
display: 'text',
required: true
},
{
field: 'avatarId',
display: 'media',
type: 'image'
},
{
tab: 'permissions',
field: 'claims',
display: 'custom',
hideLabel: true,
path: '@zero/components/permissions.vue'
}
]
};
@@ -198,13 +198,14 @@
"users": "Users",
"count_permissions": "{count} permissions",
"one_permission": "1 permission",
"tab_permissions": "Permissions",
"fields": {
"name_placeholder": "Enter your real name or a username",
"email": "Email",
"email_text": "Also used as login username",
"email_placeholder": "Enter your email address",
"avatar": "Avatar",
"avatar_text": "Upload a user image",
"avatarId": "Avatar",
"avatarId_text": "Upload a user image",
"language": "Language",
"language_text": "Set the backoffice language for this user",
"roles": "Roles",