UNPKG

runspa

Version:

A simple jQuery Single Page Application Plugin

641 lines (474 loc) 81.4 kB
/*! * RunSPA v1.1.7 * https://github.com/carlosrfjunior/runspa * * Author: Carlos R F Júnior * Copyright: (c) 2017 Lanx HCM * Homepage: http://www.lanx.com.br * * Released under the MIT license * */ (function ($) { "use strict"; var typeRef = {'CLICK': 1, 'LOAD': 2}; var typeFile = {'JS': 1, 'CSS': 2}; var // Abstracting the HTML and event identifiers for easy rebranding runspa = 'runspa', prefix = '.rspa', prefixCSS = '.rspa_css', prefixJS = '.rspa_js', prefixLoading = '.rspa_loading', target = 'a[data-spa={p}]', RunSPA, referrer = typeRef.LOAD, settings = {}; // Don't do anything if RunSPA already exists. if ($[runspa]) { return; } var PageSetup = { /** * Define estado atual * * @param {typeRef} $status {'CLICK': 1, 'LOAD': 2} * @returns {runspaL#13.PageSetup.referrer} */ referrer: function ($status) { if ($status !== undefined) { referrer = $status; } return referrer; }, load: function ($hash, options) { var $mainContent = $(options.id); var $mainLoading = (options.loadingClass !== undefined ? $(options.loadingClass) : $mainContent); var $pathName = window.location.pathname; var $protocol = window.location.protocol + '//'; var $host = window.location.host; var $path = ($pathName.endsWith('/') ? $pathName : ($pathName + '/')); var url = $protocol + $host + $path; if (settings.id === options.id) { window.location.hash = $hash; } if (options.prefix !== undefined) { url += options.prefix + $hash; } else { url += $hash; } if (options.extension !== undefined) url += options.extension; return $.ajax({ type: options.method, url: url, dataType: options.dataType, cache: options.cache, async: options.async, beforeSend: function (jqXHR, settings) { $mainContent.css({opacity: 0}); if (options.loading) PageSetup.addLoading($mainLoading); if ($.isFunction(options.beforeSend)) { options.beforeSend(jqXHR, settings); } }, success: function (data, textStatus, jqXHR) { // Change page title document.title = (options.title || document.title); $('html, body').animate({scrollTop: 0}, 0).fadeIn('slow'); $mainContent.html(data); $mainContent.delay(250).animate({opacity: 1}, 0); PageSetup.metaTag(options.metaTag); PageSetup.css(options.css, options); PageSetup.js(options.scripts, options); if ($.isFunction(options.success)) { options.success(data, textStatus, jqXHR); } }, error: function (jqXHR, textStatus, errorThrown) { if ($.isFunction(options.error)) { options.error(jqXHR, textStatus, errorThrown); } if (options.pageError !== undefined && options.pageError.length > 0) { window.location.href = options.pageError; } else { // Change page title document.title = (options.title || document.title); $('html, body').animate({scrollTop: 0}, 0).fadeIn('slow'); $mainContent.html(textStatus); $mainContent.delay(250).animate({opacity: 1}, 0); } } }).done(function () { PageSetup.removeLoading(); }); }, addLoading: function ($target) { $(prefixLoading).remove(); var className = prefixLoading.replace('.', ''); var opts = $.extend(true, {}, $.fn.runspa.defaults, settings); $target.before('<div class="' + className + '"><div style="width: 200px;">' + '<img src="' + opts.loadingImage + '" style="height: 50px;width: 50px;"><br>' + '<h3><span>' + opts.loadingLabel + '</span></h3>' + '</div></div>' ); $(prefixLoading).css({ 'position': 'fixed', 'width': '100%', 'height': '100%', 'z-index': 999999999999, 'background-color': 'rgb(255, 255, 255, 0.8)', 'text-align': 'center' }); }, removeLoading: function () { $(prefixLoading).remove(); }, removeAllFiles: function ($tagName, options) { if (options.inject) { return false; } var prefixClass; if (!options.inject && $tagName === typeFile.JS) { prefixClass = prefixJS.replace('.', options.id.replace('#', '').replace('.', '') + '-'); } if (!options.inject && $tagName === typeFile.CSS) { prefixClass = prefixCSS.replace('.', options.id.replace('#', '').replace('.', '') + '-'); } $('.' + prefixClass).remove(); }, js: function (files, options, callback, callbackAsync) { PageSetup.removeAllFiles(typeFile.JS, options); if (files === undefined) { return; } var sizeFiles = (files.length - 1); $.each(files, function (key, data) { PageSetup._js(data, options, callback); if ($.isFunction(callbackAsync) && key === sizeFiles) { PageSetup.async(callbackAsync); } }); }, css: function (files, options, callback) { PageSetup.removeAllFiles(typeFile.CSS, options); if (files === undefined) { return; } $.each(files, function (key, data) { PageSetup._css(data, options, callback); }); }, metaTag: function (metas, callback) { $(prefix).remove(); $.each(metas, function (key, data) { PageSetup._metaTag(key, data, callback); }); }, _metaTag: function (key, meta, callback) { var head = document.getElementsByTagName('head')[0]; var title = head.firstChild; var s = document.createElement('meta'); s.setAttribute(key, meta); s.setAttribute('class', prefix.replace('.', '')); if ($.isFunction(callback)) { s.onload = callback; } head.insertBefore(s, title); }, _js: function (file, options, callback) { var body = document.getElementsByTagName('body')[0]; var script = document.createElement('script'); var prefixClass = prefixJS.replace('.', options.id.replace('#', '').replace('.', '') + '-'); script.type = 'text/javascript'; script.async = file.async || options.async; script.defer = file.defer || options.defer; script.src = file.url; script.setAttribute('class', prefixClass + ' ' + prefixLoading); if (script.readyState) { //IE script.onreadystatechange = function () { if (script.readyState === "loaded" || script.readyState === "complete") { script.onreadystatechange = null; script.setAttribute('class', prefixClass); if ($.isFunction(callback)) { callback(); } } }; } else { //Others script.onload = function () { script.setAttribute('class', prefixClass); if ($.isFunction(callback)) { callback(); } }; } body.appendChild(script); }, _css: function (file, options, callback) { var head = document.getElementsByTagName('head')[0]; var s = document.createElement('link'); var prefixClass = prefixCSS.replace('.', options.id.replace('#', '').replace('.', '') + '-'); s.setAttribute('rel', 'stylesheet'); s.setAttribute('type', 'text/css'); s.setAttribute('href', file.url); s.setAttribute('class', prefixClass); if ($.isFunction(callback)) { s.onload = callback; } head.appendChild(s); }, checkPath: function ($path) { if ($path !== undefined) { var $xPath = window.location.href.toLowerCase().indexOf($path); if ($xPath <= 0) { return false; } } return true; }, /** * * @param {string} pageClick * @param {tring} targetClick * @param {JSON} opts * @param {function} callback * @returns void */ click: function (pageClick, targetClick, opts, callback) { $(pageClick).unbind('click').off('click').on('click', function (e) { e.preventDefault(); PageSetup.referrer(typeRef.CLICK); var spaClass = '[data-spa-class="' + opts.id + '"]'; $(targetClick + spaClass).parents('li').removeClass(opts.classActive); $(this).closest('li').addClass(opts.classActive); $(targetClick + spaClass).removeClass(opts.classActive); $(this).addClass(opts.classActive); var load = PageSetup.load($(this).data('spa'), opts); if ($.isFunction(callback)) { callback(load); } }); }, init: function ($route, options, callback) { var page = window.location.hash.replace(/^#/, ''); var $obj; var $pageSpa; if (!PageSetup.checkPath(options.path)) { return false; } if (options.defaultPage !== undefined && page.length < 1) { $obj = $(target.replace('{p}', '"' + options.defaultPage + '"')); $pageSpa = options.defaultPage; } else { $pageSpa = page; if ($route.indexOf('{page?}') > 0) { var rgx = $route.replace('/', '\/').replace('{page?}', '(.*)'); if ($pageSpa.match(rgx)) { $route = $pageSpa; } else { return false; } $route = $route.replace('{page?}', '0'); } if (page !== $route && options.autoCreateRoute === false) { return false; } $obj = $(target.replace('{p}', '"' + page + '"')); } if (PageSetup.isEmpty($obj) && PageSetup.referrer() === typeRef.LOAD) { $(options.id).append( $('<a></a>', { 'href': '#' + $pageSpa, 'data-spa': $pageSpa, 'css': {display: 'none'} }) ); var $pageClick = target.replace('{p}', '"' + $pageSpa + '"'); var $targetClick = target.replace('={p}', ''); $obj = $($pageClick); PageSetup.click($pageClick, $targetClick, options, callback); } $obj.click(); }, async: function (callback) { var callLoad = $(prefixLoading).length; $(prefixLoading).each(function () { callLoad = $(prefixLoading).length; if (callLoad <= 1) { callback(); } }); if (callLoad <= 1) { callback(); } }, isEmpty: function (value, trim) { return value === undefined || value === null || value.length === 0 || (trim && $.trim(value) === ''); }, isArray: function (a) { return Array.isArray(a) || Object.prototype.toString.call(a) === '[object Array]'; }, isJSON: function (options) { try { JSON.parse(JSON.stringify(options)); } catch (e) { return false; } return true; } }; // **************** // PUBLIC FUNCTIONS // Usage format: $.runspa(options); // **************** RunSPA = $.fn[runspa] = $[runspa] = function (options) { if (!PageSetup.isJSON(options)) { throw new Error("RunSPA Global Options Invalid!"); return false; } settings = $.extend(true, {}, $.fn.runspa.defaults, options); if (PageSetup.isEmpty(settings.id)) { throw new Error("Object Id Invalid!"); return false; } }; // DO on hash change $(window).on('hashchange', function (e) { e.preventDefault(); }); /** * Defined routes for Application * * @param {string} $path * @param {JSON} options OPTIONAL: Defined parameters in the application load * @param {function} callback OPTIONAL: Return functions of the $.ajax after process * @example $.runspa.route(name) * @example $.runspa.route(name, [function]) * @example $.runspa.route(name, [options, function]) * @returns void | error */ RunSPA.route = function ($path, options, callback) { if (PageSetup.isEmpty($path)) { throw new Error("Route Invalid!"); return false; } if ($.isFunction(options)) { callback = options; options = {}; } else if (!PageSetup.isEmpty(options)) { if (!PageSetup.isJSON(options)) { throw new Error("Route [ " + $path + " ] Input Options Invalid!"); return false; } } var opts = $.extend(true, {}, $.fn.runspa.defaults, settings, options); var pageSPA = []; var targetClick = target.replace('={p}', ''); /** * Smart Tag {page?} */ if ($path.indexOf('{page?}') > 0) { var rgx = $path.replace('/', '\/').replace('{page?}', '(.*)'); $(targetClick).filter(function () { return $(this).data('spa').match(rgx); }).each(function () { pageSPA.push(target.replace('{p}', '"' + $(this).data('spa') + '"')); }); } else { pageSPA.push(target.replace('{p}', '"' + $path + '"')); } if (!PageSetup.checkPath(opts.path)) { return false; } if (pageSPA.length > 0) { pageSPA.forEach(function (item, index, array) { $(item).attr('data-spa-class', opts.id); PageSetup.click(item, targetClick, opts, callback); }); } PageSetup.init($path, opts, callback); }; /** * Defined routes for Application * * @param {string} $path * @param {JSON} options OPTIONAL: Defined parameters in the application load * @param {function} callback OPTIONAL: Return functions of the $.ajax after process * @example $.runspa.get(name) * @example $.runspa.get(name, [function]) * @example $.runspa.get(name, [options, function]) * @returns void | error */ RunSPA.get = function ($path, options, callback) { if (PageSetup.isEmpty($path)) { throw new Error("Page Invalid!"); return false; } if ($.isFunction(options)) { callback = options; options = {}; } var opts = $.extend(true, {}, $.fn.runspa.defaults, settings, options); var load = PageSetup.load($path, opts); if ($.isFunction(callback)) { callback(load); } }; /** * Defined routes for Application * * @param {JSON} options OPTIONS: { css:[url: 'path'] and/or scripts:[url: 'path', async: true ] } * @param {function} callback OPTIONAL: Return functions * @example $.runspa.inject(files script) * @example $.runspa.inject(files script, [function]) * @returns void | error */ RunSPA.inject = function (options, callback) { if (PageSetup.isEmpty(options)) { throw new Error("RUNSPA INJECT: The argument option cannot be empty!"); return false; } if (!PageSetup.isJSON(options)) { throw new Error("RunSPA Inject Invalid!"); return false; } options.inject = true; var opts = $.extend(true, {}, $.fn.runspa.defaults, settings, options); if (PageSetup.isJSON(options.css)) { PageSetup.css(options.css, opts); } if (PageSetup.isJSON(options.scripts)) { if ($.isFunction(callback)) { PageSetup.js(options.scripts, opts, undefined, callback); } else { PageSetup.js(options.scripts, opts); } } }; $.fn.runspa.defaults = { id: undefined, language: 'en', defaultPage: undefined, pageError: undefined, autoCreateRoute: false, inject: false, method: 'GET', cache: false, async: false, defer: false, data: undefined, dataType: 'html', extension: undefined, prefix: undefined, classActive: 'active', success: undefined, beforeSend: undefined, error: undefined, loading: true, loadingClass: undefined, loadingLabel: 'Loading...', loadingImage: 'data:image/gif;base64,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