11<template >
22 <div class =" d-flex justify-content-center" >
33 <b-card class =" w-75" >
4-
54 <div class =" mb-3" >
65 <pmql-input ref =" pmql_input"
6+ :value =" pmql"
77 search-type =" tasks"
8- :value =" 'foo'"
9- v-model =" pmql"
10- :filters-value =" 'foo'"
118 :ai-enabled =" false"
129 :show-filters =" true"
1310 :aria-label =" $t('Advanced Search (PMQL)')"
14- :input-advanced-filter =" savedSearchAdvancedFilter"
11+ :advanced-filter-prop =" savedSearchAdvancedFilter"
12+ :show-search-bar =" false"
13+ :show-pmql-badge =" !!savedSearchId"
1514 >
16- <template v-slot :right-buttons >
15+ <template v-slot :right-of-badges >
1716 <b-button class =" ml-md-2" v-b-modal.columns >
1817 <i class =" fas fw fa-cog" ></i >
1918 </b-button >
2221 </div >
2322
2423 <tasks-list
25- v-if =" savedSearch "
24+ v-if =" ready "
2625 ref =" taskList"
2726 :pmql =" pmql"
2827 :advanced-filter-prop =" savedSearchAdvancedFilter"
29- :saved-search =" savedSearch.id"
28+ @advanced-filter-updated =" savedSearchAdvancedFilter = $event"
29+ :saved-search =" savedSearch?.id"
3030 :columns =" columns"
3131 @submit =" "
3232 >
5454<script >
5555import TasksList from " ../../tasks/components/TasksList.vue" ;
5656import ColumnChooserAdapter from " ./ColumnChooserAdapter.vue" ;
57+
58+ const defaultFilter = {
59+ filters: [],
60+ order: { by: ' id' , dir: ' desc' },
61+ };
5762export default {
5863 props: {
5964 savedSearchId: {
@@ -74,25 +79,43 @@ export default {
7479 savedSearch: null ,
7580 columns: [],
7681 defaultColumns: [],
82+ savedSearchAdvancedFilter: defaultFilter,
83+ ready: false ,
7784 }
7885 },
7986 components: {
8087 TasksList,
8188 ColumnChooserAdapter,
8289 },
8390 methods: {
91+ emitSavedSearchData () {
92+ this .$emit (' saved-search-data' , {
93+ pmql: this .pmql ,
94+ advanced_filter: this .savedSearchAdvancedFilter ,
95+ });
96+ },
8497 applyColumns () {
8598 this .columns = this .$refs .columnChooserAdapter .currentColumns ;
99+ this .savedSearchAdvancedFilter = _ .cloneDeep (defaultFilter);
86100 },
87101 loadSavedSearch () {
88- window .ProcessMaker .apiClient
102+ return window .ProcessMaker .apiClient
89103 .get (" saved-searches/" + this .savedSearchId )
90104 .then (response => {
91105 this .savedSearch = response .data ;
92106 this .columns = this .defaultColumns = response .data ._adjusted_columns .filter (c => c .field !== ' is_priority' );
107+ this .savedSearchAdvancedFilter = response .data .advanced_filter
93108 });
94109 }
95110 },
111+ watch: {
112+ savedSearchAdvancedFilter: {
113+ deep: true ,
114+ handler () {
115+ this .emitSavedSearchData ();
116+ }
117+ }
118+ },
96119 computed: {
97120 pmql () {
98121
@@ -113,12 +136,22 @@ export default {
113136
114137 return pmqls .join (' AND ' );
115138 },
116- savedSearchAdvancedFilter () {
117- return this .savedSearch ? .advanced_filter ? .filters ;
118- }
119139 },
120140 mounted () {
121- this .loadSavedSearch ();
141+ if (this .savedSearchId ) {
142+
143+ this .loadSavedSearch ().then (() => {
144+ this .ready = true
145+ });
146+
147+ } else if (this .processId && this .elementId ) {
148+
149+ this .columns = this .defaultColumns =
150+ _ .get (window , ' Processmaker.defaultColumns' , [])
151+ .filter (c => c .field !== ' is_priority' );
152+
153+ this .ready = true ;
154+ }
122155 }
123156}
124157< / script>
0 commit comments