From e923913d5d81876d8fe0c40e4a6f592bad28149a Mon Sep 17 00:00:00 2001 From: jovuit <jvuitton@disroot.org> Date: Mon, 11 Mar 2019 10:11:00 +0100 Subject: [PATCH] Moved privacy/visibility labels out of Form.vue to use the ones in mixins/Translations.vue --- changes/changelog.d/748.enhancement | 1 + front/src/components/mixins/Translations.vue | 1 + front/src/components/playlists/Form.vue | 8 +++-- front/src/views/content/libraries/Card.vue | 35 +++++++++----------- front/src/views/content/libraries/Form.vue | 12 ++----- 5 files changed, 26 insertions(+), 31 deletions(-) create mode 100644 changes/changelog.d/748.enhancement diff --git a/changes/changelog.d/748.enhancement b/changes/changelog.d/748.enhancement new file mode 100644 index 00000000..1515b08a --- /dev/null +++ b/changes/changelog.d/748.enhancement @@ -0,0 +1 @@ +Labels for privacy levels are now consistently grabbed from a common source instead of being hardcoded everytime they are needed. diff --git a/front/src/components/mixins/Translations.vue b/front/src/components/mixins/Translations.vue index 0ecc5338..e58ca8ad 100644 --- a/front/src/components/mixins/Translations.vue +++ b/front/src/components/mixins/Translations.vue @@ -10,6 +10,7 @@ export default { choices: { me: this.$pgettext('Content/Settings/Dropdown', 'Nobody except me'), instance: this.$pgettext('Content/Settings/Dropdown', 'Everyone on this instance'), + everyone: this.$pgettext('Content/Settings/Dropdown', 'Everyone, across all instances'), } } }, diff --git a/front/src/components/playlists/Form.vue b/front/src/components/playlists/Form.vue index e7a761b3..4fc905fc 100644 --- a/front/src/components/playlists/Form.vue +++ b/front/src/components/playlists/Form.vue @@ -42,10 +42,12 @@ <script> import $ from 'jquery' import axios from 'axios' +import TranslationsMixin from "@/components/mixins/Translations" import logger from '@/logging' export default { + mixins: [TranslationsMixin], props: { title: {type: Boolean, default: true}, playlist: {type: Object, default: null} @@ -78,15 +80,15 @@ export default { return [ { value: 'me', - label: this.$pgettext('Content/Playlist/Dropdown', 'Nobody except me') + label: this.sharedLabels.fields.privacy_level.choices['me'] }, { value: 'instance', - label: this.$pgettext('Content/Playlist/Dropdown', 'Everyone on this instance') + label: this.sharedLabels.fields.privacy_level.choices['instance'] }, { value: 'everyone', - label: this.$pgettext('Content/Playlist/Dropdown', 'Everyone') + label: this.sharedLabels.fields.privacy_level.choices['everyone'] } ] } diff --git a/front/src/views/content/libraries/Card.vue b/front/src/views/content/libraries/Card.vue index 3eb44f72..5af71c4f 100644 --- a/front/src/views/content/libraries/Card.vue +++ b/front/src/views/content/libraries/Card.vue @@ -6,19 +6,19 @@ <span v-if="library.privacy_level === 'me'" class="right floated" - :data-tooltip="labels.tooltips.me"> + :data-tooltip="privacy_tooltips('me')"> <i class="small lock icon"></i> </span> <span v-else-if="library.privacy_level === 'instance'" class="right floated" - :data-tooltip="labels.tooltips.instance"> + :data-tooltip="privacy_tooltips('instance')"> <i class="small circle outline icon"></i> </span> <span v-else-if="library.privacy_level === 'everyone'" class="right floated" - :data-tooltip="labels.tooltips.everyone"> + :data-tooltip="privacy_tooltips('everyone')"> <i class="small globe icon"></i> </span> </div> @@ -32,7 +32,7 @@ <div class="ui hidden divider"></div> </div> <div class="content"> - <span v-if="library.size" class="right floated" :data-tooltip="labels.tooltips.size"> + <span v-if="library.size" class="right floated" :data-tooltip="size_label"> <i class="database icon"></i> {{ library.size | humanSize }} </span> @@ -50,25 +50,22 @@ </div> </div> </template> + <script> +import TranslationsMixin from '@/components/mixins/Translations' + export default { + mixins: [TranslationsMixin], props: ['library'], + methods: { + privacy_tooltips (level) { + return 'Visibility: ' + this.sharedLabels.fields.privacy_level.choices[level].toLowerCase() + }, + }, computed: { - labels () { - let me = this.$pgettext('Content/Library/Card.Help text', 'Visibility: nobody except me') - let instance = this.$pgettext('Content/Library/Card.Help text', 'Visibility: everyone on this instance') - let everyone = this.$pgettext('Content/Library/Card.Help text', 'Visibility: everyone, including other instances') - let size = this.$pgettext('Content/Library/Card.Help text', 'Total size of the files in this library') - - return { - tooltips: { - me, - instance, - everyone, - size - } - } - } + size_label () { + return this.$pgettext('Content/Library/Card.Help text', 'Total size of the files in this library') + }, } } </script> diff --git a/front/src/views/content/libraries/Form.vue b/front/src/views/content/libraries/Form.vue index 00db4238..c269e272 100644 --- a/front/src/views/content/libraries/Form.vue +++ b/front/src/views/content/libraries/Form.vue @@ -19,7 +19,7 @@ <label><translate translate-context="Content/Library/Dropdown.Label">Visibility</translate></label> <p><translate translate-context="Content/Library/Paragraph">You are able to share your library with other people, regardless of its visibility.</translate></p> <select class="ui dropdown" v-model="currentVisibilityLevel"> - <option :value="c" v-for="c in ['me', 'instance', 'everyone']">{{ labels.visibility[c] }}</option> + <option :value="c" v-for="c in ['me', 'instance', 'everyone']">{{ sharedLabels.fields.privacy_level.choices[c] }}</option> </select> </div> <button class="ui submit button" type="submit"> @@ -45,8 +45,10 @@ <script> import axios from 'axios' +import MixinsTranslation from '@/components/mixins/Translations.vue' export default { + mixins: [MixinsTranslation], props: ['library'], data () { let d = { @@ -69,17 +71,9 @@ export default { labels () { let namePlaceholder = this.$pgettext('Content/Library/Input.Placeholder', 'My awesome library') let descriptionPlaceholder = this.$pgettext('Content/Library/Input.Placeholder', 'This library contains my personal music, I hope you like it.') - let me = this.$pgettext('Content/Library/Dropdown', 'Nobody except me') - let instance = this.$pgettext('Content/Library/Dropdown', 'Everyone on this instance') - let everyone = this.$pgettext('Content/Library/Dropdown', 'Everyone, across all instances') return { namePlaceholder, descriptionPlaceholder, - visibility: { - me, - instance, - everyone - } } } }, -- GitLab