Version Description
- Fixed potential conflict with Bootstrap Modal on blogs using Twitter Bootstrap.
- Better bundling of scripts for faster loading of the plugin.
Download this release
Release Info
Developer | karim79 |
Plugin | Kraken.io Image Optimizer |
Version | 1.0.9 |
Comparing to | |
See all releases |
Code changes from version 1.0.8 to 1.0.9
- css/jquery.modal.css +2 -16
- js/ajax.js +6 -6
- js/dist/kraken.min.js +3 -0
- js/jquery.modal.min.js +222 -1
- kraken.php +16 -9
- lib/Kraken.php +1 -1
- readme.txt +5 -1
css/jquery.modal.css
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
.modal {
|
2 |
display: none;
|
3 |
width: 600px;
|
4 |
background: #fff;
|
@@ -14,21 +14,7 @@
|
|
14 |
-ms-box-shadow: 0 0 10px #000;
|
15 |
box-shadow: 0 0 10px #000;
|
16 |
}
|
17 |
-
|
18 |
-
/*
|
19 |
-
.modal a.close-modal {
|
20 |
-
position: absolute;
|
21 |
-
top: -12.5px;
|
22 |
-
right: -12.5px;
|
23 |
-
display: block;
|
24 |
-
width: 30px;
|
25 |
-
height: 30px;
|
26 |
-
text-indent: -9999px;
|
27 |
-
background: url(close.png) no-repeat 0 0;
|
28 |
-
}
|
29 |
-
*/
|
30 |
-
|
31 |
-
.modal-spinner {
|
32 |
display: none;
|
33 |
width: 64px;
|
34 |
height: 64px;
|
1 |
+
.kraken-modal {
|
2 |
display: none;
|
3 |
width: 600px;
|
4 |
background: #fff;
|
14 |
-ms-box-shadow: 0 0 10px #000;
|
15 |
box-shadow: 0 0 10px #000;
|
16 |
}
|
17 |
+
.kraken-modal-spinner {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
display: none;
|
19 |
width: 64px;
|
20 |
height: 64px;
|
js/ajax.js
CHANGED
@@ -155,14 +155,14 @@ jQuery(document).ready(function($) {
|
|
155 |
.append(typeRadios)
|
156 |
.append('<br /><small class="kraken-bulk-small">The following <strong>' + nImages + '</strong> images will be optimized by Kraken.io using the <strong class="bulkSetting">' + setting + '</strong> setting:</small><br />')
|
157 |
.appendTo("body")
|
158 |
-
.
|
159 |
-
.bind($.
|
160 |
|
161 |
})
|
162 |
-
.bind($.
|
163 |
|
164 |
})
|
165 |
-
.bind($.
|
166 |
$("#kraken-bulk-modal").remove();
|
167 |
})
|
168 |
.css({
|
@@ -206,7 +206,7 @@ jQuery(document).ready(function($) {
|
|
206 |
.append('<span class="close-kraken-bulk">Close Window</span>');
|
207 |
|
208 |
$(".close-kraken-bulk").click(function() {
|
209 |
-
$.
|
210 |
});
|
211 |
|
212 |
if (!nImages) {
|
@@ -308,7 +308,7 @@ jQuery(document).ready(function($) {
|
|
308 |
.text("Done")
|
309 |
.unbind("click")
|
310 |
.click(function() {
|
311 |
-
$.
|
312 |
});
|
313 |
}
|
314 |
|
155 |
.append(typeRadios)
|
156 |
.append('<br /><small class="kraken-bulk-small">The following <strong>' + nImages + '</strong> images will be optimized by Kraken.io using the <strong class="bulkSetting">' + setting + '</strong> setting:</small><br />')
|
157 |
.appendTo("body")
|
158 |
+
.kmodal(modalOptions)
|
159 |
+
.bind($.kmodal.BEFORE_CLOSE, function(event, modal) {
|
160 |
|
161 |
})
|
162 |
+
.bind($.kmodal.OPEN, function(event, modal) {
|
163 |
|
164 |
})
|
165 |
+
.bind($.kmodal.CLOSE, function(event, modal) {
|
166 |
$("#kraken-bulk-modal").remove();
|
167 |
})
|
168 |
.css({
|
206 |
.append('<span class="close-kraken-bulk">Close Window</span>');
|
207 |
|
208 |
$(".close-kraken-bulk").click(function() {
|
209 |
+
$.kmodal.close();
|
210 |
});
|
211 |
|
212 |
if (!nImages) {
|
308 |
.text("Done")
|
309 |
.unbind("click")
|
310 |
.click(function() {
|
311 |
+
$.kmodal.close();
|
312 |
});
|
313 |
}
|
314 |
|
js/dist/kraken.min.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
!function(){function only_once(fn){var called=!1;return function(){if(called)throw new Error("Callback was already called.");called=!0,fn.apply(root,arguments)}}var root,previous_async,async={};root=this,null!=root&&(previous_async=root.async),async.noConflict=function(){return root.async=previous_async,async};var _each=function(arr,iterator){if(arr.forEach)return arr.forEach(iterator);for(var i=0;i<arr.length;i+=1)iterator(arr[i],i,arr)},_map=function(arr,iterator){if(arr.map)return arr.map(iterator);var results=[];return _each(arr,function(x,i,a){results.push(iterator(x,i,a))}),results},_reduce=function(arr,iterator,memo){return arr.reduce?arr.reduce(iterator,memo):(_each(arr,function(x,i,a){memo=iterator(memo,x,i,a)}),memo)},_keys=function(obj){if(Object.keys)return Object.keys(obj);var keys=[];for(var k in obj)obj.hasOwnProperty(k)&&keys.push(k);return keys};"undefined"!=typeof process&&process.nextTick?(async.nextTick=process.nextTick,"undefined"!=typeof setImmediate?async.setImmediate=function(fn){setImmediate(fn)}:async.setImmediate=async.nextTick):"function"==typeof setImmediate?(async.nextTick=function(fn){setImmediate(fn)},async.setImmediate=async.nextTick):(async.nextTick=function(fn){setTimeout(fn,0)},async.setImmediate=async.nextTick),async.each=function(arr,iterator,callback){if(callback=callback||function(){},!arr.length)return callback();var completed=0;_each(arr,function(x){iterator(x,only_once(function(err){err?(callback(err),callback=function(){}):(completed+=1,completed>=arr.length&&callback(null))}))})},async.forEach=async.each,async.eachSeries=function(arr,iterator,callback){if(callback=callback||function(){},!arr.length)return callback();var completed=0,iterate=function(){iterator(arr[completed],function(err){err?(callback(err),callback=function(){}):(completed+=1,completed>=arr.length?callback(null):iterate())})};iterate()},async.forEachSeries=async.eachSeries,async.eachLimit=function(arr,limit,iterator,callback){var fn=_eachLimit(limit);fn.apply(null,[arr,iterator,callback])},async.forEachLimit=async.eachLimit;var _eachLimit=function(limit){return function(arr,iterator,callback){if(callback=callback||function(){},!arr.length||0>=limit)return callback();var completed=0,started=0,running=0;!function replenish(){if(completed>=arr.length)return callback();for(;limit>running&&started<arr.length;)started+=1,running+=1,iterator(arr[started-1],function(err){err?(callback(err),callback=function(){}):(completed+=1,running-=1,completed>=arr.length?callback():replenish())})}()}},doParallel=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.each].concat(args))}},doParallelLimit=function(limit,fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[_eachLimit(limit)].concat(args))}},doSeries=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.eachSeries].concat(args))}},_asyncMap=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}}),eachfn(arr,function(x,callback){iterator(x.value,function(err,v){results[x.index]=v,callback(err)})},function(err){callback(err,results)})};async.map=doParallel(_asyncMap),async.mapSeries=doSeries(_asyncMap),async.mapLimit=function(arr,limit,iterator,callback){return _mapLimit(limit)(arr,iterator,callback)};var _mapLimit=function(limit){return doParallelLimit(limit,_asyncMap)};async.reduce=function(arr,memo,iterator,callback){async.eachSeries(arr,function(x,callback){iterator(memo,x,function(err,v){memo=v,callback(err)})},function(err){callback(err,memo)})},async.inject=async.reduce,async.foldl=async.reduce,async.reduceRight=function(arr,memo,iterator,callback){var reversed=_map(arr,function(x){return x}).reverse();async.reduce(reversed,memo,iterator,callback)},async.foldr=async.reduceRight;var _filter=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}}),eachfn(arr,function(x,callback){iterator(x.value,function(v){v&&results.push(x),callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.filter=doParallel(_filter),async.filterSeries=doSeries(_filter),async.select=async.filter,async.selectSeries=async.filterSeries;var _reject=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}}),eachfn(arr,function(x,callback){iterator(x.value,function(v){v||results.push(x),callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.reject=doParallel(_reject),async.rejectSeries=doSeries(_reject);var _detect=function(eachfn,arr,iterator,main_callback){eachfn(arr,function(x,callback){iterator(x,function(result){result?(main_callback(x),main_callback=function(){}):callback()})},function(err){main_callback()})};async.detect=doParallel(_detect),async.detectSeries=doSeries(_detect),async.some=function(arr,iterator,main_callback){async.each(arr,function(x,callback){iterator(x,function(v){v&&(main_callback(!0),main_callback=function(){}),callback()})},function(err){main_callback(!1)})},async.any=async.some,async.every=function(arr,iterator,main_callback){async.each(arr,function(x,callback){iterator(x,function(v){v||(main_callback(!1),main_callback=function(){}),callback()})},function(err){main_callback(!0)})},async.all=async.every,async.sortBy=function(arr,iterator,callback){async.map(arr,function(x,callback){iterator(x,function(err,criteria){err?callback(err):callback(null,{value:x,criteria:criteria})})},function(err,results){if(err)return callback(err);var fn=function(left,right){var a=left.criteria,b=right.criteria;return b>a?-1:a>b?1:0};callback(null,_map(results.sort(fn),function(x){return x.value}))})},async.auto=function(tasks,callback){callback=callback||function(){};var keys=_keys(tasks);if(!keys.length)return callback(null);var results={},listeners=[],addListener=function(fn){listeners.unshift(fn)},removeListener=function(fn){for(var i=0;i<listeners.length;i+=1)if(listeners[i]===fn)return void listeners.splice(i,1)},taskComplete=function(){_each(listeners.slice(0),function(fn){fn()})};addListener(function(){_keys(results).length===keys.length&&(callback(null,results),callback=function(){})}),_each(keys,function(k){var task=tasks[k]instanceof Function?[tasks[k]]:tasks[k],taskCallback=function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1&&(args=args[0]),err){var safeResults={};_each(_keys(results),function(rkey){safeResults[rkey]=results[rkey]}),safeResults[k]=args,callback(err,safeResults),callback=function(){}}else results[k]=args,async.setImmediate(taskComplete)},requires=task.slice(0,Math.abs(task.length-1))||[],ready=function(){return _reduce(requires,function(a,x){return a&&results.hasOwnProperty(x)},!0)&&!results.hasOwnProperty(k)};if(ready())task[task.length-1](taskCallback,results);else{var listener=function(){ready()&&(removeListener(listener),task[task.length-1](taskCallback,results))};addListener(listener)}})},async.waterfall=function(tasks,callback){if(callback=callback||function(){},tasks.constructor!==Array){var err=new Error("First argument to waterfall must be an array of functions");return callback(err)}if(!tasks.length)return callback();var wrapIterator=function(iterator){return function(err){if(err)callback.apply(null,arguments),callback=function(){};else{var args=Array.prototype.slice.call(arguments,1),next=iterator.next();args.push(next?wrapIterator(next):callback),async.setImmediate(function(){iterator.apply(null,args)})}}};wrapIterator(async.iterator(tasks))()};var _parallel=function(eachfn,tasks,callback){if(callback=callback||function(){},tasks.constructor===Array)eachfn.map(tasks,function(fn,callback){fn&&fn(function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),callback.call(null,err,args)})},callback);else{var results={};eachfn.each(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),results[k]=args,callback(err)})},function(err){callback(err,results)})}};async.parallel=function(tasks,callback){_parallel({map:async.map,each:async.each},tasks,callback)},async.parallelLimit=function(tasks,limit,callback){_parallel({map:_mapLimit(limit),each:_eachLimit(limit)},tasks,callback)},async.series=function(tasks,callback){if(callback=callback||function(){},tasks.constructor===Array)async.mapSeries(tasks,function(fn,callback){fn&&fn(function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),callback.call(null,err,args)})},callback);else{var results={};async.eachSeries(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),results[k]=args,callback(err)})},function(err){callback(err,results)})}},async.iterator=function(tasks){var makeCallback=function(index){var fn=function(){return tasks.length&&tasks[index].apply(null,arguments),fn.next()};return fn.next=function(){return index<tasks.length-1?makeCallback(index+1):null},fn};return makeCallback(0)},async.apply=function(fn){var args=Array.prototype.slice.call(arguments,1);return function(){return fn.apply(null,args.concat(Array.prototype.slice.call(arguments)))}};var _concat=function(eachfn,arr,fn,callback){var r=[];eachfn(arr,function(x,cb){fn(x,function(err,y){r=r.concat(y||[]),cb(err)})},function(err){callback(err,r)})};async.concat=doParallel(_concat),async.concatSeries=doSeries(_concat),async.whilst=function(test,iterator,callback){test()?iterator(function(err){return err?callback(err):void async.whilst(test,iterator,callback)}):callback()},async.doWhilst=function(iterator,test,callback){iterator(function(err){return err?callback(err):void(test()?async.doWhilst(iterator,test,callback):callback())})},async.until=function(test,iterator,callback){test()?callback():iterator(function(err){return err?callback(err):void async.until(test,iterator,callback)})},async.doUntil=function(iterator,test,callback){iterator(function(err){return err?callback(err):void(test()?callback():async.doUntil(iterator,test,callback))})},async.queue=function(worker,concurrency){function _insert(q,data,pos,callback){data.constructor!==Array&&(data=[data]),_each(data,function(task){var item={data:task,callback:"function"==typeof callback?callback:null};pos?q.tasks.unshift(item):q.tasks.push(item),q.saturated&&q.tasks.length===concurrency&&q.saturated(),async.setImmediate(q.process)})}void 0===concurrency&&(concurrency=1);var workers=0,q={tasks:[],concurrency:concurrency,saturated:null,empty:null,drain:null,push:function(data,callback){_insert(q,data,!1,callback)},unshift:function(data,callback){_insert(q,data,!0,callback)},process:function(){if(workers<q.concurrency&&q.tasks.length){var task=q.tasks.shift();q.empty&&0===q.tasks.length&&q.empty(),workers+=1;var next=function(){workers-=1,task.callback&&task.callback.apply(task,arguments),q.drain&&q.tasks.length+workers===0&&q.drain(),q.process()},cb=only_once(next);worker(task.data,cb)}},length:function(){return q.tasks.length},running:function(){return workers}};return q},async.cargo=function(worker,payload){var working=!1,tasks=[],cargo={tasks:tasks,payload:payload,saturated:null,empty:null,drain:null,push:function(data,callback){data.constructor!==Array&&(data=[data]),_each(data,function(task){tasks.push({data:task,callback:"function"==typeof callback?callback:null}),cargo.saturated&&tasks.length===payload&&cargo.saturated()}),async.setImmediate(cargo.process)},process:function process(){if(!working){if(0===tasks.length)return void(cargo.drain&&cargo.drain());var ts="number"==typeof payload?tasks.splice(0,payload):tasks.splice(0),ds=_map(ts,function(task){return task.data});cargo.empty&&cargo.empty(),working=!0,worker(ds,function(){working=!1;var args=arguments;_each(ts,function(data){data.callback&&data.callback.apply(null,args)}),process()})}},length:function(){return tasks.length},running:function(){return working}};return cargo};var _console_fn=function(name){return function(fn){var args=Array.prototype.slice.call(arguments,1);fn.apply(null,args.concat([function(err){var args=Array.prototype.slice.call(arguments,1);"undefined"!=typeof console&&(err?console.error&&console.error(err):console[name]&&_each(args,function(x){console[name](x)}))}]))}};async.log=_console_fn("log"),async.dir=_console_fn("dir"),async.memoize=function(fn,hasher){var memo={},queues={};hasher=hasher||function(x){return x};var memoized=function(){var args=Array.prototype.slice.call(arguments),callback=args.pop(),key=hasher.apply(null,args);key in memo?callback.apply(null,memo[key]):key in queues?queues[key].push(callback):(queues[key]=[callback],fn.apply(null,args.concat([function(){memo[key]=arguments;var q=queues[key];delete queues[key];for(var i=0,l=q.length;l>i;i++)q[i].apply(null,arguments)}])))};return memoized.memo=memo,memoized.unmemoized=fn,memoized},async.unmemoize=function(fn){return function(){return(fn.unmemoized||fn).apply(null,arguments)}},async.times=function(count,iterator,callback){for(var counter=[],i=0;count>i;i++)counter.push(i);return async.map(counter,iterator,callback)},async.timesSeries=function(count,iterator,callback){for(var counter=[],i=0;count>i;i++)counter.push(i);return async.mapSeries(counter,iterator,callback)},async.compose=function(){var fns=Array.prototype.reverse.call(arguments);return function(){var that=this,args=Array.prototype.slice.call(arguments),callback=args.pop();async.reduce(fns,args,function(newargs,fn,cb){fn.apply(that,newargs.concat([function(){var err=arguments[0],nextargs=Array.prototype.slice.call(arguments,1);cb(err,nextargs)}]))},function(err,results){callback.apply(that,[err].concat(results))})}};var _applyEach=function(eachfn,fns){var go=function(){var that=this,args=Array.prototype.slice.call(arguments),callback=args.pop();return eachfn(fns,function(fn,cb){fn.apply(that,args.concat([cb]))},callback)};if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);return go.apply(this,args)}return go};async.applyEach=doParallel(_applyEach),async.applyEachSeries=doSeries(_applyEach),async.forever=function(fn,callback){function next(err){if(err){if(callback)return callback(err);throw err}fn(next)}next()},"undefined"!=typeof define&&define.amd?define([],function(){return async}):"undefined"!=typeof module&&module.exports?module.exports=async:root.async=async}(),function($){function maybeCall(thing,ctx){return"function"==typeof thing?thing.call(ctx):thing}function isElementInDOM(ele){for(;ele=ele.parentNode;)if(ele==document)return!0;return!1}function Tipsy(element,options){this.$element=$(element),this.options=options,this.enabled=!0,this.fixTitle()}Tipsy.prototype={show:function(){var title=this.getTitle();if(title&&this.enabled){var $tip=this.tip();$tip.find(".tipsy-inner")[this.options.html?"html":"text"](title),$tip[0].className="tipsy",$tip.remove().css({top:0,left:0,visibility:"hidden",display:"block"}).prependTo(document.body);var tp,pos=$.extend({},this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight}),actualWidth=$tip[0].offsetWidth,actualHeight=$tip[0].offsetHeight,gravity=maybeCall(this.options.gravity,this.$element[0]);switch(gravity.charAt(0)){case"n":tp={top:pos.top+pos.height+this.options.offset,left:pos.left+pos.width/2-actualWidth/2};break;case"s":tp={top:pos.top-actualHeight-this.options.offset,left:pos.left+pos.width/2-actualWidth/2};break;case"e":tp={top:pos.top+pos.height/2-actualHeight/2,left:pos.left-actualWidth-this.options.offset};break;case"w":tp={top:pos.top+pos.height/2-actualHeight/2,left:pos.left+pos.width+this.options.offset}}2==gravity.length&&("w"==gravity.charAt(1)?tp.left=pos.left+pos.width/2-15:tp.left=pos.left+pos.width/2-actualWidth+15),$tip.css(tp).addClass("tipsy-"+gravity),$tip.find(".tipsy-arrow")[0].className="tipsy-arrow tipsy-arrow-"+gravity.charAt(0),this.options.className&&$tip.addClass(maybeCall(this.options.className,this.$element[0])),this.options.fade?$tip.stop().css({opacity:0,display:"block",visibility:"visible"}).animate({opacity:this.options.opacity}):$tip.css({visibility:"visible",opacity:this.options.opacity})}},hide:function(){this.options.fade?this.tip().stop().fadeOut(function(){$(this).remove()}):this.tip().remove()},fixTitle:function(){var $e=this.$element;($e.attr("title")||"string"!=typeof $e.attr("original-title"))&&$e.attr("original-title",$e.attr("title")||"").removeAttr("title")},getTitle:function(){var title,$e=this.$element,o=this.options;this.fixTitle();var title,o=this.options;return"string"==typeof o.title?title=$e.attr("title"==o.title?"original-title":o.title):"function"==typeof o.title&&(title=o.title.call($e[0])),title=(""+title).replace(/(^\s*|\s*$)/,""),title||o.fallback},tip:function(){return this.$tip||(this.$tip=$('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>'),this.$tip.data("tipsy-pointee",this.$element[0])),this.$tip},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled}},$.fn.tipsy=function(options){function get(ele){var tipsy=$.data(ele,"tipsy");return tipsy||(tipsy=new Tipsy(ele,$.fn.tipsy.elementOptions(ele,options)),$.data(ele,"tipsy",tipsy)),tipsy}function enter(){var tipsy=get(this);tipsy.hoverState="in",0==options.delayIn?tipsy.show():(tipsy.fixTitle(),setTimeout(function(){"in"==tipsy.hoverState&&tipsy.show()},options.delayIn))}function leave(){var tipsy=get(this);tipsy.hoverState="out",0==options.delayOut?tipsy.hide():setTimeout(function(){"out"==tipsy.hoverState&&tipsy.hide()},options.delayOut)}if(options===!0)return this.data("tipsy");if("string"==typeof options){var tipsy=this.data("tipsy");return tipsy&&tipsy[options](),this}if(options=$.extend({},$.fn.tipsy.defaults,options),options.live||this.each(function(){get(this)}),"manual"!=options.trigger){var binder=options.live?"live":"bind",eventIn="hover"==options.trigger?"mouseenter":"focus",eventOut="hover"==options.trigger?"mouseleave":"blur";this[binder](eventIn,enter)[binder](eventOut,leave)}return this},$.fn.tipsy.defaults={className:null,delayIn:0,delayOut:0,fade:!1,fallback:"",gravity:"n",html:!1,live:!1,offset:0,opacity:.8,title:"title",trigger:"hover"},$.fn.tipsy.revalidate=function(){$(".tipsy").each(function(){var pointee=$.data(this,"tipsy-pointee");pointee&&isElementInDOM(pointee)||$(this).remove()})},$.fn.tipsy.elementOptions=function(ele,options){return $.metadata?$.extend({},options,$(ele).metadata()):options},$.fn.tipsy.autoNS=function(){return $(this).offset().top>$(document).scrollTop()+$(window).height()/2?"s":"n"},$.fn.tipsy.autoWE=function(){return $(this).offset().left>$(document).scrollLeft()+$(window).width()/2?"e":"w"},$.fn.tipsy.autoBounds=function(margin,prefer){return function(){var dir={ns:prefer[0],ew:prefer.length>1?prefer[1]:!1},boundTop=$(document).scrollTop()+margin,boundLeft=$(document).scrollLeft()+margin,$this=$(this);return $this.offset().top<boundTop&&(dir.ns="n"),$this.offset().left<boundLeft&&(dir.ew="w"),$(window).width()+$(document).scrollLeft()-$this.offset().left<margin&&(dir.ew="e"),$(window).height()+$(document).scrollTop()-$this.offset().top<margin&&(dir.ns="s"),dir.ns+(dir.ew?dir.ew:"")}}}(jQuery),function($){var current=null;$.kmodal=function(el,options){$.kmodal.close();var remove,target;if(this.$body=$("body"),this.options=$.extend({},$.kmodal.defaults,options),this.options.doFade=!isNaN(parseInt(this.options.fadeDuration,10)),el.is("a"))if(target=el.attr("href"),/^#/.test(target)){if(this.$elm=$(target),1!==this.$elm.length)return null;this.open()}else this.$elm=$("<div>"),this.$body.append(this.$elm),remove=function(event,modal){modal.elm.remove()},this.showSpinner(),el.trigger($.kmodal.AJAX_SEND),$.get(target).done(function(html){current&&(el.trigger($.kmodal.AJAX_SUCCESS),current.$elm.empty().append(html).on($.kmodal.CLOSE,remove),current.hideSpinner(),current.open(),el.trigger($.kmodal.AJAX_COMPLETE))}).fail(function(){el.trigger($.kmodal.AJAX_FAIL),current.hideSpinner(),el.trigger($.kmodal.AJAX_COMPLETE)});else this.$elm=el,this.$body.append(this.$elm),this.open()},$.kmodal.prototype={constructor:$.kmodal,open:function(){var m=this;this.options.doFade?(this.block(),setTimeout(function(){m.show()},this.options.fadeDuration*this.options.fadeDelay)):(this.block(),this.show()),this.options.escapeClose&&$(document).on("keydown.modal",function(event){27==event.which&&$.kmodal.close()}),this.options.clickClose&&this.blocker.click($.kmodal.close)},close:function(){this.unblock(),this.hide(),$(document).off("keydown.modal")},block:function(){var initialOpacity=this.options.doFade?0:this.options.opacity;this.$elm.trigger($.kmodal.BEFORE_BLOCK,[this._ctx()]),this.blocker=$('<div class="jquery-modal blocker"></div>').css({top:0,right:0,bottom:0,left:0,width:"100%",height:"100%",position:"fixed",zIndex:this.options.zIndex,background:this.options.overlay,opacity:initialOpacity}),this.$body.append(this.blocker),this.options.doFade&&this.blocker.animate({opacity:this.options.opacity},this.options.fadeDuration),this.$elm.trigger($.kmodal.BLOCK,[this._ctx()])},unblock:function(){this.options.doFade?this.blocker.fadeOut(this.options.fadeDuration,function(){$(this).remove()}):this.blocker.remove()},show:function(){this.$elm.trigger($.kmodal.BEFORE_OPEN,[this._ctx()]),this.options.showClose&&(this.closeButton=$('<a href="#close-modal" rel="modal:close" class="close-modal '+this.options.closeClass+'">'+this.options.closeText+"</a>"),this.$elm.append(this.closeButton)),this.$elm.addClass(this.options.modalClass+" current"),this.center(),this.options.doFade?this.$elm.fadeIn(this.options.fadeDuration):this.$elm.show(),this.$elm.trigger($.kmodal.OPEN,[this._ctx()])},hide:function(){this.$elm.trigger($.kmodal.BEFORE_CLOSE,[this._ctx()]),this.closeButton&&this.closeButton.remove(),this.$elm.removeClass("current"),this.options.doFade?this.$elm.fadeOut(this.options.fadeDuration):this.$elm.hide(),this.$elm.trigger($.kmodal.CLOSE,[this._ctx()])},showSpinner:function(){this.options.showSpinner&&(this.spinner=this.spinner||$('<div class="'+this.options.modalClass+'-spinner"></div>').append(this.options.spinnerHtml),this.$body.append(this.spinner),this.spinner.show())},hideSpinner:function(){this.spinner&&this.spinner.remove()},center:function(){this.$elm.css({position:"fixed",top:"50%",left:"50%",marginTop:-(this.$elm.outerHeight()/2),marginLeft:-(this.$elm.outerWidth()/2),zIndex:this.options.zIndex+1})},_ctx:function(){return{elm:this.$elm,blocker:this.blocker,options:this.options}}},$.kmodal.prototype.resize=$.kmodal.prototype.center,$.kmodal.close=function(event){if(current){event&&event.preventDefault(),current.close();var that=current.$elm;return current=null,that}},$.kmodal.resize=function(){current&¤t.resize()},$.kmodal.isActive=function(){return current?!0:!1},$.kmodal.defaults={overlay:"#000",opacity:.75,zIndex:1,escapeClose:!0,clickClose:!0,closeText:"Close",closeClass:"",modalClass:"kraken-modal",spinnerHtml:null,showSpinner:!0,showClose:!0,fadeDuration:null,fadeDelay:1},$.kmodal.BEFORE_BLOCK="modal:before-block",$.kmodal.BLOCK="modal:block",$.kmodal.BEFORE_OPEN="modal:before-open",$.kmodal.OPEN="modal:open",$.kmodal.BEFORE_CLOSE="modal:before-close",$.kmodal.CLOSE="modal:close",$.kmodal.AJAX_SEND="modal:ajax:send",$.kmodal.AJAX_SUCCESS="modal:ajax:success",$.kmodal.AJAX_FAIL="modal:ajax:fail",$.kmodal.AJAX_COMPLETE="modal:ajax:complete",$.fn.kmodal=function(options){return 1===this.length&&(current=new $.kmodal(this,options)),this},$(document).on("click.modal",'a[rel="modal:close"]',$.kmodal.close),$(document).on("click.modal",'a[rel="modal:open"]',function(event){event.preventDefault(),$(this).kmodal()})}(jQuery),jQuery(document).ready(function($){$(".krakenWhatsThis").tipsy({fade:!0,gravity:"w"});var data={action:"kraken_request"},errorTpl='<div class="krakenErrorWrap"><a class="krakenError">Failed! Hover here</a></div>',$btnApplyBulkAction=$("#doaction"),$btnApplyBulkAction2=$("#doaction2"),$topBulkActionDropdown=$(".tablenav.top .bulkactions select[name='action']"),$bottomBulkActionDropdown=$(".tablenav.bottom .bulkactions select[name='action2']"),requestSuccess=function(data,textStatus,jqXHR){var $button=$(this),$parent=$(this).parent(),$cell=$(this).closest("td");if(data.success&&"undefined"==typeof data.error){$button.text("Image optimized");var originalSize=(data.type,data.kraked_size,data.original_size),$originalSizeColumn=(data.savings_percent,$(this).parent().prev("td.original_size"));$parent.fadeOut("fast",function(){$cell.find(".noSavings, .krakenErrorWrap").remove(),$(this).replaceWith(data.html),$originalSizeColumn.html(originalSize),$parent.remove()})}else if(data.error){var $error=$(errorTpl).attr("title",data.error);$parent.closest("td").find(".krakenErrorWrap").remove(),$parent.after($error),$error.tipsy({fade:!0,gravity:"e"}),$button.text("Retry request").removeAttr("disabled").css({opacity:1})}},requestFail=function(jqXHR,textStatus,errorThrown){$(this).removeAttr("disabled")},requestComplete=function(jqXHR,textStatus,errorThrown){$(this).removeAttr("disabled"),$(this).parent().find(".krakenSpinner").css("display","none")},opts='<option value="kraken-bulk-lossy">Krak \'em all</option>';$topBulkActionDropdown.find("option:last-child").before(opts),$bottomBulkActionDropdown.find("option:last-child").before(opts);var getBulkImageData=function(){var $rows=$("tr[id^='post-']"),$row=null,postId=0,$krakBtn=null,btnData={},originalSize="",rv=[];return $rows.each(function(){$row=$(this),postId=this.id.replace(/^\D+/g,""),$row.find("input[type='checkbox'][value='"+postId+"']:checked").length&&($krakBtn=$row.find(".kraken_req"),$krakBtn.length&&(btnData=$krakBtn.data(),originalSize=$.trim($row.find("td.original_size").text()),btnData.originalSize=originalSize,rv.push(btnData)))}),rv},renderBulkImageSummary=function(bulkImageData){var modalOptions={zIndex:4,escapeClose:!0,clickClose:!1,closeText:"close",showClose:!1},setting=kraken_settings.api_lossy,nImages=bulkImageData.length,header='<p class="krakenBulkHeader">Kraken Bulk Image Optimization</p>',krakEmAll='<button class="kraken_req_bulk">Krak \'em all</button>',typeRadios='<span class="radiosWrap"><span class="kraken-bulk-choose-type">Choose:</span><input type="radio" id="kraken-bulk-type-lossy" value="Lossy" name="kraken-bulk-type"/><label for="kraken-bulk-type-lossy">Lossy</label> <input type="radio" id="kraken-bulk-type-lossless" value="Lossless" name="kraken-bulk-type"/><label for="kraken-bulk-type-lossless">Lossless</label></span>',$modal=$('<div id="kraken-bulk-modal" class="modal"></div>').html(header).append(typeRadios).append('<br /><small class="kraken-bulk-small">The following <strong>'+nImages+'</strong> images will be optimized by Kraken.io using the <strong class="bulkSetting">'+setting+"</strong> setting:</small><br />").appendTo("body").kmodal(modalOptions).bind($.kmodal.BEFORE_CLOSE,function(event,modal){}).bind($.kmodal.OPEN,function(event,modal){}).bind($.kmodal.CLOSE,function(event,modal){$("#kraken-bulk-modal").remove()}).css({top:"10px",marginTop:"40px"});"lossy"===setting?$("#kraken-bulk-type-lossy").attr("checked",!0):$("#kraken-bulk-type-lossless").attr("checked",!0),$bulkSettingSpan=$(".bulkSetting"),$("input[name='kraken-bulk-type']").change(function(){var text="kraken-bulk-type-lossy"===this.id?"lossy":"lossless";$bulkSettingSpan.text(text)}),$(".jquery-modal.blocker").click(function(e){return!1}),$("#menu-media ul.wp-submenu").css({"z-index":1});var $table=$('<table id="kraken-bulk"></table>'),$headerRow=$('<tr class="kraken-bulk-header"><td>File</td><td style="width:120px">Original Size</td><td style="width:120px">Kraked Size</td><td style="width:120px">Savings</td><td style="width:120px">% Savings</td></tr>');$table.append($headerRow),$.each(bulkImageData,function(index,element){$table.append('<tr class="kraken-item-row" data-krakenbulkid="'+element.id+'"><td class="kraken-filename">'+element.filename+'</td><td class="kraken-originalsize">'+element.originalSize+'</td><td class="kraken-krakedsize"><span class="krakenBulkSpinner hidden"></span></td><td class="kraken-savings"></td><td class="kraken-savingsPercent"></td></tr>')}),$modal.append($table).append(krakEmAll).append('<span class="close-kraken-bulk">Close Window</span>'),$(".close-kraken-bulk").click(function(){$.kmodal.close()}),nImages||$(".kraken_req_bulk").attr("disabled",!0).css({opacity:.5})},bulkAction=function(bulkImageData){$bulkTable=$("#kraken-bulk");var jqxhr=null,q=async.queue(function(task,callback){var id=task.id,$row=(task.filename,$bulkTable.find("tr[data-krakenbulkid='"+id+"']")),$krakedSizeColumn=$row.find(".kraken-krakedsize"),$spinner=$krakedSizeColumn.find(".krakenBulkSpinner").css({display:"inline-block"}),$savingsPercentColumn=$row.find(".kraken-savingsPercent"),$savingsBytesColumn=$row.find(".kraken-savings");jqxhr=$.ajax({url:ajax_object.ajax_url,data:{action:"kraken_request",id:id,type:$("input[name='kraken-bulk-type']:checked").val().toLowerCase()},type:"post",dataType:"json",timeout:36e4}).done(function(data,textStatus,jqXHR){if(data.success&&"undefined"==typeof data.error){var type=data.type,originalSize=data.original_size,krakedSize=data.kraked_size,savingsPercent=data.savings_percent,savingsBytes=data.saved_bytes;$krakedSizeColumn.text(krakedSize),$savingsPercentColumn.text(savingsPercent),$savingsBytesColumn.text(savingsBytes);var $button=$("button[id='krakenid-"+id+"']"),$parent=$button.parent(),$cell=$button.closest("td"),$originalSizeColumn=$button.parent().prev("td.original_size");$parent.fadeOut("fast",function(){$cell.find(".noSavings, .krakenErrorWrap").remove(),krakedData="<strong>"+krakedSize+"</strong><br /><small>Type: "+type+"</small><br /><small>Savings: "+savingsPercent+"</small>","undefined"!=typeof data.thumbs_data&&(krakedData+="<br /><small>"+data.thumbs_data.length+" thumbs optimized</small>"),$(this).replaceWith(krakedData),$originalSizeColumn.html(originalSize),$parent.remove()})}else data.error&&"This image can not be optimized any further"===data.error&&$krakedSizeColumn.text("No savings found.")}).fail(function(){}).always(function(){$spinner.css({display:"none"}),callback()})},kraken_settings.bulk_async_limit);q.drain=function(){$(".kraken_req_bulk").removeAttr("disabled").css({opacity:1}).text("Done").unbind("click").click(function(){$.kmodal.close()})},q.push(bulkImageData,function(err){})};$btnApplyBulkAction.add($btnApplyBulkAction2).click(function(e){if("kraken-bulk-lossy"===$(this).prev("select").val()){e.preventDefault();var bulkImageData=getBulkImageData();renderBulkImageSummary(bulkImageData),$(".kraken_req_bulk").click(function(e){e.preventDefault(),$(this).attr("disabled",!0).css({opacity:.5}),bulkAction(bulkImageData)})}}),$("body").on("click","small.krakenReset",function(e){e.preventDefault();var $resetButton=$(this),resetData={action:"kraken_reset"};resetData.id=$(this).data("id");var $spinner=$('<span class="resetSpinner"></span>');$resetButton.after($spinner);$.ajax({url:ajax_object.ajax_url,data:resetData,type:"post",dataType:"json",timeout:36e4}).done(function(data,textStatus,jqXHR){"undefined"!==data.success&&$resetButton.closest(".kraked_size.column-kraked_size").hide().html(data.html).fadeIn().prev(".original_size.column-original_size").html(data.original_size)})}),$("body").on("click",".kraken-reset-all",function(e){e.preventDefault();var reset=confirm("This will immediately remove all Kraken metadata associated with your images. \n\nAre you sure you want to do this?");if(reset){var $resetButton=$(this);$resetButton.text("Resetting images, pleaes wait...").attr("disabled",!0);
|
2 |
+
|
3 |
+
var resetData={action:"kraken_reset_all"},$spinner=$('<span class="resetSpinner"></span>');$resetButton.after($spinner);{$.ajax({url:ajax_object.ajax_url,data:resetData,type:"post",dataType:"json",timeout:36e4}).done(function(data,textStatus,jqXHR){$spinner.remove(),$resetButton.text("Your images have been reset.").removeAttr("disabled").removeClass("enabled")})}}}),$("body").on("click",".kraken_req",function(e){e.preventDefault();var $button=$(this),$parent=$(this).parent();data.id=$(this).data("id"),$button.text("Optimizing image...").attr("disabled",!0).css({opacity:.5}),$parent.find(".krakenSpinner").css("display","inline");$.ajax({url:ajax_object.ajax_url,data:data,type:"post",dataType:"json",timeout:36e4,context:$button}).done(requestSuccess).fail(requestFail).always(requestComplete)})});
|
js/jquery.modal.min.js
CHANGED
@@ -2,4 +2,225 @@
|
|
2 |
A simple jQuery modal (http://github.com/kylefox/jquery-modal)
|
3 |
Version 0.5.5
|
4 |
*/
|
5 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
A simple jQuery modal (http://github.com/kylefox/jquery-modal)
|
3 |
Version 0.5.5
|
4 |
*/
|
5 |
+
(function($) {
|
6 |
+
|
7 |
+
var current = null;
|
8 |
+
|
9 |
+
$.kmodal = function(el, options) {
|
10 |
+
$.kmodal.close(); // Close any open modals.
|
11 |
+
var remove, target;
|
12 |
+
this.$body = $('body');
|
13 |
+
this.options = $.extend({}, $.kmodal.defaults, options);
|
14 |
+
this.options.doFade = !isNaN(parseInt(this.options.fadeDuration, 10));
|
15 |
+
if (el.is('a')) {
|
16 |
+
target = el.attr('href');
|
17 |
+
//Select element by id from href
|
18 |
+
if (/^#/.test(target)) {
|
19 |
+
this.$elm = $(target);
|
20 |
+
if (this.$elm.length !== 1) return null;
|
21 |
+
this.open();
|
22 |
+
//AJAX
|
23 |
+
} else {
|
24 |
+
this.$elm = $('<div>');
|
25 |
+
this.$body.append(this.$elm);
|
26 |
+
remove = function(event, modal) { modal.elm.remove(); };
|
27 |
+
this.showSpinner();
|
28 |
+
el.trigger($.kmodal.AJAX_SEND);
|
29 |
+
$.get(target).done(function(html) {
|
30 |
+
if (!current) return;
|
31 |
+
el.trigger($.kmodal.AJAX_SUCCESS);
|
32 |
+
current.$elm.empty().append(html).on($.kmodal.CLOSE, remove);
|
33 |
+
current.hideSpinner();
|
34 |
+
current.open();
|
35 |
+
el.trigger($.kmodal.AJAX_COMPLETE);
|
36 |
+
}).fail(function() {
|
37 |
+
el.trigger($.kmodal.AJAX_FAIL);
|
38 |
+
current.hideSpinner();
|
39 |
+
el.trigger($.kmodal.AJAX_COMPLETE);
|
40 |
+
});
|
41 |
+
}
|
42 |
+
} else {
|
43 |
+
this.$elm = el;
|
44 |
+
this.$body.append(this.$elm);
|
45 |
+
this.open();
|
46 |
+
}
|
47 |
+
};
|
48 |
+
|
49 |
+
$.kmodal.prototype = {
|
50 |
+
constructor: $.kmodal,
|
51 |
+
|
52 |
+
open: function() {
|
53 |
+
var m = this;
|
54 |
+
if(this.options.doFade) {
|
55 |
+
this.block();
|
56 |
+
setTimeout(function() {
|
57 |
+
m.show();
|
58 |
+
}, this.options.fadeDuration * this.options.fadeDelay);
|
59 |
+
} else {
|
60 |
+
this.block();
|
61 |
+
this.show();
|
62 |
+
}
|
63 |
+
if (this.options.escapeClose) {
|
64 |
+
$(document).on('keydown.modal', function(event) {
|
65 |
+
if (event.which == 27) $.kmodal.close();
|
66 |
+
});
|
67 |
+
}
|
68 |
+
if (this.options.clickClose) this.blocker.click($.kmodal.close);
|
69 |
+
},
|
70 |
+
|
71 |
+
close: function() {
|
72 |
+
this.unblock();
|
73 |
+
this.hide();
|
74 |
+
$(document).off('keydown.modal');
|
75 |
+
},
|
76 |
+
|
77 |
+
block: function() {
|
78 |
+
var initialOpacity = this.options.doFade ? 0 : this.options.opacity;
|
79 |
+
this.$elm.trigger($.kmodal.BEFORE_BLOCK, [this._ctx()]);
|
80 |
+
this.blocker = $('<div class="jquery-modal blocker"></div>').css({
|
81 |
+
top: 0, right: 0, bottom: 0, left: 0,
|
82 |
+
width: "100%", height: "100%",
|
83 |
+
position: "fixed",
|
84 |
+
zIndex: this.options.zIndex,
|
85 |
+
background: this.options.overlay,
|
86 |
+
opacity: initialOpacity
|
87 |
+
});
|
88 |
+
this.$body.append(this.blocker);
|
89 |
+
if(this.options.doFade) {
|
90 |
+
this.blocker.animate({opacity: this.options.opacity}, this.options.fadeDuration);
|
91 |
+
}
|
92 |
+
this.$elm.trigger($.kmodal.BLOCK, [this._ctx()]);
|
93 |
+
},
|
94 |
+
|
95 |
+
unblock: function() {
|
96 |
+
if(this.options.doFade) {
|
97 |
+
this.blocker.fadeOut(this.options.fadeDuration, function() {
|
98 |
+
$(this).remove();
|
99 |
+
});
|
100 |
+
} else {
|
101 |
+
this.blocker.remove();
|
102 |
+
}
|
103 |
+
},
|
104 |
+
|
105 |
+
show: function() {
|
106 |
+
this.$elm.trigger($.kmodal.BEFORE_OPEN, [this._ctx()]);
|
107 |
+
if (this.options.showClose) {
|
108 |
+
this.closeButton = $('<a href="#close-modal" rel="modal:close" class="close-modal ' + this.options.closeClass + '">' + this.options.closeText + '</a>');
|
109 |
+
this.$elm.append(this.closeButton);
|
110 |
+
}
|
111 |
+
this.$elm.addClass(this.options.modalClass + ' current');
|
112 |
+
this.center();
|
113 |
+
if(this.options.doFade) {
|
114 |
+
this.$elm.fadeIn(this.options.fadeDuration);
|
115 |
+
} else {
|
116 |
+
this.$elm.show();
|
117 |
+
}
|
118 |
+
this.$elm.trigger($.kmodal.OPEN, [this._ctx()]);
|
119 |
+
},
|
120 |
+
|
121 |
+
hide: function() {
|
122 |
+
this.$elm.trigger($.kmodal.BEFORE_CLOSE, [this._ctx()]);
|
123 |
+
if (this.closeButton) this.closeButton.remove();
|
124 |
+
this.$elm.removeClass('current');
|
125 |
+
|
126 |
+
if(this.options.doFade) {
|
127 |
+
this.$elm.fadeOut(this.options.fadeDuration);
|
128 |
+
} else {
|
129 |
+
this.$elm.hide();
|
130 |
+
}
|
131 |
+
this.$elm.trigger($.kmodal.CLOSE, [this._ctx()]);
|
132 |
+
},
|
133 |
+
|
134 |
+
showSpinner: function() {
|
135 |
+
if (!this.options.showSpinner) return;
|
136 |
+
this.spinner = this.spinner || $('<div class="' + this.options.modalClass + '-spinner"></div>')
|
137 |
+
.append(this.options.spinnerHtml);
|
138 |
+
this.$body.append(this.spinner);
|
139 |
+
this.spinner.show();
|
140 |
+
},
|
141 |
+
|
142 |
+
hideSpinner: function() {
|
143 |
+
if (this.spinner) this.spinner.remove();
|
144 |
+
},
|
145 |
+
|
146 |
+
center: function() {
|
147 |
+
this.$elm.css({
|
148 |
+
position: 'fixed',
|
149 |
+
top: "50%",
|
150 |
+
left: "50%",
|
151 |
+
marginTop: - (this.$elm.outerHeight() / 2),
|
152 |
+
marginLeft: - (this.$elm.outerWidth() / 2),
|
153 |
+
zIndex: this.options.zIndex + 1
|
154 |
+
});
|
155 |
+
},
|
156 |
+
|
157 |
+
//Return context for custom events
|
158 |
+
_ctx: function() {
|
159 |
+
return { elm: this.$elm, blocker: this.blocker, options: this.options };
|
160 |
+
}
|
161 |
+
};
|
162 |
+
|
163 |
+
//resize is alias for center for now
|
164 |
+
$.kmodal.prototype.resize = $.kmodal.prototype.center;
|
165 |
+
|
166 |
+
$.kmodal.close = function(event) {
|
167 |
+
if (!current) return;
|
168 |
+
if (event) event.preventDefault();
|
169 |
+
current.close();
|
170 |
+
var that = current.$elm;
|
171 |
+
current = null;
|
172 |
+
return that;
|
173 |
+
};
|
174 |
+
|
175 |
+
$.kmodal.resize = function() {
|
176 |
+
if (!current) return;
|
177 |
+
current.resize();
|
178 |
+
};
|
179 |
+
|
180 |
+
// Returns if there currently is an active modal
|
181 |
+
$.kmodal.isActive = function () {
|
182 |
+
return current ? true : false;
|
183 |
+
}
|
184 |
+
|
185 |
+
$.kmodal.defaults = {
|
186 |
+
overlay: "#000",
|
187 |
+
opacity: 0.75,
|
188 |
+
zIndex: 1,
|
189 |
+
escapeClose: true,
|
190 |
+
clickClose: true,
|
191 |
+
closeText: 'Close',
|
192 |
+
closeClass: '',
|
193 |
+
modalClass: "kraken-modal",
|
194 |
+
spinnerHtml: null,
|
195 |
+
showSpinner: true,
|
196 |
+
showClose: true,
|
197 |
+
fadeDuration: null, // Number of milliseconds the fade animation takes.
|
198 |
+
fadeDelay: 1.0 // Point during the overlay's fade-in that the modal begins to fade in (.5 = 50%, 1.5 = 150%, etc.)
|
199 |
+
};
|
200 |
+
|
201 |
+
// Event constants
|
202 |
+
$.kmodal.BEFORE_BLOCK = 'modal:before-block';
|
203 |
+
$.kmodal.BLOCK = 'modal:block';
|
204 |
+
$.kmodal.BEFORE_OPEN = 'modal:before-open';
|
205 |
+
$.kmodal.OPEN = 'modal:open';
|
206 |
+
$.kmodal.BEFORE_CLOSE = 'modal:before-close';
|
207 |
+
$.kmodal.CLOSE = 'modal:close';
|
208 |
+
$.kmodal.AJAX_SEND = 'modal:ajax:send';
|
209 |
+
$.kmodal.AJAX_SUCCESS = 'modal:ajax:success';
|
210 |
+
$.kmodal.AJAX_FAIL = 'modal:ajax:fail';
|
211 |
+
$.kmodal.AJAX_COMPLETE = 'modal:ajax:complete';
|
212 |
+
|
213 |
+
$.fn.kmodal = function(options){
|
214 |
+
if (this.length === 1) {
|
215 |
+
current = new $.kmodal(this, options);
|
216 |
+
}
|
217 |
+
return this;
|
218 |
+
};
|
219 |
+
|
220 |
+
// Automatically bind links with rel="modal:close" to, well, close the modal.
|
221 |
+
$(document).on('click.modal', 'a[rel="modal:close"]', $.kmodal.close);
|
222 |
+
$(document).on('click.modal', 'a[rel="modal:open"]', function(event) {
|
223 |
+
event.preventDefault();
|
224 |
+
$(this).kmodal();
|
225 |
+
});
|
226 |
+
})(jQuery);
|
kraken.php
CHANGED
@@ -21,8 +21,8 @@
|
|
21 |
* Plugin URI: http://wordpress.org/plugins/kraken-image-optimizer/
|
22 |
* Description: This plugin allows you to optimize your WordPress images through the Kraken API, the world's most advanced image optimization solution.
|
23 |
* Author: Karim Salman
|
24 |
-
* Version: 1.0.
|
25 |
-
* Stable Tag: 1.0.
|
26 |
* Author URI: https://kraken.io
|
27 |
* License GPL2
|
28 |
*/
|
@@ -30,6 +30,7 @@
|
|
30 |
|
31 |
if ( !class_exists( 'Wp_Kraken' ) ) {
|
32 |
|
|
|
33 |
class Wp_Kraken {
|
34 |
|
35 |
private $id;
|
@@ -40,7 +41,7 @@ if ( !class_exists( 'Wp_Kraken' ) ) {
|
|
40 |
|
41 |
private $optimization_type = 'lossy';
|
42 |
|
43 |
-
public static $kraken_plugin_version = '1.0.
|
44 |
|
45 |
function __construct() {
|
46 |
$plugin_dir_path = dirname( __FILE__ );
|
@@ -134,15 +135,21 @@ if ( !class_exists( 'Wp_Kraken' ) ) {
|
|
134 |
function my_enqueue( $hook ) {
|
135 |
if ( $hook == 'options-media.php' || $hook == 'upload.php') {
|
136 |
wp_enqueue_script( 'jquery' );
|
137 |
-
|
138 |
-
|
139 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
wp_enqueue_style( 'kraken_admin_style', plugins_url( 'css/admin.css', __FILE__ ) );
|
141 |
wp_enqueue_style( 'tipsy-style', plugins_url( 'css/tipsy.css', __FILE__ ) );
|
142 |
wp_enqueue_style( 'modal-style', plugins_url( 'css/jquery.modal.css', __FILE__ ) );
|
143 |
-
wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
|
144 |
-
wp_localize_script( 'ajax-script', 'kraken_settings', $this->kraken_settings );
|
145 |
-
wp_enqueue_script( 'modal-js', plugins_url( '/js/jquery.modal.min.js', __FILE__ ), array( 'jquery' ) );
|
146 |
}
|
147 |
}
|
148 |
|
21 |
* Plugin URI: http://wordpress.org/plugins/kraken-image-optimizer/
|
22 |
* Description: This plugin allows you to optimize your WordPress images through the Kraken API, the world's most advanced image optimization solution.
|
23 |
* Author: Karim Salman
|
24 |
+
* Version: 1.0.9
|
25 |
+
* Stable Tag: 1.0.9
|
26 |
* Author URI: https://kraken.io
|
27 |
* License GPL2
|
28 |
*/
|
30 |
|
31 |
if ( !class_exists( 'Wp_Kraken' ) ) {
|
32 |
|
33 |
+
define( 'KRAKEN_DEV_MODE', false );
|
34 |
class Wp_Kraken {
|
35 |
|
36 |
private $id;
|
41 |
|
42 |
private $optimization_type = 'lossy';
|
43 |
|
44 |
+
public static $kraken_plugin_version = '1.0.9';
|
45 |
|
46 |
function __construct() {
|
47 |
$plugin_dir_path = dirname( __FILE__ );
|
135 |
function my_enqueue( $hook ) {
|
136 |
if ( $hook == 'options-media.php' || $hook == 'upload.php') {
|
137 |
wp_enqueue_script( 'jquery' );
|
138 |
+
if ( KRAKEN_DEV_MODE === true ) {
|
139 |
+
wp_enqueue_script( 'async-js', plugins_url( '/js/async.js', __FILE__ ) );
|
140 |
+
wp_enqueue_script( 'tipsy-js', plugins_url( '/js/jquery.tipsy.js', __FILE__ ), array( 'jquery' ) );
|
141 |
+
wp_enqueue_script( 'modal-js', plugins_url( '/js/jquery.modal.min.js', __FILE__ ), array( 'jquery' ) );
|
142 |
+
wp_enqueue_script( 'ajax-script', plugins_url( '/js/ajax.js', __FILE__ ), array( 'jquery' ) );
|
143 |
+
wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
|
144 |
+
wp_localize_script( 'ajax-script', 'kraken_settings', $this->kraken_settings );
|
145 |
+
} else {
|
146 |
+
wp_enqueue_script( 'kraken-js', plugins_url( '/js/dist/kraken.min.js', __FILE__ ), array( 'jquery' ) );
|
147 |
+
wp_localize_script( 'kraken-js', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
|
148 |
+
wp_localize_script( 'kraken-js', 'kraken_settings', $this->kraken_settings );
|
149 |
+
}
|
150 |
wp_enqueue_style( 'kraken_admin_style', plugins_url( 'css/admin.css', __FILE__ ) );
|
151 |
wp_enqueue_style( 'tipsy-style', plugins_url( 'css/tipsy.css', __FILE__ ) );
|
152 |
wp_enqueue_style( 'modal-style', plugins_url( 'css/jquery.modal.css', __FILE__ ) );
|
|
|
|
|
|
|
153 |
}
|
154 |
}
|
155 |
|
lib/Kraken.php
CHANGED
@@ -4,7 +4,7 @@ class Kraken
|
|
4 |
{
|
5 |
|
6 |
protected $auth = array();
|
7 |
-
public static $kraken_plugin_version = '1.0.
|
8 |
|
9 |
public function __construct($key = '', $secret = '')
|
10 |
{
|
4 |
{
|
5 |
|
6 |
protected $auth = array();
|
7 |
+
public static $kraken_plugin_version = '1.0.9';
|
8 |
|
9 |
public function __construct($key = '', $secret = '')
|
10 |
{
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: Image Optimizer, Image Optimiser, Optimize, Optimise, Images, Media, Perfo
|
|
4 |
Requires at least: 3.0.1
|
5 |
Tested up to: 4.1
|
6 |
Donate link: https://kraken.io
|
7 |
-
Stable tag: 1.0.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
10 |
|
@@ -94,6 +94,10 @@ You will need to switch the Media Library from the Thumbnail view to the List vi
|
|
94 |
|
95 |
== Changelog ==
|
96 |
|
|
|
|
|
|
|
|
|
97 |
= 1.0.8 =
|
98 |
* Added the ability to control the number of images the bulk tool optimizes at once. The default settings of 4 is recommended. Blogs with limited resources, for example those on small shared hosting plans should try a lower value if they run into issues with bulk optimization. Blogs on larger hosting plans can experiment with higher values.
|
99 |
|
4 |
Requires at least: 3.0.1
|
5 |
Tested up to: 4.1
|
6 |
Donate link: https://kraken.io
|
7 |
+
Stable tag: 1.0.9
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
10 |
|
94 |
|
95 |
== Changelog ==
|
96 |
|
97 |
+
= 1.0.9 =
|
98 |
+
* Fixed potential conflict with Bootstrap Modal on blogs using Twitter Bootstrap.
|
99 |
+
* Better bundling of scripts for faster loading of the plugin.
|
100 |
+
|
101 |
= 1.0.8 =
|
102 |
* Added the ability to control the number of images the bulk tool optimizes at once. The default settings of 4 is recommended. Blogs with limited resources, for example those on small shared hosting plans should try a lower value if they run into issues with bulk optimization. Blogs on larger hosting plans can experiment with higher values.
|
103 |
|