PMCORE-3923: Review Status filter added
Added translation files to commit Fixed observations Review Status Filter added to Custom Cases Fixed observations for translation files
This commit is contained in:
@@ -32,6 +32,14 @@
|
||||
>
|
||||
{{ $t("ID_BY_PROCESS_NAME") }}
|
||||
</b-form-checkbox>
|
||||
<b-form-checkbox
|
||||
id="checkbox-3"
|
||||
v-model="byReviewStatus"
|
||||
name="checkbox-3"
|
||||
value="reviewStatus"
|
||||
>
|
||||
{{ $t("ID_BY_REVIEW_STATUS") }}
|
||||
</b-form-checkbox>
|
||||
</b-form-group>
|
||||
</template>
|
||||
</SearchPopover>
|
||||
@@ -92,6 +100,7 @@ import CaseNumber from "./popovers/CaseNumber.vue";
|
||||
import CaseTitle from "./popovers/CaseTitle.vue";
|
||||
import ProcessName from "./popovers/ProcessName.vue";
|
||||
import ProcessCategory from "./popovers/ProcessCategory.vue";
|
||||
import ReviewStatus from "./popovers/ReviewStatus.vue";
|
||||
import DateFilter from "./popovers/DateFilter.vue";
|
||||
import TaskTitle from "./popovers/TaskTitle.vue";
|
||||
import CurrentUser from "./popovers/CurrentUser.vue";
|
||||
@@ -106,6 +115,7 @@ export default {
|
||||
CaseTitle,
|
||||
ProcessName,
|
||||
ProcessCategory,
|
||||
ReviewStatus,
|
||||
DateFilter,
|
||||
TaskTitle,
|
||||
CurrentUser,
|
||||
@@ -287,10 +297,50 @@ export default {
|
||||
return `${params.tagPrefix}: ${data[0].label || ""}`;
|
||||
},
|
||||
},
|
||||
reviewStatus: {
|
||||
type: "ReviewStatus",
|
||||
id: "reviewStatus",
|
||||
title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t(
|
||||
"ID_BY_REVIEW_STATUS"
|
||||
)}`,
|
||||
optionLabel: this.$i18n.t("ID_BY_REVIEW_STATUS"),
|
||||
detail: "",
|
||||
tagText: "",
|
||||
tagPrefix: this.$i18n.t("ID_SEARCH_BY_REVIEW_STATUS"),
|
||||
autoShow: true,
|
||||
items: [
|
||||
{
|
||||
id: "reviewStatus",
|
||||
value: "",
|
||||
options: [
|
||||
this.$i18n.t("ID_READ_FILTER_OPTION"),
|
||||
this.$i18n.t("ID_UNREAD_FILTER_OPTION")
|
||||
],
|
||||
}
|
||||
],
|
||||
makeTagText: function(params, data) {
|
||||
let label = "";
|
||||
switch (data[0].value) {
|
||||
case "READ":
|
||||
label = this.items[0].options[0];
|
||||
break;
|
||||
|
||||
case "UNREAD":
|
||||
label = this.items[0].options[1];
|
||||
break;
|
||||
|
||||
default:
|
||||
label = "";
|
||||
break;
|
||||
}
|
||||
return `${this.tagPrefix} ${label}`;
|
||||
},
|
||||
},
|
||||
selected: "",
|
||||
itemModel: {},
|
||||
byProcessName: "",
|
||||
byProcessCategory: "",
|
||||
byReviewStatus: "",
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -381,6 +431,23 @@ export default {
|
||||
]),
|
||||
];
|
||||
}
|
||||
if (self.byReviewStatus !== "") {
|
||||
if (element !== undefined) {
|
||||
this.reviewStatus.autoShow = false;
|
||||
} else {
|
||||
this.reviewStatus.autoShow = true;
|
||||
}
|
||||
initialFilters = [
|
||||
...new Set([
|
||||
...initialFilters,
|
||||
...this.prepareFilterItems(
|
||||
this.reviewStatus.items,
|
||||
self.byReviewStatus,
|
||||
true
|
||||
),
|
||||
]),
|
||||
];
|
||||
}
|
||||
this.$emit("onUpdateFilters", {
|
||||
params: initialFilters,
|
||||
refresh: false,
|
||||
@@ -455,6 +522,16 @@ export default {
|
||||
? self.processCategory.autoShow
|
||||
: true;
|
||||
}
|
||||
if (item.fieldId === "reviewStatus") {
|
||||
self.searchTags.push(self.reviewStatus.id);
|
||||
self.byReviewStatus = self.reviewStatus.id;
|
||||
self.itemModel[self.reviewStatus.id] =
|
||||
self.reviewStatus;
|
||||
self.itemModel[self.reviewStatus.id].autoShow =
|
||||
typeof self.reviewStatus.autoShow !== "undefined"
|
||||
? self.reviewStatus.autoShow
|
||||
: true;
|
||||
}
|
||||
});
|
||||
},
|
||||
dataToFilter(id) {
|
||||
@@ -512,6 +589,9 @@ export default {
|
||||
if (tag === "processCategory") {
|
||||
this.byProcessCategory = "";
|
||||
}
|
||||
if (tag === "reviewStatus") {
|
||||
this.byReviewStatus = "";
|
||||
}
|
||||
this.$emit("onUpdateFilters", { params: temp, refresh: true });
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -25,6 +25,14 @@
|
||||
name="checkbox-1"
|
||||
>
|
||||
</b-form-checkbox-group>
|
||||
<b-form-checkbox
|
||||
id="checkbox-review-status"
|
||||
v-model="byReviewStatus"
|
||||
name="checkbox-review"
|
||||
value="reviewStatus"
|
||||
>
|
||||
{{ $t("ID_BY_REVIEW_STATUS") }}
|
||||
</b-form-checkbox>
|
||||
</b-form-group>
|
||||
</template>
|
||||
</SearchPopover>
|
||||
@@ -84,6 +92,7 @@ import CaseNumber from "./popovers/CaseNumber.vue";
|
||||
import CaseTitle from "./popovers/CaseTitle.vue";
|
||||
import ProcessName from "./popovers/ProcessName.vue";
|
||||
import ProcessCategory from "./popovers/ProcessCategory.vue";
|
||||
import ReviewStatus from "./popovers/ReviewStatus.vue";
|
||||
import DateFilter from "./popovers/DateFilter.vue";
|
||||
import TaskTitle from "./popovers/TaskTitle.vue";
|
||||
import CurrentUser from "./popovers/CurrentUser.vue";
|
||||
@@ -100,6 +109,7 @@ export default {
|
||||
CaseTitle,
|
||||
ProcessName,
|
||||
ProcessCategory,
|
||||
ReviewStatus,
|
||||
DateFilter,
|
||||
TaskTitle,
|
||||
CurrentUser,
|
||||
@@ -117,9 +127,47 @@ export default {
|
||||
itemModel: {},
|
||||
byProcessName: "",
|
||||
byProcessCategory: "",
|
||||
byReviewStatus: "",
|
||||
criteriaItemsRadio: [],
|
||||
criteriaItemsCheckbox: [],
|
||||
showProcessName: true,
|
||||
reviewStatus: {
|
||||
type: "ReviewStatus",
|
||||
id: "reviewStatus",
|
||||
title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t("ID_BY_REVIEW_STATUS")}`,
|
||||
optionLabel: this.$i18n.t("ID_BY_REVIEW_STATUS"),
|
||||
detail: "",
|
||||
tagText: "",
|
||||
tagPrefix: this.$i18n.t("ID_SEARCH_BY_REVIEW_STATUS"),
|
||||
autoShow: true,
|
||||
items: [
|
||||
{
|
||||
id: "reviewStatus",
|
||||
value: "",
|
||||
options: [
|
||||
this.$i18n.t("ID_READ_FILTER_OPTION"),
|
||||
this.$i18n.t("ID_UNREAD_FILTER_OPTION")
|
||||
],
|
||||
}
|
||||
],
|
||||
makeTagText: function(params, data) {
|
||||
let label = "";
|
||||
switch (data[0].value) {
|
||||
case "READ":
|
||||
label = this.items[0].options[0];
|
||||
break;
|
||||
|
||||
case "UNREAD":
|
||||
label = this.items[0].options[1];
|
||||
break;
|
||||
|
||||
default:
|
||||
label = "";
|
||||
break;
|
||||
}
|
||||
return `${this.tagPrefix} ${label}`;
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted(){},
|
||||
@@ -193,6 +241,23 @@ export default {
|
||||
initialFilters =[...new Set([...initialFilters,...this.prepareFilterItems(element, item, true)])];
|
||||
}
|
||||
});
|
||||
if (self.byReviewStatus !== "") {
|
||||
if (element !== undefined) {
|
||||
this.reviewStatus.autoShow = false;
|
||||
} else {
|
||||
this.reviewStatus.autoShow = true;
|
||||
}
|
||||
initialFilters = [
|
||||
...new Set([
|
||||
...initialFilters,
|
||||
...this.prepareFilterItems(
|
||||
this.reviewStatus.items,
|
||||
self.byReviewStatus,
|
||||
true
|
||||
),
|
||||
]),
|
||||
];
|
||||
}
|
||||
this.$emit("onUpdateFilters", {
|
||||
params: initialFilters,
|
||||
refresh: false,
|
||||
@@ -209,7 +274,7 @@ export default {
|
||||
self = this,
|
||||
filter,
|
||||
item;
|
||||
_.forEach(element.items, function(value, key) {
|
||||
_.forEach(element.items || element, function(value, key) {
|
||||
filter = _.find(self.filters, function(o) {
|
||||
return o.filterVar === value.id;
|
||||
});
|
||||
@@ -251,6 +316,16 @@ export default {
|
||||
? item.autoShow
|
||||
: true;
|
||||
}
|
||||
if (item.fieldId === "reviewStatus") {
|
||||
self.searchTags.push(self.reviewStatus.id);
|
||||
self.byReviewStatus = self.reviewStatus.id;
|
||||
self.itemModel[self.reviewStatus.id] =
|
||||
self.reviewStatus;
|
||||
self.itemModel[self.reviewStatus.id].autoShow =
|
||||
typeof self.reviewStatus.autoShow !== "undefined"
|
||||
? self.reviewStatus.autoShow
|
||||
: true;
|
||||
}
|
||||
});
|
||||
},
|
||||
/**
|
||||
@@ -322,6 +397,9 @@ export default {
|
||||
this.byProcessName = "";
|
||||
this.selectedCheckbox = [];
|
||||
}
|
||||
if (tag === "reviewStatus") {
|
||||
this.byReviewStatus = "";
|
||||
}
|
||||
this.$emit("onUpdateFilters", { params: temp, refresh: true });
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
<template>
|
||||
<div>
|
||||
<SearchPopover
|
||||
:target="tag"
|
||||
@savePopover="onOk"
|
||||
:title="info.title"
|
||||
:autoShow="info.autoShow || false"
|
||||
>
|
||||
<template v-slot:body>
|
||||
<p>{{ info.detail }}</p>
|
||||
<form ref="form" @submit.stop.prevent="handleSubmit">
|
||||
<b-form-group
|
||||
label-for="name"
|
||||
:invalid-feedback="$t('ID_PROCESS_IS_REQUIRED')"
|
||||
>
|
||||
<b-form-radio-group
|
||||
v-model="selected"
|
||||
:options="readUnread"
|
||||
name="review-status-options"
|
||||
stacked
|
||||
></b-form-radio-group>
|
||||
</b-form-group>
|
||||
</form>
|
||||
</template>
|
||||
</SearchPopover>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SearchPopover from "./SearchPopover.vue";
|
||||
import Multiselect from "vue-multiselect";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
SearchPopover,
|
||||
Multiselect,
|
||||
},
|
||||
props: ["tag", "info", "filter"],
|
||||
data() {
|
||||
return {
|
||||
selected: "",
|
||||
readUnread: [
|
||||
{ text: this.$i18n.t("ID_READ_FILTER_OPTION"), value: 'READ' },
|
||||
{ text: this.$i18n.t("ID_UNREAD_FILTER_OPTION"), value: 'UNREAD' }
|
||||
]
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* On Ok event handler
|
||||
*/
|
||||
onOk() {
|
||||
this.handleSubmit();
|
||||
},
|
||||
/**
|
||||
* Form submit handler
|
||||
*/
|
||||
handleSubmit() {
|
||||
this.filter[0].value = this.selected;
|
||||
this.$emit("updateSearchTag", this.filter);
|
||||
this.$root.$emit("bv::hide::popover");
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style src="vue-multiselect/dist/vue-multiselect.min.css"></style>
|
||||
<style scoped></style>
|
||||
Reference in New Issue
Block a user