Files
myapp-full/myapp/templates/public/domains/user/user.js

77 lines
2.7 KiB
JavaScript
Raw Normal View History

2023-02-18 09:22:43 +03:00
function User() {
let data = {
user: null,
panels: {
standart: {
visible: false
},
},
};
function breadcrumbs_render() {
let result = m('ul', {class: 'breadcrumb mt-3'}, [
m('li', {class: 'breadcrumb-item'}, m(m.route.Link, {href: '/'}, m('i', {class: 'fa fa-home'}))),
m('li', {class: 'breadcrumb-item'}, m(m.route.Link, {href: '/users'}, 'Список пользователей')),
m('li', {class: 'breadcrumb-item active'}, m.trust(data.user.name)),
]);
return result;
};
function user_get(id) {
m.request({
url: '/api',
method: "POST",
body: {
"jsonrpc": "2.0",
"method": 'user',
"params": {
"id": id,
"fields": ["id", "name", "created", "disabled"]
},
"id": 1
}
}).then(
function(response) {
if ('result' in response) {
data.user = response['result'];
document.title = `${data.user.title} - ${SETTINGS.TITLE}`;
}
}
);
};
return {
oninit: function(vnode) {
console.log('User.oninit');
user_get(vnode.attrs.id);
},
onupdate: function(vnode) {
console.log('User.onupdate');
if (data.user!=null) {
if (data.user.id.toString()!==vnode.attrs.id) {
user_get(vnode.attrs.id);
}
}
},
view: function(vnode) {
console.log('User.view');
let result = [];
if (data.user!=null) {
result.push(
breadcrumbs_render(),
m('div', {class: 'row'},
m('div', {class: 'col h1 py-1'}, [
m('div', {class: "btn-group btn-group-lg me-2"}, [
m(m.route.Link, {class: "btn btn-outline-secondary", href: "/users", title: "Список пользователей"}, m('i', {class: 'fa fa-chevron-left'})),
m('button', {class: 'btn btn-outline-secondary', title: 'Инструменты', onclick: function() {panel_show(data.panels.standart)}}, m('i', {class: 'fa fa-cog'})),
]),
m.trust(data.user.name),
])
),
m('hr'),
2024-03-03 20:56:09 +03:00
m.trust(data.user.body),
breadcrumbs_render(),
2023-02-18 09:22:43 +03:00
);
};
return result
}
}
};