From cbf74c247e8dcb4a40a76d80bc2570511dbc9a8e Mon Sep 17 00:00:00 2001 From: lideming Date: Thu, 18 Feb 2021 01:59:07 +0800 Subject: [PATCH] Refactor: move duplicated nav code to `head_layout` --- src/views/controller_layout.pug | 29 +++++------------------------ src/views/head_layout.pug | 24 +++++++++++++++++++++++- src/views/login_layout.pug | 21 +++++---------------- src/views/users_layout.pug | 29 ++++++----------------------- 4 files changed, 39 insertions(+), 64 deletions(-) diff --git a/src/views/controller_layout.pug b/src/views/controller_layout.pug index a65a8f9..103392b 100644 --- a/src/views/controller_layout.pug +++ b/src/views/controller_layout.pug @@ -5,32 +5,13 @@ extends head_layout -mixin nav_item(name, displayName, href) - li(class=((navigate && navigate.active === name) ? 'active' : '')) - a(href=href) #{displayName} +block nav_items + +nav_item('controller_home', 'Home', '/controller') + +nav_item('users', 'Users', '/users') + +nav_item('networks', 'Networks', '/controller/networks') + +nav_item('add_network', 'Add network', '/controller/network/create') block body_content - nav.navbar.navbar-inverse.navbar-fixed-top - .container-fluid - .navbar-header - button.navbar-toggle(type='button' data-toggle='collapse' data-target='#BarNav') - span.icon-bar - span.icon-bar - span.icon-bar - a.navbar-brand(href='https://zt.yuuza.net' target='_blank') - | ZT.Yuuza - .collapse.navbar-collapse(id='BarNav') - ul.nav.navbar-nav - +nav_item('controller_home', 'Home', '/controller') - +nav_item('users', 'Users', '/users') - +nav_item('networks', 'Networks', '/controller/networks') - +nav_item('add_network', 'Add network', '/controller/network/create') - ul.nav.navbar-nav.navbar-right - li - a(href='/logout') - span.glyphicon.glyphicon-log-out - | Logout - .container(style='margin: 50px auto 20px') .row .col-sm-12 diff --git a/src/views/head_layout.pug b/src/views/head_layout.pug index 9d31117..9ed7b4b 100644 --- a/src/views/head_layout.pug +++ b/src/views/head_layout.pug @@ -3,6 +3,10 @@ Copyright (C) 2017-2018 Key Networks (https://key-networks.com) Licensed under GPLv3 - see LICENSE for details. +mixin nav_item(name, displayName, href) + li(class=((navigate && navigate.active === name) ? 'active' : '')) + a(href=href) #{displayName} + doctype html html(lang='en') head @@ -14,4 +18,22 @@ html(lang='en') script(src='/jqjs/jquery.min.js') script(src='/bsjs/bootstrap.min.js') body - block body_content \ No newline at end of file + nav.navbar.navbar-inverse.navbar-fixed-top + .container-fluid + .navbar-header + button.navbar-toggle(type='button' data-toggle='collapse' data-target='#BarNav') + span.icon-bar + span.icon-bar + span.icon-bar + a.navbar-brand(href='https://zt.yuuza.net' target='_blank') + | ZT.Yuuza + .collapse.navbar-collapse(id='BarNav') + ul.nav.navbar-nav + block nav_items + ul.nav.navbar-nav.navbar-right + li + block nav_login + a(href='/logout') + span.glyphicon.glyphicon-log-out + | Logout + block body_content diff --git a/src/views/login_layout.pug b/src/views/login_layout.pug index 39de561..b05e4dc 100644 --- a/src/views/login_layout.pug +++ b/src/views/login_layout.pug @@ -5,23 +5,12 @@ extends head_layout -block body_content - nav.navbar.navbar-inverse.navbar-fixed-top - .container-fluid - .navbar-header - button.navbar-toggle(type='button' data-toggle='collapse' data-target='#BarNav') - span.icon-bar - span.icon-bar - span.icon-bar - a.navbar-brand(href='https://zt.yuuza.net' target='_blank') - | ZT.Yuuza - .collapse.navbar-collapse(id='BarNav') - ul.nav.navbar-nav.navbar-right - li - a(href='/login') - span.glyphicon.glyphicon-log-in - | Login +block nav_login + a(href='/login') + span.glyphicon.glyphicon-log-in + | Login +block body_content .container(style='margin-top:50px') .row .col-sm-12 diff --git a/src/views/users_layout.pug b/src/views/users_layout.pug index 324d524..18e6503 100644 --- a/src/views/users_layout.pug +++ b/src/views/users_layout.pug @@ -5,30 +5,13 @@ extends head_layout -block body_content - nav.navbar.navbar-inverse.navbar-fixed-top - .container-fluid - .navbar-header - button.navbar-toggle(type='button' data-toggle='collapse' data-target='#BarNav') - span.icon-bar - span.icon-bar - span.icon-bar - a.navbar-brand(href='https://zt.yuuza.net' target='_blank') - | ZT.Yuuza - .collapse.navbar-collapse(id='BarNav') - ul.nav.navbar-nav - li(class=(navigate.active === 'home'? 'active' : '')) - a(href='/controller') Home - li(class=(navigate.active === 'users'? 'active' : '')) - a(href='/users') Users - li(class=(navigate.active === 'create_user'? 'active' : '')) - a(href='/users/create') Create user - ul.nav.navbar-nav.navbar-right - li - a(href='/logout') - span.glyphicon.glyphicon-log-out - | Logout +block nav_items + +nav_item('controller_home', 'Home', '/controller') + +nav_item('users', 'Users', '/users') + +nav_item('networks', 'Networks', '/controller/networks') + +nav_item('create_user', 'Create user', '/users/create') +block body_content .container(style='margin-top:50px') .row .col-sm-12