Modifications to picklist as it was not working with a delayed set when I tested with actual Widget form. Definitely better though with these changes.
This commit is contained in:
@@ -50,16 +50,11 @@ CURRENT TODOs
|
|||||||
@@@@@@@@@@@ ROADMAP STAGE 2:
|
@@@@@@@@@@@ ROADMAP STAGE 2:
|
||||||
|
|
||||||
|
|
||||||
todo: TEST Picklist on iPad, and shitty lenovo tablet
|
|
||||||
todo: modify Widget form to use picklist to select user, test with huge tracts o'data
|
todo: modify Widget form to use picklist to select user, test with huge tracts o'data
|
||||||
todo: check picklist current default templates are adequate for now
|
todo: check picklist current default templates are adequate for now
|
||||||
todo: picklist template editor UI at client end
|
todo: picklist template editor UI at client end
|
||||||
todo: document how to use picklist in user docs
|
todo: document how to use picklist in user docs
|
||||||
todo: login form on mobile (and desktop)
|
|
||||||
- is scrunched to the top, logo with almost no headroom, would like to see it all centered
|
|
||||||
- version banner is not visible on ipad without scrolling down (dragging form upwards)
|
|
||||||
- Maybe the banner is not a good idea, it never looks right exactly, put the version and copyright elsewhere?
|
|
||||||
- Or play with it and see if it can be made to look nicer, centered, cleaner etc
|
|
||||||
|
|
||||||
todo: now that we have case insensitive should I port that shit over to the datagrid filter as well?
|
todo: now that we have case insensitive should I port that shit over to the datagrid filter as well?
|
||||||
todo: Utilize new picklist in Widget form to select something that exists and can then test out DataListView etc
|
todo: Utilize new picklist in Widget form to select something that exists and can then test out DataListView etc
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
|
{{ value }}
|
||||||
<v-autocomplete
|
<v-autocomplete
|
||||||
v-bind:value="value"
|
v-bind:value="value"
|
||||||
v-on:input="selectionMade($event)"
|
v-on:input="selectionMade($event)"
|
||||||
@@ -41,16 +42,7 @@ import _ from "../libs/lodash.min.js";
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
created() {
|
created() {
|
||||||
var vm = this;
|
this.fetchValueIfNotPresent();
|
||||||
//need to add no selection object always, if it's not valid then that's a rule for the form, not the control
|
|
||||||
window.$gz.form.addNoSelectionItem(vm.searchResults);
|
|
||||||
|
|
||||||
//set initial value in control if selected
|
|
||||||
if (vm.value != null && vm.value != 0) {
|
|
||||||
//It has a prior non empty selection that needs to be fetched
|
|
||||||
var urlParams = "?ayaType=" + vm.ayaType + "&preId=" + vm.value;
|
|
||||||
vm.getList(urlParams);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -77,13 +69,36 @@ export default {
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
allowEdit: {
|
showEditIcon: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
label: { type: String, default: "" }
|
label: { type: String, default: "" }
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
value(val) {
|
||||||
|
this.fetchValueIfNotPresent();
|
||||||
|
// //is there a value that might require fetching?
|
||||||
|
// if (val == null || val == 0) {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// var vm = this;
|
||||||
|
// //check if it's in the list of items we have here
|
||||||
|
// for (var i = 0; i < vm.searchResults.length; i++) {
|
||||||
|
// if (vm.searchResults[i].id == val) {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //Not here, better get it
|
||||||
|
// var urlParams = "?ayaType=" + vm.ayaType + "&preId=" + vm.value;
|
||||||
|
// console.log("WATCH:Value not present, calling getlist with ", urlParams);
|
||||||
|
// vm.getList(urlParams);
|
||||||
|
|
||||||
|
//todo: here is where we need to trigger the INIT single fetch because it's not being set otherwise as there is a delay on form fetching
|
||||||
|
// console.log("WATCH:Value changed and it's not in the list FETCH?:", val);
|
||||||
|
// setValue(this.$refs.textField.$refs.input, value);
|
||||||
|
},
|
||||||
searchEntry(val, oldVal) {
|
searchEntry(val, oldVal) {
|
||||||
var vm = this;
|
var vm = this;
|
||||||
//clear any local errors
|
//clear any local errors
|
||||||
@@ -130,7 +145,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
editIcon: function() {
|
editIcon: function() {
|
||||||
if (!this.allowEdit) {
|
if (!this.showEditIcon) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (this.value != 0) {
|
if (this.value != 0) {
|
||||||
@@ -159,6 +174,29 @@ export default {
|
|||||||
}
|
}
|
||||||
this.lastSelection = e;
|
this.lastSelection = e;
|
||||||
},
|
},
|
||||||
|
fetchValueIfNotPresent() {
|
||||||
|
//is there a value that might require fetching?
|
||||||
|
|
||||||
|
var vm = this;
|
||||||
|
var val = vm.value;
|
||||||
|
if (val == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//check if it's in the list of items we have here
|
||||||
|
for (var i = 0; i < vm.searchResults.length; i++) {
|
||||||
|
if (vm.searchResults[i].id == val) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//is it the no selection item?
|
||||||
|
if (val == 0) {
|
||||||
|
window.$gz.form.addNoSelectionItem(vm.searchResults);
|
||||||
|
} else {
|
||||||
|
//Not here, better get it
|
||||||
|
var urlParams = "?ayaType=" + vm.ayaType + "&preId=" + vm.value;
|
||||||
|
vm.getList(urlParams);
|
||||||
|
}
|
||||||
|
},
|
||||||
replaceLastSelection() {
|
replaceLastSelection() {
|
||||||
var vm = this;
|
var vm = this;
|
||||||
//check if searchResults has last selection, if not then add it back in again
|
//check if searchResults has last selection, if not then add it back in again
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
v-model="selectedWidget"
|
v-model="selectedWidget"
|
||||||
:ayaType="ayaType().Widget"
|
:ayaType="ayaType().Widget"
|
||||||
:label="lt('Widget')"
|
:label="lt('Widget')"
|
||||||
:allowEdit="true"
|
:showEditIcon="true"
|
||||||
>
|
>
|
||||||
</gz-pick-list>
|
</gz-pick-list>
|
||||||
<v-divider></v-divider>
|
<v-divider></v-divider>
|
||||||
|
|||||||
@@ -134,6 +134,27 @@
|
|||||||
@change="onChange('active')"
|
@change="onChange('active')"
|
||||||
></v-checkbox>
|
></v-checkbox>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
v-if="form().showMe(this, 'UserId')"
|
||||||
|
cols="12"
|
||||||
|
sm="6"
|
||||||
|
lg="4"
|
||||||
|
xl="3"
|
||||||
|
>
|
||||||
|
<gz-pick-list
|
||||||
|
:ayaType="ayaType().User"
|
||||||
|
:showEditIcon="true"
|
||||||
|
v-model="obj.userId"
|
||||||
|
:readonly="formState.readOnly"
|
||||||
|
:label="lt('User')"
|
||||||
|
ref="userid"
|
||||||
|
:error-messages="form().serverErrors(this, 'userid')"
|
||||||
|
@change="onChange('userid')"
|
||||||
|
></gz-pick-list>
|
||||||
|
{{ obj.userId }}
|
||||||
|
</v-col>
|
||||||
|
|
||||||
<v-col
|
<v-col
|
||||||
v-if="form().showMe(this, 'UserType')"
|
v-if="form().showMe(this, 'UserType')"
|
||||||
cols="12"
|
cols="12"
|
||||||
@@ -289,7 +310,7 @@ export default {
|
|||||||
count: null,
|
count: null,
|
||||||
customFields: "{}",
|
customFields: "{}",
|
||||||
tags: [],
|
tags: [],
|
||||||
userId: 0
|
userId: null
|
||||||
},
|
},
|
||||||
formState: {
|
formState: {
|
||||||
ready: false,
|
ready: false,
|
||||||
@@ -353,6 +374,9 @@ export default {
|
|||||||
translation() {
|
translation() {
|
||||||
return window.$gz.translation;
|
return window.$gz.translation;
|
||||||
},
|
},
|
||||||
|
ayaType: function() {
|
||||||
|
return window.$gz.type;
|
||||||
|
},
|
||||||
form() {
|
form() {
|
||||||
return window.$gz.form;
|
return window.$gz.form;
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user