AutorÃa | Ultima modificación | Ver Log |
{"version":3,"file":"calendar_filter.min.js","sources":["../src/calendar_filter.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 * This module is responsible for the calendar filter.\n *\n * @module core_calendar/calendar_filter\n * @copyright 2017 Andrew Nicols <andrew@nicols.co.uk>\n * @license http://www.gnu.org/copyleft/gpl.html
GNU GPL v3 or later\n */\ndefine([\n 'jquery',\n 'core_calendar/selectors',\n 'core_calendar/events',\n 'core/str',\n 'core/templates',\n],\nfunction(\n $,\n CalendarSelectors,\n CalendarEvents,\n Str,\n Templates\n) {\n\n var registerEventListeners = function(root) {\n root.on('click', CalendarSelectors.eventFilterItem, function(e) {\n var target = $(e.currentTarget);\n\n toggleFilter(target);\n\n e.preventDefault();\n });\n\n $('body').on(CalendarEvents.viewUpdated, function() {\n var filters = root.find(CalendarSelectors.eventFilterItem);\n\n filters.each(function(i, filter) {\n filter = $(filter);\n if (filter.data('eventtype-hidden')) {\n var data = getFilterData(filter);\n fireFilterChangedEvent(data);\n }\n });\n });\n };\n\n var toggleFilter = function(target) {\n var data = getFil
terData(target);\n\n // Toggle the hidden. We need to render the template before we change the value.\n data.hidden = !data.hidden;\n\n M.util.js_pending(\"core_calendar/calendar_filter:toggleFilter\");\n return Str.get_string('eventtype' + data.eventtype, 'calendar')\n .then(function(nameStr) {\n data.name = nameStr;\n data.icon = true;\n data.key = 'i/' + data.eventtype + 'event';\n data.component = 'core';\n\n return data;\n })\n .then(function(context) {\n return Templates.render('core_calendar/event_filter_key', context);\n })\n .then(function(html, js) {\n return Templates.replaceNode(target, html, js);\n })\n .then(function() {\n fireFilterChangedEvent(data);\n M.util.js_complete(\"core_calendar/calendar_filter:toggleFilter\");\n return;\n });\n };\n\n /**\n * Fire the filterChanged event for the spec
ified data.\n *\n * @param {object} data The data to include\n */\n var fireFilterChangedEvent = function(data) {\n M.util.js_pending(\"month-mini-filterChanged\");\n $('body').trigger(CalendarEvents.filterChanged, {\n type: data.eventtype,\n hidden: data.hidden,\n });\n M.util.js_complete(\"month-mini-filterChanged\");\n };\n\n /**\n * Get the filter data for the specified target.\n *\n * @param {jQuery} target The target node\n * @return {Object}\n */\n var getFilterData = function(target) {\n return {\n eventtype: target.data('eventtype'),\n hidden: target.data('eventtype-hidden'),\n };\n };\n\n return {\n init: function(root) {\n root = $(root);\n\n registerEventListeners(root);\n }\n };\n});\n"],"names":["define","$","CalendarSelectors","CalendarEvents","Str","Templates","toggleFilter","target","data","getFilterData","hidden",
"M","util","js_pending","get_string","eventtype","then","nameStr","name","icon","key","component","context","render","html","js","replaceNode","fireFilterChangedEvent","js_complete","trigger","filterChanged","type","init","root","on","eventFilterItem","e","currentTarget","preventDefault","viewUpdated","find","each","i","filter","registerEventListeners"],"mappings":";;;;;;;AAsBAA,uCAAO,CACH,SACA,0BACA,uBACA,WACA,mBAEJ,SACIC,EACAC,kBACAC,eACAC,IACAC,eAyBIC,aAAe,SAASC,YACpBC,KAAOC,cAAcF,eAGzBC,KAAKE,QAAUF,KAAKE,OAEpBC,EAAEC,KAAKC,WAAW,8CACXT,IAAIU,WAAW,YAAcN,KAAKO,UAAW,YACnDC,MAAK,SAASC,gBACXT,KAAKU,KAAOD,QACZT,KAAKW,MAAO,EACZX,KAAKY,IAAM,KAAOZ,KAAKO,UAAY,QACnCP,KAAKa,UAAY,OAEVb,QAEVQ,MAAK,SAASM,gBACJjB,UAAUkB,OAAO,iCAAkCD,YAE7DN,MAAK,SAASQ,KAAMC,WACVpB,UAAUqB,YAAYnB,OAAQiB,KAAMC,OAE9CT,MAAK,WACFW,uBAAuBnB,MACvBG,EAAEC,KAAKgB,YAAY,kDAUvBD,uBAAyB,SAASnB,MAClCG,EAAEC,KAAKC,WAAW,4BAClBZ,EAAE,QAAQ4B,QAAQ1B,eAAe2B,cAAe,CAC5CC,KAAMvB,KAAKO,UACXL,OAAQF,KAAKE,SAEjBC,EAAEC,KAAKgB,YAAY,6BASnBnB,cAAgB,SAASF,cAClB,CACHQ,UA
AWR,OAAOC,KAAK,aACvBE,OAAQH,OAAOC,KAAK,4BAIrB,CACHwB,KAAM,SAASC,OA/EU,SAASA,MAClCA,KAAKC,GAAG,QAAShC,kBAAkBiC,iBAAiB,SAASC,OACrD7B,OAASN,EAAEmC,EAAEC,eAEjB/B,aAAaC,QAEb6B,EAAEE,oBAGNrC,EAAE,QAAQiC,GAAG/B,eAAeoC,aAAa,WACvBN,KAAKO,KAAKtC,kBAAkBiC,iBAElCM,MAAK,SAASC,EAAGC,YACrBA,OAAS1C,EAAE0C,SACAnC,KAAK,oBAAqB,KAC7BA,KAAOC,cAAckC,QACzBhB,uBAAuBnB,aAkE/BoC,CAFAX,KAAOhC,EAAEgC"}