Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
Línea 21... Línea 21...
21
 * @class      default_notification_preferences
21
 * @class      default_notification_preferences
22
 * @copyright  2021 Moodle
22
 * @copyright  2021 Moodle
23
 * @author     Pau Ferrer Ocaña <pau@moodle.com>
23
 * @author     Pau Ferrer Ocaña <pau@moodle.com>
24
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25
 */
25
 */
-
 
26
import * as Ajax from 'core/ajax';
-
 
27
import Notification from 'core/notification';
-
 
28
import {add as addToast} from 'core/toast';
Línea 26... Línea 29...
26
 
29
 
27
const selectors = {
30
const selectors = {
28
    provider: '.defaultmessageoutputs .provider_enabled',
31
    provider: '.defaultmessageoutputs .provider_enabled',
29
    lockSetting: '.locked_message_setting',
32
    lockSetting: '.locked_message_setting',
Línea 43... Línea 46...
43
     */
46
     */
44
    const toggleLockSetting = (lockedElement) => {
47
    const toggleLockSetting = (lockedElement) => {
45
        const isEnabled = lockedElement.checked || false;
48
        const isEnabled = lockedElement.checked || false;
46
        const enabledId = lockedElement.id.replace('_locked[', '_enabled[');
49
        const enabledId = lockedElement.id.replace('_locked[', '_enabled[');
Línea 47... Línea 50...
47
 
50
 
48
        const enabledElement = document.getElementById(enabledId).closest('div.custom-control');
51
        const enabledElement = document.getElementById(enabledId).closest('div.form-check');
49
        enabledElement.classList.toggle('dimmed_text', isEnabled);
52
        enabledElement.classList.toggle('dimmed_text', isEnabled);
Línea 50... Línea 53...
50
    };
53
    };
51
 
54
 
Línea 62... Línea 65...
62
        elements.forEach((element) => {
65
        elements.forEach((element) => {
63
            element.toggleAttribute('disabled', !isEnabled);
66
            element.toggleAttribute('disabled', !isEnabled);
64
        });
67
        });
65
    };
68
    };
Línea -... Línea 69...
-
 
69
 
-
 
70
    /**
-
 
71
     * AJAX call to update the default notification element status on the server.
-
 
72
     *
-
 
73
     * @param {Boolean} isEnabled
-
 
74
     * @param {string} preference
-
 
75
     */
-
 
76
    const setDefaultNotification = (isEnabled, preference) => {
-
 
77
        // AJAX call to update the provider's enable status on the server.
-
 
78
        Ajax.call([{
-
 
79
            methodname: 'core_message_set_default_notification',
-
 
80
            args: {
-
 
81
                preference: preference,
-
 
82
                state: isEnabled ? 1 : 0
-
 
83
            }
-
 
84
        }])[0]
-
 
85
        .then((data) => addToast(data.successmessage))
-
 
86
        .catch(Notification.exception);
-
 
87
    };
66
 
88
 
Línea 67... Línea 89...
67
    const container = document.querySelector('.preferences-container');
89
    const container = document.querySelector('.preferences-container');
68
 
90
 
69
    container.querySelectorAll(selectors.provider).forEach((providerEnabledElement) => {
91
    container.querySelectorAll(selectors.provider).forEach((providerEnabledElement) => {
70
        // Set the initial statuses.
92
        // Set the initial statuses.
71
        if (!providerEnabledElement.checked) {
93
        if (!providerEnabledElement.checked) {
Línea 72... Línea 94...
72
            toggleEnableProviderSettings(providerEnabledElement);
94
            toggleEnableProviderSettings(providerEnabledElement);
73
        }
95
        }
-
 
96
 
-
 
97
        providerEnabledElement.addEventListener('change', (e) => {
-
 
98
            toggleEnableProviderSettings(e.target);
-
 
99
 
74
 
100
            setDefaultNotification(
75
        providerEnabledElement.addEventListener('change', (e) => {
101
                e.target.checked,
Línea 76... Línea 102...
76
            toggleEnableProviderSettings(e.target);
102
                providerEnabledElement.parentElement.parentElement.dataset.preference);
77
        });
103
        });
Línea 83... Línea 109...
83
            toggleLockSetting(lockedElement);
109
            toggleLockSetting(lockedElement);
84
        }
110
        }
Línea 85... Línea 111...
85
 
111
 
86
        lockedElement.addEventListener('change', (e) => {
112
        lockedElement.addEventListener('change', (e) => {
-
 
113
            toggleLockSetting(e.target);
-
 
114
 
-
 
115
            setDefaultNotification(
-
 
116
                e.target.checked,
-
 
117
                lockedElement.parentElement.parentElement.dataset.preference);
-
 
118
        });
-
 
119
    });
-
 
120
 
-
 
121
    container.querySelectorAll(selectors.enabledSetting).forEach((enabledElement) => {
-
 
122
        enabledElement.addEventListener('change', (e) => {
-
 
123
            setDefaultNotification(
-
 
124
                e.target.checked,
87
            toggleLockSetting(e.target);
125
                enabledElement.parentElement.parentElement.dataset.preference);
88
        });
126
        });
89
    });
127
    });
Línea 90... Línea 128...
90
};
128
};