Download Monitor - Version 1.0.1

Version Description

  • Update blockui
  • Workaround root relative URLS
Download this release

Release Info

Developer jolley_small
Plugin Icon 128x128 Download Monitor
Version 1.0.1
Comparing to
See all releases

Code changes from version 1.0.0 to 1.0.1

assets/js/blockui.js CHANGED
@@ -1,10 +1,10 @@
1
  /*!
2
  * jQuery blockUI plugin
3
- * Version 2.39 (23-MAY-2011)
4
- * @requires jQuery v1.2.3 or later
5
  *
6
  * Examples at: http://malsup.com/jquery/block/
7
- * Copyright (c) 2007-2010 M. Alsup
8
  * Dual licensed under the MIT and GPL licenses:
9
  * http://www.opensource.org/licenses/mit-license.php
10
  * http://www.gnu.org/licenses/gpl.html
@@ -12,488 +12,605 @@
12
  * Thanks to Amir-Hossein Sobhi for some excellent contributions!
13
  */
14
 
15
- ;(function($) {
16
-
17
- if (/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
18
- alert('blockUI requires jQuery v1.2.3 or later! You are using v' + $.fn.jquery);
19
- return;
20
- }
21
-
22
- $.fn._fadeIn = $.fn.fadeIn;
23
-
24
- var noOp = function() {};
25
-
26
- // this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
27
- // retarded userAgent strings on Vista)
28
- var mode = document.documentMode || 0;
29
- var setExpr = $.browser.msie && (($.browser.version < 8 && !mode) || mode < 8);
30
- var ie6 = $.browser.msie && /MSIE 6.0/.test(navigator.userAgent) && !mode;
31
-
32
- // global $ methods for blocking/unblocking the entire page
33
- $.blockUI = function(opts) { install(window, opts); };
34
- $.unblockUI = function(opts) { remove(window, opts); };
35
-
36
- // convenience method for quick growl-like notifications (http://www.google.com/search?q=growl)
37
- $.growlUI = function(title, message, timeout, onClose) {
38
- var $m = $('<div class="growlUI"></div>');
39
- if (title) $m.append('<h1>'+title+'</h1>');
40
- if (message) $m.append('<h2>'+message+'</h2>');
41
- if (timeout == undefined) timeout = 3000;
42
- $.blockUI({
43
- message: $m, fadeIn: 700, fadeOut: 1000, centerY: false,
44
- timeout: timeout, showOverlay: false,
45
- onUnblock: onClose,
46
- css: $.blockUI.defaults.growlCSS
47
- });
48
- };
49
-
50
- // plugin method for blocking element content
51
- $.fn.block = function(opts) {
52
- return this.unblock({ fadeOut: 0 }).each(function() {
53
- if ($.css(this,'position') == 'static')
54
- this.style.position = 'relative';
55
- if ($.browser.msie)
56
- this.style.zoom = 1; // force 'hasLayout'
57
- install(this, opts);
58
- });
59
- };
60
-
61
- // plugin method for unblocking element content
62
- $.fn.unblock = function(opts) {
63
- return this.each(function() {
64
- remove(this, opts);
65
- });
66
- };
67
-
68
- $.blockUI.version = 2.39; // 2nd generation blocking at no extra cost!
69
-
70
- // override these in your code to change the default behavior and style
71
- $.blockUI.defaults = {
72
- // message displayed when blocking (use null for no message)
73
- message: '<h1>Please wait...</h1>',
74
-
75
- title: null, // title string; only used when theme == true
76
- draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded)
77
-
78
- theme: false, // set to true to use with jQuery UI themes
79
-
80
- // styles for the message when blocking; if you wish to disable
81
- // these and use an external stylesheet then do this in your code:
82
- // $.blockUI.defaults.css = {};
83
- css: {
84
- padding: 0,
85
- margin: 0,
86
- width: '30%',
87
- top: '40%',
88
- left: '35%',
89
- textAlign: 'center',
90
- color: '#000',
91
- border: '3px solid #aaa',
92
- backgroundColor:'#fff',
93
- cursor: 'wait'
94
- },
95
-
96
- // minimal style set used when themes are used
97
- themedCSS: {
98
- width: '30%',
99
- top: '40%',
100
- left: '35%'
101
- },
102
-
103
- // styles for the overlay
104
- overlayCSS: {
105
- backgroundColor: '#000',
106
- opacity: 0.6,
107
- cursor: 'wait'
108
- },
109
-
110
- // styles applied when using $.growlUI
111
- growlCSS: {
112
- width: '350px',
113
- top: '10px',
114
- left: '',
115
- right: '10px',
116
- border: 'none',
117
- padding: '5px',
118
- opacity: 0.6,
119
- cursor: 'default',
120
- color: '#fff',
121
- backgroundColor: '#000',
122
- '-webkit-border-radius': '10px',
123
- '-moz-border-radius': '10px',
124
- 'border-radius': '10px'
125
- },
126
-
127
- // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
128
- // (hat tip to Jorge H. N. de Vasconcelos)
129
- iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',
130
-
131
- // force usage of iframe in non-IE browsers (handy for blocking applets)
132
- forceIframe: false,
133
-
134
- // z-index for the blocking overlay
135
- baseZ: 1000,
136
-
137
- // set these to true to have the message automatically centered
138
- centerX: true, // <-- only effects element blocking (page block controlled via css above)
139
- centerY: true,
140
-
141
- // allow body element to be stetched in ie6; this makes blocking look better
142
- // on "short" pages. disable if you wish to prevent changes to the body height
143
- allowBodyStretch: true,
144
-
145
- // enable if you want key and mouse events to be disabled for content that is blocked
146
- bindEvents: true,
147
-
148
- // be default blockUI will supress tab navigation from leaving blocking content
149
- // (if bindEvents is true)
150
- constrainTabKey: true,
151
-
152
- // fadeIn time in millis; set to 0 to disable fadeIn on block
153
- fadeIn: 200,
154
-
155
- // fadeOut time in millis; set to 0 to disable fadeOut on unblock
156
- fadeOut: 400,
157
-
158
- // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
159
- timeout: 0,
160
-
161
- // disable if you don't want to show the overlay
162
- showOverlay: true,
163
-
164
- // if true, focus will be placed in the first available input field when
165
- // page blocking
166
- focusInput: true,
167
-
168
- // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
169
- applyPlatformOpacityRules: true,
170
-
171
- // callback method invoked when fadeIn has completed and blocking message is visible
172
- onBlock: null,
173
-
174
- // callback method invoked when unblocking has completed; the callback is
175
- // passed the element that has been unblocked (which is the window object for page
176
- // blocks) and the options that were passed to the unblock call:
177
- // onUnblock(element, options)
178
- onUnblock: null,
179
-
180
- // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
181
- quirksmodeOffsetHack: 4,
182
-
183
- // class name of the message block
184
- blockMsgClass: 'blockMsg'
185
- };
186
-
187
- // private data and functions follow...
188
-
189
- var pageBlock = null;
190
- var pageBlockEls = [];
191
-
192
- function install(el, opts) {
193
- var full = (el == window);
194
- var msg = opts && opts.message !== undefined ? opts.message : undefined;
195
- opts = $.extend({}, $.blockUI.defaults, opts || {});
196
- opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
197
- var css = $.extend({}, $.blockUI.defaults.css, opts.css || {});
198
- var themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});
199
- msg = msg === undefined ? opts.message : msg;
200
-
201
- // remove the current block (if there is one)
202
- if (full && pageBlock)
203
- remove(window, {fadeOut:0});
204
-
205
- // if an existing element is being used as the blocking content then we capture
206
- // its current place in the DOM (and current display style) so we can restore
207
- // it when we unblock
208
- if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
209
- var node = msg.jquery ? msg[0] : msg;
210
- var data = {};
211
- $(el).data('blockUI.history', data);
212
- data.el = node;
213
- data.parent = node.parentNode;
214
- data.display = node.style.display;
215
- data.position = node.style.position;
216
- if (data.parent)
217
- data.parent.removeChild(node);
218
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
219
 
