aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/bootstrap/admission.js
blob: c04ff24aadf3ade45e528606c107be4514eb9dc1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* ------------------------------------------------------------------------
 * Anmeldeverfahren und -sets
 * ------------------------------------------------------------------------ */

STUDIP.ready(function () {

    /**
     * Check for admission rules with Vue components
     * @type {NodeListOf<Element>}
     */
    const containers = document.querySelectorAll('[data-admission-rule]');

    containers.forEach(container => {

        const ruleType = container.dataset.admissionRule;

        if (STUDIP.Admission.availableRules[ruleType] !== undefined) {

            import('@/vue/components/admission/' + STUDIP.Admission.availableRules[ruleType])
                .then(result => {
                    const components = {};
                    components[ruleType] = result.default;

                    STUDIP.Vue.load().then(({ createApp }) => {
                        createApp({
                            el: container,
                            components: components
                        });
                    });
                });

        }
    });

    $(document).on('change', 'tr.course input', function() {
        STUDIP.Admission.toggleNotSavedAlert();
    });

    $('a.userlist-delete-user').on('click', function() {
        $(this).closest('tr').remove();
        return false;
    });

    $('#courseset-form .autosave').on('click', () => {
        STUDIP.Admission.autosaveCourseset();
    });

    STUDIP.ready(() => {
        $('#toggle-date-link').on('click', () => {
            $('#admissionrule-valid-date').toggleClass('hidden-js');
        });
    });
});