@afeefa/vue-app 0.0.283 → 0.0.284
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.
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.284
|
package/package.json
CHANGED
@@ -82,11 +82,12 @@
|
|
82
82
|
<script>
|
83
83
|
import { Component, Mixins, Watch } from '@a-vue'
|
84
84
|
import { ListFilterMixin } from '../ListFilterMixin'
|
85
|
-
import { ListAction
|
85
|
+
import { ListAction } from '@a-vue/api-resources/ApiActions'
|
86
|
+
import { ApiAction } from '@a-vue/api-resources/ApiAction'
|
86
87
|
import { Category } from '@/models'
|
87
88
|
|
88
89
|
@Component({
|
89
|
-
props: ['itemTitle', 'itemValue', 'optionRequestFilters', {
|
90
|
+
props: ['itemTitle', 'itemValue', 'optionRequestFilters', 'selectedItemRequestParams', {
|
90
91
|
selectedKey: 'id',
|
91
92
|
getTitle: {type: Function, default: m => m.getTitle()},
|
92
93
|
getSubtitle: {type: Function, default: m => m.getSubtitle()},
|
@@ -111,11 +112,13 @@ export default class ListFilterSearchSelect extends Mixins(ListFilterMixin) {
|
|
111
112
|
}
|
112
113
|
|
113
114
|
if (this.filter.value) {
|
114
|
-
const
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
115
|
+
const request = this.createLoadSelectedItemRequest()
|
116
|
+
const apiAction = ApiAction.fromRequest(request)
|
117
|
+
|
118
|
+
const result = await apiAction.execute()
|
119
|
+
|
120
|
+
// list or single
|
121
|
+
const model = result.models ? result.models[0] : result
|
119
122
|
|
120
123
|
if (model) {
|
121
124
|
if (this.filter.value) {
|
@@ -124,7 +127,16 @@ export default class ListFilterSearchSelect extends Mixins(ListFilterMixin) {
|
|
124
127
|
this.inputModel = selectedModel.getTitle()
|
125
128
|
}
|
126
129
|
}
|
130
|
+
} else {
|
131
|
+
// wrong id tried to load
|
132
|
+
if (request.getParams()?.id) {
|
133
|
+
this.inputModel = 'ID ' + this.filter.value
|
134
|
+
} else { // wrong filter or other param loaded
|
135
|
+
this.inputModel = this.filter.value
|
136
|
+
}
|
127
137
|
}
|
138
|
+
} else {
|
139
|
+
this.inputModel = 'Alle'
|
128
140
|
}
|
129
141
|
}
|
130
142
|
|
@@ -139,9 +151,13 @@ export default class ListFilterSearchSelect extends Mixins(ListFilterMixin) {
|
|
139
151
|
}
|
140
152
|
|
141
153
|
get listAction () {
|
142
|
-
|
154
|
+
const request = this.filter
|
155
|
+
.createOptionsRequest()
|
156
|
+
.addFilters(this.optionRequestFilters || {})
|
157
|
+
return ListAction.fromRequest(request)
|
143
158
|
}
|
144
159
|
|
160
|
+
|
145
161
|
get specialItems () {
|
146
162
|
// make array-typed options to proper models in order to show them
|
147
163
|
// alongside the other list items
|
@@ -153,25 +169,24 @@ export default class ListFilterSearchSelect extends Mixins(ListFilterMixin) {
|
|
153
169
|
})
|
154
170
|
}
|
155
171
|
|
156
|
-
|
157
|
-
const request = this.filter
|
158
|
-
.createOptionsRequest()
|
159
|
-
.addFilters(this.optionRequestFilters || {})
|
160
|
-
return ListAction.fromRequest(request)
|
161
|
-
}
|
162
|
-
|
163
|
-
createGetAction () {
|
164
|
-
const request = this.filter
|
165
|
-
.createOptionsRequest('get')
|
172
|
+
createLoadSelectedItemRequest () {
|
173
|
+
const request = this.filter.createOptionsRequest()
|
166
174
|
|
167
175
|
const getAction = this.$apiResources.getAction({
|
168
176
|
resourceType: request.getAction().getResource().getType(),
|
169
|
-
actionName: 'get'
|
177
|
+
actionName: this.selectedItemRequestParams?.actionName || 'get'
|
170
178
|
})
|
171
179
|
|
172
180
|
request.action(getAction)
|
173
181
|
|
174
|
-
|
182
|
+
if (this.selectedItemRequestParams) {
|
183
|
+
request.params(this.selectedItemRequestParams.params)
|
184
|
+
request.filters(this.selectedItemRequestParams.filters)
|
185
|
+
} else {
|
186
|
+
request.params({[this.selectedKey]: this.filter.value})
|
187
|
+
}
|
188
|
+
|
189
|
+
return request
|
175
190
|
}
|
176
191
|
|
177
192
|
itemSelected (model) {
|