View | Details | Raw Unified | Return to bug 10190
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/CirculationTriggers/CirculationTriggersFormAdd.vue (-3 / +6 lines)
Lines 126-132 Link Here
126
                <p>{{ $__("Loading context...") }}</p>
126
                <p>{{ $__("Loading context...") }}</p>
127
            </div>
127
            </div>
128
            <fieldset class="rows" v-if="alertMessage">
128
            <fieldset class="rows" v-if="alertMessage">
129
                <div class="alert alert-info">{{ alertMessage }}</div>
129
                <div class="alert alert-warning">{{ alertMessage }}</div>
130
            </fieldset>
130
            </fieldset>
131
            <fieldset
131
            <fieldset
132
                class="rows"
132
                class="rows"
Lines 601-607 export default { Link Here
601
601
602
            // in edit mode, check for changes from elsewhere to the rule set being edited
602
            // in edit mode, check for changes from elsewhere to the rule set being edited
603
            if (this.editMode === "edit") {
603
            if (this.editMode === "edit") {
604
                const ruleSetInDb = await this.getSelectedRuleSet(this.context);
604
                const ruleSetInDb = await this.getSelectedRuleSet(
605
                    this.context,
606
                    true
607
                );
605
                if (
608
                if (
606
                    this.hasConflict(
609
                    this.hasConflict(
607
                        ruleSetInDb,
610
                        ruleSetInDb,
Lines 756-762 export default { Link Here
756
                : Infinity;
759
                : Infinity;
757
        },
760
        },
758
        setFilteredLetters() {
761
        setFilteredLetters() {
759
            const library = this.currentRuleSet.library_id;
762
            const library = this.context.library_id;
760
            const byCode = new Map();
763
            const byCode = new Map();
761
764
762
            for (const letter of this.letters) {
765
            for (const letter of this.letters) {
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/CirculationTriggers/CirculationTriggersFormConfirmReset.vue (-1 / +1 lines)
Lines 259-265 Link Here
259
        </fieldset>
259
        </fieldset>
260
260
261
        <fieldset class="rows" v-if="alertMessage">
261
        <fieldset class="rows" v-if="alertMessage">
262
            <div class="alert alert-info">{{ alertMessage }}</div>
262
            <div class="alert alert-warning">{{ alertMessage }}</div>
263
        </fieldset>
263
        </fieldset>
264
    </CirculationTriggersForm>
264
    </CirculationTriggersForm>
265
</template>
265
</template>
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/CirculationTriggers/CirculationTriggersFormConfirmTriggerDelete.vue (-1 / +1 lines)
Lines 33-39 Link Here
33
                    }}
33
                    }}
34
                </p>
34
                </p>
35
            </div>
35
            </div>
36
            <div class="alert alert-info" v-if="alertMessage">
36
            <div class="alert alert-warning" v-if="alertMessage">
37
                {{ alertMessage }}
37
                {{ alertMessage }}
38
            </div>
38
            </div>
39
        </fieldset>
39
        </fieldset>
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/CirculationTriggers/CirculationTriggersList.vue (+15 lines)
Lines 352-357 export default { Link Here
352
            allEffectiveRuleSets,
352
            allEffectiveRuleSets,
353
            librariesWithRules,
353
            librariesWithRules,
354
            storeInitialized,
354
            storeInitialized,
355
            metaInitialized,
355
        } = storeToRefs(circRulesStore);
356
        } = storeToRefs(circRulesStore);
356
357
357
        return {
358
        return {
Lines 372-377 export default { Link Here
372
            isLastTrigger,
373
            isLastTrigger,
373
            getLibrariesWithRules,
374
            getLibrariesWithRules,
374
            storeInitialized,
375
            storeInitialized,
376
            metaInitialized,
375
            from_branch,
377
            from_branch,
376
        };
378
        };
377
    },
379
    },
Lines 483-488 export default { Link Here
483
                    this.$route.fullPath.includes("refresh") ||
485
                    this.$route.fullPath.includes("refresh") ||
484
                    this.$route.path.endsWith("circulation_triggers")
486
                    this.$route.path.endsWith("circulation_triggers")
485
                ) {
487
                ) {
488
                    if (!this.metaInitialized) {
489
                        await new Promise(resolve => {
490
                            const stop = this.$watch(
491
                                "metaInitialized",
492
                                val => {
493
                                    if (val) {
494
                                        stop();
495
                                        resolve();
496
                                    }
497
                                }
498
                            );
499
                        });
500
                    }
486
                    await this.$nextTick();
501
                    await this.$nextTick();
487
                    await this.filterRuleSetsbySearchParam();
502
                    await this.filterRuleSetsbySearchParam();
488
                }
503
                }
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/CirculationTriggers/Main.vue (-1 / +5 lines)
Lines 29-35 import { inject } from "vue"; Link Here
29
export default {
29
export default {
30
    setup() {
30
    setup() {
31
        const circRulesStore = inject("circRulesStore");
31
        const circRulesStore = inject("circRulesStore");
32
        circRulesStore.init();
32
        circRulesStore.init(default_view);
33
        letters.unshift({
33
        letters.unshift({
34
            name: "No letter",
34
            name: "No letter",
35
            code: "",
35
            code: "",
Lines 51-56 export default { Link Here
51
</script>
51
</script>
52
52
53
<style>
53
<style>
54
.page-section.bg-info {
55
    background-color: #DAECFB !important;
56
}
57
54
form .v-select {
58
form .v-select {
55
    display: inline-block;
59
    display: inline-block;
56
    background-color: white;
60
    background-color: white;
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/stores/circulation-rules.js (-17 / +16 lines)
Lines 20-25 export const useCircRulesStore = defineStore("circRules", () => { Link Here
20
        currentPatronCategoryId: null,
20
        currentPatronCategoryId: null,
21
        currentItemTypeId: null,
21
        currentItemTypeId: null,
22
        triggerCounts: { "*": 0 },
22
        triggerCounts: { "*": 0 },
23
        metaInitialized: false,
23
        // references
24
        // references
24
        itemTypes: [],
25
        itemTypes: [],
25
        libraries: [],
26
        libraries: [],
Lines 44-53 export const useCircRulesStore = defineStore("circRules", () => { Link Here
44
45
45
    const actions = {
46
    const actions = {
46
        // controllers
47
        // controllers
47
        async init() {
48
        async init(defaultLibraryId = "*") {
48
            await this.getItemTypes();
49
            await this.getItemTypes();
49
            await this.getLibraries();
50
            await this.getLibraries();
50
            await this.getPatronCategories();
51
            await this.getPatronCategories();
52
            this.currentLibraryId = defaultLibraryId;
53
            this.metaInitialized = true;
51
        },
54
        },
52
        async loadUserPermissions() {
55
        async loadUserPermissions() {
53
            if (this.userPermissions !== null) {
56
            if (this.userPermissions !== null) {
Lines 390-416 export const useCircRulesStore = defineStore("circRules", () => { Link Here
390
        },
393
        },
391
        // repositories
394
        // repositories
392
        async deleteRuleSet(ruleSet, triggerNumber) {
395
        async deleteRuleSet(ruleSet, triggerNumber) {
396
            if (!this.hasExplicitRulesForTrigger(ruleSet, triggerNumber)) {
397
                return;
398
            }
399
393
            const ruleSetInDb = await this.getSelectedRuleSet(ruleSet.context);
400
            const ruleSetInDb = await this.getSelectedRuleSet(ruleSet.context);
394
401
395
            if (this.hasConflict(ruleSet, ruleSetInDb, triggerNumber)) {
402
            if (this.hasConflict(ruleSet, ruleSetInDb, triggerNumber)) {
396
                throw "The rule set for the selected trigger context could not be reset as it was updated elsewhere. Please see the updated trigger above.";
403
                throw "The rule set for the selected trigger context could not be reset as it was updated elsewhere. Please see the updated trigger above.";
397
            }
404
            }
398
405
399
            const rulesForDeletion = { context: ruleSet.context };
406
            const rulesForDeletion = {
400
407
                context: ruleSet.context,
401
            if (ruleSet[`overdue_${triggerNumber}_delay`] !== null) {
408
                [`overdue_${triggerNumber}_delay`]: null,
402
                rulesForDeletion[`overdue_${triggerNumber}_delay`] = null;
409
                [`overdue_${triggerNumber}_notice`]: null,
403
            }
410
                [`overdue_${triggerNumber}_restrict`]: null,
404
            if (ruleSet[`overdue_${triggerNumber}_notice`] !== null) {
411
                [`overdue_${triggerNumber}_mtt`]: null,
405
                rulesForDeletion[`overdue_${triggerNumber}_notice`] = null;
412
            };
406
            }
413
            await this.updateCircRuleSets(rulesForDeletion, triggerNumber);
407
            if (ruleSet[`overdue_${triggerNumber}_restrict`] !== null) {
408
                rulesForDeletion[`overdue_${triggerNumber}_restrict`] = null;
409
            }
410
            if (ruleSet[`overdue_${triggerNumber}_mtt`] !== null) {
411
                rulesForDeletion[`overdue_${triggerNumber}_mtt`] = null;
412
            }
413
            this.updateCircRuleSets(rulesForDeletion, triggerNumber);
414
        },
414
        },
415
        async getLibrariesWithRules() {
415
        async getLibrariesWithRules() {
416
            const client = APIClient.circRule;
416
            const client = APIClient.circRule;
417
- 

Return to bug 10190