Add 'Mail' tab

Used to display and manage mail.
This commit is contained in:
rottencandy 2019-07-28 19:48:13 +05:30
parent 99ca635f40
commit e2174b2148
4 changed files with 82 additions and 0 deletions

View File

@ -0,0 +1,22 @@
const m = require('mithril');
const rs = require('rswebui');
const util = require('mail_util');
const Layout = () => {
return {
view: (vnode) => [
m('.widget', m('table', [
m('thead', m('tr', [
m('th'),
])),
m('tbody', [
m('tr')
]),
])),
]
};
};
module.exports = Layout;

View File

@ -0,0 +1,14 @@
const m = require('mithril');
const rs = require('rswebui');
const Layout = () => {
return {
view: (vnode) => [
m('.widget'),
]
};
};
module.exports = Layout;

View File

@ -0,0 +1,42 @@
let m = require('mithril');
let rs = require('rswebui');
let sections = {
inbox: require('mail_inbox'),
outbox: require('mail_outbox'),
};
const sidebar = () => {
let active = 0;
const tabs = Object.keys(sections);
return {
view: () => m('.sidebar',
tabs.map((panelName, index) => m('a', {
href: '/mail/' + panelName,
oncreate: m.route.link,
class: index === active ?
'selected-sidebar-link' : '',
onclick: function() {
active = index;
},
},
panelName)),
),
};
};
const Layout = {
view: vnode => m('.tab-page', [
m(sidebar),
m('.node-panel', vnode.children),
])
};
module.exports = {
view: (vnode) => {
const tab = vnode.attrs.section;
return m(Layout, m(sections[tab]));
},
};

View File

@ -0,0 +1,4 @@
const m = require('mithril');
const rs = require('rswebui');
module.exports = {};