@drax/crud-vue 0.22.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.22.0",
6
+ "version": "0.23.0",
7
7
  "type": "module",
8
8
  "main": "./src/index.ts",
9
9
  "module": "./src/index.ts",
@@ -24,10 +24,10 @@
24
24
  "format": "prettier --write src/"
25
25
  },
26
26
  "dependencies": {
27
- "@drax/common-front": "^0.22.0",
28
- "@drax/crud-front": "^0.22.0",
29
- "@drax/crud-share": "^0.22.0",
30
- "@drax/media-vue": "^0.22.0"
27
+ "@drax/common-front": "^0.23.0",
28
+ "@drax/crud-front": "^0.23.0",
29
+ "@drax/crud-share": "^0.23.0",
30
+ "@drax/media-vue": "^0.23.0"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "pinia": "^2.2.2",
@@ -64,5 +64,5 @@
64
64
  "vue-tsc": "^2.1.10",
65
65
  "vuetify": "^3.8.2"
66
66
  },
67
- "gitHead": "b808a636aec2291d8516e37e3cc1e9659a442177"
67
+ "gitHead": "a5f8dca06ceb293bf54c3f32ca0c871af2fc02e4"
68
68
  }
package/src/EntityCrud.ts CHANGED
@@ -207,6 +207,11 @@ class EntityCrud implements IEntityCrud {
207
207
  return true
208
208
  }
209
209
 
210
+ get filterButtons(){
211
+ return true
212
+ }
213
+
214
+
210
215
  }
211
216
 
212
217
  export default EntityCrud;
@@ -9,9 +9,9 @@ const {t} = useI18n()
9
9
  const valueModel = defineModel({type: [Object]})
10
10
  const {hasPermission} = useAuth()
11
11
 
12
- const {entity} = defineProps({
12
+ const {entity, actionButtons} = defineProps({
13
13
  entity: {type: Object as PropType<IEntityCrud>, required: true},
14
- actions: {type: Boolean, default: false},
14
+ actionButtons: {type: Boolean, default: false},
15
15
  })
16
16
 
17
17
  const aFields = computed(() => {
@@ -46,16 +46,22 @@ const icon = computed(() => {
46
46
  })
47
47
 
48
48
 
49
- async function filter() {
50
- emit('filter')
49
+ function filter() {
50
+ emit('applyFilter')
51
51
  }
52
52
 
53
- async function clear() {
54
- emit('filter')
53
+ function clear() {
54
+ emit('clearFilter')
55
+ }
56
+
57
+ function onUpdateValue(){
58
+ if(!actionButtons){
59
+ emit('applyFilter')
60
+ }
55
61
  }
56
62
 
57
63
 
58
- const emit = defineEmits(['filter', 'clear','updateValue'])
64
+ const emit = defineEmits(['applyFilter', 'clearFilter'])
59
65
 
60
66
  </script>
61
67
 
@@ -79,13 +85,13 @@ const emit = defineEmits(['filter', 'clear','updateValue'])
79
85
  variant="outlined"
80
86
  :prepend-inner-icon="icon(filter)"
81
87
  hide-details disable-rules
82
- @updateValue="$emit('updateValue')"
88
+ @updateValue="onUpdateValue"
83
89
  />
84
90
  </v-col>
85
91
 
86
92
  </v-row>
87
93
 
88
- <v-card-actions v-if="actions" class="pb-0">
94
+ <v-card-actions v-if="actionButtons" class="pb-0">
89
95
  <v-spacer />
90
96
  <v-btn variant="text" density="compact" color="grey" @click="clear">{{ t('action.clear') }}</v-btn>
91
97
  <v-btn variant="flat" density="compact" color="primary" @click="filter">
@@ -25,7 +25,7 @@ const {entity} = defineProps({
25
25
 
26
26
  const {
27
27
  loading, itemsPerPage, page, sortBy, search, totalItems, items,
28
- doPaginate, filters
28
+ doPaginate, filters, applyFilters, clearFilters
29
29
  } = useCrud(entity)
30
30
 
31
31
  const actions: IEntityCrudHeader[] = entity.actionHeaders.map(header => ({
@@ -114,7 +114,9 @@ defineEmits(['import', 'export', 'create', 'update', 'delete', 'view', 'edit'])
114
114
  v-if="!$slots.filters"
115
115
  :entity="entity"
116
116
  v-model="filters"
117
- @updateValue="doPaginate()"
117
+ :action-buttons="entity.filterButtons"
118
+ @clearFilter="clearFilters()"
119
+ @applyFilter="applyFilters()"
118
120
  />
119
121
  </v-card-text>
120
122
 
@@ -349,12 +349,21 @@ export function useCrud(entity: IEntityCrud) {
349
349
  store.setFilters(entity.formFilters)
350
350
  }
351
351
 
352
+ async function clearFilters(){
353
+ prepareFilters()
354
+ await doPaginate()
355
+ }
356
+
357
+ async function applyFilters(){
358
+ await doPaginate()
359
+ }
360
+
352
361
 
353
362
  return {
354
363
  doPaginate, doExport, onView, onCreate, onEdit, onDelete, onCancel, onSubmit, resetCrudStore,
355
364
  operation, dialog, form, notify, error, message, formValid,
356
365
  loading, itemsPerPage, page, sortBy, search, totalItems, items,
357
- prepareFilters, filters,
366
+ prepareFilters, filters, clearFilters, applyFilters,
358
367
  exportFiles, exportLoading, exportListVisible
359
368
  }
360
369