220
- $(el).data('blockUI.onUnblock', opts.onUnblock);
221
- var z = opts.baseZ;
222
-
223
- // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
224
- // layer1 is the iframe layer which is used to supress bleed through of underlying content
225
- // layer2 is the overlay layer which has opacity and a wait cursor (by default)
226
- // layer3 is the message content that is displayed while blocking
227
-
228
- var lyr1 = ($.browser.msie || opts.forceIframe)
229
- ? $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>')
230
- : $('<div class="blockUI" style="display:none"></div>');
231
-
232
- var lyr2 = opts.theme
233
- ? $('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+ (z++) +';display:none"></div>')
234
- : $('<div class="blockUI blockOverlay" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
235
-
236
- var lyr3, s;
237
- if (opts.theme && full) {
238
- s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:fixed">' +
239
- '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>' +
240
- '<div class="ui-widget-content ui-dialog-content"></div>' +
241
- '</div>';
242
- }
243
- else if (opts.theme) {
244
- s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">' +
245
- '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>' +
246
- '<div class="ui-widget-content ui-dialog-content"></div>' +
247
- '</div>';
248
- }
249
- else if (full) {
250
- s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage" style="z-index:'+(z+10)+';display:none;position:fixed"></div>';
251
- }
252
- else {
253
- s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement" style="z-index:'+(z+10)+';display:none;position:absolute"></div>';
254
- }
255
- lyr3 = $(s);
256
 
257
- // if we have a message, style it
258
- if (msg) {
259
- if (opts.theme) {
260
- lyr3.css(themedCSS);
261
- lyr3.addClass('ui-widget-content');
262
- }
263
- else
264
- lyr3.css(css);
265
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
266
 
267
- // style the overlay
268
- if (!opts.theme && (!opts.applyPlatformOpacityRules || !($.browser.mozilla && /Linux/.test(navigator.platform))))
269
- lyr2.css(opts.overlayCSS);
270
- lyr2.css('position', full ? 'fixed' : 'absolute');
271
-
272
- // make iframe layer transparent in IE
273
- if ($.browser.msie || opts.forceIframe)
274
- lyr1.css('opacity',0.0);
275
-
276
- //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);
277
- var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el);
278
- $.each(layers, function() {
279
- this.appendTo($par);
280
- });
281
-
282
- if (opts.theme && opts.draggable && $.fn.draggable) {
283
- lyr3.draggable({
284
- handle: '.ui-dialog-titlebar',
285
- cancel: 'li'
286
- });
287
- }
288
 
289
- // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
290
- var expr = setExpr && (!$.boxModel || $('object,embed', full ? null : el).length > 0);
291
- if (ie6 || expr) {
292
- // give body 100% height
293
- if (full && opts.allowBodyStretch && $.boxModel)
294
- $('html,body').css('height','100%');
295
-
296
- // fix ie6 issue when blocked element has a border width
297
- if ((ie6 || !$.boxModel) && !full) {
298
- var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth');
299
- var fixT = t ? '(0 - '+t+')' : 0;
300
- var fixL = l ? '(0 - '+l+')' : 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  }
302
 
303
- // simulate fixed position
304
- $.each([lyr1,lyr2,lyr3], function(i,o) {
305
- var s = o[0].style;
306
- s.position = 'absolute';
307
- if (i < 2) {
308
- full ? s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"')
309
- : s.setExpression('height','this.parentNode.offsetHeight + "px"');
310
- full ? s.setExpression('width','jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"')
311
- : s.setExpression('width','this.parentNode.offsetWidth + "px"');
312
- if (fixL) s.setExpression('left', fixL);
313
- if (fixT) s.setExpression('top', fixT);
314
  }
315
- else if (opts.centerY) {
316
- if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
317
- s.marginTop = 0;
 
 
 
318
  }
319
- else if (!opts.centerY && full) {
320
- var top = (opts.css && opts.css.top) ? parseInt(opts.css.top) : 0;
321
- var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"';
322
- s.setExpression('top',expression);
 
 
 
 
 
 
 
 
 
323
  }
324
- });
325
- }
326
 
327
- // show the message
328
- if (msg) {
329
- if (opts.theme)
330
- lyr3.find('.ui-widget-content').append(msg);
331
- else
332
- lyr3.append(msg);
333
- if (msg.jquery || msg.nodeType)
334
- $(msg).show();
335
- }
336
 
337
- if (($.browser.msie || opts.forceIframe) && opts.showOverlay)
338
- lyr1.show(); // opacity is zero
339
- if (opts.fadeIn) {
340
- var cb = opts.onBlock ? opts.onBlock : noOp;
341
- var cb1 = (opts.showOverlay && !msg) ? cb : noOp;
342
- var cb2 = msg ? cb : noOp;
343
- if (opts.showOverlay)
344
- lyr2._fadeIn(opts.fadeIn, cb1);
345
- if (msg)
346
- lyr3._fadeIn(opts.fadeIn, cb2);
347
- }
348
- else {
349
- if (opts.showOverlay)
350
- lyr2.show();
351
- if (msg)
352
- lyr3.show();
353
- if (opts.onBlock)
354
- opts.onBlock();
355
- }
356
 
357
- // bind key and mouse events
358
- bind(1, el, opts);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
359
 
360
- if (full) {
361
- pageBlock = lyr3[0];
362
- pageBlockEls = $(':input:enabled:visible',pageBlock);
363
- if (opts.focusInput)
364
- setTimeout(focus, 20);
365
- }
366
- else
367
- center(lyr3[0], opts.centerX, opts.centerY);
368
-
369
- if (opts.timeout) {
370
- // auto-unblock
371
- var to = setTimeout(function() {
372
- full ? $.unblockUI(opts) : $(el).unblock(opts);
373
- }, opts.timeout);
374
- $(el).data('blockUI.timeout', to);
375
- }
376
- };
377
-
378
- // remove the block
379
- function remove(el, opts) {
380
- var full = (el == window);
381
- var $el = $(el);
382
- var data = $el.data('blockUI.history');
383
- var to = $el.data('blockUI.timeout');
384
- if (to) {
385
- clearTimeout(to);
386
- $el.removeData('blockUI.timeout');
387
- }
388
- opts = $.extend({}, $.blockUI.defaults, opts || {});
389
- bind(0, el, opts); // unbind events
390
 
391
- if (opts.onUnblock === null) {
392
- opts.onUnblock = $el.data('blockUI.onUnblock');
393
- $el.removeData('blockUI.onUnblock');
394
- }
395
 
396
- var els;
397
- if (full) // crazy selector to handle odd field errors in ie6/7
398
- els = $('body').children().filter('.blockUI').add('body > .blockUI');
399
- else
400
- els = $('.blockUI', el);
401
 
402
- if (full)
403
- pageBlock = pageBlockEls = null;
 
404
 
405
- if (opts.fadeOut) {
406
- els.fadeOut(opts.fadeOut);
407
- setTimeout(function() { reset(els,data,opts,el); }, opts.fadeOut);
408
- }
409
- else
410
- reset(els, data, opts, el);
411
- };
412
-
413
- // move blocking element back into the DOM where it started
414
- function reset(els,data,opts,el) {
415
- els.each(function(i,o) {
416
- // remove via DOM calls so we don't lose event handlers
417
- if (this.parentNode)
418
- this.parentNode.removeChild(this);
419
- });
420
-
421
- if (data && data.el) {
422
- data.el.style.display = data.display;
423
- data.el.style.position = data.position;
424
- if (data.parent)
425
- data.parent.appendChild(data.el);
426
- $(el).removeData('blockUI.history');
427
- }
428
 
429
- if (typeof opts.onUnblock == 'function')
430
- opts.onUnblock(el,opts);
431
- };
432
-
433
- // bind/unbind the handler
434
- function bind(b, el, opts) {
435
- var full = el == window, $el = $(el);
436
-
437
- // don't bother unbinding if there is nothing to unbind
438
- if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
439
- return;
440
- if (!full)
441
- $el.data('blockUI.isBlocked', b);
442
-
443
- // don't bind events when overlay is not in use or if bindEvents is false
444
- if (!opts.bindEvents || (b && !opts.showOverlay))
445
- return;
446
-
447
- // bind anchors and inputs for mouse and key events
448
- var events = 'mousedown mouseup keydown keypress';
449
- b ? $(document).bind(events, opts, handler) : $(document).unbind(events, handler);
450
-
451
- // former impl...
452
- // var $e = $('a,:input');
453
- // b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
454
- };
455
-
456
- // event handler to suppress keyboard/mouse events when blocking
457
- function handler(e) {
458
- // allow tab navigation (conditionally)
459
- if (e.keyCode && e.keyCode == 9) {
460
- if (pageBlock && e.data.constrainTabKey) {
461
- var els = pageBlockEls;
462
- var fwd = !e.shiftKey && e.target === els[els.length-1];
463
- var back = e.shiftKey && e.target === els[0];
464
- if (fwd || back) {
465
- setTimeout(function(){focus(back)},10);
466
- return false;
467
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
468
  }
 
 
 
 
 
469
  }
470
- var opts = e.data;
471
- // allow events within the message content
472
- if ($(e.target).parents('div.' + opts.blockMsgClass).length > 0)
473
- return true;
474
-
475
- // allow events for content that is not being blocked
476
- return $(e.target).parents().children().filter('div.blockUI').length == 0;
477
- };
478
-
479
- function focus(back) {
480
- if (!pageBlockEls)
481
- return;
482
- var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0];
483
- if (e)
484
- e.focus();
485
- };
486
-
487
- function center(el, x, y) {
488
- var p = el.parentNode, s = el.style;
489
- var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth');
490
- var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth');
491
- if (x) s.left = l > 0 ? (l+'px') : '0';
492
- if (y) s.top = t > 0 ? (t+'px') : '0';
493
- };
494
-
495
- function sz(el, p) {
496
- return parseInt($.css(el,p))||0;
497
- };
498
-
499
- })(jQuery);
1
  /*!
2
  * jQuery blockUI plugin
3
+ * Version 2.61.0-2013.06.06
4
+ * @requires jQuery v1.7 or later
5
  *
6
  * Examples at: http://malsup.com/jquery/block/
7
+ * Copyright (c) 2007-2013 M. Alsup
8
  * Dual licensed under the MIT and GPL licenses:
9
  * http://www.opensource.org/licenses/mit-license.php
10
  * http://www.gnu.org/licenses/gpl.html
12
  * Thanks to Amir-Hossein Sobhi for some excellent contributions!
13
  */
14
 
