Skip to content
Snippets Groups Projects

Sprint/2021 12

Merged Petar Hristov requested to merge Sprint/2021-12 into master
10 files
+ 2329
3014
Compare changes
  • Side-by-side
  • Inline
Files
10
@@ -5,11 +5,13 @@
@@ -5,11 +5,13 @@
v-model="selectedOption"
v-model="selectedOption"
label="name"
label="name"
track-by="name"
track-by="name"
:placeholder="$t('multiselectPlaceholder')"
:placeholder="$t('selectPlaceholder')"
:required="required"
:required="required"
:disabled="disabledMode || locked"
:disabled="disabledMode || locked"
@input="input"
@input="input"
@change="input"
select-label=""
 
selected-label=""
 
deselect-label=""
/>
/>
</template>
</template>
@@ -17,15 +19,17 @@
@@ -17,15 +19,17 @@
import Vue from 'vue';
import Vue from 'vue';
import VueI18n from 'vue-i18n';
import VueI18n from 'vue-i18n';
 
import FieldReader from '@/util/FieldReader';
import Multiselect from 'vue-multiselect';
import Multiselect from 'vue-multiselect';
import 'vue-multiselect/dist/vue-multiselect.min.css';
import 'vue-multiselect/dist/vue-multiselect.min.css';
import FieldReader from '@/util/FieldReader';
Vue.component('multiselect', Multiselect);
Vue.use(VueI18n);
Vue.use(VueI18n);
const i18n = new VueI18n({
const i18n = new VueI18n({
locale: 'en',
locale: 'en',
messages: (window.coscine && coscine.i18n) ? coscine.i18n['form-generator'] : {},
messages:
 
window.coscine && coscine.i18n ? coscine.i18n['form-generator'] : {},
silentFallbackWarn: true,
silentFallbackWarn: true,
});
});
@@ -35,45 +39,52 @@ export default Vue.extend({
@@ -35,45 +39,52 @@ export default Vue.extend({
beforeMount() {
beforeMount() {
i18n.locale = this.languageCode;
i18n.locale = this.languageCode;
// set the datatype
// set the datatype
this.$set(this.formData[this.nodeName][0], 'type', 'literal');
this.$set(this.formData[this.nodeName][this.entryKey], 'type', 'literal');
this.$set(
this.$set(
this.formData[this.nodeName][0],
this.formData[this.nodeName][this.entryKey],
'datatype',
'datatype',
'http://www.w3.org/2001/XMLSchema#boolean'
'http://www.w3.org/2001/XMLSchema#boolean'
);
);
if (this.fixedValueMode) {
if (this.fixedValueMode) {
this.updateFixedValues();
this.updateFixedValues(this.entryKey);
}
}
},
},
mounted() {
mounted() {
if (this.languageCode === "en") {
if (this.languageCode === 'en') {
this.selectableOptions = [{value: "true", name: "Yes"}, {value: "false", name: "No"}];
this.selectableOptions = [
 
{ value: 'true', name: 'Yes' },
 
{ value: 'false', name: 'No' },
 
];
} else {
} else {
this.selectableOptions = [{value: "true", name: "Ja"}, {value: "false", name: "Nein"}];
this.selectableOptions = [
}
{ value: 'true', name: 'Ja' },
this.loadData();
{ value: 'false', name: 'Nein' },
 
];
 
}
 
this.loadData();
if (this.fixedValueMode) {
if (this.fixedValueMode) {
this.updateFixedValues();
this.updateFixedValues(this.entryKey);
}
}
},
},
data() {
data() {
return {
return {
selectableOptions: [] as object[],
selectableOptions: [] as object[],
selectedOption: [] as object[]
selectedOption: {} as object,
};
};
},
},
methods: {
methods: {
input() {
input() {
FieldReader.setField(
FieldReader.setField(
this.formData,
this.formData,
this.v,
this.v,
this.nodeName,
this.nodeName,
this.selectedOption !== null ? (this.selectedOption as any).value : '',
this.selectedOption !== null ? (this.selectedOption as any).value : '',
this.$set
this.$set,
 
this.entryKey
);
);
this.updateFixedValues();
this.updateFixedValues(this.entryKey);
},
},
loadData() {
loadData() {
const selectedData = this.formData[this.nodeName];
const selectedData = this.formData[this.nodeName];
@@ -83,9 +94,6 @@ export default Vue.extend({
@@ -83,9 +94,6 @@ export default Vue.extend({
return obj.value === (field as any).value;
return obj.value === (field as any).value;
}
}
);
);
if (selectedElement[0] !== undefined) {
this.selectedOption.push(selectedElement[0]);
}
}
}
},
},
},
},
@@ -105,53 +113,15 @@ export default Vue.extend({
@@ -105,53 +113,15 @@ export default Vue.extend({
projectId: String,
projectId: String,
languageCode: String,
languageCode: String,
v: Object,
v: Object,
 
entryKey: Number,
},
},
components: {
components: {},
Multiselect,
},
});
});
</script>
</script>
<style>
<style>
.multiselect {
height: auto;
}
.multiselect__input {
border: 0px !important;
height: calc(1.4em + 0.75rem + 2px);
}
.multiselect__tags {
border-radius: 0px;
}
.multiselect__tag {
background-color: #00549f !important;
}
.multiselect__option--highlight {
background-color: #00549f !important;
background: #00549f !important;
}
.multiselect__option--selected.multiselect__option--highlight {
background-color: #a70619 !important;
}
.multiselect__tag-icon:focus,
.multiselect__tag-icon:hover {
background-color: #a70619 !important;
}
.invalid-tooltip {
position: absolute;
top: 100%;
z-index: 5;
display: none;
max-width: 100%;
padding: 0.25rem 0.5rem;
margin-top: 0.1rem;
font-size: 0.76563rem;
line-height: 1.4;
color: #fff;
background-color: rgba(204, 7, 30, 0.9);
border-radius: 0;
}
</style>
</style>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped></style>
<style scoped>
 
</style>
Loading