Update edit series sequence to show error when sequence has spaces #4314

This commit is contained in:
advplyr 2025-05-19 17:37:11 -05:00
parent 0772730336
commit 733afc3e29
3 changed files with 20 additions and 2 deletions

View File

@ -14,6 +14,7 @@
<ui-text-input-with-label ref="sequenceInput" v-model="selectedSeries.sequence" :label="$strings.LabelSequence" /> <ui-text-input-with-label ref="sequenceInput" v-model="selectedSeries.sequence" :label="$strings.LabelSequence" />
</div> </div>
</div> </div>
<div v-if="error" class="text-error text-sm mt-2 p-1">{{ error }}</div>
<div class="flex justify-end mt-2 p-1"> <div class="flex justify-end mt-2 p-1">
<ui-btn type="submit">{{ $strings.ButtonSubmit }}</ui-btn> <ui-btn type="submit">{{ $strings.ButtonSubmit }}</ui-btn>
</div> </div>
@ -34,12 +35,17 @@ export default {
existingSeriesNames: { existingSeriesNames: {
type: Array, type: Array,
default: () => [] default: () => []
},
originalSeriesSequence: {
type: String,
default: null
} }
}, },
data() { data() {
return { return {
el: null, el: null,
content: null content: null,
error: null
} }
}, },
watch: { watch: {
@ -85,10 +91,17 @@ export default {
} }
}, },
submitSeriesForm() { submitSeriesForm() {
this.error = null
if (this.$refs.newSeriesSelect) { if (this.$refs.newSeriesSelect) {
this.$refs.newSeriesSelect.blur() this.$refs.newSeriesSelect.blur()
} }
if (this.selectedSeries.sequence !== this.originalSeriesSequence && this.selectedSeries.sequence.includes(' ')) {
this.error = this.$strings.MessageSeriesSequenceCannotContainSpaces
return
}
this.$emit('submit') this.$emit('submit')
}, },
clickClose() { clickClose() {
@ -100,6 +113,7 @@ export default {
} }
}, },
setShow() { setShow() {
this.error = null
if (!this.el || !this.content) { if (!this.el || !this.content) {
this.init() this.init()
} }

View File

@ -2,7 +2,7 @@
<div> <div>
<ui-multi-select-query-input v-model="seriesItems" text-key="displayName" :label="$strings.LabelSeries" :disabled="disabled" readonly show-edit @edit="editSeriesItem" @add="addNewSeries" /> <ui-multi-select-query-input v-model="seriesItems" text-key="displayName" :label="$strings.LabelSeries" :disabled="disabled" readonly show-edit @edit="editSeriesItem" @add="addNewSeries" />
<modals-edit-series-input-inner-modal v-model="showSeriesForm" :selected-series="selectedSeries" :existing-series-names="existingSeriesNames" @submit="submitSeriesForm" /> <modals-edit-series-input-inner-modal v-model="showSeriesForm" :selected-series="selectedSeries" :existing-series-names="existingSeriesNames" :original-series-sequence="originalSeriesSequence" @submit="submitSeriesForm" />
</div> </div>
</template> </template>
@ -18,6 +18,7 @@ export default {
data() { data() {
return { return {
selectedSeries: null, selectedSeries: null,
originalSeriesSequence: null,
showSeriesForm: false showSeriesForm: false
} }
}, },
@ -59,6 +60,7 @@ export default {
..._series ..._series
} }
this.originalSeriesSequence = _series.sequence
this.showSeriesForm = true this.showSeriesForm = true
}, },
addNewSeries() { addNewSeries() {
@ -68,6 +70,7 @@ export default {
sequence: '' sequence: ''
} }
this.originalSeriesSequence = null
this.showSeriesForm = true this.showSeriesForm = true
}, },
submitSeriesForm() { submitSeriesForm() {

View File

@ -856,6 +856,7 @@
"MessageScheduleRunEveryWeekdayAtTime": "Run every {0} at {1}", "MessageScheduleRunEveryWeekdayAtTime": "Run every {0} at {1}",
"MessageSearchResultsFor": "Search results for", "MessageSearchResultsFor": "Search results for",
"MessageSelected": "{0} selected", "MessageSelected": "{0} selected",
"MessageSeriesSequenceCannotContainSpaces": "Series sequence cannot contain spaces",
"MessageServerCouldNotBeReached": "Server could not be reached", "MessageServerCouldNotBeReached": "Server could not be reached",
"MessageSetChaptersFromTracksDescription": "Set chapters using each audio file as a chapter and chapter title as the audio file name", "MessageSetChaptersFromTracksDescription": "Set chapters using each audio file as a chapter and chapter title as the audio file name",
"MessageShareExpirationWillBe": "Expiration will be <strong>{0}</strong>", "MessageShareExpirationWillBe": "Expiration will be <strong>{0}</strong>",