%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/bitnami/apps/moodle/htdocs.backup/htdocs/message/amd/build/
Upload File :
Create Path :
Current File : /opt/bitnami/apps/moodle/htdocs.backup/htdocs/message/amd/build/toggle_contact_button.min.js.map

{"version":3,"sources":["../src/toggle_contact_button.js"],"names":["define","$","Ajax","Templates","Notification","CustomEvents","isContact","element","attr","setContact","setNotContact","getUserId","isLoading","hasClass","sendRequest","request","Deferred","addClass","call","fail","exception","always","removeClass","removeAttr","addContact","methodname","args","userids","done","render","html","js","replaceNodeContents","removeContact","enhance","children","length","append","events","activate","on","e","data","preventDefault","originalEvent"],"mappings":"AAwBAA,OAAM,sCAAC,CAAC,QAAD,CAAW,WAAX,CAAwB,gBAAxB,CAA0C,mBAA1C,CAA+D,gCAA/D,CAAD,CACE,SAASC,CAAT,CAAYC,CAAZ,CAAkBC,CAAlB,CAA6BC,CAA7B,CAA2CC,CAA3C,CAAyD,IASzDC,CAAAA,CAAS,CAAG,SAASC,CAAT,CAAkB,CAC9B,MAA0C,GAAnC,EAAAA,CAAO,CAACC,IAAR,CAAa,iBAAb,CACV,CAX4D,CAmBzDC,CAAU,CAAG,SAASF,CAAT,CAAkB,CAC/BA,CAAO,CAACC,IAAR,CAAa,iBAAb,CAAgC,GAAhC,CACH,CArB4D,CA6BzDE,CAAa,CAAG,SAASH,CAAT,CAAkB,CAClCA,CAAO,CAACC,IAAR,CAAa,iBAAb,CAAgC,GAAhC,CACH,CA/B4D,CAwCzDG,CAAS,CAAG,SAASJ,CAAT,CAAkB,CAC9B,MAAOA,CAAAA,CAAO,CAACC,IAAR,CAAa,aAAb,CACV,CA1C4D,CAmDzDI,CAAS,CAAG,SAASL,CAAT,CAAkB,CAC9B,MAAOA,CAAAA,CAAO,CAACM,QAAR,CAAiB,SAAjB,GAA+BN,CAAO,CAACC,IAAR,CAAa,UAAb,CACzC,CArD4D,CAgEzDM,CAAW,CAAG,SAASP,CAAT,CAAkBQ,CAAlB,CAA2B,CACzC,GAAIH,CAAS,CAACL,CAAD,CAAb,CAAwB,CACpB,MAAON,CAAAA,CAAC,CAACe,QAAF,EACV,CAEDT,CAAO,CAACU,QAAR,CAAiB,SAAjB,EACAV,CAAO,CAACC,IAAR,CAAa,UAAb,CAAyB,UAAzB,EAEA,MAAON,CAAAA,CAAI,CAACgB,IAAL,CAAU,CAACH,CAAD,CAAV,EAAqB,CAArB,EACFI,IADE,CACGf,CAAY,CAACgB,SADhB,EAEFC,MAFE,CAEK,UAAW,CACfd,CAAO,CAACe,WAAR,CAAoB,SAApB,EACAf,CAAO,CAACgB,UAAR,CAAmB,UAAnB,CACH,CALE,CAMV,CA9E4D,CAwFzDC,CAAU,CAAG,SAASjB,CAAT,CAAkB,CAC/B,GAAIK,CAAS,CAACL,CAAD,CAAb,CAAwB,CACpB,MACH,CAED,GAAIQ,CAAAA,CAAO,CAAG,CACVU,UAAU,CAAE,8BADF,CAEVC,IAAI,CAAE,CACFC,OAAO,CAAE,CAAChB,CAAS,CAACJ,CAAD,CAAV,CADP,CAFI,CAAd,CAMAO,CAAW,CAACP,CAAD,CAAUQ,CAAV,CAAX,CAA8Ba,IAA9B,CAAmC,UAAW,CAC1CnB,CAAU,CAACF,CAAD,CAAV,CACAJ,CAAS,CAAC0B,MAAV,CAAiB,+BAAjB,CAAkD,EAAlD,EAAsDD,IAAtD,CAA2D,SAASE,CAAT,CAAeC,CAAf,CAAmB,CAC1E5B,CAAS,CAAC6B,mBAAV,CAA8BzB,CAA9B,CAAuCuB,CAAvC,CAA6CC,CAA7C,CACH,CAFD,CAGH,CALD,CAMH,CAzG4D,CAmHzDE,CAAa,CAAG,SAAS1B,CAAT,CAAkB,CAClC,GAAIK,CAAS,CAACL,CAAD,CAAb,CAAwB,CACpB,MACH,CAED,GAAIQ,CAAAA,CAAO,CAAG,CACVU,UAAU,CAAE,8BADF,CAEVC,IAAI,CAAE,CACFC,OAAO,CAAE,CAAChB,CAAS,CAACJ,CAAD,CAAV,CADP,CAFI,CAAd,CAOAO,CAAW,CAACP,CAAD,CAAUQ,CAAV,CAAX,CAA8Ba,IAA9B,CAAmC,UAAW,CAC1ClB,CAAa,CAACH,CAAD,CAAb,CACAJ,CAAS,CAAC0B,MAAV,CAAiB,4BAAjB,CAA+C,EAA/C,EAAmDD,IAAnD,CAAwD,SAASE,CAAT,CAAeC,CAAf,CAAmB,CACvE5B,CAAS,CAAC6B,mBAAV,CAA8BzB,CAA9B,CAAuCuB,CAAvC,CAA6CC,CAA7C,CACH,CAFD,CAGH,CALD,CAMH,CArI4D,CAqK7D,MAA0D,CACtDG,OAAO,CAxBG,QAAVA,CAAAA,OAAU,CAAS3B,CAAT,CAAkB,CAC5BA,CAAO,CAAGN,CAAC,CAACM,CAAD,CAAX,CAEA,GAAI,CAACA,CAAO,CAAC4B,QAAR,CAAiB,eAAjB,EAAkCC,MAAvC,CAA+C,CAE3CjC,CAAS,CAAC0B,MAAV,CAAiB,cAAjB,CAAiC,EAAjC,EAAqCD,IAArC,CAA0C,SAASE,CAAT,CAAeC,CAAf,CAAmB,CACzDxB,CAAO,CAAC8B,MAAR,CAAeP,CAAf,CAAqBC,CAArB,CACH,CAFD,CAGH,CAED1B,CAAY,CAACL,MAAb,CAAoBO,CAApB,CAA6B,CAACF,CAAY,CAACiC,MAAb,CAAoBC,QAArB,CAA7B,EAEAhC,CAAO,CAACiC,EAAR,CAAWnC,CAAY,CAACiC,MAAb,CAAoBC,QAA/B,CAAyC,SAASE,CAAT,CAAYC,CAAZ,CAAkB,CACvD,GAAIpC,CAAS,CAACC,CAAD,CAAb,CAAwB,CACpB0B,CAAa,CAAC1B,CAAD,CAChB,CAFD,IAEO,CACHiB,CAAU,CAACjB,CAAD,CACb,CACDkC,CAAC,CAACE,cAAF,GACAD,CAAI,CAACE,aAAL,CAAmBD,cAAnB,EACH,CARD,CASH,CAEyD,CAG7D,CAzKK,CAAN","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Module to add/remove contact using ajax.\n *\n * @module     core_message/toggle_contact_button\n * @class      toggle_contact_button\n * @package    message\n * @copyright  2016 Ryan Wyllie <ryan@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery', 'core/ajax', 'core/templates', 'core/notification', 'core/custom_interaction_events'],\n        function($, Ajax, Templates, Notification, CustomEvents) {\n\n    /**\n     * Check the state of the element, if the current user is a contact or not.\n     *\n     * @method isContact\n     * @param {object} element jQuery object for the button\n     * @return {bool}\n     */\n    var isContact = function(element) {\n        return element.attr('data-is-contact') == '1';\n    };\n\n    /**\n     * Record that the user is a contact.\n     *\n     * @method setContact\n     * @param {object} element jQuery object for the button\n     */\n    var setContact = function(element) {\n        element.attr('data-is-contact', '1');\n    };\n\n    /**\n     * Record that the user is not a contact.\n     *\n     * @method setNotContact\n     * @param {object} element jQuery object for the button\n     */\n    var setNotContact = function(element) {\n        element.attr('data-is-contact', '0');\n    };\n\n    /**\n     * Get the id for the user being viewed.\n     *\n     * @method getUserId\n     * @param {object} element jQuery object for the button\n     * @return {int}\n     */\n    var getUserId = function(element) {\n        return element.attr('data-userid');\n    };\n\n    /**\n     * Check if this element is currently loading.\n     *\n     * @method isLoading\n     * @param {object} element jQuery object for the button\n     * @return {bool}\n     */\n    var isLoading = function(element) {\n        return element.hasClass('loading') || element.attr('disabled');\n    };\n\n    /**\n     * Sends an ajax request to the server and handles the element state\n     * while the request is being performed.\n     *\n     * @method sendRequest\n     * @param {object} element jQuery object for the button\n     * @param {object} request Request hash to send\n     * @return {object} jQuery promise\n     */\n    var sendRequest = function(element, request) {\n        if (isLoading(element)) {\n            return $.Deferred();\n        }\n\n        element.addClass('loading');\n        element.attr('disabled', 'disabled');\n\n        return Ajax.call([request])[0]\n            .fail(Notification.exception)\n            .always(function() {\n                element.removeClass('loading');\n                element.removeAttr('disabled');\n            });\n    };\n\n    /**\n     * Send a request to the server to add the current user as\n     * a contact. The contents of the button are changed to the\n     * remove contact button upon success.\n     *\n     * @method addContact\n     * @param {object} element jQuery object for the button\n     */\n    var addContact = function(element) {\n        if (isLoading(element)) {\n            return;\n        }\n\n        var request = {\n            methodname: 'core_message_create_contacts',\n            args: {\n                userids: [getUserId(element)],\n            }\n        };\n        sendRequest(element, request).done(function() {\n            setContact(element);\n            Templates.render('message/remove_contact_button', {}).done(function(html, js) {\n                Templates.replaceNodeContents(element, html, js);\n            });\n        });\n    };\n\n    /**\n     * Send a request to the server to remove the current user as\n     * a contact. The contents of the button are changed to the\n     * add contact button upon success.\n     *\n     * @method removeContact\n     * @param {object} element jQuery object for the button\n     */\n    var removeContact = function(element) {\n        if (isLoading(element)) {\n            return;\n        }\n\n        var request = {\n            methodname: 'core_message_delete_contacts',\n            args: {\n                userids: [getUserId(element)],\n            }\n        };\n\n        sendRequest(element, request).done(function() {\n            setNotContact(element);\n            Templates.render('message/add_contact_button', {}).done(function(html, js) {\n                Templates.replaceNodeContents(element, html, js);\n            });\n        });\n    };\n\n    /**\n     * Enhances the given element with a loading gif and event handles to make\n     * ajax requests to add or remove a contact where appropriate.\n     *\n     * @method enhance\n     * @param {object} element jQuery object for the button\n     */\n    var enhance = function(element) {\n        element = $(element);\n\n        if (!element.children('.loading-icon').length) {\n            // Add the loading gif if it isn't already there.\n            Templates.render('core/loading', {}).done(function(html, js) {\n                element.append(html, js);\n            });\n        }\n\n        CustomEvents.define(element, [CustomEvents.events.activate]);\n\n        element.on(CustomEvents.events.activate, function(e, data) {\n            if (isContact(element)) {\n                removeContact(element);\n            } else {\n                addContact(element);\n            }\n            e.preventDefault();\n            data.originalEvent.preventDefault();\n        });\n    };\n\n    return /** @alias module:message/toggle_contact_button */ {\n        enhance: enhance\n    };\n});\n"],"file":"toggle_contact_button.min.js"}

Zerion Mini Shell 1.0