From 9039114ce4069b586ff9006bbf10375d59ba923d Mon Sep 17 00:00:00 2001 From: Assunta DeSanto Date: Tue, 7 Mar 2023 15:58:28 -0500 Subject: [PATCH 01/51] created FormDrilldown and FormDrilldownOption for recursive rendering --- .../Form/Elements/FormDrilldown.vue | 38 +++++++++++++++++++ .../Form/Elements/FormDrilldownOption.vue | 21 ++++++++++ client/src/components/Form/FormElement.vue | 6 +++ 3 files changed, 65 insertions(+) create mode 100644 client/src/components/Form/Elements/FormDrilldown.vue create mode 100644 client/src/components/Form/Elements/FormDrilldownOption.vue diff --git a/client/src/components/Form/Elements/FormDrilldown.vue b/client/src/components/Form/Elements/FormDrilldown.vue new file mode 100644 index 00000000000..d04a11c98bc --- /dev/null +++ b/client/src/components/Form/Elements/FormDrilldown.vue @@ -0,0 +1,38 @@ + + + diff --git a/client/src/components/Form/Elements/FormDrilldownOption.vue b/client/src/components/Form/Elements/FormDrilldownOption.vue new file mode 100644 index 00000000000..ed3386b975b --- /dev/null +++ b/client/src/components/Form/Elements/FormDrilldownOption.vue @@ -0,0 +1,21 @@ + + diff --git a/client/src/components/Form/FormElement.vue b/client/src/components/Form/FormElement.vue index 29b2b2b8e8e..de7ab458f5a 100644 --- a/client/src/components/Form/FormElement.vue +++ b/client/src/components/Form/FormElement.vue @@ -11,6 +11,7 @@ import FormText from "./Elements/FormText.vue"; import FormOptionalText from "./Elements/FormOptionalText.vue"; import FormRulesEdit from "./Elements/FormRulesEdit.vue"; import FormUpload from "./Elements/FormUpload.vue"; +import FormDrilldown from "./Elements/FormDrilldown.vue"; import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; import { ref, computed, useAttrs } from "vue"; import { library } from "@fortawesome/fontawesome-svg-core"; @@ -263,6 +264,11 @@ const isOptional = computed(() => !isRequired.value && attrs.value["optional"] ! :options="attrs.options" :optional="attrs.optional" :multiple="attrs.multiple" /> + From 3630ef41dc453b3af826cfaaff1f442f9958a7d3 Mon Sep 17 00:00:00 2001 From: Assunta DeSanto Date: Tue, 7 Mar 2023 16:20:37 -0500 Subject: [PATCH 02/51] adding selection checkbox, for each option individually, not tied to the parent component, yet --- .../components/Form/Elements/FormDrilldownOption.vue | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/client/src/components/Form/Elements/FormDrilldownOption.vue b/client/src/components/Form/Elements/FormDrilldownOption.vue index ed3386b975b..eb959bae14c 100644 --- a/client/src/components/Form/Elements/FormDrilldownOption.vue +++ b/client/src/components/Form/Elements/FormDrilldownOption.vue @@ -13,9 +13,11 @@ export interface FormDrilldownProps { const props = defineProps(); From 65ec04d64a1ca273174e44b1a64c1b2d100d2520 Mon Sep 17 00:00:00 2001 From: Assunta DeSanto Date: Tue, 7 Mar 2023 22:31:04 -0500 Subject: [PATCH 03/51] added functionality for expanding to show nested options --- .../Form/Elements/FormDrilldown.vue | 10 +++--- .../Form/Elements/FormDrilldownOption.vue | 31 ++++++++++++++++--- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/client/src/components/Form/Elements/FormDrilldown.vue b/client/src/components/Form/Elements/FormDrilldown.vue index d04a11c98bc..a44e296076a 100644 --- a/client/src/components/Form/Elements/FormDrilldown.vue +++ b/client/src/components/Form/Elements/FormDrilldown.vue @@ -23,16 +23,14 @@ const hasOptions = computed(() => { return props.options.length > 0; }); //currentValue will be computed array of selected values -//should I re-use FormCheck? //need to implement selectAll -//need to implement is_expanded/drilldown function -//need to implment iterator function + diff --git a/client/src/components/Form/Elements/FormDrilldownOption.vue b/client/src/components/Form/Elements/FormDrilldownOption.vue index eb959bae14c..eaf5539b80d 100644 --- a/client/src/components/Form/Elements/FormDrilldownOption.vue +++ b/client/src/components/Form/Elements/FormDrilldownOption.vue @@ -1,4 +1,6 @@ From af3ed9c8729ea0eb392790999c24c09aacdaff9f Mon Sep 17 00:00:00 2001 From: Assunta DeSanto Date: Wed, 8 Mar 2023 21:41:42 -0500 Subject: [PATCH 04/51] indenting children options --- .../Form/Elements/FormDrilldown.vue | 4 +-- .../Form/Elements/FormDrilldownOption.vue | 33 +++++++++++-------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/client/src/components/Form/Elements/FormDrilldown.vue b/client/src/components/Form/Elements/FormDrilldown.vue index a44e296076a..ce59545ebbf 100644 --- a/client/src/components/Form/Elements/FormDrilldown.vue +++ b/client/src/components/Form/Elements/FormDrilldown.vue @@ -29,8 +29,8 @@ const hasOptions = computed(() => { diff --git a/client/src/components/Form/Elements/FormDrilldownOption.vue b/client/src/components/Form/Elements/FormDrilldownOption.vue index eaf5539b80d..692904cb43b 100644 --- a/client/src/components/Form/Elements/FormDrilldownOption.vue +++ b/client/src/components/Form/Elements/FormDrilldownOption.vue @@ -23,22 +23,27 @@ const props = defineProps(); const hasOptions = computed(() => { return props.option.options.length > 0; }); +const indent = computed(() => { + return {transform: `translate(${props.depth * 25}px)`, "list-style-type": "none"} +}); From 3aff98e42e6faaeed8f8e2b2ab9382ffdccdab8b Mon Sep 17 00:00:00 2001 From: Assunta DeSanto Date: Thu, 9 Mar 2023 16:22:36 -0500 Subject: [PATCH 05/51] adding functionality for selecting child options when parent is checked --- .../Form/Elements/FormDrilldownOption.vue | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/client/src/components/Form/Elements/FormDrilldownOption.vue b/client/src/components/Form/Elements/FormDrilldownOption.vue index 692904cb43b..40fc8160efe 100644 --- a/client/src/components/Form/Elements/FormDrilldownOption.vue +++ b/client/src/components/Form/Elements/FormDrilldownOption.vue @@ -26,6 +26,19 @@ const hasOptions = computed(() => { const indent = computed(() => { return {transform: `translate(${props.depth * 25}px)`, "list-style-type": "none"} }); + +const selected = computed({ + get: () => { + return props.option.selected; + }, + set: (newVal) => { + props.option.selected = newVal; + if (hasOptions){ + props.option.options.forEach(element => element.selected = newVal); + } + } +}); + From 2da22cb04f1200395c09534876c65622e1ad7f66 Mon Sep 17 00:00:00 2001 From: Assunta DeSanto Date: Wed, 15 Mar 2023 11:16:15 -0400 Subject: [PATCH 09/51] converting selected array to currentValue --- .../Form/Elements/FormDrilldown.vue | 48 +++++++------------ 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/client/src/components/Form/Elements/FormDrilldown.vue b/client/src/components/Form/Elements/FormDrilldown.vue index 5000fa9c9ba..e477398b03b 100644 --- a/client/src/components/Form/Elements/FormDrilldown.vue +++ b/client/src/components/Form/Elements/FormDrilldown.vue @@ -14,9 +14,7 @@ export interface FormDrilldownProps { id: string; options: Array