diff --git a/webui-src/app/forums/forums.css b/webui-src/app/forums/forums.css new file mode 100644 index 0000000..0ad67e1 --- /dev/null +++ b/webui-src/app/forums/forums.css @@ -0,0 +1,6 @@ +.forums-node-panel { + position: relative; + /* bottom: 650px; */ + margin-left: 200px; + animation: fadein 0.5s; + } \ No newline at end of file diff --git a/webui-src/app/forums/forums.js b/webui-src/app/forums/forums.js new file mode 100644 index 0000000..e6bac5b --- /dev/null +++ b/webui-src/app/forums/forums.js @@ -0,0 +1,27 @@ +const m = require('mithril'); +const widget = require('widgets'); + +const sections = { + MyForums: require('forums/my_forums'), + SubscribedForums: require('forums/subscribed_forums'), + PopularForums: require('forums/popular_forums'), + OtherForums: require('forums/other_forums') +} + +const Layout = { + view: (vnode) => + m('.tab-page', [ + m(widget.Sidebar, { + tabs: Object.keys(sections), + baseRoute: '/forums/', + }), + m('.forums-node-panel', vnode.children), + ]), +}; + +module.exports = { + view: (vnode) => { + const tab = vnode.attrs.tab; + return m(Layout, m(sections[tab])); + }, +}; diff --git a/webui-src/app/forums/my_forums.js b/webui-src/app/forums/my_forums.js new file mode 100644 index 0000000..697fd92 --- /dev/null +++ b/webui-src/app/forums/my_forums.js @@ -0,0 +1,11 @@ +const m = require('mithril'); + +const Layout = () => { + return{ + view: () => [ + m('.widget',[m('h2', 'My Forums'),m('hr'),]) + ] + }; +}; + +module.exports = Layout(); \ No newline at end of file diff --git a/webui-src/app/forums/other_forums.js b/webui-src/app/forums/other_forums.js new file mode 100644 index 0000000..cdb9c7e --- /dev/null +++ b/webui-src/app/forums/other_forums.js @@ -0,0 +1,11 @@ +const m = require('mithril'); + +const Layout = () => { + return{ + view: () => [ + m('.widget',[m('h2', 'Other Forums'),m('hr'),]) + ] + }; +}; + +module.exports = Layout(); \ No newline at end of file diff --git a/webui-src/app/forums/popular_forums.js b/webui-src/app/forums/popular_forums.js new file mode 100644 index 0000000..0fcfcd1 --- /dev/null +++ b/webui-src/app/forums/popular_forums.js @@ -0,0 +1,11 @@ +const m = require('mithril'); + +const Layout = () => { + return{ + view: () => [ + m('.widget',[m('h2', 'Popular Forums'),m('hr'),]) + ] + }; +}; + +module.exports = Layout(); \ No newline at end of file diff --git a/webui-src/app/forums/subscribed_forums.js b/webui-src/app/forums/subscribed_forums.js new file mode 100644 index 0000000..8318898 --- /dev/null +++ b/webui-src/app/forums/subscribed_forums.js @@ -0,0 +1,11 @@ +const m = require('mithril'); + +const Layout = () => { + return{ + view: () => [ + m('.widget',[m('h2', 'Subscribed Forums'),m('hr'),]) + ] + }; +}; + +module.exports = Layout(); \ No newline at end of file diff --git a/webui-src/app/main.js b/webui-src/app/main.js index 4f302bf..546fb89 100644 --- a/webui-src/app/main.js +++ b/webui-src/app/main.js @@ -8,6 +8,7 @@ const chat = require('chat/chat'); const mail = require('mail/mail_resolver'); const files = require('files/files_resolver'); const channels = require('channels/channels'); +const forums = require('forums/forums'); const config = require('config/config_resolver'); const navIcon = { @@ -18,6 +19,7 @@ const navIcon = { mail: m('i.fas.fa-envelope.sidenav-icon'), files: m('i.fas.fa-folder-open.sidenav-icon'), channels: m('i.fas.fa-tv.sidenav-icon'), + forums: m('i.fas.fa-bullhorn.sidenav-icon'), config: m('i.fas.fa-cogs.sidenav-icon'), }; @@ -54,6 +56,7 @@ const Layout = () => { mail: '/mail/inbox', files: '/files/files', channels: '/channels/MyChannels', + forums: 'forums/MyForums', config: '/config/network', }, }), @@ -97,6 +100,9 @@ m.route(document.getElementById('main'), '/', { '/channels/:tab': { render: (v) => m(Layout, m(channels,v.attrs)), }, + '/forums/:tab': { + render: (v) => m(Layout, m(forums,v.attrs)), + }, '/config/:tab': { render: (v) => m(Layout, m(config, v.attrs)), },