From 62adb5d327d5166aa5875e7c3f9d1de9c9fb27fa Mon Sep 17 00:00:00 2001 From: blackleg Date: Sun, 22 Oct 2017 13:46:03 +0200 Subject: [PATCH] Minimized javascript assets --- Gruntfile.js | 39 ++++++++++++------- oc-includes/osclass/assets/js/date.min.js | 1 + .../osclass/assets/js/jquery.json.min.js | 1 + .../osclass/assets/js/jquery.treeview.min.js | 1 + .../assets/js/jquery.ui.nestedSortable.min.js | 1 + oc-includes/osclass/install.php | 2 +- oc-load.php | 8 ++-- package.json | 7 ++-- 8 files changed, 39 insertions(+), 21 deletions(-) create mode 100644 oc-includes/osclass/assets/js/date.min.js create mode 100644 oc-includes/osclass/assets/js/jquery.json.min.js create mode 100644 oc-includes/osclass/assets/js/jquery.treeview.min.js create mode 100644 oc-includes/osclass/assets/js/jquery.ui.nestedSortable.min.js diff --git a/Gruntfile.js b/Gruntfile.js index e2a7c29d18..4bbbc726be 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -8,7 +8,7 @@ 'use strict'; -module.exports = function(grunt) { +module.exports = function (grunt) { // Project configuration. grunt.initConfig({ less: { @@ -21,17 +21,30 @@ module.exports = function(grunt) { 'oc-admin/themes/modern/css/main.css': 'oc-admin/themes/modern/less/main.less' } } - }, - sass: { - dist: { - options: { - style: 'compressed', - compass: true - }, - files: { - 'oc-content/themes/bender/css/main.css': 'oc-content/themes/bender/sass/main.scss' - } - } + }, + sass: { + dist: { + options: { + style: 'compressed', + compass: true + }, + files: { + 'oc-content/themes/bender/css/main.css': 'oc-content/themes/bender/sass/main.scss' + } + } + }, + uglify: { + options: { + mangle: false + }, + target: { + files: { + 'oc-includes/osclass/assets/js/date.min.js': 'oc-includes/osclass/assets/js/date.js', + 'oc-includes/osclass/assets/js/jquery.json.min.js': 'oc-includes/osclass/assets/js/jquery.json.js', + 'oc-includes/osclass/assets/js/jquery.treeview.min.js': 'oc-includes/osclass/assets/js/jquery.treeview.js', + 'oc-includes/osclass/assets/js/jquery.ui.nestedSortable.min.js': 'oc-includes/osclass/assets/js/jquery.ui.nestedSortable.js' + } + } } }); @@ -39,6 +52,6 @@ module.exports = function(grunt) { grunt.loadTasks('tasks'); grunt.loadNpmTasks('grunt-contrib-less'); - grunt.loadNpmTasks('grunt-contrib-sass'); + grunt.loadNpmTasks('grunt-contrib-uglify'); }; \ No newline at end of file diff --git a/oc-includes/osclass/assets/js/date.min.js b/oc-includes/osclass/assets/js/date.min.js new file mode 100644 index 0000000000..2ccb256b57 --- /dev/null +++ b/oc-includes/osclass/assets/js/date.min.js @@ -0,0 +1 @@ +function date(format,timestamp){var jsdate,f,formatChrCb,that=this,formatChr=/\\?([a-z])/gi,_pad=function(n,c){return(n=n.toString()).length9?-1:0)},Y:function(){return jsdate.getFullYear()},y:function(){return f.Y().toString().slice(-2)},a:function(){return jsdate.getHours()>11?"pm":"am"},A:function(){return f.a().toUpperCase()},B:function(){var H=3600*jsdate.getUTCHours(),i=60*jsdate.getUTCMinutes(),s=jsdate.getUTCSeconds();return _pad(Math.floor((H+i+s+3600)/86.4)%1e3,3)},g:function(){return f.G()%12||12},G:function(){return jsdate.getHours()},h:function(){return _pad(f.g(),2)},H:function(){return _pad(f.G(),2)},i:function(){return _pad(jsdate.getMinutes(),2)},s:function(){return _pad(jsdate.getSeconds(),2)},u:function(){return _pad(1e3*jsdate.getMilliseconds(),6)},e:function(){throw"Not supported (see source code of date() for timezone on how to add support)"},I:function(){return new Date(f.Y(),0)-Date.UTC(f.Y(),0)!=new Date(f.Y(),6)-Date.UTC(f.Y(),6)?1:0},O:function(){var tzo=jsdate.getTimezoneOffset(),a=Math.abs(tzo);return(tzo>0?"-":"+")+_pad(100*Math.floor(a/60)+a%60,4)},P:function(){var O=f.O();return O.substr(0,3)+":"+O.substr(3,2)},T:function(){return"UTC"},Z:function(){return 60*-jsdate.getTimezoneOffset()},c:function(){return"Y-m-d\\TH:i:sP".replace(formatChr,formatChrCb)},r:function(){return"D, d M Y H:i:s O".replace(formatChr,formatChrCb)},U:function(){return jsdate/1e3|0}},this.date=function(format,timestamp){return that=this,jsdate=void 0===timestamp?new Date:timestamp instanceof Date?new Date(timestamp):new Date(1e3*timestamp),format.replace(formatChr,formatChrCb)},this.date(format,timestamp)} \ No newline at end of file diff --git a/oc-includes/osclass/assets/js/jquery.json.min.js b/oc-includes/osclass/assets/js/jquery.json.min.js new file mode 100644 index 0000000000..9ce18fa15c --- /dev/null +++ b/oc-includes/osclass/assets/js/jquery.json.min.js @@ -0,0 +1 @@ +jQuery.JSON={useHasOwn:!!{}.hasOwnProperty,pad:function(n){return n<10?"0"+n:n},m:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},encodeString:function(s){return/["\\\x00-\x1f]/.test(s)?'"'+s.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];return c||(c=b.charCodeAt(),"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16))})+'"':'"'+s+'"'},encodeArray:function(o){var b,i,v,a=["["],l=o.length;for(i=0;iul").hide()),this.filter(":has(>ul)")},applyClasses:function(settings,toggler){if(this.filter(":has(>ul):not(:has(>a))").find(">span").unbind("click.treeview").bind("click.treeview",function(event){this==event.target&&toggler.apply($(this).next())}).add($("a",this)).hoverClass(),!settings.prerendered){this.filter(":has(>ul:hidden)").addClass(CLASSES.expandable).replaceClass(CLASSES.last,CLASSES.lastExpandable),this.not(":has(>ul:hidden)").addClass(CLASSES.collapsable).replaceClass(CLASSES.last,CLASSES.lastCollapsable);var hitarea=this.find("div."+CLASSES.hitarea);hitarea.length||(hitarea=this.prepend('
').find("div."+CLASSES.hitarea)),hitarea.removeClass().addClass(CLASSES.hitarea).each(function(){var classes="";$.each($(this).parent().attr("class").split(" "),function(){classes+=this+"-hitarea "}),$(this).addClass(classes)})}this.find("div."+CLASSES.hitarea).click(toggler)},treeview:function(settings){function toggler(){$(this).parent().find(">.hitarea").swapClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).swapClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().swapClass(CLASSES.collapsable,CLASSES.expandable).swapClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightToggle(settings.animated,settings.toggle),settings.unique&&$(this).parent().siblings().find(">.hitarea").replaceClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).replaceClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().replaceClass(CLASSES.collapsable,CLASSES.expandable).replaceClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightHide(settings.animated,settings.toggle)}function serialize(){var data=[];branches.each(function(i,e){data[i]=$(e).is(":has(>ul:visible)")?1:0}),$.cookie(settings.cookieId,data.join(""),settings.cookieOptions)}if((settings=$.extend({cookieId:"treeview"},settings)).toggle){var callback=settings.toggle;settings.toggle=function(){return callback.apply($(this).parent()[0],arguments)}}this.data("toggler",toggler),this.addClass("treeview");var branches=this.find("li").prepareBranches(settings);switch(settings.persist){case"cookie":var toggleCallback=settings.toggle;settings.toggle=function(){serialize(),toggleCallback&&toggleCallback.apply(this,arguments)},function(){var stored=$.cookie(settings.cookieId);if(stored){var data=stored.split("");branches.each(function(i,e){$(e).find(">ul")[parseInt(data[i])?"show":"hide"]()})}}();break;case"location":var current=this.find("a").filter(function(){return this.href.toLowerCase()==location.href.toLowerCase()});if(current.length){var items=current.addClass("selected").parents("ul, li").add(current.next()).show();settings.prerendered&&items.filter("li").swapClass(CLASSES.collapsable,CLASSES.expandable).swapClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">.hitarea").swapClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).swapClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea)}}return branches.applyClasses(settings,toggler),settings.control&&(!function(tree,control){function handler(filter){return function(){return toggler.apply($("div."+CLASSES.hitarea,tree).filter(function(){return!filter||$(this).parent("."+filter).length})),!1}}$("a:eq(0)",control).click(handler(CLASSES.collapsable)),$("a:eq(1)",control).click(handler(CLASSES.expandable)),$("a:eq(2)",control).click(handler())}(this,settings.control),$(settings.control).show()),this}}),$.treeview={};var CLASSES=$.treeview.classes={open:"open",closed:"closed",expandable:"expandable",expandableHitarea:"expandable-hitarea",lastExpandableHitarea:"lastExpandable-hitarea",collapsable:"collapsable",collapsableHitarea:"collapsable-hitarea",lastCollapsableHitarea:"lastCollapsable-hitarea",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"}}(jQuery); \ No newline at end of file diff --git a/oc-includes/osclass/assets/js/jquery.ui.nestedSortable.min.js b/oc-includes/osclass/assets/js/jquery.ui.nestedSortable.min.js new file mode 100644 index 0000000000..55e703fd5e --- /dev/null +++ b/oc-includes/osclass/assets/js/jquery.ui.nestedSortable.min.js @@ -0,0 +1 @@ +!function($){$.widget("ui.nestedSortable",$.extend({},$.ui.sortable.prototype,{options:{tabSize:20,disableNesting:"ui-nestedSortable-no-nesting",errorClass:"ui-nestedSortable-error",listType:"ol",maxLevels:0,noJumpFix:0},_create:function(){return 0==this.noJumpFix&&this.element.height(this.element.height()),this.element.data("sortable",this.element.data("nestedSortable")),$.ui.sortable.prototype._create.apply(this,arguments)},_mouseDrag:function(event){if(this.position=this._generatePosition(event),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll){var o=this.options,scrolled=!1;this.scrollParent[0]!=document&&"HTML"!=this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-event.pageY=0;i--){var item=this.items[i],itemElement=item.item[0],intersection=this._intersectsWithPointer(item);if(intersection&&!(itemElement==this.currentItem[0]||this.placeholder[1==intersection?"next":"prev"]()[0]==itemElement||$.contains(this.placeholder[0],itemElement)||"semi-dynamic"==this.options.type&&$.contains(this.element[0],itemElement))){if(this.direction=1==intersection?"down":"up","pointer"!=this.options.tolerance&&!this._intersectsWithSides(item))break;this._rearrange(event,item),this._clearEmpty(itemElement),this._trigger("change",event,this._uiHash());break}}var parentItem=this.placeholder[0].parentNode.parentNode&&$(this.placeholder[0].parentNode.parentNode).closest(".ui-sortable").length?$(this.placeholder[0].parentNode.parentNode):null,level=this._getLevel(this.placeholder),childLevels=this._getChildLevels(this.helper),previousItem=this.placeholder[0].previousSibling?$(this.placeholder[0].previousSibling):null;if(null!=previousItem)for(;"li"!=previousItem[0].nodeName.toLowerCase()||previousItem[0]==this.currentItem[0];){if(!previousItem[0].previousSibling){previousItem=null;break}previousItem=$(previousItem[0].previousSibling)}return newList=document.createElement(o.listType),this.beyondMaxLevels=0,null!=parentItem&&this.positionAbs.leftpreviousItem.offset().left+o.tabSize?(this._isAllowed(previousItem,level+childLevels+1),previousItem.children(o.listType).length||previousItem[0].appendChild(newList),previousItem.children(o.listType)[0].appendChild(this.placeholder[0]),this._trigger("change",event,this._uiHash())):this._isAllowed(parentItem,level+childLevels),this._contactContainers(event),$.ui.ddmanager&&$.ui.ddmanager.drag(this,event),this._trigger("sort",event,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(event,noPropagation){if(this.beyondMaxLevels){for(var parent=this.placeholder.parent().closest(this.options.items),i=this.beyondMaxLevels-1;i>0;i--)parent=parent.parent().closest(this.options.items);this.placeholder.removeClass(this.options.errorClass),parent.after(this.placeholder),this._trigger("change",event,this._uiHash())}$.ui.sortable.prototype._mouseStop.apply(this,arguments)},serialize:function(o){var items=this._getItemsAsjQuery(o&&o.connected),str=[];return o=o||{},$(items).each(function(){var res=($(o.item||this).attr(o.attribute||"id")||"").match(o.expression||/(.+)[-=_](.+)/),pid=($(o.item||this).parent(o.listType).parent("li").attr(o.attribute||"id")||"").match(o.expression||/(.+)[-=_](.+)/);res&&str.push((o.key||res[1]+"["+(o.key&&o.expression?res[1]:res[2])+"]")+"="+(pid?o.key&&o.expression?pid[1]:pid[2]:"root"))}),!str.length&&o.key&&str.push(o.key+"="),str.join("&")},toHierarchy:function(o){function _recursiveItems(li){var id=($(li).attr(o.attribute||"id")||"").match(o.expression||/(.+)[-=_](.+)/);if(null!=id){var item={id:id[2]};return $(li).children(o.listType).children("li").length>0&&(item.children=[],$(li).children(o.listType).children("li").each(function(){var level=_recursiveItems($(this));item.children.push(level)})),item}}o=o||{};var ret=[];return $(this.element).children("li").each(function(){var level=_recursiveItems($(this));ret.push(level)}),ret},toArray:function(o){function _recursiveArray(item,depth,left){return right=left+1,$(item).children(o.listType).children("li").length>0&&(depth++,$(item).children(o.listType).children("li").each(function(){right=_recursiveArray($(this),depth,right)}),depth--),id=$(item).attr(o.attribute||"id").match(o.expression||/(.+)[-=_](.+)/),depth===sDepth+1?pid="root":(parentItem=$(item).parent(o.listType).parent("li").attr("id").match(o.expression||/(.+)[-=_](.+)/),pid=parentItem[2]),null!=id&&ret.push({item_id:id[2],parent_id:pid,depth:depth,left:left,right:right}),left=right+1}var sDepth=(o=o||{}).startDepthCount||0,ret=[],left=2;return ret.push({item_id:"root",parent_id:"none",depth:sDepth,left:"1",right:2*($("li",this.element).length+1)}),$(this.element).children("li").each(function(){left=_recursiveArray(this,sDepth+1,left)}),ret=ret.sort(function(a,b){return a.left-b.left})},_clear:function(event,noPropagation){$.ui.sortable.prototype._clear.apply(this,arguments);for(var i=this.items.length-1;i>=0;i--){var item=this.items[i].item[0];this._clearEmpty(item)}return!0},_clearEmpty:function(item){item.children[1]&&0==item.children[1].children.length&&item.removeChild(item.children[1])},_getLevel:function(item){var level=1;if(this.options.listType)for(var list=item.closest(this.options.listType);!list.is(".ui-sortable");)level++,list=list.parent().closest(this.options.listType);return level},_getChildLevels:function(parent,depth){var self=this,o=this.options,result=0;return depth=depth||0,$(parent).children(o.listType).children(o.items).each(function(index,child){result=Math.max(self._getChildLevels(child,depth+1),result)}),depth?result+1:result},_isAllowed:function(parentItem,levels){var o=this.options;null!=parentItem&&parentItem.hasClass(o.disableNesting)?(this.placeholder.addClass(o.errorClass),o.maxLevels - + diff --git a/oc-load.php b/oc-load.php index ba1d663a1c..d1ac3618bb 100755 --- a/oc-load.php +++ b/oc-load.php @@ -243,16 +243,16 @@ function osc_meta_generator() { // register scripts osc_register_script('jquery', osc_assets_url('js/jquery.min.js')); osc_register_script('jquery-ui', osc_assets_url('js/jquery-ui.min.js'), 'jquery'); -osc_register_script('jquery-json', osc_assets_url('js/jquery.json.js'), 'jquery'); -osc_register_script('jquery-treeview', osc_assets_url('js/jquery.treeview.js'), 'jquery'); -osc_register_script('jquery-nested', osc_assets_url('js/jquery.ui.nestedSortable.js'), 'jquery'); +osc_register_script('jquery-json', osc_assets_url('js/jquery.json.min.js'), 'jquery'); +osc_register_script('jquery-treeview', osc_assets_url('js/jquery.treeview.min.js'), 'jquery'); +osc_register_script('jquery-nested', osc_assets_url('js/jquery.ui.nestedSortable.min.js'), 'jquery'); osc_register_script('jquery-validate', osc_assets_url('js/jquery.validate.min.js'), 'jquery'); osc_register_script('tabber', osc_assets_url('js/tabber-minimized.js'), 'jquery'); osc_register_script('tiny_mce', osc_assets_url('js/tinymce/tinymce.min.js')); osc_register_script('colorpicker', osc_assets_url('js/colorpicker/js/colorpicker.js')); osc_register_script('fancybox', osc_assets_url('js/fancybox/jquery.fancybox.pack.js'), array('jquery')); osc_register_script('jquery-migrate', osc_assets_url('js/jquery-migrate.min.js'), array('jquery')); -osc_register_script('php-date', osc_assets_url('js/date.js')); +osc_register_script('php-date', osc_assets_url('js/date.min.js')); osc_register_script('jquery-fineuploader', osc_assets_url('js/fineuploader/jquery.fineuploader.min.js'), 'jquery'); diff --git a/package.json b/package.json index 331fc08b52..ba2c612eb4 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,9 @@ "name": "osclass", "version": "3.2.0", "devDependencies": { - "grunt": "~0.4.1", - "grunt-contrib-less": "~0.6.4", - "grunt-contrib-sass": "~0.4.1" + "grunt": "~1.0.1", + "grunt-contrib-less": "~1.4.1", + "grunt-contrib-sass": "~1.0.0", + "grunt-contrib-uglify": "^3.0.1" } } \ No newline at end of file