This commit is contained in:
@@ -844,8 +844,8 @@ BUILD 8.0.0-beta.0.13 CHANGES OF NOTE
|
||||
- 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
|
||||
- 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 4095 implemented
|
||||
- case 4096 updated docs
|
||||
@@ -861,6 +861,7 @@ BUILD 8.0.0-beta.0.13 CHANGES OF NOTE
|
||||
|
||||
|
||||
|
||||
|
||||
====================== 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)
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'QuoteStatus') &&
|
||||
form().showMe(this, 'QuoteQuoteStatusType') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
</v-col>
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'LastStatusId') &&
|
||||
form().showMe(this, 'WorkOrderStatus') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
@@ -80,6 +80,7 @@
|
||||
data-cy="woState"
|
||||
:all-states="pvm.selectLists.wostatus"
|
||||
:allowed-states="pvm.selectLists.allowedwostatus"
|
||||
:error-messages="form().serverErrors(this, 'LastStatusId')"
|
||||
/>
|
||||
</v-col>
|
||||
|
||||
|
||||
@@ -1,57 +1,42 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="mb-n2 ml-10">
|
||||
<span class="text-caption">{{ $ay.t("WorkOrderStatus") }}</span>
|
||||
</div>
|
||||
<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 class="mb-n2 ml-10">
|
||||
<span class="text-caption">{{ $ay.t("WorkOrderStatus") }}</span>
|
||||
</div>
|
||||
</template>
|
||||
<v-row justify="center">
|
||||
<v-dialog v-model="openDialog" max-width="600px">
|
||||
<v-card>
|
||||
<v-card-title>
|
||||
<span class="text-h5">{{ $ay.t("WorkOrderStatus") }}</span>
|
||||
</v-card-title>
|
||||
<v-card-text>
|
||||
<template v-if="$vuetify.breakpoint.smAndUp">
|
||||
<!-- WIDE VIEW -->
|
||||
<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">$ayiFlag</v-icon>
|
||||
<v-icon v-if="item.locked" small color="primary" class="ml-4"
|
||||
>$ayiLock</v-icon
|
||||
>
|
||||
<v-icon v-if="item.completed" small color="primary" class="ml-4"
|
||||
>$ayiCheckCircle</v-icon
|
||||
>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<!-- NARROW VIEW -->
|
||||
<div v-for="item in stateDisplayList" :key="item.id">
|
||||
<span>{{ item.timeStamp }} </span>
|
||||
<span>{{ item.user }}</span>
|
||||
<div class="mb-2">
|
||||
<span class="font-weight-bold">{{ item.name }}</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>
|
||||
</template>
|
||||
<v-row justify="center">
|
||||
<v-dialog v-model="openDialog" max-width="600px">
|
||||
<v-card>
|
||||
<v-card-title>
|
||||
<span class="text-h5">{{ $ay.t("WorkOrderStatus") }}</span>
|
||||
</v-card-title>
|
||||
<v-card-text>
|
||||
<template v-if="$vuetify.breakpoint.smAndUp">
|
||||
<!-- WIDE VIEW -->
|
||||
<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"
|
||||
>$ayiFlag</v-icon
|
||||
>
|
||||
@@ -66,73 +51,105 @@
|
||||
>$ayiCheckCircle</v-icon
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="canAdd">
|
||||
<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
|
||||
</template>
|
||||
<template v-else>
|
||||
<!-- NARROW VIEW -->
|
||||
<div v-for="item in stateDisplayList" :key="item.id">
|
||||
<span>{{ item.timeStamp }} </span>
|
||||
<span>{{ item.user }}</span>
|
||||
<div class="mb-2">
|
||||
<span class="font-weight-bold">{{ item.name }}</span>
|
||||
<v-icon small :color="item.color" class="ml-4"
|
||||
>$ayiFlag</v-icon
|
||||
>
|
||||
<v-icon
|
||||
v-if="item.locked"
|
||||
small
|
||||
color="primary"
|
||||
class="ml-4"
|
||||
>$ayiLock</v-icon
|
||||
>
|
||||
<v-icon
|
||||
v-if="item.completed"
|
||||
small
|
||||
color="primary"
|
||||
class="ml-4"
|
||||
>$ayiCheckCircle</v-icon
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="canAdd">
|
||||
<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>
|
||||
{{ data.item.notes }}</v-list-item-subtitle
|
||||
>
|
||||
</v-list-item-content>
|
||||
<v-list-item-action> </v-list-item-action>
|
||||
</template>
|
||||
</v-autocomplete>
|
||||
</div>
|
||||
</template>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="blue darken-1" text @click="cancelDialog()">{{
|
||||
$ay.t("Cancel")
|
||||
}}</v-btn>
|
||||
<v-btn
|
||||
color="blue darken-1"
|
||||
:disabled="selectedStatus == null"
|
||||
text
|
||||
:data-cy="`${dataCy}:btnok`"
|
||||
@click="save()"
|
||||
>{{ $ay.t("OK") }}</v-btn
|
||||
>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</v-row>
|
||||
<v-list-item-subtitle>
|
||||
{{ data.item.notes }}</v-list-item-subtitle
|
||||
>
|
||||
</v-list-item-content>
|
||||
<v-list-item-action> </v-list-item-action>
|
||||
</template>
|
||||
</v-autocomplete>
|
||||
</div>
|
||||
</template>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="blue darken-1" text @click="cancelDialog()">{{
|
||||
$ay.t("Cancel")
|
||||
}}</v-btn>
|
||||
<v-btn
|
||||
color="blue darken-1"
|
||||
:disabled="selectedStatus == null"
|
||||
text
|
||||
:data-cy="`${dataCy}:btnok`"
|
||||
@click="save()"
|
||||
>{{ $ay.t("OK") }}</v-btn
|
||||
>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</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>
|
||||
</template>
|
||||
<script>
|
||||
@@ -157,7 +174,8 @@ export default {
|
||||
dataCy: { type: String, default: null },
|
||||
formKey: { type: String, default: "" }, //used to grab template from store
|
||||
readonly: Boolean,
|
||||
disabled: Boolean
|
||||
disabled: Boolean,
|
||||
errorMessages: { type: Array, default: null }
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -199,6 +217,14 @@ export default {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
allErrors: function() {
|
||||
let ret = "";
|
||||
|
||||
if (this.errorMessages != null && this.errorMessages.length > 0) {
|
||||
ret += this.errorMessages.toString();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user