This commit is contained in:
2021-07-13 16:48:33 +00:00
parent c457a478f7
commit 3088c2fc6d
6 changed files with 42 additions and 17 deletions

View File

@@ -421,7 +421,8 @@ todo: many biz objects are not using new PUT methodology
CURRENTLY DOING:
Workorder modifications for restricted / low rights users
Subcontractor / tech limited modifications
- Remove all costs from workorder for parts unless have inventory-limited, inventory, bizadminfull or Accounting roles
not sent over wire / populated
not shown as fields in UI of workorder anywhere

View File

@@ -35,7 +35,7 @@ function initNavPanel() {
ServiceContractor = 5 */
//########## OUTSIDE USERS GROUP (CUSTOMER / HEADOFFICE) ###
if (window.$gz.store.state.isCustomerUser == true) {
if (window.$gz.store.state.getters.isCustomerUser == true) {
//clear sublevel array
sub = [];
@@ -55,7 +55,7 @@ function initNavPanel() {
CustomerHomePageSet = true;
}
if (window.$gz.store.state.notifyAvailable) {
if (window.$gz.store.state.getters.canSubscribeToNotifications) {
sub.push({
title: "NotifySubscriptionList",
icon: "$ayiBullhorn",
@@ -108,6 +108,38 @@ function initNavPanel() {
return;
}
//###### SUBCONTRACTORS ######
//console.log(window.$gz.store.state.getters.isSubContractorUser);
if (window.$gz.store.state.getters.isSubContractorUser == true) {
//clear sublevel array
sub = [];
//USER SETTINGS
sub.push({
title: "UserSettings",
icon: "$ayiUserCog",
route: "/home-user-settings",
key: key++
});
//SCHEDULE (personal)
sub.push({
title: "Schedule",
icon: "$ayiCalendarDay",
route: "/home-schedule",
key: key++
});
//** HOME (TOP)
addNavItem("Home", "$ayiHome", undefined, sub, key++, "home");
//set default home page
window.$gz.store.commit("setHomePage", "/home-schedule");
return;
}
//###### ALL INSIDE USERS FROM HERE DOWN ###############
//###### EXPIRED LICENSE GROUP
@@ -702,7 +734,7 @@ function initNavPanel() {
//as long as they are a normal User type and not a subcontractor type
if (
(licenseState == 1) &
(window.$gz.store.state.isSubContractorUser == false)
(window.$gz.store.state.getters.isSubContractorUser == false)
) {
addNavItem(
"Evaluate",

View File

@@ -26,7 +26,6 @@ export default new Vuex.Store({
apiToken: "-",
downloadToken: "-",
tfaEnabled: undefined,
notifyAvailable: true,
customerRights: {},
userId: 0,
userName: "NOT AUTHENTICATED",
@@ -65,6 +64,7 @@ export default new Vuex.Store({
return state.userType == 3 || state.userType == 4;
},
isSubContractorUser: state => {
console.log("Issubcontractoruser", state);
return state.userType == 5;
},
isScheduleableUser: state => {
@@ -107,13 +107,6 @@ export default new Vuex.Store({
state.tfaEnabled = data.tfaEnabled;
if (data.customerRights) {
state.customerRights = data.customerRights;
//only a customer user could have zero access to notifications
state.notifyAvailable =
data.customerRights.notifyServiceImminent == true ||
data.customerRights.notifyCSRAccepted == true ||
data.customerRights.notifyCSRRejected == true ||
data.customerRights.notifyWOCompleted == true ||
data.customerRights.notifyWOCreated == true;
}
},
logout(state) {
@@ -127,7 +120,6 @@ export default new Vuex.Store({
state.userName = "NOT AUTHENTICATED";
state.roles = 0;
state.userType = 0;
state.notifyAvailable = true;
state.homePage = undefined;
state.navItems = [];
state.translationText = {};

View File

@@ -380,7 +380,7 @@ function generateMenu(vm) {
vm: vm
});
menuOptions.menuItems.push({ divider: true, inset: false });
if (vm.$store.state.isScheduleableUser) {
if (vm.$store.state.getters.isScheduleableUser) {
menuOptions.menuItems.push({
title: "WorkOrderItemScheduledUserList",
icon: "$ayiUserClock",

View File

@@ -298,7 +298,7 @@ function generateMenu(vm) {
vm: vm
});
if (!window.$gz.store.state.isCustomerUser) {
if (!window.$gz.store.state.getters.isCustomerUser) {
menuOptions.menuItems.push({
title: "DirectNotification",
icon: "$ayiCommentAlt",

View File

@@ -431,7 +431,7 @@ export default {
}
},
showTags() {
if (!window.$gz.store.state.isCustomerUser) {
if (!window.$gz.store.state.getters.isCustomerUser) {
//customers NEVER see tags anywhere, that's private information and they do not use or require it
switch (this.obj.eventType) {
case 27: //General notification
@@ -774,7 +774,7 @@ async function populateSelectionLists(vm) {
//ensure the pick lists required are pre-fetched
await window.$gz.enums.fetchEnumList("NotifyEventType");
const tempEventTypes = window.$gz.enums.getSelectionList("NotifyEventType");
if (window.$gz.store.state.isCustomerUser) {
if (window.$gz.store.state.getters.isCustomerUser) {
vm.selectLists.eventTypes = tempEventTypes.filter(z => {
//return true if it's a type allowed by customer *and* they have customerRights to it