This commit is contained in:
2022-01-25 20:12:54 +00:00
parent 213b84cbf3
commit 3fff9e456a
4 changed files with 149 additions and 121 deletions

View File

@@ -844,8 +844,8 @@ BUILD 8.0.0-beta.0.13 CHANGES OF NOTE
- This update requires a fresh database rebuild - This update requires a fresh database rebuild
- Replaced 5 report templates from FIVERPTSNEEDED_beta.0.12reporttemplates.zip email of 2022-01-21, 5:08 PM - Replaced 5 report templates from FIVERPTSNEEDED_beta.0.12reporttemplates.zip email of 2022-01-21, 5:08 PM
- Fixed issue with wo,quote,pm that prevented form customized Required fields from working - Fixed issue with wo,quote,pm that prevented form customized Required fields from working
- Fixed issue with wo and quote that sometimes would give a index out of range error when editing the header and saving. - Fixed issue with wo and quote that sometimes would give a index out of range error when editing the header and saving
- case 4087 fixed
- case 4092, 4094 fixed - case 4092, 4094 fixed
- case 4095 implemented - case 4095 implemented
- case 4096 updated docs - case 4096 updated docs
@@ -861,6 +861,7 @@ BUILD 8.0.0-beta.0.13 CHANGES OF NOTE
====================== Deck investigation log =================== ====================== Deck investigation log ===================
2022-01-25 08:32:41 sent email from gzmailadmin@gmail.com account to Meicorp (laurie@meicorproperty.com, cc: hillary@meicorproperty.com, jennifer@meicorproperty.com) 2022-01-25 08:32:41 sent email from gzmailadmin@gmail.com account to Meicorp (laurie@meicorproperty.com, cc: hillary@meicorproperty.com, jennifer@meicorproperty.com)

View File

