Skip to content

Commit f5de75b

Browse files
committed
Replace select2 in rule builder with select field
1 parent 6a49a55 commit f5de75b

4 files changed

Lines changed: 40 additions & 76 deletions

File tree

client/src/components/RuleBuilder/ColumnSelector.vue

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<label class="d-flex justify-content-end align-items-center">
44
<span v-b-tooltip.hover class="mr-auto help-text" :title="help">{{ label }}</span>
55
<div v-b-tooltip.hover class="mr-1" :title="title">
6-
<Select2 :value="target" :multiple="multiple" @input="handleInput">
6+
<SelectBasic :value="target" :multiple="multiple" @input="handleInput">
77
<option v-for="(col, index) in colHeaders" :key="col" :value="index">{{ col }}</option>
8-
</Select2>
8+
</SelectBasic>
99
</div>
1010
<slot></slot>
1111
</label>
@@ -28,25 +28,25 @@
2828
<i @click="$emit('update:orderedEdit', true)">... {{ l("Assign Another Column") }}</i>
2929
</span>
3030
<span v-else class="rule-column-selector-target-select">
31-
<Select2 placeholder="Select a column" @input="handleAdd">
31+
<SelectBasic placeholder="Select a column" @input="handleAdd">
3232
<option />
3333
<!-- empty option selection for placeholder -->
3434
<option v-for="(col, index) in remainingHeaders" :key="col" :value="index">{{ col }}</option>
35-
</Select2>
35+
</SelectBasic>
3636
</span>
3737
</li>
3838
</ol>
3939
</div>
4040
</template>
4141

4242
<script>
43-
import Select2 from "components/Select2";
43+
import SelectBasic from "components/RuleBuilder/SelectBasic";
4444
import _l from "utils/localization";
4545
import Vue from "vue";
4646
4747
export default {
4848
components: {
49-
Select2,
49+
SelectBasic,
5050
},
5151
props: {
5252
target: {
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<template>
2+
<select class="basic-select" :value="value" :multiple="multiple" @change="onChange">
3+
<slot></slot>
4+
</select>
5+
</template>
6+
7+
<script>
8+
export default {
9+
props: {
10+
value: { required: false },
11+
multiple: { type: Boolean, default: false },
12+
},
13+
methods: {
14+
onChange(event) {
15+
const selected = this.multiple
16+
? Array.from(event.target.selectedOptions).map((o) => o.value)
17+
: event.target.value;
18+
this.$emit("input", selected);
19+
},
20+
},
21+
};
22+
</script>

client/src/components/RuleCollectionBuilder.vue

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -520,17 +520,17 @@
520520
<input v-if="elementsType == 'datasets'" v-model="hideSourceItems" type="checkbox" />
521521
<div v-if="extension && showFileTypeSelector" class="rule-footer-extension-group">
522522
<label>{{ l("Type") }}:</label>
523-
<Select2 v-model="extension" name="extension" class="extension-select">
523+
<SelectBasic v-model="extension" name="extension" class="extension-select">
524524
<option v-for="col in extensions" :key="col.id" :value="col['id']">
525525
{{ col["text"] }}
526526
</option>
527-
</Select2>
527+
</SelectBasic>
528528
</div>
529529
<div v-if="genome && showGenomeSelector" class="rule-footer-genome-group">
530530
<label>{{ l("Genome") }}:</label>
531-
<Select2 v-model="genome" class="genome-select">
531+
<SelectBasic v-model="genome" class="genome-select">
532532
<option v-for="col in genomes" :key="col.id" :value="col['id']">{{ col["text"] }}</option>
533-
</Select2>
533+
</SelectBasic>
534534
</div>
535535
<label v-if="showAddNameTag">{{ l("Add nametag for name") }}:</label>
536536
<input v-if="showAddNameTag" v-model="addNameTag" type="checkbox" />
@@ -625,8 +625,8 @@ import RuleModalMiddle from "components/RuleBuilder/RuleModalMiddle";
625625
import RuleTargetComponent from "components/RuleBuilder/RuleTargetComponent";
626626
import SavedRulesSelector from "components/RuleBuilder/SavedRulesSelector";
627627
import SaveRules from "components/RuleBuilder/SaveRules";
628+
import SelectBasic from "components/RuleBuilder/SelectBasic";
628629
import StateDiv from "components/RuleBuilder/StateDiv";
629-
import Select2 from "components/Select2";
630630
import UploadUtils from "components/Upload/utils";
631631
import { getAppRoot } from "onload/loadConfig";
632632
import { useHistoryStore } from "stores/historyStore";
@@ -661,7 +661,7 @@ export default {
661661
RuleModalHeader,
662662
RuleModalMiddle,
663663
RuleModalFooter,
664-
Select2,
664+
SelectBasic,
665665
GButton,
666666
},
667667
mixins: [SaveRules],
@@ -1837,15 +1837,15 @@ export default {
18371837
},
18381838
highlightColumn(n) {
18391839
const headerSelection = document.querySelectorAll(`.htCore > thead > tr > th:nth-child(${n + 1})`);
1840-
headerSelection.forEach(el => el.classList.add("ht__highlight"));
1840+
headerSelection.forEach((el) => el.classList.add("ht__highlight"));
18411841
const bodySelection = document.querySelectorAll(`.htCore > tbody > tr > td:nth-child(${n + 1})`);
1842-
bodySelection.forEach(el => el.classList.add("rule-highlight"));
1842+
bodySelection.forEach((el) => el.classList.add("rule-highlight"));
18431843
},
18441844
unhighlightColumn(n) {
18451845
const headerSelection = document.querySelectorAll(`.htCore > thead > tr > th:nth-child(${n + 1})`);
1846-
headerSelection.forEach(el => el.classList.remove("ht__highlight"));
1846+
headerSelection.forEach((el) => el.classList.remove("ht__highlight"));
18471847
const bodySelection = document.querySelectorAll(`.htCore > tbody > tr > td:nth-child(${n + 1})`);
1848-
bodySelection.forEach(el => el.classList.remove("rule-highlight"));
1848+
bodySelection.forEach((el) => el.classList.remove("rule-highlight"));
18491849
},
18501850
_datasetFor(dataIndex, data, mappingAsDict) {
18511851
const res = {};
@@ -1956,7 +1956,7 @@ export default {
19561956
width: 100%;
19571957
overflow: hidden;
19581958
}
1959-
.select2-container {
1959+
.select-basic {
19601960
min-width: 60px;
19611961
}
19621962
.vertical #hot-table {
@@ -2052,7 +2052,7 @@ export default {
20522052
padding-left: 20px;
20532053
align-self: baseline;
20542054
}
2055-
.rule-footer-inputs .select2-container {
2055+
.rule-footer-inputs .select-basic {
20562056
align-self: baseline;
20572057
}
20582058
.rule-footer-inputs {

client/src/components/Select2.vue

Lines changed: 0 additions & 58 deletions
This file was deleted.

0 commit comments

Comments
 (0)