Files
mixtape/zero.Backoffice.UI/dist/zero/user.js
T
2021-11-19 16:11:12 +01:00

92 lines
4.7 KiB
JavaScript

import {n as normalizeComponent, l as UsersApi} from "./index.js";
import "./vendor.js";
var render = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("ui-form", {ref: "form", staticClass: "user", attrs: {route: _vm.route}, on: {submit: _vm.onSubmit, load: _vm.onLoad}, scopedSlots: _vm._u([{key: "default", fn: function(form) {
return [_c("ui-form-header", {attrs: {prefix: "@user.users", title: "@user.name", disabled: _vm.disabled, "is-create": !_vm.$route.params.id, state: form.state, "can-delete": _vm.meta.canDelete}, on: {delete: _vm.onDelete}, scopedSlots: _vm._u([{key: "actions", fn: function() {
return [_vm.model.isActive ? _c("ui-dropdown-button", {attrs: {label: "@ui.disable", icon: "fth-minus-circle", disabled: _vm.disabled}, on: {click: _vm.onActiveChange}}) : _vm._e(), !_vm.model.isActive ? _c("ui-dropdown-button", {attrs: {label: "@ui.enable", icon: "fth-plus-circle", disabled: _vm.disabled}, on: {click: _vm.onActiveChange}}) : _vm._e(), _c("ui-dropdown-button", {attrs: {label: "@user.changePassword", icon: "fth-lock", disabled: _vm.disabled}})];
}, proxy: true}], null, true), model: {value: _vm.model, callback: function($$v) {
_vm.model = $$v;
}, expression: "model"}}), _c("ui-editor", {attrs: {config: "user", meta: _vm.meta, disabled: _vm.disabled}, scopedSlots: _vm._u([{key: "settings", fn: function() {
return [_c("ui-property", {staticClass: "is-toggle", attrs: {label: "@user.fields.isLockedOut", "is-text": true}}, [_c("ui-toggle", {attrs: {value: _vm.isLockedOut, negative: true, disabled: _vm.disabled}, on: {input: _vm.onLockoutChange}})], 1), _vm.isLockedOut ? _c("p", {staticClass: "ui-message type-error block user-aside-error"}, [_c("i", {staticClass: "ui-message-icon fth-alert-circle"}), _c("span", {staticClass: "ui-message-text"}, [_c("span", {directives: [{name: "localize", rawName: "v-localize:html", value: "@user.fields.isLockedOut_warning", expression: "'@user.fields.isLockedOut_warning'", arg: "html"}]}), _vm._v(":"), _c("br"), _c("strong", [_c("ui-date", {attrs: {format: "long"}, model: {value: _vm.model.lockoutEnd, callback: function($$v) {
_vm.$set(_vm.model, "lockoutEnd", $$v);
}, expression: "model.lockoutEnd"}})], 1)])]) : _vm._e(), !_vm.model.isActive ? _c("ui-message", {staticClass: "user-aside-error", attrs: {type: "error", text: "@user.fields.isDisabled_warning"}}) : _vm._e()];
}, proxy: true}, {key: "below", fn: function() {
return [_c("ui-editor-infos", {attrs: {disabled: _vm.disabled}, model: {value: _vm.model, callback: function($$v) {
_vm.model = $$v;
}, expression: "model"}})];
}, proxy: true}], null, true), model: {value: _vm.model, callback: function($$v) {
_vm.model = $$v;
}, expression: "model"}})];
}}])});
};
var staticRenderFns = [];
var user_vue_vue_type_style_index_0_lang = ".user-aside-error {\n margin-bottom: 0;\n}";
const script = {
data: () => ({
meta: {},
model: {
avatarId: null,
name: null,
email: null,
lockoutEnd: null
},
route: zero.alias.settings.users + "-edit",
disabled: false,
originalLockoutEnd: null
}),
computed: {
isLockedOut() {
return !!this.model.lockoutEnd;
}
},
methods: {
onLoad(form) {
form.load(!this.$route.params.id ? UsersApi.getEmpty() : UsersApi.getById(this.$route.params.id)).then((response) => {
this.disabled = !response.meta.canEdit;
this.meta = response.meta;
this.model = response.entity;
this.originalLockoutEnd = this.model.lockoutEnd;
});
},
onSubmit(form) {
form.handle(UsersApi.save(this.model)).then((res) => {
if (res.entity.id === AuthApi.user.id) {
AuthApi.setUser(res.entity);
}
});
},
onDelete(item, opts) {
opts.hide();
this.$refs.form.onDelete(UsersApi.delete.bind(this, this.$route.params.id));
},
onLockoutChange(locked) {
this.model.lockoutEnd = locked ? this.originalLockoutEnd : null;
},
onActiveChange(value, opts) {
opts.loading(true);
const isActive = !this.model.isActive;
let promise = isActive ? UsersApi.enable(this.model) : UsersApi.disable(this.model);
promise.then((response) => {
opts.loading(false);
opts.hide();
if (response.success) {
this.model.isActive = isActive;
}
});
}
}
};
const __cssModules = {};
var component = normalizeComponent(script, render, staticRenderFns, false, injectStyles, null, null, null);
function injectStyles(context) {
for (let o in __cssModules) {
this[o] = __cssModules[o];
}
}
component.options.__file = "app/pages/settings/user.vue";
var user = component.exports;
export default user;