Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

{"version":3,"file":"form-course-selector.min.js","sources":["../src/form-course-selector.js"],"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 * Course selector adaptor for auto-complete form element.\n *\n * @module     core/form-course-selector\n * @copyright  2016 Damyon Wiese <damyon@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since      3.1\n */\ndefine(['core/ajax', 'jquery'], function(ajax, $) {\n\n    return {\n        // Public variables and functions.\n        processResults: function(selector, data) {\n            // Mangle the results into an array of objects.\n            var results = [];\n            var i = 0;\n            var excludelist = String($(selector).data('exclude')).split(',');\n\n            for (i = 0; i < data.courses.length; i++) {\n                if (excludelist.indexOf(String(data.courses[i].id)) === -1) {\n                    results.push({value: data.courses[i].id, label: data.courses[i].displayname});\n                }\n            }\n            return results;\n        },\n\n        transport: function(selector, query, success, failure) {\n            var el = $(selector);\n\n            // Parse some data-attributes from the form element.\n            var requiredcapabilities = el.data('requiredcapabilities');\n            if (requiredcapabilities.trim() !== \"\") {\n                requiredcapabilities = requiredcapabilities.split(',');\n            } else {\n                requiredcapabilities = [];\n            }\n\n            var limittoenrolled = el.data('limittoenrolled');\n            var includefrontpage = el.data('includefrontpage');\n            var onlywithcompletion = el.data('onlywithcompletion');\n\n            // Build the query.\n            var promises = null;\n\n            if (typeof query === \"undefined\") {\n                query = '';\n            }\n\n            var searchargs = {\n                criterianame: 'search',\n                criteriavalue: query,\n                page: 0,\n                perpage: 100,\n                requiredcapabilities: requiredcapabilities,\n                limittoenrolled: limittoenrolled,\n                onlywithcompletion: onlywithcompletion\n            };\n\n            var calls = [{\n                methodname: 'core_course_search_courses', args: searchargs\n            }];\n            if (includefrontpage) {\n                calls.push({\n                    methodname: 'core_course_get_courses',\n                    args: {\n                        options: {\n                            ids: [includefrontpage]\n                        }\n                    }\n                });\n            }\n\n            // Go go go!\n            promises = ajax.call(calls);\n            $.when.apply($.when, promises).done(function(data, site) {\n                if (site && site.length == 1) {\n                    var frontpage = site.pop();\n                    var matches = query === ''\n                        || frontpage.fullname.toUpperCase().indexOf(query.toUpperCase()) > -1\n                        || frontpage.shortname.toUpperCase().indexOf(query.toUpperCase()) > -1;\n                    if (matches) {\n                        data.courses.splice(0, 0, frontpage);\n                    }\n                }\n                success(data);\n            }).fail(failure);\n        }\n    };\n});\n"],"names":["define","ajax","$","processResults","selector","data","results","i","excludelist","String","split","courses","length","indexOf","id","push","value","label","displayname","transport","query","success","failure","el","requiredcapabilities","trim","promises","limittoenrolled","includefrontpage","onlywithcompletion","calls","methodname","args","criterianame","criteriavalue","page","perpage","options","ids","call","when","apply","done","site","frontpage","pop","fullname","toUpperCase","shortname","splice","fail"],"mappings":";;;;;;;;AAuBAA,mCAAO,CAAC,YAAa,WAAW,SAASC,KAAMC,SAEpC,CAEHC,eAAgB,SAASC,SAAUC,UAE3BC,QAAU,GACVC,EAAI,EACJC,YAAcC,OAAOP,EAAEE,UAAUC,KAAK,YAAYK,MAAM,SAEvDH,EAAI,EAAGA,EAAIF,KAAKM,QAAQC,OAAQL,KACwB,IAArDC,YAAYK,QAAQJ,OAAOJ,KAAKM,QAAQJ,GAAGO,MAC3CR,QAAQS,KAAK,CAACC,MAAOX,KAAKM,QAAQJ,GAAGO,GAAIG,MAAOZ,KAAKM,QAAQJ,GAAGW,qBAGjEZ,SAGXa,UAAW,SAASf,SAAUgB,MAAOC,QAASC,aACtCC,GAAKrB,EAAEE,UAGPoB,qBAAuBD,GAAGlB,KAAK,wBAE/BmB,qBADgC,KAAhCA,qBAAqBC,OACED,qBAAqBd,MAAM,KAE3B,OAQvBgB,SALAC,gBAAkBJ,GAAGlB,KAAK,mBAC1BuB,iBAAmBL,GAAGlB,KAAK,oBAC3BwB,mBAAqBN,GAAGlB,KAAK,2BAKZ,IAAVe,QACPA,MAAQ,QAaRU,MAAQ,CAAC,CACTC,WAAY,6BAA8BC,KAX7B,CACbC,aAAc,SACdC,cAAed,MACfe,KAAM,EACNC,QAAS,IACTZ,qBAAsBA,qBACtBG,gBAAiBA,gBACjBE,mBAAoBA,sBAMpBD,kBACAE,MAAMf,KAAK,CACPgB,WAAY,0BACZC,KAAM,CACFK,QAAS,CACLC,IAAK,CAACV,sBAOtBF,SAAWzB,KAAKsC,KAAKT,OACrB5B,EAAEsC,KAAKC,MAAMvC,EAAEsC,KAAMd,UAAUgB,MAAK,SAASrC,KAAMsC,SAC3CA,MAAuB,GAAfA,KAAK/B,OAAa,KACtBgC,UAAYD,KAAKE,OACG,KAAVzB,OACPwB,UAAUE,SAASC,cAAclC,QAAQO,MAAM2B,gBAAkB,GACjEH,UAAUI,UAAUD,cAAclC,QAAQO,MAAM2B,gBAAkB,IAErE1C,KAAKM,QAAQsC,OAAO,EAAG,EAAGL,WAGlCvB,QAAQhB,SACT6C,KAAK5B"}