15
+ ;(function() {
16
+ /*jshint eqeqeq:false curly:false latedef:false */
17
+ "use strict";
18
+
19
+ function setup($) {
20
+ $.fn._fadeIn = $.fn.fadeIn;
21
+
22
+ var noOp = $.noop || function() {};
23
+
24
+ // this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
25
+ // retarded userAgent strings on Vista)
26
+ var msie = /MSIE/.test(navigator.userAgent);
27
+ var ie6 = /MSIE 6.0/.test(navigator.userAgent) && ! /MSIE 8.0/.test(navigator.userAgent);
28
+ var mode = document.documentMode || 0;
29
+ var setExpr = $.isFunction( document.createElement('div').style.setExpression );
30
+
31
+ // global $ methods for blocking/unblocking the entire page
32
+ $.blockUI = function(opts) { install(window, opts); };
33
+ $.unblockUI = function(opts) { remove(window, opts); };
34
+
35
+ // convenience method for quick growl-like notifications (http://www.google.com/search?q=growl)
36
+ $.growlUI = function(title, message, timeout, onClose) {
37
+ var $m = $('<div class="growlUI"></div>');
38
+ if (title) $m.append('<h1>'+title+'</h1>');
39
+ if (message) $m.append('<h2>'+message+'</h2>');
40
+ if (timeout === undefined) timeout = 3000;
41
+
42
+ // Added by konapun: Set timeout to 30 seconds if this growl is moused over, like normal toast notifications
43
+ var callBlock = function(opts) {
44
+ opts = opts || {};
45
+
46
+ $.blockUI({
47
+ message: $m,
48
+ fadeIn : typeof opts.fadeIn !== 'undefined' ? opts.fadeIn : 700,
49
+ fadeOut: typeof opts.fadeOut !== 'undefined' ? opts.fadeOut : 1000,
50
+ timeout: typeof opts.timeout !== 'undefined' ? opts.timeout : timeout,
51
+ centerY: false,
52
+ showOverlay: false,
53
+ onUnblock: onClose,
54
+ css: $.blockUI.defaults.growlCSS
55
+ });
56
+ };
57
+
58
+ callBlock();
59
+ var nonmousedOpacity = $m.css('opacity');
60
+ $m.mouseover(function() {
61
+ callBlock({
62
+ fadeIn: 0,
63
+ timeout: 30000
64
+ });
65
+
66
+ var displayBlock = $('.blockMsg');
67
+ displayBlock.stop(); // cancel fadeout if it has started
68
+ displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency
69
+ }).mouseout(function() {
70
+ $('.blockMsg').fadeOut(1000);
71
+ });
72
+ // End konapun additions
73
+ };
74
+
75
+ // plugin method for blocking element content
76
+ $.fn.block = function(opts) {
77
+ if ( this[0] === window ) {
78
+ $.blockUI( opts );
79
+ return this;
80
+ }
81
+ var fullOpts = $.extend({}, $.blockUI.defaults, opts || {});
82
+ this.each(function() {
83
+ var $el = $(this);
84
+ if (fullOpts.ignoreIfBlocked && $el.data('blockUI.isBlocked'))
85
+ return;
86
+ $el.unblock({ fadeOut: 0 });
87
+ });
88
+
89
+ return this.each(function() {
90
+ if ($.css(this,'position') == 'static') {
91
+ this.style.position = 'relative';
92
+ $(this).data('blockUI.static', true);
93
+ }
94
+ this.style.zoom = 1; // force 'hasLayout' in ie
95
+ install(this, opts);
96
+ });
97
+ };
98
+
99
+ // plugin method for unblocking element content
100
+ $.fn.unblock = function(opts) {
101
+ if ( this[0] === window ) {
102
+ $.unblockUI( opts );
103
+ return this;
104
+ }
105
+ return this.each(function() {
106
+ remove(this, opts);
107
+ });
108
+ };
109
+
110
+ $.blockUI.version = 2.60; // 2nd generation blocking at no extra cost!
111
+
112
+ // override these in your code to change the default behavior and style
113
+ $.blockUI.defaults = {
114
+ // message displayed when blocking (use null for no message)
115
+ message: '<h1>Please wait...</h1>',
116
+
117
+ title: null, // title string; only used when theme == true
118
+ draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded)
119
+
120
+ theme: false, // set to true to use with jQuery UI themes
121
+
122
+ // styles for the message when blocking; if you wish to disable
123
+ // these and use an external stylesheet then do this in your code:
124
+ // $.blockUI.defaults.css = {};
125
+ css: {
126
+ padding: 0,
127
+ margin: 0,
128
+ width: '30%',
129
+ top: '40%',
130
+ left: '35%',
131
+ textAlign: 'center',
132
+ color: '#000',
133
+ border: '3px solid #aaa',
134
+ backgroundColor:'#fff',
135
+ cursor: 'wait'
136
+ },
137
+
138
+ // minimal style set used when themes are used
139
+ themedCSS: {
140
+ width: '30%',
141
+ top: '40%',
142
+ left: '35%'
143
+ },
144
+
145
+ // styles for the overlay
146
+ overlayCSS: {
147
+ backgroundColor: '#000',
148
+ opacity: 0.6,
149
+ cursor: 'wait'
150
+ },
151
+
152
+ // style to replace wait cursor before unblocking to correct issue
153
+ // of lingering wait cursor
154
+ cursorReset: 'default',
155
+
156
+ // styles applied when using $.growlUI
157
+ growlCSS: {
158
+ width: '350px',
159
+ top: '10px',
160
+ left: '',
161
+ right: '10px',
162
+ border: 'none',
163
+ padding: '5px',
164
+ opacity: 0.6,
165
+ cursor: 'default',
166
+ color: '#fff',
167
+ backgroundColor: '#000',
168
+ '-webkit-border-radius':'10px',
169
+ '-moz-border-radius': '10px',
170
+ 'border-radius': '10px'
171
+ },
172
+
173
+ // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
174
+ // (hat tip to Jorge H. N. de Vasconcelos)
175
+ /*jshint scripturl:true */
176
+ iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',
177
+
178
+ // force usage of iframe in non-IE browsers (handy for blocking applets)
179
+ forceIframe: false,
180
+
181
+ // z-index for the blocking overlay
182
+ baseZ: 1000,
183
+
184
+ // set these to true to have the message automatically centered
185
+ centerX: true, // <-- only effects element blocking (page block controlled via css above)
186
+ centerY: true,
187
+
188
+ // allow body element to be stetched in ie6; this makes blocking look better
189
+ // on "short" pages. disable if you wish to prevent changes to the body height
190
+ allowBodyStretch: true,
191
+
192
+ // enable if you want key and mouse events to be disabled for content that is blocked
193
+ bindEvents: true,
194
+
195
+ // be default blockUI will supress tab navigation from leaving blocking content
196
+ // (if bindEvents is true)
197
+ constrainTabKey: true,
198
+
199
+ // fadeIn time in millis; set to 0 to disable fadeIn on block
200
+ fadeIn: 200,
201
+
202
+ // fadeOut time in millis; set to 0 to disable fadeOut on unblock
203
+ fadeOut: 400,
204
+
205
+ // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
206
+ timeout: 0,
207
+
208
+ // disable if you don't want to show the overlay
209
+ showOverlay: true,
210
+
211
+ // if true, focus will be placed in the first available input field when
212
+ // page blocking
213
+ focusInput: true,
214
+
215
+ // elements that can receive focus
216
+ focusableElements: ':input:enabled:visible',
217
+
218
+ // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
219
+ // no longer needed in 2012
220
+ // applyPlatformOpacityRules: true,
221
+
222
+ // callback method invoked when fadeIn has completed and blocking message is visible
223
+ onBlock: null,
224
+
225
+ // callback method invoked when unblocking has completed; the callback is
226
+ // passed the element that has been unblocked (which is the window object for page
227
+ // blocks) and the options that were passed to the unblock call:
228
+ // onUnblock(element, options)
229
+ onUnblock: null,
230
+
231
+ // callback method invoked when the overlay area is clicked.
232
+ // setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used.
233
+ onOverlayClick: null,
234
+
235
+ // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
236
+ quirksmodeOffsetHack: 4,
237
+
238
+ // class name of the message block
239
+ blockMsgClass: 'blockMsg',
240
+
241
+ // if it is already blocked, then ignore it (don't unblock and reblock)
242
+ ignoreIfBlocked: false
243
+ };
244
+
245
+ // private data and functions follow...
246
+
247
+ var pageBlock = null;
248
+ var pageBlockEls = [];
249
+
250
+ function install(el, opts) {
251
+ var css, themedCSS;
252
+ var full = (el == window);
253
+ var msg = (opts && opts.message !== undefined ? opts.message : undefined);
254
+ opts = $.extend({}, $.blockUI.defaults, opts || {});
255
+
256
+ if (opts.ignoreIfBlocked && $(el).data('blockUI.isBlocked'))
257
+ return;
258
+
259
+ opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
260
+ css = $.extend({}, $.blockUI.defaults.css, opts.css || {});
261
+ if (opts.onOverlayClick)
262
+ opts.overlayCSS.cursor = 'pointer';
263
+
264
+ themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});
265
+ msg = msg === undefined ? opts.message : msg;
266
+
267
+ // remove the current block (if there is one)
268
+ if (full && pageBlock)
269
+ remove(window, {fadeOut:0});
270
 
271
+ // if an existing element is being used as the blocking content then we capture
272
+ // its current place in the DOM (and current display style) so we can restore
273
+ // it when we unblock
274
+ if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
275
+ var node = msg.jquery ? msg[0] : msg;
276
+ var data = {};
277
+ $(el).data('blockUI.history', data);
278
+ data.el = node;
279
+ data.parent = node.parentNode;
280
+ data.display = node.style.display;
281
+ data.position = node.style.position;
282
+ if (data.parent)
283
+ data.parent.removeChild(node);
284
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
 
286
+ $(el).data('blockUI.onUnblock', opts.onUnblock);
287
+ var z = opts.baseZ;
288
+
289
+ // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
290
+ // layer1 is the iframe layer which is used to supress bleed through of underlying content
291
+ // layer2 is the overlay layer which has opacity and a wait cursor (by default)
292
+ // layer3 is the message content that is displayed while blocking
293
+ var lyr1, lyr2, lyr3, s;
294
+ if (msie || opts.forceIframe)
295
+ lyr1 = $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>');
296
+ else
297
+ lyr1 = $('<div class="blockUI" style="display:none"></div>');
298
+
299
+ if (opts.theme)
300
+ lyr2 = $('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+ (z++) +';display:none"></div>');
301
+ else
302
+ lyr2 = $('<div class="blockUI blockOverlay" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
303
+
304
+ if (opts.theme && full) {
305
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:fixed">';
306
+ if ( opts.title ) {
307
+ s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>';
308
+ }
309
+ s += '<div class="ui-widget-content ui-dialog-content"></div>';
310
+ s += '</div>';
311
+ }
312
+ else if (opts.theme) {
313
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">';
314
+ if ( opts.title ) {
315
+ s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>';
316
+ }
317
+ s += '<div class="ui-widget-content ui-dialog-content"></div>';
318
+ s += '</div>';
319
+ }
320
+ else if (full) {
321
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage" style="z-index:'+(z+10)+';display:none;position:fixed"></div>';
322
+ }
323
+ else {
324
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement" style="z-index:'+(z+10)+';display:none;position:absolute"></div>';
325
+ }
326
+ lyr3 = $(s);
327
+
328
+ // if we have a message, style it
329
+ if (msg) {
330
+ if (opts.theme) {
331
+ lyr3.css(themedCSS);
332
+ lyr3.addClass('ui-widget-content');
333
+ }
334
+ else
335
+ lyr3.css(css);
336
+ }
337
 
338
+ // style the overlay
339
+ if (!opts.theme /*&& (!opts.applyPlatformOpacityRules)*/)
340
+ lyr2.css(opts.overlayCSS);
341
+ lyr2.css('position', full ? 'fixed' : 'absolute');
342
+
343
+ // make iframe layer transparent in IE
344
+ if (msie || opts.forceIframe)
345
+ lyr1.css('opacity',0.0);
346
+
347
+ //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);
348
+ var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el);
349
+ $.each(layers, function() {
350
+ this.appendTo($par);
351
+ });
352
+
353
+ if (opts.theme && opts.draggable && $.fn.draggable) {
354
+ lyr3.draggable({
355
+ handle: '.ui-dialog-titlebar',
356
+ cancel: 'li'
357
+ });
358
+ }
359
 
360
+ // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
361
+ var expr = setExpr && (!$.support.boxModel || $('object,embed', full ? null : el).length > 0);
362
+ if (ie6 || expr) {
363
+ // give body 100% height
364
+ if (full && opts.allowBodyStretch && $.support.boxModel)
365
+ $('html,body').css('height','100%');
366
+
367
+ // fix ie6 issue when blocked element has a border width
368
+ if ((ie6 || !$.support.boxModel) && !full) {
369
+ var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth');
370
+ var fixT = t ? '(0 - '+t+')' : 0;
371
+ var fixL = l ? '(0 - '+l+')' : 0;
372
+ }
373
+
374
+ // simulate fixed position
375
+ $.each(layers, function(i,o) {
376
+ var s = o[0].style;
377
+ s.position = 'absolute';
378
+ if (i < 2) {
379
+ if (full)
380
+ s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"');
381
+ else
382
+ s.setExpression('height','this.parentNode.offsetHeight + "px"');
383
+ if (full)
384
+ s.setExpression('width','jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"');
385
+ else
386
+ s.setExpression('width','this.parentNode.offsetWidth + "px"');
387
+ if (fixL) s.setExpression('left', fixL);
388
+ if (fixT) s.setExpression('top', fixT);
389
+ }
390
+ else if (opts.centerY) {
391
+ if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
392
+ s.marginTop = 0;
393
+ }
394
+ else if (!opts.centerY && full) {
395
+ var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0;
396
+ var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"';
397
+ s.setExpression('top',expression);
398
+ }
399
+ });
400
+ }
401
+
402
+ // show the message
403
+ if (msg) {
404
+ if (opts.theme)
405
+ lyr3.find('.ui-widget-content').append(msg);
406
+ else
407
+ lyr3.append(msg);
408
+ if (msg.jquery || msg.nodeType)
409
+ $(msg).show();
410
+ }
411
+
412
+ if ((msie || opts.forceIframe) && opts.showOverlay)
413
+ lyr1.show(); // opacity is zero
414
+ if (opts.fadeIn) {
415
+ var cb = opts.onBlock ? opts.onBlock : noOp;
416
+ var cb1 = (opts.showOverlay && !msg) ? cb : noOp;
417
+ var cb2 = msg ? cb : noOp;
418
+ if (opts.showOverlay)
419
+ lyr2._fadeIn(opts.fadeIn, cb1);
420
+ if (msg)
421
+ lyr3._fadeIn(opts.fadeIn, cb2);
422
+ }
423
+ else {
424
+ if (opts.showOverlay)
425
+ lyr2.show();
426
+ if (msg)
427
+ lyr3.show();
428
+ if (opts.onBlock)
429
+ opts.onBlock();
430
+ }
431
+
432
+ // bind key and mouse events
433
+ bind(1, el, opts);
434
+
435
+ if (full) {
436
+ pageBlock = lyr3[0];
437
+ pageBlockEls = $(opts.focusableElements,pageBlock);
438
+ if (opts.focusInput)
439
+ setTimeout(focus, 20);
440
+ }
441
+ else
442
+ center(lyr3[0], opts.centerX, opts.centerY);
443
+
444
+ if (opts.timeout) {
445
+ // auto-unblock
446
+ var to = setTimeout(function() {
447
+ if (full)
448
+ $.unblockUI(opts);
449
+ else
450
+ $(el).unblock(opts);
451
+ }, opts.timeout);
452
+ $(el).data('blockUI.timeout', to);
453
+ }
454
  }
455
 
456
+ // remove the block
457
+ function remove(el, opts) {
458
+ var count;
459
+ var full = (el == window);
460
+ var $el = $(el);
461
+ var data = $el.data('blockUI.history');
462
+ var to = $el.data('blockUI.timeout');
463
+ if (to) {
464
+ clearTimeout(to);
465
+ $el.removeData('blockUI.timeout');
 
466
  }
467
+ opts = $.extend({}, $.blockUI.defaults, opts || {});
468
+ bind(0, el, opts); // unbind events
469
+
470
+ if (opts.onUnblock === null) {
471
+ opts.onUnblock = $el.data('blockUI.onUnblock');
472
+ $el.removeData('blockUI.onUnblock');
473
  }
474
+
475
+ var els;
476
+ if (full) // crazy selector to handle odd field errors in ie6/7
477
+ els = $('body').children().filter('.blockUI').add('body > .blockUI');
478
+ else
479
+ els = $el.find('>.blockUI');
480
+
481
+ // fix cursor issue
482
+ if ( opts.cursorReset ) {
483
+ if ( els.length > 1 )
484
+ els[1].style.cursor = opts.cursorReset;
485
+ if ( els.length > 2 )
486
+ els[2].style.cursor = opts.cursorReset;
487
  }
 
 
488
 
489
+ if (full)
490
+ pageBlock = pageBlockEls = null;
 
 
 
 
 
 
 
491
 
492
+ if (opts.fadeOut) {
493
+ count = els.length;
494
+ els.fadeOut(opts.fadeOut, function() {
495
+ if ( --count === 0)
496
+ reset(els,data,opts,el);
497
+ });
498
+ }
499
+ else
500
+ reset(els, data, opts, el);
501
+ }
 
 
 
 
 
 
 
 
 
502
 
503
+ // move blocking element back into the DOM where it started
504
+ function reset(els,data,opts,el) {
505
+ var $el = $(el);
506
+ els.each(function(i,o) {
507
+ // remove via DOM calls so we don't lose event handlers
508
+ if (this.parentNode)
509
+ this.parentNode.removeChild(this);
510
+ });
511
+
512
+ if (data && data.el) {
513
+ data.el.style.display = data.display;
514
+ data.el.style.position = data.position;
515
+ if (data.parent)
516
+ data.parent.appendChild(data.el);
517
+ $el.removeData('blockUI.history');
518
+ }
519
 
520
+ if ($el.data('blockUI.static')) {
521
+ $el.css('position', 'static'); // #22
522
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
523
 
524
+ if (typeof opts.onUnblock == 'function')
525
+ opts.onUnblock(el,opts);
 
 
526
 
527
+ // fix issue in Safari 6 where block artifacts remain until reflow
528
+ var body = $(document.body), w = body.width(), cssW = body[0].style.width;
529
+ body.width(w-1).width(w);
530
+ body[0].style.width = cssW;
531
+ }
532
 
533
+ // bind/unbind the handler
534
+ function bind(b, el, opts) {
535
+ var full = el == window, $el = $(el);
536
 
537
+ // don't bother unbinding if there is nothing to unbind
538
+ if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
539
+ return;
540
+
541
+ $el.data('blockUI.isBlocked', b);
542
+
543
+ // don't bind events when overlay is not in use or if bindEvents is false
544
+ if (!full || !opts.bindEvents || (b && !opts.showOverlay))
545
+ return;
546
+
547
+ // bind anchors and inputs for mouse and key events
548
+ var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove';
549
+ if (b)
550
+ $(document).bind(events, opts, handler);
551
+ else
552
+ $(document).unbind(events, handler);
 
 
 
 
 
 
 
553
 
554
+ // former impl...
555
+ // var $e = $('a,:input');
556
+ // b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
557
+ }
558
+
559
+ // event handler to suppress keyboard/mouse events when blocking
560
+ function handler(e) {
561
+ // allow tab navigation (conditionally)
562
+ if (e.keyCode && e.keyCode == 9) {
563
+ if (pageBlock && e.data.constrainTabKey) {
564
+ var els = pageBlockEls;
565
+ var fwd = !e.shiftKey && e.target === els[els.length-1];
566
+ var back = e.shiftKey && e.target === els[0];
567
+ if (fwd || back) {
568
+ setTimeout(function(){focus(back);},10);
569
+ return false;
570
+ }
571
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
572
  }
573
+ var opts = e.data;
574
+ var target = $(e.target);
575
+ if (target.hasClass('blockOverlay') && opts.onOverlayClick)
576
+ opts.onOverlayClick();
577
+
578
+ // allow events within the message content
579
+ if (target.parents('div.' + opts.blockMsgClass).length > 0)
580
+ return true;
581
+
582
+ // allow events for content that is not being blocked
583
+ return target.parents().children().filter('div.blockUI').length === 0;
584
+ }
585
+
586
+ function focus(back) {
587
+ if (!pageBlockEls)
588
+ return;
589
+ var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0];
590
+ if (e)
591
+ e.focus();
592
+ }
593
+
594
+ function center(el, x, y) {
595
+ var p = el.parentNode, s = el.style;
596
+ var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth');
597
+ var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth');
598
+ if (x) s.left = l > 0 ? (l+'px') : '0';
599
+ if (y) s.top = t > 0 ? (t+'px') : '0';
600
  }
601
+
602
+ function sz(el, p) {
603
+ return parseInt($.css(el,p),10)||0;
604
+ }
605
+
606
  }
607
+
608
+
609
+ /*global define:true */
610
+ if (typeof define === 'function' && define.amd && define.amd.jQuery) {
611
+ define(['jquery'], setup);
612
+ } else {
613
+ setup(jQuery);
614
+ }
615
+
616
+ })();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/blockui.min.js CHANGED
@@ -1,13 +1,13 @@
1
  /*!
2
  * jQuery blockUI plugin
3
- * Version 2.39 (23-MAY-2011)
4
- * @requires jQuery v1.2.3 or later
5
  *
6
  * Examples at: http://malsup.com/jquery/block/
7
- * Copyright (c) 2007-2010 M. Alsup
8
  * Dual licensed under the MIT and GPL licenses:
9
  * http://www.opensource.org/licenses/mit-license.php
10
  * http://www.gnu.org/licenses/gpl.html
11
  *
12
  * Thanks to Amir-Hossein Sobhi for some excellent contributions!
13
- */(function(a){function h(c,h){var j=c==window,l=h&&h.message!==undefined?h.message:undefined;h=a.extend({},a.blockUI.defaults,h||{});h.overlayCSS=a.extend({},a.blockUI.defaults.overlayCSS,h.overlayCSS||{});var p=a.extend({},a.blockUI.defaults.css,h.css||{}),q=a.extend({},a.blockUI.defaults.themedCSS,h.themedCSS||{});l=l===undefined?h.message:l;j&&f&&i(window,{fadeOut:0});if(l&&typeof l!="string"&&(l.parentNode||l.jquery)){var r=l.jquery?l[0]:l,s={};a(c).data("blockUI.history",s);s.el=r;s.parent=r.parentNode;s.display=r.style.display;s.position=r.style.position;s.parent&&s.parent.removeChild(r)}a(c).data("blockUI.onUnblock",h.onUnblock);var t=h.baseZ,u=a.browser.msie||h.forceIframe?a('<iframe class="blockUI" style="z-index:'+t++ +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+h.iframeSrc+'"></iframe>'):a('<div class="blockUI" style="display:none"></div>'),v=h.theme?a('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+t++ +';display:none"></div>'):a('<div class="blockUI blockOverlay" style="z-index:'+t++ +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>'),w,x;h.theme&&j?x='<div class="blockUI '+h.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(t+10)+';display:none;position:fixed">'+'<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(h.title||"&nbsp;")+"</div>"+'<div class="ui-widget-content ui-dialog-content"></div>'+"</div>":h.theme?x='<div class="blockUI '+h.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(t+10)+';display:none;position:absolute">'+'<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(h.title||"&nbsp;")+"</div>"+'<div class="ui-widget-content ui-dialog-content"></div>'+"</div>":j?x='<div class="blockUI '+h.blockMsgClass+' blockPage" style="z-index:'+(t+10)+';display:none;position:fixed"></div>':x='<div class="blockUI '+h.blockMsgClass+' blockElement" style="z-index:'+(t+10)+';display:none;position:absolute"></div>';w=a(x);if(l)if(h.theme){w.css(q);w.addClass("ui-widget-content")}else w.css(p);!h.theme&&(!h.applyPlatformOpacityRules||!a.browser.mozilla||!/Linux/.test(navigator.platform))&&v.css(h.overlayCSS);v.css("position",j?"fixed":"absolute");(a.browser.msie||h.forceIframe)&&u.css("opacity",0);var y=[u,v,w],z=j?a("body"):a(c);a.each(y,function(){this.appendTo(z)});h.theme&&h.draggable&&a.fn.draggable&&w.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var A=d&&(!a.boxModel||a("object,embed",j?null:c).length>0);if(e||A){j&&h.allowBodyStretch&&a.boxModel&&a("html,body").css("height","100%");if((e||!a.boxModel)&&!j)var B=o(c,"borderTopWidth"),C=o(c,"borderLeftWidth"),D=B?"(0 - "+B+")":0,E=C?"(0 - "+C+")":0;a.each([u,v,w],function(a,b){var c=b[0].style;c.position="absolute";if(a<2){j?c.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:"+h.quirksmodeOffsetHack+') + "px"'):c.setExpression("height",'this.parentNode.offsetHeight + "px"');j?c.setExpression("width",'jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):c.setExpression("width",'this.parentNode.offsetWidth + "px"');E&&c.setExpression("left",E);D&&c.setExpression("top",D)}else if(h.centerY){j&&c.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');c.marginTop=0}else if(!h.centerY&&j){var d=h.css&&h.css.top?parseInt(h.css.top):0,e="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+d+') + "px"';c.setExpression("top",e)}})}if(l){h.theme?w.find(".ui-widget-content").append(l):w.append(l);(l.jquery||l.nodeType)&&a(l).show()}(a.browser.msie||h.forceIframe)&&h.showOverlay&&u.show();if(h.fadeIn){var F=h.onBlock?h.onBlock:b,G=h.showOverlay&&!l?F:b,H=l?F:b;h.showOverlay&&v._fadeIn(h.fadeIn,G);l&&w._fadeIn(h.fadeIn,H)}else{h.showOverlay&&v.show();l&&w.show();h.onBlock&&h.onBlock()}k(1,c,h);if(j){f=w[0];g=a(":input:enabled:visible",f);h.focusInput&&setTimeout(m,20)}else n(w[0],h.centerX,h.centerY);if(h.timeout){var I=setTimeout(function(){j?a.unblockUI(h):a(c).unblock(h)},h.timeout);a(c).data("blockUI.timeout",I)}}function i(b,c){var d=b==window,e=a(b),h=e.data("blockUI.history"),i=e.data("blockUI.timeout");if(i){clearTimeout(i);e.removeData("blockUI.timeout")}c=a.extend({},a.blockUI.defaults,c||{});k(0,b,c);if(c.onUnblock===null){c.onUnblock=e.data("blockUI.onUnblock");e.removeData("blockUI.onUnblock")}var l;d?l=a("body").children().filter(".blockUI").add("body > .blockUI"):l=a(".blockUI",b);d&&(f=g=null);if(c.fadeOut){l.fadeOut(c.fadeOut);setTimeout(function(){j(l,h,c,b)},c.fadeOut)}else j(l,h,c,b)}function j(b,c,d,e){b.each(function(a,b){this.parentNode&&this.parentNode.removeChild(this)});if(c&&c.el){c.el.style.display=c.display;c.el.style.position=c.position;c.parent&&c.parent.appendChild(c.el);a(e).removeData("blockUI.history")}typeof d.onUnblock=="function"&&d.onUnblock(e,d)}function k(b,c,d){var e=c==window,g=a(c);if(!b&&(e&&!f||!e&&!g.data("blockUI.isBlocked")))return;e||g.data("blockUI.isBlocked",b);if(!d.bindEvents||b&&!d.showOverlay)return;var h="mousedown mouseup keydown keypress";b?a(document).bind(h,d,l):a(document).unbind(h,l)}function l(b){if(b.keyCode&&b.keyCode==9&&f&&b.data.constrainTabKey){var c=g,d=!b.shiftKey&&b.target===c[c.length-1],e=b.shiftKey&&b.target===c[0];if(d||e){setTimeout(function(){m(e)},10);return!1}}var h=b.data;return a(b.target).parents("div."+h.blockMsgClass).length>0?!0:a(b.target).parents().children().filter("div.blockUI").length==0}function m(a){if(!g)return;var b=g[a===!0?g.length-1:0];b&&b.focus()}function n(a,b,c){var d=a.parentNode,e=a.style,f=(d.offsetWidth-a.offsetWidth)/2-o(d,"borderLeftWidth"),g=(d.offsetHeight-a.offsetHeight)/2-o(d,"borderTopWidth");b&&(e.left=f>0?f+"px":"0");c&&(e.top=g>0?g+"px":"0")}function o(b,c){return parseInt(a.css(b,c))||0}if(/1\.(0|1|2)\.(0|1|2)/.test(a.fn.jquery)||/^1.1/.test(a.fn.jquery)){alert("blockUI requires jQuery v1.2.3 or later! You are using v"+a.fn.jquery);return}a.fn._fadeIn=a.fn.fadeIn;var b=function(){},c=document.documentMode||0,d=a.browser.msie&&(a.browser.version<8&&!c||c<8),e=a.browser.msie&&/MSIE 6.0/.test(navigator.userAgent)&&!c;a.blockUI=function(a){h(window,a)};a.unblockUI=function(a){i(window,a)};a.growlUI=function(b,c,d,e){var f=a('<div class="growlUI"></div>');b&&f.append("<h1>"+b+"</h1>");c&&f.append("<h2>"+c+"</h2>");d==undefined&&(d=3e3);a.blockUI({message:f,fadeIn:700,fadeOut:1e3,centerY:!1,timeout:d,showOverlay:!1,onUnblock:e,css:a.blockUI.defaults.growlCSS})};a.fn.block=function(b){return this.unblock({fadeOut:0}).each(function(){a.css(this,"position")=="static"&&(this.style.position="relative");a.browser.msie&&(this.style.zoom=1);h(this,b)})};a.fn.unblock=function(a){return this.each(function(){i(this,a)})};a.blockUI.version=2.39;a.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,applyPlatformOpacityRules:!0,onBlock:null,onUnblock:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg"};var f=null,g=[]})(jQuery);
1
  /*!
2
  * jQuery blockUI plugin
3
+ * Version 2.61.0-2013.06.06
4
+ * @requires jQuery v1.7 or later
5
  *
6
  * Examples at: http://malsup.com/jquery/block/
7
+ * Copyright (c) 2007-2013 M. Alsup
8
  * Dual licensed under the MIT and GPL licenses:
9
  * http://www.opensource.org/licenses/mit-license.php
10
  * http://www.gnu.org/licenses/gpl.html
11
  *
12
  * Thanks to Amir-Hossein Sobhi for some excellent contributions!
13
+ */(function(){"use strict";function e(e){function a(i,a){var l,h,m=i==window,g=a&&a.message!==undefined?a.message:undefined;a=e.extend({},e.blockUI.defaults,a||{});if(a.ignoreIfBlocked&&e(i).data("blockUI.isBlocked"))return;a.overlayCSS=e.extend({},e.blockUI.defaults.overlayCSS,a.overlayCSS||{});l=e.extend({},e.blockUI.defaults.css,a.css||{});a.onOverlayClick&&(a.overlayCSS.cursor="pointer");h=e.extend({},e.blockUI.defaults.themedCSS,a.themedCSS||{});g=g===undefined?a.message:g;m&&o&&f(window,{fadeOut:0});if(g&&typeof g!="string"&&(g.parentNode||g.jquery)){var y=g.jquery?g[0]:g,b={};e(i).data("blockUI.history",b);b.el=y;b.parent=y.parentNode;b.display=y.style.display;b.position=y.style.position;b.parent&&b.parent.removeChild(y)}e(i).data("blockUI.onUnblock",a.onUnblock);var w=a.baseZ,E,S,x,T;n||a.forceIframe?E=e('<iframe class="blockUI" style="z-index:'+w++ +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+a.iframeSrc+'"></iframe>'):E=e('<div class="blockUI" style="display:none"></div>');a.theme?S=e('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+w++ +';display:none"></div>'):S=e('<div class="blockUI blockOverlay" style="z-index:'+w++ +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');if(a.theme&&m){T='<div class="blockUI '+a.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(w+10)+';display:none;position:fixed">';a.title&&(T+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(a.title||"&nbsp;")+"</div>");T+='<div class="ui-widget-content ui-dialog-content"></div>';T+="</div>"}else if(a.theme){T='<div class="blockUI '+a.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(w+10)+';display:none;position:absolute">';a.title&&(T+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(a.title||"&nbsp;")+"</div>");T+='<div class="ui-widget-content ui-dialog-content"></div>';T+="</div>"}else m?T='<div class="blockUI '+a.blockMsgClass+' blockPage" style="z-index:'+(w+10)+';display:none;position:fixed"></div>':T='<div class="blockUI '+a.blockMsgClass+' blockElement" style="z-index:'+(w+10)+';display:none;position:absolute"></div>';x=e(T);if(g)if(a.theme){x.css(h);x.addClass("ui-widget-content")}else x.css(l);a.theme||S.css(a.overlayCSS);S.css("position",m?"fixed":"absolute");(n||a.forceIframe)&&E.css("opacity",0);var N=[E,S,x],C=m?e("body"):e(i);e.each(N,function(){this.appendTo(C)});a.theme&&a.draggable&&e.fn.draggable&&x.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var k=s&&(!e.support.boxModel||e("object,embed",m?null:i).length>0);if(r||k){m&&a.allowBodyStretch&&e.support.boxModel&&e("html,body").css("height","100%");if((r||!e.support.boxModel)&&!m)var L=v(i,"borderTopWidth"),A=v(i,"borderLeftWidth"),O=L?"(0 - "+L+")":0,M=A?"(0 - "+A+")":0;e.each(N,function(e,t){var n=t[0].style;n.position="absolute";if(e<2){m?n.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+a.quirksmodeOffsetHack+') + "px"'):n.setExpression("height",'this.parentNode.offsetHeight + "px"');m?n.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):n.setExpression("width",'this.parentNode.offsetWidth + "px"');M&&n.setExpression("left",M);O&&n.setExpression("top",O)}else if(a.centerY){m&&n.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');n.marginTop=0}else if(!a.centerY&&m){var r=a.css&&a.css.top?parseInt(a.css.top,10):0,i="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+r+') + "px"';n.setExpression("top",i)}})}if(g){a.theme?x.find(".ui-widget-content").append(g):x.append(g);(g.jquery||g.nodeType)&&e(g).show()}(n||a.forceIframe)&&a.showOverlay&&E.show();if(a.fadeIn){var _=a.onBlock?a.onBlock:t,D=a.showOverlay&&!g?_:t,P=g?_:t;a.showOverlay&&S._fadeIn(a.fadeIn,D);g&&x._fadeIn(a.fadeIn,P)}else{a.showOverlay&&S.show();g&&x.show();a.onBlock&&a.onBlock()}c(1,i,a);if(m){o=x[0];u=e(a.focusableElements,o);a.focusInput&&setTimeout(p,20)}else d(x[0],a.centerX,a.centerY);if(a.timeout){var H=setTimeout(function(){m?e.unblockUI(a):e(i).unblock(a)},a.timeout);e(i).data("blockUI.timeout",H)}}function f(t,n){var r,i=t==window,s=e(t),a=s.data("blockUI.history"),f=s.data("blockUI.timeout");if(f){clearTimeout(f);s.removeData("blockUI.timeout")}n=e.extend({},e.blockUI.defaults,n||{});c(0,t,n);if(n.onUnblock===null){n.onUnblock=s.data("blockUI.onUnblock");s.removeData("blockUI.onUnblock")}var h;i?h=e("body").children().filter(".blockUI").add("body > .blockUI"):h=s.find(">.blockUI");if(n.cursorReset){h.length>1&&(h[1].style.cursor=n.cursorReset);h.length>2&&(h[2].style.cursor=n.cursorReset)}i&&(o=u=null);if(n.fadeOut){r=h.length;h.fadeOut(n.fadeOut,function(){--r===0&&l(h,a,n,t)})}else l(h,a,n,t)}function l(t,n,r,i){var s=e(i);t.each(function(e,t){this.parentNode&&this.parentNode.removeChild(this)});if(n&&n.el){n.el.style.display=n.display;n.el.style.position=n.position;n.parent&&n.parent.appendChild(n.el);s.removeData("blockUI.history")}s.data("blockUI.static")&&s.css("position","static");typeof r.onUnblock=="function"&&r.onUnblock(i,r);var o=e(document.body),u=o.width(),a=o[0].style.width;o.width(u-1).width(u);o[0].style.width=a}function c(t,n,r){var i=n==window,s=e(n);if(!t&&(i&&!o||!i&&!s.data("blockUI.isBlocked")))return;s.data("blockUI.isBlocked",t);if(!i||!r.bindEvents||t&&!r.showOverlay)return;var u="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";t?e(document).bind(u,r,h):e(document).unbind(u,h)}function h(t){if(t.keyCode&&t.keyCode==9&&o&&t.data.constrainTabKey){var n=u,r=!t.shiftKey&&t.target===n[n.length-1],i=t.shiftKey&&t.target===n[0];if(r||i){setTimeout(function(){p(i)},10);return!1}}var s=t.data,a=e(t.target);a.hasClass("blockOverlay")&&s.onOverlayClick&&s.onOverlayClick();return a.parents("div."+s.blockMsgClass).length>0?!0:a.parents().children().filter("div.blockUI").length===0}function p(e){if(!u)return;var t=u[e===!0?u.length-1:0];t&&t.focus()}function d(e,t,n){var r=e.parentNode,i=e.style,s=(r.offsetWidth-e.offsetWidth)/2-v(r,"borderLeftWidth"),o=(r.offsetHeight-e.offsetHeight)/2-v(r,"borderTopWidth");t&&(i.left=s>0?s+"px":"0");n&&(i.top=o>0?o+"px":"0")}function v(t,n){return parseInt(e.css(t,n),10)||0}e.fn._fadeIn=e.fn.fadeIn;var t=e.noop||function(){},n=/MSIE/.test(navigator.userAgent),r=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),i=document.documentMode||0,s=e.isFunction(document.createElement("div").style.setExpression);e.blockUI=function(e){a(window,e)};e.unblockUI=function(e){f(window,e)};e.growlUI=function(t,n,r,i){var s=e('<div class="growlUI"></div>');t&&s.append("<h1>"+t+"</h1>");n&&s.append("<h2>"+n+"</h2>");r===undefined&&(r=3e3);var o=function(t){t=t||{};e.blockUI({message:s,fadeIn:typeof t.fadeIn!="undefined"?t.fadeIn:700,fadeOut:typeof t.fadeOut!="undefined"?t.fadeOut:1e3,timeout:typeof t.timeout!="undefined"?t.timeout:r,centerY:!1,showOverlay:!1,onUnblock:i,css:e.blockUI.defaults.growlCSS})};o();var u=s.css("opacity");s.mouseover(function(){o({fadeIn:0,timeout:3e4});var t=e(".blockMsg");t.stop();t.fadeTo(300,1)}).mouseout(function(){e(".blockMsg").fadeOut(1e3)})};e.fn.block=function(t){if(this[0]===window){e.blockUI(t);return this}var n=e.extend({},e.blockUI.defaults,t||{});this.each(function(){var t=e(this);if(n.ignoreIfBlocked&&t.data("blockUI.isBlocked"))return;t.unblock({fadeOut:0})});return this.each(function(){if(e.css(this,"position")=="static"){this.style.position="relative";e(this).data("blockUI.static",!0)}this.style.zoom=1;a(this,t)})};e.fn.unblock=function(t){if(this[0]===window){e.unblockUI(t);return this}return this.each(function(){f(this,t)})};e.blockUI.version=2.6;e.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var o=null,u=[]}typeof define=="function"&&define.amd&&define.amd.jQuery?define(["jquery"],e):e(jQuery)})();
download-monitor.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Download Monitor
4
  Plugin URI: http://mikejolley.com/projects/download-monitor/
5
  Description: A full solution for managing downloadable files, monitoring downloads and outputting download links and file information on your WordPress powered site.
6
- Version: 1.0.0
7
  Author: Mike Jolley
8
  Author URI: http://mikejolley.com
9
  Requires at least: 3.5
3
  Plugin Name: Download Monitor
4
  Plugin URI: http://mikejolley.com/projects/download-monitor/
5
  Description: A full solution for managing downloadable files, monitoring downloads and outputting download links and file information on your WordPress powered site.
6
+ Version: 1.0.1
7
  Author: Mike Jolley
8
  Author URI: http://mikejolley.com
9
  Requires at least: 3.5
includes/admin/class-dlm-admin.php CHANGED
@@ -186,7 +186,7 @@ class DLM_Admin {
186
  public function admin_enqueue_scripts() {
187
  global $download_monitor;
188
 
189
- wp_enqueue_script( 'jquery-blockui', $download_monitor->plugin_url() . '/assets/js/blockui.min.js', '2.39', array( 'jquery' ) );
190
  wp_enqueue_script( 'jquery-ui-sortable' );
191
  wp_enqueue_script( 'jquery-ui-datepicker' );
192
  wp_enqueue_style( 'jquery-ui-style', (is_ssl()) ? 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css' : 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css' );
186
  public function admin_enqueue_scripts() {
187
  global $download_monitor;
188
 
189
+ wp_enqueue_script( 'jquery-blockui', $download_monitor->plugin_url() . '/assets/js/blockui.min.js', '2.61', array( 'jquery' ) );
190
  wp_enqueue_script( 'jquery-ui-sortable' );
191
  wp_enqueue_script( 'jquery-ui-datepicker' );
192
  wp_enqueue_style( 'jquery-ui-style', (is_ssl()) ? 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css' : 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css' );
includes/class-dlm-download-handler.php CHANGED
@@ -192,8 +192,15 @@ class DLM_Download_Handler {
192
  if ( strstr( $file_path, 'http:' ) || strstr( $file_path, 'https:' ) || strstr( $file_path, 'ftp:' ) ) {
193
  $remote_file = true;
194
  } else {
195
- $remote_file = false;
196
- $file_path = realpath( current( explode( '?', $file_path ) ) );
 
 
 
 
 
 
 
197
  }
198
 
199
  // Get Mime Type
192
  if ( strstr( $file_path, 'http:' ) || strstr( $file_path, 'https:' ) || strstr( $file_path, 'ftp:' ) ) {
193
  $remote_file = true;
194
  } else {
195
+ $remote_file = false;
196
+ $real_file_path = realpath( current( explode( '?', $file_path ) ) );
197
+
198
+ if ( ! empty( $real_file_path ) )
199
+ $file_path = $real_file_path;
200
+
201
+ // See if we need to add abspath if this is a relative URL
202
+ if ( ! file_exists( $file_path ) && file_exists( ABSPATH . $file_path ) )
203
+ $file_path = ABSPATH . $file_path;
204
  }
205
 
206
  // Get Mime Type
languages/download_monitor-de_DE.mo ADDED
Binary file
languages/download_monitor-de_DE.po ADDED
@@ -0,0 +1,976 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Download Monitor v1.0.0\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2013-06-24 22:09:31+0000\n"
7
+ "Last-Translator: wp_admin <staublicht@gmail.com>\n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Generator: CSL v1.x\n"
14
+ "X-Poedit-Language: German\n"
15
+ "X-Poedit-Country: GERMANY\n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
18
+ "X-Poedit-Basepath: \n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Textdomain-Support: yes"
22
+
23
+ #: download-monitor.php:90
24
+ #: includes/admin/class-dlm-admin.php:206
25
+ #@ download_monitor
26
+ msgid "Settings"
27
+ msgstr "Einstellungen"
28
+
29
+ #: download-monitor.php:91
30
+ #@ download_monitor
31
+ msgid "Add-ons"
32
+ msgstr ""
33
+
34
+ #: download-monitor.php:92
35
+ #@ download_monitor
36
+ msgid "Docs"
37
+ msgstr "Doku"
38
+
39
+ #: download-monitor.php:240
40
+ #: download-monitor.php:242
41
+ #: includes/admin/class-dlm-admin-cpt.php:174
42
+ #@ download_monitor
43
+ msgid "Categories"
44
+ msgstr "Kategorien"
45
+
46
+ #: download-monitor.php:243
47
+ #@ download_monitor
48
+ msgid "Download Category"
49
+ msgstr "Download Kategorie"
50
+
51
+ #: download-monitor.php:244
52
+ #@ download_monitor
53
+ msgid "Search Download Categories"
54
+ msgstr "Kategorien durchsuchen"
55
+
56
+ #: download-monitor.php:245
57
+ #@ download_monitor
58
+ msgid "All Download Categories"
59
+ msgstr "Alle Download Kategorien"
60
+
61
+ #: download-monitor.php:246
62
+ #@ download_monitor
63
+ msgid "Parent Download Category"
64
+ msgstr "Übergeordnete Download-Kategorie"
65
+
66
+ #: download-monitor.php:247
67
+ #@ download_monitor
68
+ msgid "Parent Download Category:"
69
+ msgstr "Übergeordnete Download-Kategorie:"
70
+
71
+ #: download-monitor.php:248
72
+ #@ download_monitor
73
+ msgid "Edit Download Category"
74
+ msgstr "Download-Kategorie bearbeiten"
75
+
76
+ #: download-monitor.php:249
77
+ #@ download_monitor
78
+ msgid "Update Download Category"
79
+ msgstr "Download-Kategorie aktualisieren"
80
+
81
+ #: download-monitor.php:250
82
+ #@ download_monitor
83
+ msgid "Add New Download Category"
84
+ msgstr "Download-Kategorie hinzufügen"
85
+
86
+ #: download-monitor.php:251
87
+ #@ download_monitor
88
+ msgid "New Download Category Name"
89
+ msgstr "Neuer Name für Download-Kategorie"
90
+
91
+ #: download-monitor.php:269
92
+ #: download-monitor.php:271
93
+ #: includes/admin/class-dlm-admin-cpt.php:175
94
+ #@ download_monitor
95
+ msgid "Tags"
96
+ msgstr ""
97
+
98
+ #: download-monitor.php:272
99
+ #@ download_monitor
100
+ msgid "Download Tag"
101
+ msgstr ""
102
+
103
+ #: download-monitor.php:273
104
+ #@ download_monitor
105
+ msgid "Search Download Tags"
106
+ msgstr "Download Tags durchsuchen"
107
+
108
+ #: download-monitor.php:274
109
+ #@ download_monitor
110
+ msgid "All Download Tags"
111
+ msgstr "Alle Download Tags"
112
+
113
+ #: download-monitor.php:275
114
+ #@ download_monitor
115
+ msgid "Parent Download Tag"
116
+ msgstr "Übergeordneter Download Tag"
117
+
118
+ #: download-monitor.php:276
119
+ #@ download_monitor
120
+ msgid "Parent Download Tag:"
121
+ msgstr "Übergeordneter Download Tag:"
122
+
123
+ #: download-monitor.php:277
124
+ #@ download_monitor
125
+ msgid "Edit Download Tag"
126
+ msgstr "Download Tag bearbeiten"
127
+
128
+ #: download-monitor.php:278
129
+ #@ download_monitor
130
+ msgid "Update Download Tag"
131
+ msgstr "Download Tag aktualisieren"
132
+
133
+ #: download-monitor.php:279
134
+ #@ download_monitor
135
+ msgid "Add New Download Tag"
136
+ msgstr "Download Tag hinzufügen"
137
+
138
+ #: download-monitor.php:280
139
+ #@ download_monitor
140
+ msgid "New Download Tag Name"
141
+ msgstr "Neuer Name für Download Tag"
142
+
143
+ #: download-monitor.php:300
144
+ #@ download_monitor
145
+ msgid "Downloads"
146
+ msgstr ""
147
+
148
+ #: download-monitor.php:301
149
+ #: includes/admin/class-dlm-admin-dashboard.php:67
150
+ #: includes/admin/class-dlm-logging-list-table.php:116
151
+ #@ download_monitor
152
+ msgid "Download"
153
+ msgstr ""
154
+
155
+ #: download-monitor.php:302
156
+ #@ download_monitor
157
+ msgid "Add New"
158
+ msgstr "Neuer Eintrag"
159
+
160
+ #: download-monitor.php:303
161
+ #@ download_monitor
162
+ msgid "Add Download"
163
+ msgstr "Download hinzufügen"
164
+
165
+ #: download-monitor.php:304
166
+ #@ download_monitor
167
+ msgid "Edit"
168
+ msgstr "Bearbeiten"
169
+
170
+ #: download-monitor.php:305
171
+ #@ download_monitor
172
+ msgid "Edit Download"
173
+ msgstr "Download bearbeiten"
174
+
175
+ #: download-monitor.php:306
176
+ #@ download_monitor
177
+ msgid "New Download"
178
+ msgstr "Neue Download-Eintrag"
179
+
180
+ #: download-monitor.php:307
181
+ #: download-monitor.php:308
182
+ #@ download_monitor
183
+ msgid "View Download"
184
+ msgstr "Download-Informationen ansehen"
185
+
186
+ #: download-monitor.php:309
187
+ #@ download_monitor
188
+ msgid "Search Downloads"
189
+ msgstr "Downloads durchsuchen"
190
+
191
+ #: download-monitor.php:310
192
+ #@ download_monitor
193
+ msgid "No Downloads found"
194
+ msgstr "Keine Downloads gefunden"
195
+
196
+ #: download-monitor.php:311
197
+ #@ download_monitor
198
+ msgid "No Downloads found in trash"
199
+ msgstr "Keine Downloads im Papierkorb"
200
+
201
+ #: download-monitor.php:312
202
+ #@ download_monitor
203
+ msgid "Parent Download"
204
+ msgstr "Übergeordneter Download-Eintrag"
205
+
206
+ #: download-monitor.php:314
207
+ #@ download_monitor
208
+ msgid "This is where you can create and manage downloads for your site."
209
+ msgstr "Hier können sie die Downloads für ihre Seite verwalten"
210
+
211
+ #: includes/admin/class-dlm-admin-cpt.php:64
212
+ #@ download_monitor
213
+ msgid "Select a category"
214
+ msgstr "Kategorie auswählen"
215
+
216
+ #: includes/admin/class-dlm-admin-cpt.php:124
217
+ #@ download_monitor
218
+ msgid "Download title"
219
+ msgstr "Titel des Downloads"
220
+
221
+ #: includes/admin/class-dlm-admin-cpt.php:140
222
+ #: includes/admin/class-dlm-admin-cpt.php:143
223
+ #@ download_monitor
224
+ msgid "Download updated."
225
+ msgstr "Download aktualisiert."
226
+
227
+ #: includes/admin/class-dlm-admin-cpt.php:141
228
+ #@ download_monitor
229
+ msgid "Custom field updated."
230
+ msgstr "Sonderfeld aktualisiert."
231
+
232
+ #: includes/admin/class-dlm-admin-cpt.php:142
233
+ #@ download_monitor
234
+ msgid "Custom field deleted."
235
+ msgstr "Sonderfeld gelöscht."
236
+
237
+ #: includes/admin/class-dlm-admin-cpt.php:144
238
+ #, php-format
239
+ #@ download_monitor
240
+ msgid "Download restored to revision from %s"
241
+ msgstr "Download Version von Datum %s wiederhergestellt."
242
+
243
+ #: includes/admin/class-dlm-admin-cpt.php:145
244
+ #@ download_monitor
245
+ msgid "Download published."
246
+ msgstr "Download veröffentlicht."
247
+
248
+ #: includes/admin/class-dlm-admin-cpt.php:146
249
+ #@ download_monitor
250
+ msgid "Download saved."
251
+ msgstr "Download gespeichert."
252
+
253
+ #: includes/admin/class-dlm-admin-cpt.php:147
254
+ #@ download_monitor
255
+ msgid "Download submitted."
256
+ msgstr "Download eingereicht."
257
+
258
+ #: includes/admin/class-dlm-admin-cpt.php:148
259
+ #, php-format
260
+ #@ download_monitor
261
+ msgid "Download scheduled for: <strong>%1$s</strong>."
262
+ msgstr "Download geplant für: <strong>%1$s</strong>."
263
+
264
+ #: includes/admin/class-dlm-admin-cpt.php:149
265
+ #@ download_monitor
266
+ msgid "M j, Y @ G:i"
267
+ msgstr ""
268
+
269
+ #: includes/admin/class-dlm-admin-cpt.php:150
270
+ #@ download_monitor
271
+ msgid "Download draft updated."
272
+ msgstr "Download Entwurf aktualisiert."
273
+
274
+ #: includes/admin/class-dlm-admin-cpt.php:169
275
+ #@ download_monitor
276
+ msgid "Image"
277
+ msgstr "Bild"
278
+
279
+ #: includes/admin/class-dlm-admin-cpt.php:170
280
+ #: includes/widgets/class-dlm-widget-downloads.php:171
281
+ #@ download_monitor
282
+ msgid "Title"
283
+ msgstr "Titel"
284
+
285
+ #: includes/admin/class-dlm-admin-cpt.php:171
286
+ #: includes/widgets/class-dlm-widget-downloads.php:173
287
+ #@ download_monitor
288
+ msgid "ID"
289
+ msgstr ""
290
+
291
+ #: includes/admin/class-dlm-admin-cpt.php:172
292
+ #: includes/admin/class-dlm-logging-list-table.php:117
293
+ #@ download_monitor
294
+ msgid "File"
295
+ msgstr "Datei"
296
+
297
+ #: includes/admin/class-dlm-admin-cpt.php:173
298
+ #: includes/admin/class-dlm-admin-insert.php:211
299
+ #: includes/admin/html-downloadable-file-version.php:13
300
+ #@ download_monitor
301
+ msgid "Version"
302
+ msgstr ""
303
+
304
+ #: includes/admin/class-dlm-admin-cpt.php:177
305
+ #@ download_monitor
306
+ msgid "download_count"
307
+ msgstr "Download Anzahl"
308
+
309
+ #: includes/admin/class-dlm-admin-cpt.php:178
310
+ #@ download_monitor
311
+ msgid "Featured"
312
+ msgstr "Hervorgehobene Artikel"
313
+
314
+ #: includes/admin/class-dlm-admin-cpt.php:179
315
+ #: includes/admin/class-dlm-admin-writepanels.php:63
316
+ #@ download_monitor
317
+ msgid "Members only"
318
+ msgstr "Nur für Mitglieder"
319
+
320
+ #: includes/admin/class-dlm-admin-cpt.php:181
321
+ #@ download_monitor
322
+ msgid "Date posted"
323
+ msgstr "Veröffentlichungs-Datum"
324
+
325
+ #: includes/admin/class-dlm-admin-dashboard.php:21
326
+ #@ download_monitor
327
+ msgid "Popular Downloads"
328
+ msgstr "Beliebte Downloads"
329
+
330
+ #: includes/admin/class-dlm-admin-dashboard.php:53
331
+ #@ download_monitor
332
+ msgid "There are no stats available yet!"
333
+ msgstr "Es liegen noch keine Statistiken vor."
334
+
335
+ #: includes/admin/class-dlm-admin-dashboard.php:68
336
+ #: includes/admin/html-downloadable-file-version.php:29
337
+ #: includes/widgets/class-dlm-widget-downloads.php:176
338
+ #@ download_monitor
339
+ msgid "Download count"
340
+ msgstr "Download-Anzahl"
341
+
342
+ #: includes/admin/class-dlm-admin-insert.php:32
343
+ #: includes/admin/class-dlm-admin-insert.php:40
344
+ #: includes/admin/class-dlm-admin-insert.php:71
345
+ #@ download_monitor
346
+ msgid "Insert Download"
347
+ msgstr "Download einfügen"
348
+
349
+ #: includes/admin/class-dlm-admin-insert.php:81
350
+ #: includes/admin/class-dlm-admin-insert.php:182
351
+ #@ download_monitor
352
+ msgid "Insert Shortcode"
353
+ msgstr "Shortcode einfügen"
354
+
355
+ #: includes/admin/class-dlm-admin-insert.php:81
356
+ #@ download_monitor
357
+ msgid "Quick-add download"
358
+ msgstr "Download schnell hinzufügen"
359
+
360
+ #: includes/admin/class-dlm-admin-insert.php:124
361
+ #@ download_monitor
362
+ msgid "Error: File was not created."
363
+ msgstr "Fehler: Datei nicht erstellt."
364
+
365
+ #: includes/admin/class-dlm-admin-insert.php:143
366
+ #@ download_monitor
367
+ msgid "Download successfully created."
368
+ msgstr "Download-Eintrag erfolgreich erstellt."
369
+
370
+ #: includes/admin/class-dlm-admin-insert.php:145
371
+ #@ download_monitor
372
+ msgid "Error: Download was not created."
373
+ msgstr "Fehler: Download-Eintrag nicht erstellt."
374
+
375
+ #: includes/admin/class-dlm-admin-insert.php:163
376
+ #@ download_monitor
377
+ msgid "Choose a download"
378
+ msgstr "Download auswählen."
379
+
380
+ #: includes/admin/class-dlm-admin-insert.php:175
381
+ #@ download_monitor
382
+ msgid "Template"
383
+ msgstr "Vorlage"
384
+
385
+ #: includes/admin/class-dlm-admin-insert.php:176
386
+ #@ download_monitor
387
+ msgid "Template Name"
388
+ msgstr "Name der Vorlage"
389
+
390
+ #: includes/admin/class-dlm-admin-insert.php:178
391
+ #: includes/admin/class-dlm-admin.php:94
392
+ #@ download_monitor
393
+ msgid "Leaving this blank will use the default <code>content-download.php</code> template file. If you enter, for example, <code>image</code>, the <code>content-download-image.php</code> template will be used instead."
394
+ msgstr "Wenn sie dieses Feld freilassen wird die Vorlage <code>content-download.php</code> verwendet. Wenn sie zum Beispiel <code>image</code> eingeben, wird die Vorlage <code>content-download-image.php</code> verwendet."
395
+
396
+ #: includes/admin/class-dlm-admin-insert.php:193
397
+ #@ download_monitor
398
+ msgid "Drop file here"
399
+ msgstr "Datei hier ablegen"
400
+
401
+ #: includes/admin/class-dlm-admin-insert.php:194
402
+ #: includes/admin/class-dlm-admin-insert.php:196
403
+ #@ download_monitor
404
+ msgid "or"
405
+ msgstr "oder"
406
+
407
+ #: includes/admin/class-dlm-admin-insert.php:195
408
+ #@ download_monitor
409
+ msgid "Select File"
410
+ msgstr "Datei auswählen"
411
+
412
+ #: includes/admin/class-dlm-admin-insert.php:197
413
+ #@ download_monitor
414
+ msgid "Enter URL manually"
415
+ msgstr "URL selbst eintragen"
416
+
417
+ #: includes/admin/class-dlm-admin-insert.php:203
418
+ #@ download_monitor
419
+ msgid "Download URL"
420
+ msgstr "URL herunterladen"
421
+
422
+ #: includes/admin/class-dlm-admin-insert.php:204
423
+ #@ download_monitor
424
+ msgid "Required URL"
425
+ msgstr "URL erforderlich"
426
+
427
+ #: includes/admin/class-dlm-admin-insert.php:207
428
+ #@ download_monitor
429
+ msgid "Download Title"
430
+ msgstr "Download Titel"
431
+
432
+ #: includes/admin/class-dlm-admin-insert.php:208
433
+ #@ download_monitor
434
+ msgid "Required title"
435
+ msgstr "Titel erforderlich"
436
+
437
+ #: includes/admin/class-dlm-admin-insert.php:212
438
+ #@ download_monitor
439
+ msgid "Optional version number"
440
+ msgstr "Optionale Versionsnummer"
441
+
442
+ #: includes/admin/class-dlm-admin-insert.php:215
443
+ #@ download_monitor
444
+ msgid "Save Download"
445
+ msgstr "Download speichern"
446
+
447
+ #: includes/admin/class-dlm-admin-insert.php:273
448
+ #@ default
449
+ msgid "Allowed Files"
450
+ msgstr ""
451
+
452
+ #: includes/admin/class-dlm-admin-insert.php:323
453
+ #@ download_monitor
454
+ msgid "Please wait..."
455
+ msgstr "Bitte warten ..."
456
+
457
+ #: includes/admin/class-dlm-admin-media-browser.php:31
458
+ #: includes/admin/class-dlm-admin-writepanels.php:245
459
+ #@ download_monitor
460
+ msgid "Browse for a file"
461
+ msgstr "Nach Datei suchen"
462
+
463
+ #: includes/admin/class-dlm-admin-media-browser.php:100
464
+ #@ download_monitor
465
+ msgid "No files found"
466
+ msgstr "Keine Dateien gefunden"
467
+
468
+ #: includes/admin/class-dlm-admin-writepanels.php:29
469
+ #@ download_monitor
470
+ msgid "Download Options"
471
+ msgstr "Download Optionen"
472
+
473
+ #: includes/admin/class-dlm-admin-writepanels.php:30
474
+ #@ download_monitor
475
+ msgid "Downloadable File Versions"
476
+ msgstr "Auswählbare Datei Versionen"
477
+
478
+ #: includes/admin/class-dlm-admin-writepanels.php:35
479
+ #@ download_monitor
480
+ msgid "Short Description"
481
+ msgstr "Kurze Beschreibung"
482
+
483
+ #: includes/admin/class-dlm-admin-writepanels.php:57
484
+ #@ download_monitor
485
+ msgid "Featured download"
486
+ msgstr "Hervorgehobene Download"
487
+
488
+ #: includes/admin/class-dlm-admin-writepanels.php:58
489
+ #@ download_monitor
490
+ msgid "Mark this download as featured. Used by shortcodes and widgets."
491
+ msgstr "Download als hervorgehoben markieren. Die Hervorhebung wird in shortcodes und widgets verwendet."
492
+
493
+ #: includes/admin/class-dlm-admin-writepanels.php:64
494
+ #@ download_monitor
495
+ msgid "Only logged in users will be able to access the file via a download link if this is enabled."
496
+ msgstr "Nur angemeldete Benutzer haben Zugriff auf die Datei, wenn dies ausgewählt ist."
497
+
498
+ #: includes/admin/class-dlm-admin-writepanels.php:86
499
+ #@ download_monitor
500
+ msgid "Add version"
501
+ msgstr "Version hinzufügen"
502
+
503
+ #: includes/admin/class-dlm-admin-writepanels.php:87
504
+ #@ download_monitor
505
+ msgid "Close all"
506
+ msgstr "Alle schließen"
507
+
508
+ #: includes/admin/class-dlm-admin-writepanels.php:87
509
+ #@ download_monitor
510
+ msgid "Expand all"
511
+ msgstr "Alles expandieren"
512
+
513
+ #: includes/admin/class-dlm-admin-writepanels.php:210
514
+ #@ download_monitor
515
+ msgid "Are you sure you want to delete this file?"
516
+ msgstr "Sind sie sicher dass sie dides Datei löschen möchten?"
517
+
518
+ #: includes/admin/class-dlm-admin.php:87
519
+ #@ download_monitor
520
+ msgid "General"
521
+ msgstr "Allgemein"
522
+
523
+ #: includes/admin/class-dlm-admin.php:93
524
+ #@ download_monitor
525
+ msgid "Default Template"
526
+ msgstr "Standard-Vorlage"
527
+
528
+ #: includes/admin/class-dlm-admin.php:94
529
+ #@ download_monitor
530
+ msgid "Choose which template is used for <code>[download]</code> shortcodes by default (this can be overridden by the <code>format</code> argument)."
531
+ msgstr "Vorlage auswählen für <code>[download]</code> shortcodes (kann mit dem <code>format</code> Argument überschrieben werden)."
532
+
533
+ #: includes/admin/class-dlm-admin.php:99
534
+ #@ download_monitor
535
+ msgid "Endpoint"
536
+ msgstr "Endpunkt"
537
+
538
+ #: includes/admin/class-dlm-admin.php:104
539
+ #@ download_monitor
540
+ msgid "download"
541
+ msgstr "Download"
542
+
543
+ #: includes/admin/class-dlm-admin.php:105
544
+ #@ download_monitor
545
+ msgid "Download Endpoint"
546
+ msgstr "Download Endpunkt"
547
+
548
+ #: includes/admin/class-dlm-admin.php:106
549
+ #, php-format
550
+ #@ download_monitor
551
+ msgid "Define what endpoint should be used for download links. By default this will be <code>%s</code>."
552
+ msgstr "Bestimme den Endpunkt für Download-Links. Standardmäßig: <code>%s</code>."
553
+
554
+ #: includes/admin/class-dlm-admin.php:111
555
+ #@ download_monitor
556
+ msgid "Endpoint Value"
557
+ msgstr "Endpunkt Werte"
558
+
559
+ #: includes/admin/class-dlm-admin.php:112
560
+ #, php-format
561
+ #@ download_monitor
562
+ msgid "Define what unique value should be used on the end of your endpoint to identify the downloadable file. e.g. ID would give a link like <code>%s</code>"
563
+ msgstr "Bestimme welche Werte am Ende ihres Endpunkts stehen sollen zur Identifikation ihrer Download-Datei. Zum Beispiel: ID ergibt den folgenden Link <code>%s</code>"
564
+
565
+ #: includes/admin/class-dlm-admin.php:115
566
+ #: includes/admin/class-dlm-admin.php:369
567
+ #@ download_monitor
568
+ msgid "Download ID"
569
+ msgstr ""
570
+
571
+ #: includes/admin/class-dlm-admin.php:116
572
+ #@ download_monitor
573
+ msgid "Download slug"
574
+ msgstr "Download Slug"
575
+
576
+ #: includes/admin/class-dlm-admin.php:122
577
+ #@ download_monitor
578
+ msgid "X-Accel-Redirect / X-Sendfile"
579
+ msgstr ""
580
+
581
+ #: includes/admin/class-dlm-admin.php:123
582
+ #: includes/admin/class-dlm-admin.php:134
583
+ #@ download_monitor
584
+ msgid "Enable"
585
+ msgstr "Anschalten"
586
+
587
+ #: includes/admin/class-dlm-admin.php:124
588
+ #@ download_monitor
589
+ msgid "If supported, <code>X-Accel-Redirect</code> / <code>X-Sendfile</code> can be used to serve downloads instead of PHP (server requires <code>mod_xsendfile</code>)."
590
+ msgstr "Falls unterstützt, können <code>X-Accel-Redirect</code> / <code>X-Sendfile</code> genutzt werden, anstelle von PHP (Server braucht <code>mod_xsendfile</code>)."
591
+
592
+ #: includes/admin/class-dlm-admin.php:130
593
+ #@ download_monitor
594
+ msgid "Logging"
595
+ msgstr "Log Aufzeichung"
596
+
597
+ #: includes/admin/class-dlm-admin.php:136
598
+ #@ download_monitor
599
+ msgid "Download Log"
600
+ msgstr ""
601
+
602
+ #: includes/admin/class-dlm-admin.php:137
603
+ #@ download_monitor
604
+ msgid "Log download attempts, IP addresses and more."
605
+ msgstr "Download Versuche, IP Adressen und anderes aufzeichnen."
606
+
607
+ #: includes/admin/class-dlm-admin.php:143
608
+ #@ download_monitor
609
+ msgid "Blacklist IPs"
610
+ msgstr "IPs sperren (Blacklist)"
611
+
612
+ #: includes/admin/class-dlm-admin.php:144
613
+ #@ download_monitor
614
+ msgid "List IP Addresses to blacklist, 1 per line. Use <code>*</code> for a wildcard."
615
+ msgstr "IP Adressen auf Blackliste setzen, 1 pro Linie. Code <code>*</code> als Wildcard."
616
+
617
+ #: includes/admin/class-dlm-admin.php:151
618
+ #@ download_monitor
619
+ msgid "Blacklist user agents"
620
+ msgstr "User Agents sperren"
621
+
622
+ #: includes/admin/class-dlm-admin.php:152
623
+ #@ download_monitor
624
+ msgid "List browser user agents to blacklist, 1 per line."
625
+ msgstr "User Agents für Sperrung auflisten, einer pro Linie."
626
+
627
+ #: includes/admin/class-dlm-admin.php:204
628
+ #@ download_monitor
629
+ msgid "Logs"
630
+ msgstr ""
631
+
632
+ #: includes/admin/class-dlm-admin.php:237
633
+ #@ download_monitor
634
+ msgid "Settings successfully saved"
635
+ msgstr "Einstellungen gespeichert"
636
+
637
+ #: includes/admin/class-dlm-admin.php:304
638
+ #@ download_monitor
639
+ msgid "Save Changes"
640
+ msgstr "Änderungen speichern"
641
+
642
+ #: includes/admin/class-dlm-admin.php:341
643
+ #@ download_monitor
644
+ msgid "Download Logs"
645
+ msgstr "Logs herunterladen"
646
+
647
+ #: includes/admin/class-dlm-admin.php:341
648
+ #@ download_monitor
649
+ msgid "Export CSV"
650
+ msgstr "CSV exportieren"
651
+
652
+ #: includes/admin/class-dlm-admin.php:370
653
+ #@ download_monitor
654
+ msgid "Version ID"
655
+ msgstr "Versions-ID"
656
+
657
+ #: includes/admin/class-dlm-admin.php:371
658
+ #@ download_monitor
659
+ msgid "User ID"
660
+ msgstr ""
661
+
662
+ #: includes/admin/class-dlm-admin.php:372
663
+ #@ download_monitor
664
+ msgid "User IP"
665
+ msgstr ""
666
+
667
+ #: includes/admin/class-dlm-admin.php:373
668
+ #: includes/admin/class-dlm-logging-list-table.php:120
669
+ #@ download_monitor
670
+ msgid "User Agent"
671
+ msgstr ""
672
+
673
+ #: includes/admin/class-dlm-admin.php:374
674
+ #: includes/admin/class-dlm-logging-list-table.php:121
675
+ #@ download_monitor
676
+ msgid "Date"
677
+ msgstr "Datum"
678
+
679
+ #: includes/admin/class-dlm-admin.php:375
680
+ #@ download_monitor
681
+ msgid "Status"
682
+ msgstr ""
683
+
684
+ #: includes/admin/class-dlm-logging-list-table.php:43
685
+ #@ download_monitor
686
+ msgid "Download Complete"
687
+ msgstr "Download-Eintrag komplett"
688
+
689
+ #: includes/admin/class-dlm-logging-list-table.php:50
690
+ #, php-format
691
+ #@ download_monitor
692
+ msgid "%s ago"
693
+ msgstr "Zeit verstrichen: %s"
694
+
695
+ #: includes/admin/class-dlm-logging-list-table.php:57
696
+ #, php-format
697
+ #@ download_monitor
698
+ msgid "Download #%d (no longer exists)"
699
+ msgstr "Download #%d (existiert nicht mehr)"
700
+
701
+ #: includes/admin/class-dlm-logging-list-table.php:65
702
+ #, php-format
703
+ #@ download_monitor
704
+ msgid "v%s"
705
+ msgstr ""
706
+
707
+ #: includes/admin/class-dlm-logging-list-table.php:85
708
+ #@ download_monitor
709
+ msgid "Non-member"
710
+ msgstr "Nicht-Mitglied"
711
+
712
+ #: includes/admin/class-dlm-logging-list-table.php:118
713
+ #@ download_monitor
714
+ msgid "User"
715
+ msgstr "Benutzer"
716
+
717
+ #: includes/admin/class-dlm-logging-list-table.php:119
718
+ #@ download_monitor
719
+ msgid "IP Address"
720
+ msgstr "IP Addresse"
721
+
722
+ #: includes/admin/html-downloadable-file-version.php:3
723
+ #@ download_monitor
724
+ msgid "Remove"
725
+ msgstr "Löschen"
726
+
727
+ #: includes/admin/html-downloadable-file-version.php:4
728
+ #@ download_monitor
729
+ msgid "Click to toggle"
730
+ msgstr "Zum Umschalten klicken"
731
+
732
+ #: includes/admin/html-downloadable-file-version.php:5
733
+ #, php-format
734
+ #@ download_monitor
735
+ msgid "Version <span class=\"version\">%s</span> (%s)"
736
+ msgstr ""
737
+
738
+ #: includes/admin/html-downloadable-file-version.php:5
739
+ #: includes/admin/html-downloadable-file-version.php:14
740
+ #@ download_monitor
741
+ msgid "n/a"
742
+ msgstr "nicht verfügbar"
743
+
744
+ #: includes/admin/html-downloadable-file-version.php:5
745
+ #, php-format
746
+ #@ download_monitor
747
+ msgid "Downloaded %s time"
748
+ msgid_plural "Downloaded %s times"
749
+ msgstr[0] "%s-mal heruntergeladen"
750
+ msgstr[1] "%s-mal heruntergeladen"
751
+
752
+ #: includes/admin/html-downloadable-file-version.php:18
753
+ #@ download_monitor
754
+ msgid "File URL(s)"
755
+ msgstr "Datei URL(s)"
756
+
757
+ #: includes/admin/html-downloadable-file-version.php:19
758
+ #@ download_monitor
759
+ msgid "Enter one file path/URL per line - multiple files will be used as mirrors (chosen at random)."
760
+ msgstr "Einen Pfad)Url pro Zeile - mehrere werden als file mirrors genutzt (zufällige Auswahl)."
761
+
762
+ #: includes/admin/html-downloadable-file-version.php:21
763
+ #@ woocommerce
764
+ msgid "Choose a file"
765
+ msgstr ""
766
+
767
+ #: includes/admin/html-downloadable-file-version.php:21
768
+ #@ woocommerce
769
+ msgid "Insert file URL"
770
+ msgstr ""
771
+
772
+ #: includes/admin/html-downloadable-file-version.php:21
773
+ #@ download_monitor
774
+ msgid "Upload file"
775
+ msgstr "Datei auf den Server laden"
776
+
777
+ #: includes/admin/html-downloadable-file-version.php:22
778
+ #@ download_monitor
779
+ msgid "Browse for file"
780
+ msgstr "Datei suchen"
781
+
782
+ #: includes/admin/html-downloadable-file-version.php:35
783
+ #@ download_monitor
784
+ msgid "File Date"
785
+ msgstr "Datei-Erstellungsdatum"
786
+
787
+ #: includes/admin/html-downloadable-file-version.php:36
788
+ #@ download_monitor
789
+ msgid "h"
790
+ msgstr ""
791
+
792
+ #: includes/admin/html-downloadable-file-version.php:36
793
+ #@ download_monitor
794
+ msgid "m"
795
+ msgstr ""
796
+
797
+ #: includes/class-dlm-download-handler.php:121
798
+ #@ download_monitor
799
+ msgid "Download does not exist."
800
+ msgstr "Download existiert nicht."
801
+
802
+ #: includes/class-dlm-download-handler.php:121
803
+ #: includes/class-dlm-download-handler.php:140
804
+ #: includes/class-dlm-download-handler.php:145
805
+ #: includes/class-dlm-download-handler.php:154
806
+ #: includes/class-dlm-download-handler.php:286
807
+ #@ download_monitor
808
+ msgid "Go to homepage &rarr;"
809
+ msgstr "Zur Homepage &rarr;"
810
+
811
+ #: includes/class-dlm-download-handler.php:121
812
+ #: includes/class-dlm-download-handler.php:140
813
+ #: includes/class-dlm-download-handler.php:145
814
+ #: includes/class-dlm-download-handler.php:154
815
+ #: includes/class-dlm-download-handler.php:286
816
+ #@ download_monitor
817
+ msgid "Download Error"
818
+ msgstr "Downloadfehler"
819
+
820
+ #: includes/class-dlm-download-handler.php:140
821
+ #: includes/class-dlm-download-handler.php:145
822
+ #@ download_monitor
823
+ msgid "No file paths defined."
824
+ msgstr "Dateipfad nicht definiert."
825
+
826
+ #: includes/class-dlm-download-handler.php:154
827
+ #@ download_monitor
828
+ msgid "You do not have permission to access this download."
829
+ msgstr "Sie besitzen nicht die nötige Berechtigung, um auf diese Download-Datei zuzugreifen."
830
+
831
+ #: includes/class-dlm-download-handler.php:168
832
+ #: includes/class-dlm-download-handler.php:252
833
+ #: includes/class-dlm-download-handler.php:258
834
+ #: includes/class-dlm-download-handler.php:264
835
+ #@ download_monitor
836
+ msgid "Redirected to file"
837
+ msgstr "Weitergeleitet zu Datei"
838
+
839
+ #: includes/class-dlm-download-handler.php:279
840
+ #@ download_monitor
841
+ msgid "Redirected to remote file."
842
+ msgstr "Weitergeleitet zu Datei auf anderem Server"
843
+
844
+ #: includes/class-dlm-download-handler.php:284
845
+ #@ download_monitor
846
+ msgid "File not found"
847
+ msgstr "Datei nicht gefunden"
848
+
849
+ #: includes/class-dlm-download-handler.php:286
850
+ #@ download_monitor
851
+ msgid "File not found."
852
+ msgstr "Datei nicht gefunden."
853
+
854
+ #: includes/class-dlm-shortcodes.php:102
855
+ #@ download_monitor
856
+ msgid "Download not found"
857
+ msgstr "Download Eintrag nicht gefunden."
858
+
859
+ #: includes/widgets/class-dlm-widget-downloads.php:27
860
+ #@ download_monitor
861
+ msgid "Display a list of your downloads."
862
+ msgstr "Liste der Downloads anzeigen."
863
+
864
+ #: includes/widgets/class-dlm-widget-downloads.php:29
865
+ #@ download_monitor
866
+ msgid "Downloads List"
867
+ msgstr "Liste der Downloads"
868
+
869
+ #: includes/widgets/class-dlm-widget-downloads.php:52
870
+ #: includes/widgets/class-dlm-widget-downloads.php:148
871
+ #@ download_monitor
872
+ msgid "Featured Downloads"
873
+ msgstr "Hervorgehobene Downloads"
874
+
875
+ #: includes/widgets/class-dlm-widget-downloads.php:157
876
+ #@ download_monitor
877
+ msgid "Title:"
878
+ msgstr "Titel:"
879
+
880
+ #: includes/widgets/class-dlm-widget-downloads.php:161
881
+ #@ download_monitor
882
+ msgid "Limit:"
883
+ msgstr ""
884
+
885
+ #: includes/widgets/class-dlm-widget-downloads.php:165
886
+ #@ download_monitor
887
+ msgid "Output template:"
888
+ msgstr "Vorlage für Ausgabe:"
889
+
890
+ #: includes/widgets/class-dlm-widget-downloads.php:166
891
+ #@ download_monitor
892
+ msgid "Default template"
893
+ msgstr "Standard-Vorlage"
894
+
895
+ #: includes/widgets/class-dlm-widget-downloads.php:169
896
+ #@ download_monitor
897
+ msgid "Order by:"
898
+ msgstr "Geordnet nach:"
899
+
900
+ #: includes/widgets/class-dlm-widget-downloads.php:172
901
+ #@ download_monitor
902
+ msgid "Random"
903
+ msgstr "Zufällig"
904
+
905
+ #: includes/widgets/class-dlm-widget-downloads.php:174
906
+ #@ download_monitor
907
+ msgid "Date added"
908
+ msgstr "Erstellungs-Datum"
909
+
910
+ #: includes/widgets/class-dlm-widget-downloads.php:175
911
+ #@ download_monitor
912
+ msgid "Date modified"
913
+ msgstr "Letzte Änderung"
914
+
915
+ #: includes/widgets/class-dlm-widget-downloads.php:180
916
+ #@ download_monitor
917
+ msgid "Order:"
918
+ msgstr "Reihenfolge:"
919
+
920
+ #: includes/widgets/class-dlm-widget-downloads.php:182
921
+ #@ download_monitor
922
+ msgid "ASC"
923
+ msgstr "Auf"
924
+
925
+ #: includes/widgets/class-dlm-widget-downloads.php:183
926
+ #@ download_monitor
927
+ msgid "DESC"
928
+ msgstr "Ab"
929
+
930
+ #: includes/widgets/class-dlm-widget-downloads.php:188
931
+ #@ download_monitor
932
+ msgid "Show only featured downloads"
933
+ msgstr "Nur hervorgehobene Downloads anzeigen"
934
+
935
+ #: includes/widgets/class-dlm-widget-downloads.php:192
936
+ #@ download_monitor
937
+ msgid "Show only members only downloads"
938
+ msgstr "Downloads nur Mitgliedern anzeigen"
939
+
940
+ #: templates/content-download-box.php:12
941
+ #: templates/content-download-filename.php:9
942
+ #: templates/content-download.php:9
943
+ #, php-format
944
+ #@ download_monitor
945
+ msgid "1 download"
946
+ msgid_plural "%d downloads"
947
+ msgstr[0] "1 Download"
948
+ msgstr[1] "%d Downloads"
949
+
950
+ #: templates/content-download-box.php:20
951
+ #: templates/content-download-filename.php:8
952
+ #: templates/content-download.php:8
953
+ #, php-format
954
+ #@ download_monitor
955
+ msgid "Version %s"
956
+ msgstr ""
957
+
958
+ #: templates/content-download-box.php:21
959
+ #@ download_monitor
960
+ msgid "Download File"
961
+ msgstr "Datei herunterladen"
962
+
963
+ #: templates/content-download-button.php:9
964
+ #, php-format
965
+ #@ download_monitor
966
+ msgid "Download &ldquo;%s&rdquo;"
967
+ msgstr ""
968
+
969
+ #: templates/content-download-button.php:10
970
+ #, php-format
971
+ #@ download_monitor
972
+ msgid "Downloaded 1 time"
973
+ msgid_plural "Downloaded %d times"
974
+ msgstr[0] "Einmal heruntergeladen"
975
+ msgstr[1] "%d-mal heruntergeladen"
976
+
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=mike.jol
4
  Tags: download, downloads, monitor, hits, download monitor, tracking, admin, count, counter, files, versions, download count, logging
5
  Requires at least: 3.5
6
  Tested up to: 3.5
7
- Stable tag: 1.0.0
8
  License: GPLv3
9
 
10
  Download Monitor is a plugin for uploading and managing downloads, tracking downloads, and displaying links.
@@ -108,6 +108,10 @@ Admin hits are not counted, log out and try!
108
 
109
  == Changelog ==
110
 
 
 
 
 
111
  = 1.0.0 =
112
  * Complete rewrite of the plugin making use of custom post types and other best practices. Fresh start version '1' to prevent auto-updates (legacy importer needs to be used to migrate from old versions).
113
 
4
  Tags: download, downloads, monitor, hits, download monitor, tracking, admin, count, counter, files, versions, download count, logging
5
  Requires at least: 3.5
6
  Tested up to: 3.5
7
+ Stable tag: 1.0.1
8
  License: GPLv3
9
 
10
  Download Monitor is a plugin for uploading and managing downloads, tracking downloads, and displaying links.
108
 
109
  == Changelog ==
110
 
111
+ = 1.0.1 =
112
+ * Update blockui
113
+ * Workaround root relative URLS
114
+
115
  = 1.0.0 =
116
  * Complete rewrite of the plugin making use of custom post types and other best practices. Fresh start version '1' to prevent auto-updates (legacy importer needs to be used to migrate from old versions).
117