|
1 | 1 | <template>
|
| 2 | + <KestraFilter |
| 3 | + prefix="flow_triggers" |
| 4 | + :buttons="{ |
| 5 | + refresh: {shown: true, callback: loadData}, |
| 6 | + settings: {shown: false} |
| 7 | + }" |
| 8 | + /> |
| 9 | + |
2 | 10 | <el-table
|
3 | 11 | v-if="triggersWithType.length"
|
4 | 12 | v-bind="$attrs"
|
|
39 | 47 | <el-table-column column-key="backfill" v-if="userCan(action.UPDATE) || userCan(action.CREATE)">
|
40 | 48 | <template #header>
|
41 | 49 | {{ $t("backfill") }}
|
42 |
| - <refresh-button |
43 |
| - :can-auto-refresh="true" |
44 |
| - @refresh="loadData" |
45 |
| - size="small" |
46 |
| - custom-class="mx-1" |
47 |
| - /> |
48 | 50 | </template>
|
49 | 51 | <template #default="scope">
|
50 | 52 | <el-button
|
|
220 | 222 | import Restart from "vue-material-design-icons/Restart.vue";
|
221 | 223 | import CalendarCollapseHorizontalOutline from "vue-material-design-icons/CalendarCollapseHorizontalOutline.vue"
|
222 | 224 | import FlowRun from "./FlowRun.vue";
|
223 |
| - import RefreshButton from "../layout/RefreshButton.vue"; |
224 | 225 | import Id from "../Id.vue";
|
225 | 226 | import TriggerAvatar from "./TriggerAvatar.vue";
|
| 227 | +
|
| 228 | + import KestraFilter from "../filter/KestraFilter.vue"; |
226 | 229 | </script>
|
227 | 230 |
|
228 | 231 | <script>
|
|
238 | 241 | import LogsWrapper from "../logs/LogsWrapper.vue";
|
239 | 242 | import EmptyState from "../layout/EmptyState.vue";
|
240 | 243 | import TriggersEmptyImage from "../../assets/triggers_empty.svg";
|
| 244 | + import _isEqual from "lodash/isEqual"; |
241 | 245 |
|
242 | 246 | export default {
|
243 | 247 | components: {Markdown, Kicon, DateAgo, Vars, Drawer, LogsWrapper, EmptyState},
|
|
259 | 263 | created() {
|
260 | 264 | this.loadData();
|
261 | 265 | },
|
| 266 | + watch: { |
| 267 | + $route(newValue, oldValue) { |
| 268 | + if (oldValue.name === newValue.name && !_isEqual(newValue.query, oldValue.query)) { |
| 269 | + this.loadData(); |
| 270 | + } |
| 271 | + } |
| 272 | + }, |
262 | 273 | computed: {
|
263 | 274 | ...mapState("auth", ["user"]),
|
264 | 275 | ...mapGetters("flow", ["flow"]),
|
| 276 | + query() { |
| 277 | + return Array.isArray(this.$route.query.q) ? this.$route.query.q[0] : this.$route.query.q; |
| 278 | + }, |
265 | 279 | modalData() {
|
266 | 280 | return Object
|
267 | 281 | .entries(this.triggersWithType.filter(trigger => trigger.triggerId === this.triggerId)[0])
|
|
284 | 298 | return {...trigger, sourceDisabled: trigger.disabled ?? false}
|
285 | 299 | })
|
286 | 300 | if (flowTriggers) {
|
287 |
| - return flowTriggers.map(flowTrigger => { |
| 301 | + const triggers = flowTriggers.map(flowTrigger => { |
288 | 302 | let pollingTrigger = this.triggers.find(trigger => trigger.triggerId === flowTrigger.id)
|
289 | 303 | return {...flowTrigger, ...(pollingTrigger || {})}
|
290 | 304 | })
|
| 305 | +
|
| 306 | + return !this.query ? triggers : triggers.filter(trigger => trigger.id.includes(this.query)) |
291 | 307 | }
|
292 | 308 | return this.triggers
|
293 | 309 | },
|
|
332 | 348 | if(!this.triggersWithType.length) return;
|
333 | 349 |
|
334 | 350 | this.$store
|
335 |
| - .dispatch("trigger/find", {namespace: this.flow.namespace, flowId: this.flow.id, size: this.triggersWithType.length}) |
| 351 | + .dispatch("trigger/find", {namespace: this.flow.namespace, flowId: this.flow.id, size: this.triggersWithType.length, q: this.query}) |
336 | 352 | .then(triggers => this.triggers = triggers.results);
|
337 | 353 | },
|
338 | 354 | setBackfillModal(trigger, bool) {
|
|
0 commit comments