From e2174b21481d93f0efd21bee944fc30c352df9aa Mon Sep 17 00:00:00 2001 From: rottencandy Date: Sun, 28 Jul 2019 19:48:13 +0530 Subject: [PATCH] Add 'Mail' tab Used to display and manage mail. --- webui-src/app/mail/mail_inbox.js | 22 +++++++++++++++ webui-src/app/mail/mail_outbox.js | 14 ++++++++++ webui-src/app/mail/mail_resolver.js | 42 +++++++++++++++++++++++++++++ webui-src/app/mail/mail_util.js | 4 +++ 4 files changed, 82 insertions(+) create mode 100644 webui-src/app/mail/mail_inbox.js create mode 100644 webui-src/app/mail/mail_outbox.js create mode 100644 webui-src/app/mail/mail_resolver.js create mode 100644 webui-src/app/mail/mail_util.js diff --git a/webui-src/app/mail/mail_inbox.js b/webui-src/app/mail/mail_inbox.js new file mode 100644 index 0000000..2418081 --- /dev/null +++ b/webui-src/app/mail/mail_inbox.js @@ -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; + diff --git a/webui-src/app/mail/mail_outbox.js b/webui-src/app/mail/mail_outbox.js new file mode 100644 index 0000000..b5fe8de --- /dev/null +++ b/webui-src/app/mail/mail_outbox.js @@ -0,0 +1,14 @@ +const m = require('mithril'); +const rs = require('rswebui'); + + +const Layout = () => { + return { + view: (vnode) => [ + m('.widget'), + ] + }; +}; + +module.exports = Layout; + diff --git a/webui-src/app/mail/mail_resolver.js b/webui-src/app/mail/mail_resolver.js new file mode 100644 index 0000000..03fdbc3 --- /dev/null +++ b/webui-src/app/mail/mail_resolver.js @@ -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])); + }, +}; + diff --git a/webui-src/app/mail/mail_util.js b/webui-src/app/mail/mail_util.js new file mode 100644 index 0000000..0a7da50 --- /dev/null +++ b/webui-src/app/mail/mail_util.js @@ -0,0 +1,4 @@ +const m = require('mithril'); +const rs = require('rswebui'); + +module.exports = {};