Plato on Github
Report Home
src/JSEngine/core/extend.js
Maintainability
68.92
Lines of code
69
Difficulty
20.49
Estimated Errors
0.41
Function weight
By Complexity
By SLOC
/* -------------------------------------------------------------- extensions.js 2015-10-13 gm Gambio GmbH http://www.gambio.de Copyright (c) 2015 Gambio GmbH Released under the GNU General Public License (Version 2) [http://www.gnu.org/licenses/gpl-2.0.html] -------------------------------------------------------------- */ /** * ## Extend JS Engine * * Extend the default behaviour of engine components or external plugins before they are loaded. * * @namespace JSE/Core/extend */ (function () { 'use strict'; // ------------------------------------------------------------------------ // NAMESPACE PSEUDO SELECTOR DEFINITION // ------------------------------------------------------------------------ if ($.expr.pseudos.attr === undefined) { $.expr.pseudos.attr = $.expr.createPseudo(function(selector) { var regexp = new RegExp(selector); return function(elem) { for(var i = 0; i < elem.attributes.length; i++) { var attr = elem.attributes[i]; if(regexp.test(attr.name)) { return true; } } return false; }; }); } // ------------------------------------------------------------------------ // PARSE MODULE DATA JQUERY EXTENSION // ------------------------------------------------------------------------ $.fn.extend({ parseModuleData: function(moduleName) { if (!moduleName || moduleName === '') { throw new Error('Module name was not provided as an argument.') } var initialData = $(this).data(), filteredData = {}; // Searches for module relevant data inside the main-data-object. Data for other widgets will not get // passed to this widget. $.each(initialData, function (key, value) { if (key.indexOf(moduleName) === 0 || key.indexOf(moduleName.toLowerCase()) === 0) { var newKey = key.substr(moduleName.length); newKey = newKey.substr(0, 1).toLowerCase() + newKey.substr(1); filteredData[newKey] = value; } }); return filteredData; } }); // ------------------------------------------------------------------------ // EXTENSION DEFINITION // ------------------------------------------------------------------------ /** * Set jQuery UI datepicker widget defauls. * * @name core/extend.datepicker * @public * * @type {object} */ $.datepicker.regional.de = { dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false }; $.datepicker.setDefaults($.datepicker.regional.de); }());