From 1afda1ac6d037e477e500870fe4e05c3c1f773cb Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 7 Apr 2021 20:53:58 +0300 Subject: lost file --- .../settings_modal/helpers/boolean_setting.js | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/components/settings_modal/helpers/boolean_setting.js (limited to 'src/components/settings_modal/helpers/boolean_setting.js') diff --git a/src/components/settings_modal/helpers/boolean_setting.js b/src/components/settings_modal/helpers/boolean_setting.js new file mode 100644 index 00000000..1dda49f2 --- /dev/null +++ b/src/components/settings_modal/helpers/boolean_setting.js @@ -0,0 +1,30 @@ +import { get, set } from 'lodash' +import Checkbox from 'src/components/checkbox/checkbox.vue' +import ModifiedIndicator from './modified_indicator.vue' +export default { + components: { + Checkbox, + ModifiedIndicator + }, + props: [ + 'path', + 'disabled' + ], + computed: { + pathDefault () { + const [firstSegment, ...rest] = this.path.split('.') + return [firstSegment + 'DefaultValue', ...rest].join('.') + }, + state () { + return get(this.$parent, this.path) + }, + isChanged () { + return get(this.$parent, this.path) !== get(this.$parent, this.pathDefault) + } + }, + methods: { + update (e) { + set(this.$parent, this.path, e) + } + } +} -- cgit v1.2.3-70-g09d2 From e95412a03cb84d4d835047d44e55a2900cdfb0d1 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 31 May 2021 14:16:37 +0300 Subject: fix BooleanSetting and ChoiceSetting not working properly on initial launch as anon visitor (would show all as changed, empty selects) --- src/components/settings_modal/helpers/boolean_setting.js | 5 ++++- src/components/settings_modal/helpers/choice_setting.js | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src/components/settings_modal/helpers/boolean_setting.js') diff --git a/src/components/settings_modal/helpers/boolean_setting.js b/src/components/settings_modal/helpers/boolean_setting.js index 1dda49f2..dea77e10 100644 --- a/src/components/settings_modal/helpers/boolean_setting.js +++ b/src/components/settings_modal/helpers/boolean_setting.js @@ -18,8 +18,11 @@ export default { state () { return get(this.$parent, this.path) }, + defaultState () { + return get(this.$parent, this.pathDefault) + }, isChanged () { - return get(this.$parent, this.path) !== get(this.$parent, this.pathDefault) + return this.state !== undefined && this.state !== this.defaultState } }, methods: { diff --git a/src/components/settings_modal/helpers/choice_setting.js b/src/components/settings_modal/helpers/choice_setting.js index 042e8106..f4387e62 100644 --- a/src/components/settings_modal/helpers/choice_setting.js +++ b/src/components/settings_modal/helpers/choice_setting.js @@ -17,13 +17,13 @@ export default { return [firstSegment + 'DefaultValue', ...rest].join('.') }, state () { - return get(this.$parent, this.path) + return get(this.$parent, this.path) || get(this.$parent, this.pathDefault) }, defaultState () { return get(this.$parent, this.pathDefault) }, isChanged () { - return get(this.$parent, this.path) !== get(this.$parent, this.pathDefault) + return this.state !== undefined && this.state !== this.defaultState } }, methods: { -- cgit v1.2.3-70-g09d2 From 32d1a0e1813e706a298871361123636187cde9bc Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 31 May 2021 14:22:08 +0300 Subject: better approach --- src/components/settings_modal/helpers/boolean_setting.js | 9 +++++++-- src/components/settings_modal/helpers/choice_setting.js | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'src/components/settings_modal/helpers/boolean_setting.js') diff --git a/src/components/settings_modal/helpers/boolean_setting.js b/src/components/settings_modal/helpers/boolean_setting.js index dea77e10..5c52f697 100644 --- a/src/components/settings_modal/helpers/boolean_setting.js +++ b/src/components/settings_modal/helpers/boolean_setting.js @@ -16,13 +16,18 @@ export default { return [firstSegment + 'DefaultValue', ...rest].join('.') }, state () { - return get(this.$parent, this.path) + const value = get(this.$parent, this.path) + if (value === undefined) { + return this.defaultState + } else { + return value + } }, defaultState () { return get(this.$parent, this.pathDefault) }, isChanged () { - return this.state !== undefined && this.state !== this.defaultState + return this.state !== this.defaultState } }, methods: { diff --git a/src/components/settings_modal/helpers/choice_setting.js b/src/components/settings_modal/helpers/choice_setting.js index f4387e62..a15f6bac 100644 --- a/src/components/settings_modal/helpers/choice_setting.js +++ b/src/components/settings_modal/helpers/choice_setting.js @@ -17,13 +17,18 @@ export default { return [firstSegment + 'DefaultValue', ...rest].join('.') }, state () { - return get(this.$parent, this.path) || get(this.$parent, this.pathDefault) + const value = get(this.$parent, this.path) + if (value === undefined) { + return this.defaultState + } else { + return value + } }, defaultState () { return get(this.$parent, this.pathDefault) }, isChanged () { - return this.state !== undefined && this.state !== this.defaultState + return this.state !== this.defaultState } }, methods: { -- cgit v1.2.3-70-g09d2