123 lines
3.8 KiB
JavaScript
123 lines
3.8 KiB
JavaScript
import store from "../store";
|
|
import roles from "./roles";
|
|
|
|
function addNavItem(title, icon, route) {
|
|
store.state.navItems.push({
|
|
title,
|
|
icon,
|
|
route
|
|
});
|
|
}
|
|
|
|
/////////////////////////////////////
|
|
// Initialize the app
|
|
// on change of authentication status
|
|
export default function initialize() {
|
|
//clear the nav items either way
|
|
store.state.navItems = [];
|
|
if (store.state.authenticated) {
|
|
//put nav items into store
|
|
|
|
//Everyone has a home
|
|
addNavItem("Home", "home", "/");
|
|
|
|
if (
|
|
roles.hasRole(roles.AuthorizationRoles.TechLimited) ||
|
|
roles.hasRole(roles.AuthorizationRoles.TechFull) ||
|
|
roles.hasRole(roles.AuthorizationRoles.SubContractorLimited) ||
|
|
roles.hasRole(roles.AuthorizationRoles.SubContractorFull)
|
|
) {
|
|
addNavItem("Service", "toolbox", "/service");
|
|
}
|
|
|
|
if (
|
|
roles.hasRole(roles.AuthorizationRoles.OpsAdminFull) ||
|
|
roles.hasRole(roles.AuthorizationRoles.OpsAdminLimited)
|
|
) {
|
|
addNavItem("Operations", "cogs", "ops");
|
|
}
|
|
|
|
//Everyone can see about and logout
|
|
addNavItem("About", "info-circle", "/about");
|
|
addNavItem("Log out", "sign-out-alt", "/login");
|
|
}
|
|
}
|
|
/*
|
|
<v-list-tile to="/">
|
|
<v-list-tile-action>
|
|
<v-icon>fa-home</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title>Home</v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</v-list-tile>
|
|
<v-list-tile to="/service">
|
|
<v-list-tile-action>
|
|
<v-icon>fa-toolbox</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title>Service</v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</v-list-tile>
|
|
<v-list-tile to="/dispatch">
|
|
<v-list-tile-action>
|
|
<v-icon>fa-shipping-fast</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title>Dispatch</v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</v-list-tile>
|
|
<v-list-tile to="/inventory">
|
|
<v-list-tile-action>
|
|
<v-icon>fa-dolly</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title>Inventory</v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</v-list-tile>
|
|
<v-list-tile to="/accounting">
|
|
<v-list-tile-action>
|
|
<v-icon>fa-file-invoice-dollar</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title>Accounting</v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</v-list-tile>
|
|
<v-list-tile to="/admin">
|
|
<v-list-tile-action>
|
|
<v-icon>fa-user-tie</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title>Administration</v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</v-list-tile>
|
|
<v-list-tile to="/ops">
|
|
<v-list-tile-action>
|
|
<v-icon>fa-cogs</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title>Operations</v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</v-list-tile>
|
|
<v-list-tile to="/about">
|
|
<v-list-tile-action>
|
|
<v-icon>fa-info-circle</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title>About</v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</v-list-tile>
|
|
<v-list-tile
|
|
v-if="this.$store.state.authenticated"
|
|
to="/login"
|
|
v-on:click.native="logout()"
|
|
>
|
|
<v-list-tile-action>
|
|
<v-icon>fa-sign-out-alt</v-icon>
|
|
</v-list-tile-action>
|
|
<v-list-tile-content>
|
|
<v-list-tile-title>Log off</v-list-tile-title>
|
|
</v-list-tile-content>
|
|
</v-list-tile>
|
|
*/
|