Proyectos de Subversion Moodle

Rev

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

Rev 1 Rev 11
Línea 33... Línea 33...
33
    var isContact = function(element) {
33
    var isContact = function(element) {
34
        return element.attr('data-is-contact') == '1';
34
        return element.attr('data-is-contact') == '1';
35
    };
35
    };
Línea 36... Línea 36...
36
 
36
 
37
    /**
37
    /**
38
     * Record that the user is a contact.
38
     * Check the state of the element, if the current user has sent a contact request or not.
-
 
39
     *
-
 
40
     * @method isRequested
-
 
41
     * @param {object} element jQuery object for the button
-
 
42
     * @return {bool}
-
 
43
     */
-
 
44
    let isRequested = (element) => element.attr('data-is-requested') == '1';
-
 
45
 
-
 
46
    /**
-
 
47
     * Record that the user has sent a contact request.
39
     *
48
     *
40
     * @method setContact
49
     * @method setContactRequested
41
     * @param {object} element jQuery object for the button
50
     * @param {object} element jQuery object for the button
42
     */
51
     */
43
    var setContact = function(element) {
52
    var setContactRequested = function(element) {
44
        element.attr('data-is-contact', '1');
53
        element.attr('data-is-requested', '1');
Línea 45... Línea 54...
45
    };
54
    };
46
 
55
 
47
    /**
56
    /**
Línea 142... Línea 151...
142
                userid: getCurrentUserId(element),
151
                userid: getCurrentUserId(element),
143
                requesteduserid: getUserId(element),
152
                requesteduserid: getUserId(element),
144
            }
153
            }
145
        };
154
        };
146
        sendRequest(element, request).done(function() {
155
        sendRequest(element, request).done(function() {
147
            setContact(element);
156
            setContactRequested(element);
-
 
157
            element.addClass('disabled');
148
            const templateContext = {
158
            const templateContext = {
149
                'displaytextlabel': displayTextLabel(element)
159
                'displaytextlabel': displayTextLabel(element)
150
            };
160
            };
151
            Templates.render('message/remove_contact_button', templateContext).done(function(html, js) {
161
            Templates.render('message/contact_request_sent', templateContext).done(function(html, js) {
152
                Templates.replaceNodeContents(element, html, js);
162
                Templates.replaceNodeContents(element, html, js);
153
            });
163
            });
154
        });
164
        });
155
    };
165
    };
Línea 194... Línea 204...
194
     * @param {object} element jQuery object for the button
204
     * @param {object} element jQuery object for the button
195
     */
205
     */
196
    var enhance = function(element) {
206
    var enhance = function(element) {
197
        element = $(element);
207
        element = $(element);
Línea 198... Línea 208...
198
 
208
 
199
        if (!element.children('.loading-icon').length) {
209
        if (!element.children('.loading-icon').length && !isRequested(element)) {
200
            // Add the loading gif if it isn't already there.
210
            // Add the loading gif if it isn't already there.
201
            Templates.render('core/loading', {}).done(function(html, js) {
211
            Templates.render('core/loading', {}).done(function(html, js) {
202
                element.append(html, js);
212
                element.append(html, js);
203
            });
213
            });
Línea 206... Línea 216...
206
        CustomEvents.define(element, [CustomEvents.events.activate]);
216
        CustomEvents.define(element, [CustomEvents.events.activate]);
Línea 207... Línea 217...
207
 
217
 
208
        element.on(CustomEvents.events.activate, function(e, data) {
218
        element.on(CustomEvents.events.activate, function(e, data) {
209
            if (isContact(element)) {
219
            if (isContact(element)) {
210
                removeContact(element);
220
                removeContact(element);
211
            } else {
221
            } else if (!isRequested(element)) {
212
                addContact(element);
222
                addContact(element);
213
            }
223
            }
214
            e.preventDefault();
224
            e.preventDefault();
215
            data.originalEvent.preventDefault();
225
            data.originalEvent.preventDefault();