@@ -66,7 +66,7 @@
<v-col <v-col
v-if=" v-if="
form().showMe(this, 'QuoteStatus') && form().showMe(this, 'QuoteQuoteStatusType') &&
!( !(
value.userIsSubContractorFull || value.userIsSubContractorFull ||
value.userIsSubContractorRestricted value.userIsSubContractorRestricted

View File

@@ -61,7 +61,7 @@
</v-col> </v-col>
<v-col <v-col
v-if=" v-if="
form().showMe(this, 'LastStatusId') && form().showMe(this, 'WorkOrderStatus') &&
!( !(
value.userIsSubContractorFull || value.userIsSubContractorFull ||
value.userIsSubContractorRestricted value.userIsSubContractorRestricted
@@ -80,6 +80,7 @@
data-cy="woState" data-cy="woState"
:all-states="pvm.selectLists.wostatus" :all-states="pvm.selectLists.wostatus"
:allowed-states="pvm.selectLists.allowedwostatus" :allowed-states="pvm.selectLists.allowedwostatus"
:error-messages="form().serverErrors(this, 'LastStatusId')"
/> />
</v-col> </v-col>

View File

@@ -1,57 +1,42 @@
<template> <template>
<div> <div>
<div class="mb-n2 ml-10"> <div>
<span class="text-caption">{{ $ay.t("WorkOrderStatus") }}</span> <div class="mb-n2 ml-10">
</div> <span class="text-caption">{{ $ay.t("WorkOrderStatus") }}</span>
<template>
<div
class="mb-6 mb-sm-0"
:data-cy="`${dataCy}:open`"
@click="openDialog = true"
>
<v-btn icon class="ml-n1 mr-2">
<v-icon>{{ openIcon() }}</v-icon>
</v-btn>
<span class="text-h6">{{ pvm.currentState.name }}</span>
<v-icon :color="pvm.currentState.color" class="ml-4">$ayiFlag</v-icon>
<v-icon v-if="pvm.currentState.locked" color="primary" class="ml-4"
>$ayiLock</v-icon
>
<v-icon v-if="pvm.currentState.completed" color="primary" class="ml-4"
>$ayiCheckCircle</v-icon
>
</div> </div>
</template> <template>
<v-row justify="center"> <div
<v-dialog v-model="openDialog" max-width="600px"> class="mb-6 mb-sm-0"
<v-card> :data-cy="`${dataCy}:open`"
<v-card-title> @click="openDialog = true"
<span class="text-h5">{{ $ay.t("WorkOrderStatus") }}</span> >
</v-card-title> <v-btn icon class="ml-n1 mr-2">
<v-card-text> <v-icon>{{ openIcon() }}</v-icon>
<template v-if="$vuetify.breakpoint.smAndUp"> </v-btn>
<!-- WIDE VIEW -->
<div v-for="item in stateDisplayList" :key="item.id"> <span class="text-h6">{{ pvm.currentState.name }}</span>
<span>{{ item.timeStamp }}</span> <v-icon :color="pvm.currentState.color" class="ml-4">$ayiFlag</v-icon>
<span class="ml-3">{{ item.user }}</span> <v-icon v-if="pvm.currentState.locked" color="primary" class="ml-4"
<span class="font-weight-bold ml-3">{{ item.name }}</span> >$ayiLock</v-icon
<v-icon small :color="item.color" class="ml-4">$ayiFlag</v-icon> >
<v-icon v-if="item.locked" small color="primary" class="ml-4" <v-icon v-if="pvm.currentState.completed" color="primary" class="ml-4"
>$ayiLock</v-icon >$ayiCheckCircle</v-icon
> >
<v-icon v-if="item.completed" small color="primary" class="ml-4" </div>
>$ayiCheckCircle</v-icon </template>
> <v-row justify="center">
</div> <v-dialog v-model="openDialog" max-width="600px">
</template> <v-card>
<template v-else> <v-card-title>
<!-- NARROW VIEW --> <span class="text-h5">{{ $ay.t("WorkOrderStatus") }}</span>
<div v-for="item in stateDisplayList" :key="item.id"> </v-card-title>
<span>{{ item.timeStamp }}&nbsp;</span> <v-card-text>
<span>{{ item.user }}</span> <template v-if="$vuetify.breakpoint.smAndUp">
<div class="mb-2"> <!-- WIDE VIEW -->
<span class="font-weight-bold">{{ item.name }}</span> <div v-for="item in stateDisplayList" :key="item.id">
<span>{{ item.timeStamp }}</span>
<span class="ml-3">{{ item.user }}</span>
<span class="font-weight-bold ml-3">{{ item.name }}</span>
<v-icon small :color="item.color" class="ml-4" <v-icon small :color="item.color" class="ml-4"
>$ayiFlag</v-icon >$ayiFlag</v-icon
> >
@@ -66,73 +51,105 @@
>$ayiCheckCircle</v-icon >$ayiCheckCircle</v-icon
> >
</div> </div>
</div> </template>
</template> <template v-else>
<template v-if="canAdd"> <!-- NARROW VIEW -->
<div class="mt-8"> <div v-for="item in stateDisplayList" :key="item.id">
<v-autocomplete <span>{{ item.timeStamp }}&nbsp;</span>
v-model="selectedStatus" <span>{{ item.user }}</span>
:items="pvm.selectLists.allowedwostatus" <div class="mb-2">
item-text="name" <span class="font-weight-bold">{{ item.name }}</span>
item-value="id" <v-icon small :color="item.color" class="ml-4"
dense >$ayiFlag</v-icon
:label="$ay.t('NewStatus')" >
prepend-icon="$ayiEdit" <v-icon
:data-cy="`${dataCy}:picker`" v-if="item.locked"
@click:prepend="handleEditStateClick()" small
> color="primary"
<template v-slot:item="data"> class="ml-4"
<v-list-item-avatar> >$ayiLock</v-icon
<v-icon :color="data.item.color">$ayiFlag</v-icon> >
</v-list-item-avatar> <v-icon
<v-list-item-content> v-if="item.completed"
<v-list-item-title small
><span class="text-subtitle-2">{{ color="primary"
data.item.name class="ml-4"
}}</span >$ayiCheckCircle</v-icon
><v-icon >
v-if="data.item.locked" </div>
small </div>
color="disabled" </template>
class="ml-2" <template v-if="canAdd">
>$ayiLock</v-icon <div class="mt-8">
<v-autocomplete
v-model="selectedStatus"
:items="pvm.selectLists.allowedwostatus"
item-text="name"
item-value="id"
dense
:label="$ay.t('NewStatus')"
prepend-icon="$ayiEdit"
:data-cy="`${dataCy}:picker`"
@click:prepend="handleEditStateClick()"
>
<template v-slot:item="data">
<v-list-item-avatar>
<v-icon :color="data.item.color">$ayiFlag</v-icon>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title
><span class="text-subtitle-2">{{
data.item.name
}}</span
><v-icon
v-if="data.item.locked"
small
color="disabled"
class="ml-2"
>$ayiLock</v-icon
>
<v-icon
v-if="data.item.completed"
color="disabled"
class="ml-1"
small
>$ayiCheckCircle</v-icon
></v-list-item-title
> >
<v-icon
v-if="data.item.completed"
color="disabled"
class="ml-1"
small
>$ayiCheckCircle</v-icon
></v-list-item-title
>
<v-list-item-subtitle> <v-list-item-subtitle>
{{ data.item.notes }}</v-list-item-subtitle {{ data.item.notes }}</v-list-item-subtitle
> >
</v-list-item-content> </v-list-item-content>
<v-list-item-action> </v-list-item-action> <v-list-item-action> </v-list-item-action>
</template> </template>
</v-autocomplete> </v-autocomplete>
</div> </div>
</template> </template>
</v-card-text> </v-card-text>
<v-card-actions> <v-card-actions>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-btn color="blue darken-1" text @click="cancelDialog()">{{ <v-btn color="blue darken-1" text @click="cancelDialog()">{{
$ay.t("Cancel") $ay.t("Cancel")
}}</v-btn> }}</v-btn>
<v-btn <v-btn
color="blue darken-1" color="blue darken-1"
:disabled="selectedStatus == null" :disabled="selectedStatus == null"
text text
:data-cy="`${dataCy}:btnok`" :data-cy="`${dataCy}:btnok`"
@click="save()" @click="save()"
>{{ $ay.t("OK") }}</v-btn >{{ $ay.t("OK") }}</v-btn
> >
</v-card-actions> </v-card-actions>
</v-card> </v-card>
</v-dialog> </v-dialog>
</v-row> </v-row>
<div class="v-messages theme--light error--text mt-6" role="alert">
<div class="v-messages__wrapper">
<div class="v-messages__message">{{ allErrors }}</div>
</div>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
@@ -157,7 +174,8 @@ export default {
dataCy: { type: String, default: null }, dataCy: { type: String, default: null },
formKey: { type: String, default: "" }, //used to grab template from store formKey: { type: String, default: "" }, //used to grab template from store
readonly: Boolean, readonly: Boolean,
disabled: Boolean disabled: Boolean,
errorMessages: { type: Array, default: null }
}, },
data() { data() {
return { return {
@@ -199,6 +217,14 @@ export default {
return true; return true;
} }
return false; return false;
},
allErrors: function() {
let ret = "";
if (this.errorMessages != null && this.errorMessages.length > 0) {
ret += this.errorMessages.toString();
}
return ret;
} }
}, },