Skip to content

Commit 7a85d4d

Browse files
committed
fix Multiline vue dropdown
1 parent e16b4e3 commit 7a85d4d

29 files changed

+125
-147
lines changed

js/src/vue-components/item-search.component.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@ export default {
1919
<input
2020
class="ui"
2121
v-model="query"
22-
type="text" placeholder="Search..."
22+
type="text"
23+
name="atk-vue-search"
24+
placeholder="Search..."
2325
@keyup="onKeyup"
2426
@keyup.esc="onEscape"
25-
name="atk-vue-search"
2627
/>
2728
<i class="atk-search-icon" :class="classIcon" />
2829
<span style="width: 12px; cursor: pointer;" @click="onClear" />

js/src/vue-components/multiline/multiline-body.component.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ export default {
77
<AtkMultilineRow
88
:fields="fields"
99
v-for="(row, i) in rows" :key="row.__atkml"
10-
@onTabLastColumn="onTabLastColumn(i)"
1110
:rowId="row.__atkml"
1211
:isDeletable="isDeletableRow(row)"
1312
:rowValues="row"
1413
:error="getError(row.__atkml)"
14+
@onTabLastColumn="onTabLastColumn(i)"
1515
></AtkMultilineRow>
1616
</SuiTableBody>`,
1717
props: ['fieldDefs', 'rowData', 'deletables', 'errors'],

js/src/vue-components/multiline/multiline-cell.component.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ export default {
1212
ref="cell"
1313
:fluid="true"
1414
class="fluid"
15-
@update:modelValue="onInput"
16-
v-model="inputValue"
1715
:name="inputName"
16+
v-model="inputValue"
17+
@update:modelValue="onInput"
1818
></component>`,
1919
components: {
2020
AtkMultilineReadonly: multilineReadonly,
@@ -31,7 +31,7 @@ export default {
3131
inputValue: this.fieldValue,
3232
};
3333
},
34-
emits: ['update-value'],
34+
emits: ['updateValue'],
3535
methods: {
3636
getComponent: function () {
3737
return this.cellData.definition.component;
@@ -45,7 +45,7 @@ export default {
4545
},
4646
onInput: function (value) {
4747
this.inputValue = value;
48-
this.$emit('update-value', this.fieldName, this.inputValue);
48+
this.$emit('updateValue', this.fieldName, this.inputValue);
4949
},
5050
},
5151
};

js/src/vue-components/multiline/multiline-header.component.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export default {
2020
</SuiTableRow>
2121
<SuiTableRow :verticalAlign="'top'">
2222
<SuiTableHeaderCell :width=1 textAlign="center">
23-
<input ref="check" type="checkbox" @input="onToggleDeleteAll" :checked="isChecked" :indeterminate="isIndeterminate" />
23+
<input ref="check" type="checkbox" :checked="isChecked" :indeterminate="isIndeterminate" @input="onToggleDeleteAll" />
2424
</SuiTableHeaderCell>
2525
<SuiTableHeaderCell
2626
v-for="column in columns"

js/src/vue-components/multiline/multiline-row.component.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ export default {
1313
template: `
1414
<SuiTableRow :verticalAlign="'middle'">
1515
<SuiTableCell textAlign="center">
16-
<input type="checkbox" @input="onToggleDelete" v-model="toDelete" />
16+
<input type="checkbox" v-model="toDelete" @input="onToggleDelete" />
1717
</SuiTableCell>
1818
<SuiTableCell
1919
v-for="(column, i) in columns"
20-
@keydown.tab="onTab(i)"
2120
v-bind="column.cellProps"
2221
:width=null
2322
:state="getErrorState(column)"
2423
:style="{ overflow: 'visible' }"
24+
@keydown.tab="onTab(i)"
2525
>
2626
<AtkMultilineCell
2727
:cellData="column"
28-
@update-value="onUpdateValue"
2928
:fieldValue="getValue(column)"
29+
@updateValue="onUpdateValue"
3030
></AtkMultilineCell>
3131
</SuiTableCell>
3232
</SuiTableRow>`,

js/src/vue-components/multiline/multiline.component.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,21 @@ export default {
1515
:caption="caption"
1616
></AtkMultilineHeader>
1717
<AtkMultilineBody
18-
@onTabLastRow="onTabLastRow"
1918
:fieldDefs="fieldData"
2019
:rowData="rowData"
2120
:deletables="getDeletables"
2221
:errors="errors"
22+
@onTabLastRow="onTabLastRow"
2323
></AtkMultilineBody>
2424
<SuiTableFooter>
2525
<SuiTableRow>
2626
<SuiTableHeaderCell />
2727
<SuiTableHeaderCell :colspan="getSpan" textAlign="right">
2828
<SuiButtonGroup>
29-
<SuiButton ref="addBtn" size="small" @click.stop.prevent="onAdd" type="button" icon :disabled="isLimitReached">
29+
<SuiButton ref="addBtn" size="small" type="button" icon :disabled="isLimitReached" @click.stop.prevent="onAdd">
3030
<SuiIcon name="plus" />
3131
</SuiButton>
32-
<SuiButton size="small" @click.stop.prevent="onDelete" type="button" icon :disabled="isDeleteDisable">
32+
<SuiButton size="small" type="button" icon :disabled="isDeleteDisable" @click.stop.prevent="onDelete">
3333
<SuiIcon name="trash" />
3434
</SuiButton>
3535
</SuiButtonGroup>

js/src/vue-components/query-builder/fomantic-ui-group.component.vue

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -86,18 +86,6 @@ export default {
8686
selectedSuiRule: null,
8787
};
8888
},
89-
computed: {
90-
/**
91-
* Map rules to SUI Dropdown.
92-
*/
93-
dropdownRules: function () {
94-
return this.rules.map((rule) => ({
95-
key: rule.id,
96-
text: rule.label,
97-
value: rule.id,
98-
}));
99-
},
100-
},
10189
methods: {
10290
/**
10391
* Add a new rule via Dropdown item.

js/src/vue-components/query-builder/fomantic-ui-rule.component.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
:is="rule.component"
100100
v-model="query.value"
101101
:config="rule.componentProps"
102-
:optional-value="query.option"
102+
:optionalValue="query.option"
103103
/>
104104
</div>
105105
</template>
@@ -156,7 +156,7 @@ export default {
156156
* Check if an input can be display in regards to:
157157
* it's operator and then it's type.
158158
*
159-
* @returns {boolean|*}
159+
* @returns {boolean}
160160
*/
161161
canDisplay: function (type) {
162162
if (this.labels.hiddenOperator.includes(this.query.operator)) {

js/src/vue-components/query-builder/query-builder.component.vue

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
>
99
<VueQueryBuilder
1010
v-model="query"
11-
:group-component="groupComponent"
12-
:rule-component="ruleComponent"
11+
:groupComponent="groupComponent"
12+
:ruleComponent="ruleComponent"
1313
:rules="rules"
14-
:max-depth="maxDepth"
14+
:maxDepth="maxDepth"
1515
:labels="labels"
1616
>
1717
<template #default="slotProps">
@@ -71,8 +71,6 @@ export default {
7171
methods: {
7272
/**
7373
* Return default label and option.
74-
*
75-
* @returns {any}
7674
*/
7775
getLabels: function (labels) {
7876
labels = labels || {};

js/src/vue-components/share/atk-lookup.js

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@ import atk from 'atk';
77
* config:
88
* url: the callback URL. Callback should return model data in form of { key: modelId, text: modelTitle, value: modelId }
99
* reference: the reference field name associate with model or hasOne name. This field name will be sent along with URL callback parameter as of 'field=name'.
10-
* ui: the css class name to apply to dropdown.
1110
* Note: The remaining config object may contain any or SuiDropdown { props: value } pair.
1211
*
13-
* value: The selected value.
12+
* modelValue: The selected value.
1413
* optionalValue: The initial list of options for the dropdown.
1514
*/
1615
export default {
@@ -19,24 +18,21 @@ export default {
1918
<SuiDropdown
2019
v-bind="dropdownProps"
2120
ref="drop"
21+
:modelValue="getDropdownValue(modelValue)"
2222
` /* :loading="isLoading" */
23-
+ `@update:modelValue="onChange"
23+
+ `@update:modelValue="onUpdate"
2424
@filtered="onFiltered"
25-
v-model="current"
26-
:class="css"
2725
></SuiDropdown>`,
28-
props: ['config', 'value', 'optionalValue'],
26+
props: ['config', 'modelValue', 'optionalValue'],
2927
data: function () {
3028
const {
31-
url, reference, ui, ...suiDropdown
29+
url, reference, ...suiDropdown
3230
} = this.config;
3331
suiDropdown.selection = true;
3432

3533
return {
3634
dropdownProps: suiDropdown,
37-
current: this.value,
3835
url: url || null,
39-
css: [ui],
4036
isLoading: false,
4137
field: reference,
4238
query: '',
@@ -50,9 +46,11 @@ export default {
5046
},
5147
emits: ['update:modelValue'],
5248
methods: {
53-
onChange: function (value) {
54-
this.current = value.value;
55-
this.$emit('update:modelValue', this.current);
49+
getDropdownValue: function (value) {
50+
return this.dropdownProps.options.find((item) => item.value === value);
51+
},
52+
onUpdate: function (value) {
53+
this.$emit('update:modelValue', value.value);
5654
},
5755
/**
5856
* Receive user input text for search.

js/src/vue-components/tree-item-selector/tree-item-selector.component.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ export default {
44
name: 'AtkTreeItemSelector',
55
template: `
66
<div class="item" :style="itemMargin">
7-
<i :class="toggleIcon" @click="onToggleShow" v-show="!isRoot" />
8-
<i :class="getIcon" @click="onToggleSelect" v-show="!isRoot" />
7+
<i :class="toggleIcon" v-show="!isRoot" @click="onToggleShow" />
8+
<i :class="getIcon" v-show="!isRoot" @click="onToggleSelect" />
99
<div class="content">
10-
<div @click="onToggleSelect" :style="itemCursor">{{title}}</div>
10+
<div :style="itemCursor" @click="onToggleSelect">{{title}}</div>
1111
<div v-if="isParent" class="list" v-show="open || isRoot">
1212
<AtkTreeItemSelector
1313
v-for="item in item.nodes" :key="item.id"

public/js/atk-vue-item-search.js

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)