diff --git a/Bootstrap.Admin/Bootstrap.Admin.csproj b/Bootstrap.Admin/Bootstrap.Admin.csproj index 9ca13dab..611f5471 100644 --- a/Bootstrap.Admin/Bootstrap.Admin.csproj +++ b/Bootstrap.Admin/Bootstrap.Admin.csproj @@ -109,14 +109,13 @@ - + - - + diff --git a/Bootstrap.Admin/Content/css/jquery.ajaxLoadingBar.css b/Bootstrap.Admin/Content/css/jquery.ajaxLoadingBar.css new file mode 100644 index 00000000..ec5f1852 --- /dev/null +++ b/Bootstrap.Admin/Content/css/jquery.ajaxLoadingBar.css @@ -0,0 +1,11 @@ +#pageLoader { + -webkit-box-shadow: 0 0 5px #2980b9; + -moz-box-shadow: 0 0 5px #2980b9; + box-shadow: 0 0 5px #2980b9; + background: #3498db; + height: 2px; + position: fixed; + top: 0; + width: 50px; + z-index: 9999999; +} \ No newline at end of file diff --git a/Bootstrap.Admin/Content/css/pace-theme-minimal.css b/Bootstrap.Admin/Content/css/pace-theme-minimal.css deleted file mode 100644 index 0e793d93..00000000 --- a/Bootstrap.Admin/Content/css/pace-theme-minimal.css +++ /dev/null @@ -1,25 +0,0 @@ -/* This is a compiled file, you should be editing the file in the templates directory */ -.pace { - -webkit-pointer-events: none; - pointer-events: none; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} - -.pace-inactive { - display: none; -} - -.pace .pace-progress { - position: fixed; - z-index: 2000; - top: 0; - right: 100%; - width: 100%; - height: 2px; - background: #77b6ff; - box-shadow: 0 0 10px rgba(119,182,255,0.7); - -webkit-transition: width 0.4s ease; - transition: width 0.4s ease; -} diff --git a/Bootstrap.Admin/Content/js/jquery.ajaxLoadingBar.js b/Bootstrap.Admin/Content/js/jquery.ajaxLoadingBar.js new file mode 100644 index 00000000..b54c9e79 --- /dev/null +++ b/Bootstrap.Admin/Content/js/jquery.ajaxLoadingBar.js @@ -0,0 +1,64 @@ +(function () { + (function ($) { + return $.fn.ajaxLoadingBar = function (options) { + var settings; + settings = $.extend({ + turbolinks: true, + ajax: true + }, options); + if (settings.turbolinks) { + $(document).on('page:fetch', function () { + return window.pageLoader.startLoader(); + }); + $(document).on('page:receive', function () { + return window.pageLoader.sliderWidth = $('#pageLoader').width(); + }); + $(document).on('page:load', function () { + return window.pageLoader.restoreLoader(); + }); + $(document).on('page:restore', function () { + $('#pageLoader').remove(); + return window.pageLoader.restoreLoader(); + }); + } + if (settings.ajax) { + $(document).ajaxComplete(function (e) { + $('#pageLoader').remove(); + return window.pageLoader.restoreLoader(); + }); + $(document).ajaxStart(function () { + return window.pageLoader.startLoader(); + }); + } + return window.pageLoader = { + sliderWidth: 0, + startLoader: function () { + $('#pageLoader').remove(); + return $('
', { + id: 'pageLoader' + }).appendTo('body').animate({ + width: $(document).width() * .4 + }, 2000).animate({ + width: $(document).width() * .6 + }, 6000).animate({ + width: $(document).width() * .90 + }, 10000).animate({ + width: $(document).width() * .99 + }, 20000); + }, + restoreLoader: function () { + return $('
', { + id: 'pageLoader' + }).css({ + width: window.pageLoader.sliderWidth + }).appendTo('body').animate({ + width: $(document).width() + }, 500).fadeOut(function () { + return $(this).remove(); + }); + } + }; + }; + })(jQuery); + $(window).ajaxLoadingBar(); +}).call(this); \ No newline at end of file diff --git a/Bootstrap.Admin/Content/js/pace.js b/Bootstrap.Admin/Content/js/pace.js deleted file mode 100644 index c7efc2fc..00000000 --- a/Bootstrap.Admin/Content/js/pace.js +++ /dev/null @@ -1,935 +0,0 @@ -(function() { - var AjaxMonitor, Bar, DocumentMonitor, ElementMonitor, ElementTracker, EventLagMonitor, Evented, Events, NoTargetError, Pace, RequestIntercept, SOURCE_KEYS, Scaler, SocketRequestTracker, XHRRequestTracker, animation, avgAmplitude, bar, cancelAnimation, cancelAnimationFrame, defaultOptions, extend, extendNative, getFromDOM, getIntercept, handlePushState, ignoreStack, init, now, options, requestAnimationFrame, result, runAnimation, scalers, shouldIgnoreURL, shouldTrack, source, sources, uniScaler, _WebSocket, _XDomainRequest, _XMLHttpRequest, _i, _intercept, _len, _pushState, _ref, _ref1, _replaceState, - __slice = [].slice, - __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - - defaultOptions = { - catchupTime: 100, - initialRate: .03, - minTime: 250, - ghostTime: 100, - maxProgressPerFrame: 20, - easeFactor: 1.25, - startOnPageLoad: true, - restartOnPushState: true, - restartOnRequestAfter: 500, - target: 'body', - elements: { - checkInterval: 100, - selectors: ['body'] - }, - eventLag: { - minSamples: 10, - sampleCount: 3, - lagThreshold: 3 - }, - ajax: { - trackMethods: ['GET'], - trackWebSockets: true, - ignoreURLs: [] - } - }; - - now = function() { - var _ref; - return (_ref = typeof performance !== "undefined" && performance !== null ? typeof performance.now === "function" ? performance.now() : void 0 : void 0) != null ? _ref : +(new Date); - }; - - requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame; - - cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame; - - if (requestAnimationFrame == null) { - requestAnimationFrame = function(fn) { - return setTimeout(fn, 50); - }; - cancelAnimationFrame = function(id) { - return clearTimeout(id); - }; - } - - runAnimation = function(fn) { - var last, tick; - last = now(); - tick = function() { - var diff; - diff = now() - last; - if (diff >= 33) { - last = now(); - return fn(diff, function() { - return requestAnimationFrame(tick); - }); - } else { - return setTimeout(tick, 33 - diff); - } - }; - return tick(); - }; - - result = function() { - var args, key, obj; - obj = arguments[0], key = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : []; - if (typeof obj[key] === 'function') { - return obj[key].apply(obj, args); - } else { - return obj[key]; - } - }; - - extend = function() { - var key, out, source, sources, val, _i, _len; - out = arguments[0], sources = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - for (_i = 0, _len = sources.length; _i < _len; _i++) { - source = sources[_i]; - if (source) { - for (key in source) { - if (!__hasProp.call(source, key)) continue; - val = source[key]; - if ((out[key] != null) && typeof out[key] === 'object' && (val != null) && typeof val === 'object') { - extend(out[key], val); - } else { - out[key] = val; - } - } - } - } - return out; - }; - - avgAmplitude = function(arr) { - var count, sum, v, _i, _len; - sum = count = 0; - for (_i = 0, _len = arr.length; _i < _len; _i++) { - v = arr[_i]; - sum += Math.abs(v); - count++; - } - return sum / count; - }; - - getFromDOM = function(key, json) { - var data, e, el; - if (key == null) { - key = 'options'; - } - if (json == null) { - json = true; - } - el = document.querySelector("[data-pace-" + key + "]"); - if (!el) { - return; - } - data = el.getAttribute("data-pace-" + key); - if (!json) { - return data; - } - try { - return JSON.parse(data); - } catch (_error) { - e = _error; - return typeof console !== "undefined" && console !== null ? console.error("Error parsing inline pace options", e) : void 0; - } - }; - - Evented = (function() { - function Evented() {} - - Evented.prototype.on = function(event, handler, ctx, once) { - var _base; - if (once == null) { - once = false; - } - if (this.bindings == null) { - this.bindings = {}; - } - if ((_base = this.bindings)[event] == null) { - _base[event] = []; - } - return this.bindings[event].push({ - handler: handler, - ctx: ctx, - once: once - }); - }; - - Evented.prototype.once = function(event, handler, ctx) { - return this.on(event, handler, ctx, true); - }; - - Evented.prototype.off = function(event, handler) { - var i, _ref, _results; - if (((_ref = this.bindings) != null ? _ref[event] : void 0) == null) { - return; - } - if (handler == null) { - return delete this.bindings[event]; - } else { - i = 0; - _results = []; - while (i < this.bindings[event].length) { - if (this.bindings[event][i].handler === handler) { - _results.push(this.bindings[event].splice(i, 1)); - } else { - _results.push(i++); - } - } - return _results; - } - }; - - Evented.prototype.trigger = function() { - var args, ctx, event, handler, i, once, _ref, _ref1, _results; - event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - if ((_ref = this.bindings) != null ? _ref[event] : void 0) { - i = 0; - _results = []; - while (i < this.bindings[event].length) { - _ref1 = this.bindings[event][i], handler = _ref1.handler, ctx = _ref1.ctx, once = _ref1.once; - handler.apply(ctx != null ? ctx : this, args); - if (once) { - _results.push(this.bindings[event].splice(i, 1)); - } else { - _results.push(i++); - } - } - return _results; - } - }; - - return Evented; - - })(); - - Pace = window.Pace || {}; - - window.Pace = Pace; - - extend(Pace, Evented.prototype); - - options = Pace.options = extend({}, defaultOptions, window.paceOptions, getFromDOM()); - - _ref = ['ajax', 'document', 'eventLag', 'elements']; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - source = _ref[_i]; - if (options[source] === true) { - options[source] = defaultOptions[source]; - } - } - - NoTargetError = (function(_super) { - __extends(NoTargetError, _super); - - function NoTargetError() { - _ref1 = NoTargetError.__super__.constructor.apply(this, arguments); - return _ref1; - } - - return NoTargetError; - - })(Error); - - Bar = (function() { - function Bar() { - this.progress = 0; - } - - Bar.prototype.getElement = function() { - var targetElement; - if (this.el == null) { - targetElement = document.querySelector(options.target); - if (!targetElement) { - throw new NoTargetError; - } - this.el = document.createElement('div'); - this.el.className = "pace pace-active"; - document.body.className = document.body.className.replace(/pace-done/g, ''); - document.body.className += ' pace-running'; - this.el.innerHTML = '
\n
\n
\n
'; - if (targetElement.firstChild != null) { - targetElement.insertBefore(this.el, targetElement.firstChild); - } else { - targetElement.appendChild(this.el); - } - } - return this.el; - }; - - Bar.prototype.finish = function() { - var el; - el = this.getElement(); - el.className = el.className.replace('pace-active', ''); - el.className += ' pace-inactive'; - document.body.className = document.body.className.replace('pace-running', ''); - return document.body.className += ' pace-done'; - }; - - Bar.prototype.update = function(prog) { - this.progress = prog; - return this.render(); - }; - - Bar.prototype.destroy = function() { - try { - this.getElement().parentNode.removeChild(this.getElement()); - } catch (_error) { - NoTargetError = _error; - } - return this.el = void 0; - }; - - Bar.prototype.render = function() { - var el, key, progressStr, transform, _j, _len1, _ref2; - if (document.querySelector(options.target) == null) { - return false; - } - el = this.getElement(); - transform = "translate3d(" + this.progress + "%, 0, 0)"; - _ref2 = ['webkitTransform', 'msTransform', 'transform']; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - key = _ref2[_j]; - el.children[0].style[key] = transform; - } - if (!this.lastRenderedProgress || this.lastRenderedProgress | 0 !== this.progress | 0) { - el.children[0].setAttribute('data-progress-text', "" + (this.progress | 0) + "%"); - if (this.progress >= 100) { - progressStr = '99'; - } else { - progressStr = this.progress < 10 ? "0" : ""; - progressStr += this.progress | 0; - } - el.children[0].setAttribute('data-progress', "" + progressStr); - } - return this.lastRenderedProgress = this.progress; - }; - - Bar.prototype.done = function() { - return this.progress >= 100; - }; - - return Bar; - - })(); - - Events = (function() { - function Events() { - this.bindings = {}; - } - - Events.prototype.trigger = function(name, val) { - var binding, _j, _len1, _ref2, _results; - if (this.bindings[name] != null) { - _ref2 = this.bindings[name]; - _results = []; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - binding = _ref2[_j]; - _results.push(binding.call(this, val)); - } - return _results; - } - }; - - Events.prototype.on = function(name, fn) { - var _base; - if ((_base = this.bindings)[name] == null) { - _base[name] = []; - } - return this.bindings[name].push(fn); - }; - - return Events; - - })(); - - _XMLHttpRequest = window.XMLHttpRequest; - - _XDomainRequest = window.XDomainRequest; - - _WebSocket = window.WebSocket; - - extendNative = function(to, from) { - var e, key, _results; - _results = []; - for (key in from.prototype) { - try { - if ((to[key] == null) && typeof from[key] !== 'function') { - if (typeof Object.defineProperty === 'function') { - _results.push(Object.defineProperty(to, key, { - get: function() { - return from.prototype[key]; - }, - configurable: true, - enumerable: true - })); - } else { - _results.push(to[key] = from.prototype[key]); - } - } else { - _results.push(void 0); - } - } catch (_error) { - e = _error; - } - } - return _results; - }; - - ignoreStack = []; - - Pace.ignore = function() { - var args, fn, ret; - fn = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - ignoreStack.unshift('ignore'); - ret = fn.apply(null, args); - ignoreStack.shift(); - return ret; - }; - - Pace.track = function() { - var args, fn, ret; - fn = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - ignoreStack.unshift('track'); - ret = fn.apply(null, args); - ignoreStack.shift(); - return ret; - }; - - shouldTrack = function(method) { - var _ref2; - if (method == null) { - method = 'GET'; - } - if (ignoreStack[0] === 'track') { - return 'force'; - } - if (!ignoreStack.length && options.ajax) { - if (method === 'socket' && options.ajax.trackWebSockets) { - return true; - } else if (_ref2 = method.toUpperCase(), __indexOf.call(options.ajax.trackMethods, _ref2) >= 0) { - return true; - } - } - return false; - }; - - RequestIntercept = (function(_super) { - __extends(RequestIntercept, _super); - - function RequestIntercept() { - var monitorXHR, - _this = this; - RequestIntercept.__super__.constructor.apply(this, arguments); - monitorXHR = function(req) { - var _open; - _open = req.open; - return req.open = function(type, url, async) { - if (shouldTrack(type)) { - _this.trigger('request', { - type: type, - url: url, - request: req - }); - } - return _open.apply(req, arguments); - }; - }; - window.XMLHttpRequest = function(flags) { - var req; - req = new _XMLHttpRequest(flags); - monitorXHR(req); - return req; - }; - try { - extendNative(window.XMLHttpRequest, _XMLHttpRequest); - } catch (_error) {} - if (_XDomainRequest != null) { - window.XDomainRequest = function() { - var req; - req = new _XDomainRequest; - monitorXHR(req); - return req; - }; - try { - extendNative(window.XDomainRequest, _XDomainRequest); - } catch (_error) {} - } - if ((_WebSocket != null) && options.ajax.trackWebSockets) { - window.WebSocket = function(url, protocols) { - var req; - if (protocols != null) { - req = new _WebSocket(url, protocols); - } else { - req = new _WebSocket(url); - } - if (shouldTrack('socket')) { - _this.trigger('request', { - type: 'socket', - url: url, - protocols: protocols, - request: req - }); - } - return req; - }; - try { - extendNative(window.WebSocket, _WebSocket); - } catch (_error) {} - } - } - - return RequestIntercept; - - })(Events); - - _intercept = null; - - getIntercept = function() { - if (_intercept == null) { - _intercept = new RequestIntercept; - } - return _intercept; - }; - - shouldIgnoreURL = function(url) { - var pattern, _j, _len1, _ref2; - _ref2 = options.ajax.ignoreURLs; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - pattern = _ref2[_j]; - if (typeof pattern === 'string') { - if (url.indexOf(pattern) !== -1) { - return true; - } - } else { - if (pattern.test(url)) { - return true; - } - } - } - return false; - }; - - getIntercept().on('request', function(_arg) { - var after, args, request, type, url; - type = _arg.type, request = _arg.request, url = _arg.url; - if (shouldIgnoreURL(url)) { - return; - } - if (!Pace.running && (options.restartOnRequestAfter !== false || shouldTrack(type) === 'force')) { - args = arguments; - after = options.restartOnRequestAfter || 0; - if (typeof after === 'boolean') { - after = 0; - } - return setTimeout(function() { - var stillActive, _j, _len1, _ref2, _ref3, _results; - if (type === 'socket') { - stillActive = request.readyState < 2; - } else { - stillActive = (0 < (_ref2 = request.readyState) && _ref2 < 4); - } - if (stillActive) { - Pace.restart(); - _ref3 = Pace.sources; - _results = []; - for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { - source = _ref3[_j]; - if (source instanceof AjaxMonitor) { - source.watch.apply(source, args); - break; - } else { - _results.push(void 0); - } - } - return _results; - } - }, after); - } - }); - - AjaxMonitor = (function() { - function AjaxMonitor() { - var _this = this; - this.elements = []; - getIntercept().on('request', function() { - return _this.watch.apply(_this, arguments); - }); - } - - AjaxMonitor.prototype.watch = function(_arg) { - var request, tracker, type, url; - type = _arg.type, request = _arg.request, url = _arg.url; - if (shouldIgnoreURL(url)) { - return; - } - if (type === 'socket') { - tracker = new SocketRequestTracker(request); - } else { - tracker = new XHRRequestTracker(request); - } - return this.elements.push(tracker); - }; - - return AjaxMonitor; - - })(); - - XHRRequestTracker = (function() { - function XHRRequestTracker(request) { - var event, size, _j, _len1, _onreadystatechange, _ref2, - _this = this; - this.progress = 0; - if (window.ProgressEvent != null) { - size = null; - request.addEventListener('progress', function(evt) { - if (evt.lengthComputable) { - return _this.progress = 100 * evt.loaded / evt.total; - } else { - return _this.progress = _this.progress + (100 - _this.progress) / 2; - } - }, false); - _ref2 = ['load', 'abort', 'timeout', 'error']; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - event = _ref2[_j]; - request.addEventListener(event, function() { - return _this.progress = 100; - }, false); - } - } else { - _onreadystatechange = request.onreadystatechange; - request.onreadystatechange = function() { - var _ref3; - if ((_ref3 = request.readyState) === 0 || _ref3 === 4) { - _this.progress = 100; - } else if (request.readyState === 3) { - _this.progress = 50; - } - return typeof _onreadystatechange === "function" ? _onreadystatechange.apply(null, arguments) : void 0; - }; - } - } - - return XHRRequestTracker; - - })(); - - SocketRequestTracker = (function() { - function SocketRequestTracker(request) { - var event, _j, _len1, _ref2, - _this = this; - this.progress = 0; - _ref2 = ['error', 'open']; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - event = _ref2[_j]; - request.addEventListener(event, function() { - return _this.progress = 100; - }, false); - } - } - - return SocketRequestTracker; - - })(); - - ElementMonitor = (function() { - function ElementMonitor(options) { - var selector, _j, _len1, _ref2; - if (options == null) { - options = {}; - } - this.elements = []; - if (options.selectors == null) { - options.selectors = []; - } - _ref2 = options.selectors; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - selector = _ref2[_j]; - this.elements.push(new ElementTracker(selector)); - } - } - - return ElementMonitor; - - })(); - - ElementTracker = (function() { - function ElementTracker(selector) { - this.selector = selector; - this.progress = 0; - this.check(); - } - - ElementTracker.prototype.check = function() { - var _this = this; - if (document.querySelector(this.selector)) { - return this.done(); - } else { - return setTimeout((function() { - return _this.check(); - }), options.elements.checkInterval); - } - }; - - ElementTracker.prototype.done = function() { - return this.progress = 100; - }; - - return ElementTracker; - - })(); - - DocumentMonitor = (function() { - DocumentMonitor.prototype.states = { - loading: 0, - interactive: 50, - complete: 100 - }; - - function DocumentMonitor() { - var _onreadystatechange, _ref2, - _this = this; - this.progress = (_ref2 = this.states[document.readyState]) != null ? _ref2 : 100; - _onreadystatechange = document.onreadystatechange; - document.onreadystatechange = function() { - if (_this.states[document.readyState] != null) { - _this.progress = _this.states[document.readyState]; - } - return typeof _onreadystatechange === "function" ? _onreadystatechange.apply(null, arguments) : void 0; - }; - } - - return DocumentMonitor; - - })(); - - EventLagMonitor = (function() { - function EventLagMonitor() { - var avg, interval, last, points, samples, - _this = this; - this.progress = 0; - avg = 0; - samples = []; - points = 0; - last = now(); - interval = setInterval(function() { - var diff; - diff = now() - last - 50; - last = now(); - samples.push(diff); - if (samples.length > options.eventLag.sampleCount) { - samples.shift(); - } - avg = avgAmplitude(samples); - if (++points >= options.eventLag.minSamples && avg < options.eventLag.lagThreshold) { - _this.progress = 100; - return clearInterval(interval); - } else { - return _this.progress = 100 * (3 / (avg + 3)); - } - }, 50); - } - - return EventLagMonitor; - - })(); - - Scaler = (function() { - function Scaler(source) { - this.source = source; - this.last = this.sinceLastUpdate = 0; - this.rate = options.initialRate; - this.catchup = 0; - this.progress = this.lastProgress = 0; - if (this.source != null) { - this.progress = result(this.source, 'progress'); - } - } - - Scaler.prototype.tick = function(frameTime, val) { - var scaling; - if (val == null) { - val = result(this.source, 'progress'); - } - if (val >= 100) { - this.done = true; - } - if (val === this.last) { - this.sinceLastUpdate += frameTime; - } else { - if (this.sinceLastUpdate) { - this.rate = (val - this.last) / this.sinceLastUpdate; - } - this.catchup = (val - this.progress) / options.catchupTime; - this.sinceLastUpdate = 0; - this.last = val; - } - if (val > this.progress) { - this.progress += this.catchup * frameTime; - } - scaling = 1 - Math.pow(this.progress / 100, options.easeFactor); - this.progress += scaling * this.rate * frameTime; - this.progress = Math.min(this.lastProgress + options.maxProgressPerFrame, this.progress); - this.progress = Math.max(0, this.progress); - this.progress = Math.min(100, this.progress); - this.lastProgress = this.progress; - return this.progress; - }; - - return Scaler; - - })(); - - sources = null; - - scalers = null; - - bar = null; - - uniScaler = null; - - animation = null; - - cancelAnimation = null; - - Pace.running = false; - - handlePushState = function() { - if (options.restartOnPushState) { - return Pace.restart(); - } - }; - - if (window.history.pushState != null) { - _pushState = window.history.pushState; - window.history.pushState = function() { - handlePushState(); - return _pushState.apply(window.history, arguments); - }; - } - - if (window.history.replaceState != null) { - _replaceState = window.history.replaceState; - window.history.replaceState = function() { - handlePushState(); - return _replaceState.apply(window.history, arguments); - }; - } - - SOURCE_KEYS = { - ajax: AjaxMonitor, - elements: ElementMonitor, - document: DocumentMonitor, - eventLag: EventLagMonitor - }; - - (init = function() { - var type, _j, _k, _len1, _len2, _ref2, _ref3, _ref4; - Pace.sources = sources = []; - _ref2 = ['ajax', 'elements', 'document', 'eventLag']; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - type = _ref2[_j]; - if (options[type] !== false) { - sources.push(new SOURCE_KEYS[type](options[type])); - } - } - _ref4 = (_ref3 = options.extraSources) != null ? _ref3 : []; - for (_k = 0, _len2 = _ref4.length; _k < _len2; _k++) { - source = _ref4[_k]; - sources.push(new source(options)); - } - Pace.bar = bar = new Bar; - scalers = []; - return uniScaler = new Scaler; - })(); - - Pace.stop = function() { - Pace.trigger('stop'); - Pace.running = false; - bar.destroy(); - cancelAnimation = true; - if (animation != null) { - if (typeof cancelAnimationFrame === "function") { - cancelAnimationFrame(animation); - } - animation = null; - } - return init(); - }; - - Pace.restart = function() { - Pace.trigger('restart'); - Pace.stop(); - return Pace.start(); - }; - - Pace.go = function() { - var start; - Pace.running = true; - bar.render(); - start = now(); - cancelAnimation = false; - return animation = runAnimation(function(frameTime, enqueueNextFrame) { - var avg, count, done, element, elements, i, j, remaining, scaler, scalerList, sum, _j, _k, _len1, _len2, _ref2; - remaining = 100 - bar.progress; - count = sum = 0; - done = true; - for (i = _j = 0, _len1 = sources.length; _j < _len1; i = ++_j) { - source = sources[i]; - scalerList = scalers[i] != null ? scalers[i] : scalers[i] = []; - elements = (_ref2 = source.elements) != null ? _ref2 : [source]; - for (j = _k = 0, _len2 = elements.length; _k < _len2; j = ++_k) { - element = elements[j]; - scaler = scalerList[j] != null ? scalerList[j] : scalerList[j] = new Scaler(element); - done &= scaler.done; - if (scaler.done) { - continue; - } - count++; - sum += scaler.tick(frameTime); - } - } - avg = sum / count; - bar.update(uniScaler.tick(frameTime, avg)); - if (bar.done() || done || cancelAnimation) { - bar.update(100); - Pace.trigger('done'); - return setTimeout(function() { - bar.finish(); - Pace.running = false; - return Pace.trigger('hide'); - }, Math.max(options.ghostTime, Math.max(options.minTime - (now() - start), 0))); - } else { - return enqueueNextFrame(); - } - }); - }; - - Pace.start = function(_options) { - extend(options, _options); - Pace.running = true; - try { - bar.render(); - } catch (_error) { - NoTargetError = _error; - } - if (!document.querySelector('.pace')) { - return setTimeout(Pace.start, 50); - } else { - Pace.trigger('start'); - return Pace.go(); - } - }; - - if (typeof define === 'function' && define.amd) { - define(['pace'], function() { - return Pace; - }); - } else if (typeof exports === 'object') { - module.exports = Pace; - } else { - if (options.startOnPageLoad) { - Pace.start(); - } - } - -}).call(this); diff --git a/Bootstrap.Admin/Content/js/pace.min.js b/Bootstrap.Admin/Content/js/pace.min.js deleted file mode 100644 index bead1787..00000000 --- a/Bootstrap.Admin/Content/js/pace.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! pace 1.0.2 */ -(function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X=[].slice,Y={}.hasOwnProperty,Z=function(a,b){function c(){this.constructor=a}for(var d in b)Y.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},$=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};for(u={catchupTime:100,initialRate:.03,minTime:250,ghostTime:100,maxProgressPerFrame:20,easeFactor:1.25,startOnPageLoad:!0,restartOnPushState:!0,restartOnRequestAfter:500,target:"body",elements:{checkInterval:100,selectors:["body"]},eventLag:{minSamples:10,sampleCount:3,lagThreshold:3},ajax:{trackMethods:["GET"],trackWebSockets:!0,ignoreURLs:[]}},C=function(){var a;return null!=(a="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?a:+new Date},E=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,t=window.cancelAnimationFrame||window.mozCancelAnimationFrame,null==E&&(E=function(a){return setTimeout(a,50)},t=function(a){return clearTimeout(a)}),G=function(a){var b,c;return b=C(),(c=function(){var d;return d=C()-b,d>=33?(b=C(),a(d,function(){return E(c)})):setTimeout(c,33-d)})()},F=function(){var a,b,c;return c=arguments[0],b=arguments[1],a=3<=arguments.length?X.call(arguments,2):[],"function"==typeof c[b]?c[b].apply(c,a):c[b]},v=function(){var a,b,c,d,e,f,g;for(b=arguments[0],d=2<=arguments.length?X.call(arguments,1):[],f=0,g=d.length;g>f;f++)if(c=d[f])for(a in c)Y.call(c,a)&&(e=c[a],null!=b[a]&&"object"==typeof b[a]&&null!=e&&"object"==typeof e?v(b[a],e):b[a]=e);return b},q=function(a){var b,c,d,e,f;for(c=b=0,e=0,f=a.length;f>e;e++)d=a[e],c+=Math.abs(d),b++;return c/b},x=function(a,b){var c,d,e;if(null==a&&(a="options"),null==b&&(b=!0),e=document.querySelector("[data-pace-"+a+"]")){if(c=e.getAttribute("data-pace-"+a),!b)return c;try{return JSON.parse(c)}catch(f){return d=f,"undefined"!=typeof console&&null!==console?console.error("Error parsing inline pace options",d):void 0}}},g=function(){function a(){}return a.prototype.on=function(a,b,c,d){var e;return null==d&&(d=!1),null==this.bindings&&(this.bindings={}),null==(e=this.bindings)[a]&&(e[a]=[]),this.bindings[a].push({handler:b,ctx:c,once:d})},a.prototype.once=function(a,b,c){return this.on(a,b,c,!0)},a.prototype.off=function(a,b){var c,d,e;if(null!=(null!=(d=this.bindings)?d[a]:void 0)){if(null==b)return delete this.bindings[a];for(c=0,e=[];cQ;Q++)K=U[Q],D[K]===!0&&(D[K]=u[K]);i=function(a){function b(){return V=b.__super__.constructor.apply(this,arguments)}return Z(b,a),b}(Error),b=function(){function a(){this.progress=0}return a.prototype.getElement=function(){var a;if(null==this.el){if(a=document.querySelector(D.target),!a)throw new i;this.el=document.createElement("div"),this.el.className="pace pace-active",document.body.className=document.body.className.replace(/pace-done/g,""),document.body.className+=" pace-running",this.el.innerHTML='
\n
\n
\n
',null!=a.firstChild?a.insertBefore(this.el,a.firstChild):a.appendChild(this.el)}return this.el},a.prototype.finish=function(){var a;return a=this.getElement(),a.className=a.className.replace("pace-active",""),a.className+=" pace-inactive",document.body.className=document.body.className.replace("pace-running",""),document.body.className+=" pace-done"},a.prototype.update=function(a){return this.progress=a,this.render()},a.prototype.destroy=function(){try{this.getElement().parentNode.removeChild(this.getElement())}catch(a){i=a}return this.el=void 0},a.prototype.render=function(){var a,b,c,d,e,f,g;if(null==document.querySelector(D.target))return!1;for(a=this.getElement(),d="translate3d("+this.progress+"%, 0, 0)",g=["webkitTransform","msTransform","transform"],e=0,f=g.length;f>e;e++)b=g[e],a.children[0].style[b]=d;return(!this.lastRenderedProgress||this.lastRenderedProgress|0!==this.progress|0)&&(a.children[0].setAttribute("data-progress-text",""+(0|this.progress)+"%"),this.progress>=100?c="99":(c=this.progress<10?"0":"",c+=0|this.progress),a.children[0].setAttribute("data-progress",""+c)),this.lastRenderedProgress=this.progress},a.prototype.done=function(){return this.progress>=100},a}(),h=function(){function a(){this.bindings={}}return a.prototype.trigger=function(a,b){var c,d,e,f,g;if(null!=this.bindings[a]){for(f=this.bindings[a],g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(c.call(this,b));return g}},a.prototype.on=function(a,b){var c;return null==(c=this.bindings)[a]&&(c[a]=[]),this.bindings[a].push(b)},a}(),P=window.XMLHttpRequest,O=window.XDomainRequest,N=window.WebSocket,w=function(a,b){var c,d,e;e=[];for(d in b.prototype)try{null==a[d]&&"function"!=typeof b[d]?"function"==typeof Object.defineProperty?e.push(Object.defineProperty(a,d,{get:function(){return b.prototype[d]},configurable:!0,enumerable:!0})):e.push(a[d]=b.prototype[d]):e.push(void 0)}catch(f){c=f}return e},A=[],j.ignore=function(){var a,b,c;return b=arguments[0],a=2<=arguments.length?X.call(arguments,1):[],A.unshift("ignore"),c=b.apply(null,a),A.shift(),c},j.track=function(){var a,b,c;return b=arguments[0],a=2<=arguments.length?X.call(arguments,1):[],A.unshift("track"),c=b.apply(null,a),A.shift(),c},J=function(a){var b;if(null==a&&(a="GET"),"track"===A[0])return"force";if(!A.length&&D.ajax){if("socket"===a&&D.ajax.trackWebSockets)return!0;if(b=a.toUpperCase(),$.call(D.ajax.trackMethods,b)>=0)return!0}return!1},k=function(a){function b(){var a,c=this;b.__super__.constructor.apply(this,arguments),a=function(a){var b;return b=a.open,a.open=function(d,e,f){return J(d)&&c.trigger("request",{type:d,url:e,request:a}),b.apply(a,arguments)}},window.XMLHttpRequest=function(b){var c;return c=new P(b),a(c),c};try{w(window.XMLHttpRequest,P)}catch(d){}if(null!=O){window.XDomainRequest=function(){var b;return b=new O,a(b),b};try{w(window.XDomainRequest,O)}catch(d){}}if(null!=N&&D.ajax.trackWebSockets){window.WebSocket=function(a,b){var d;return d=null!=b?new N(a,b):new N(a),J("socket")&&c.trigger("request",{type:"socket",url:a,protocols:b,request:d}),d};try{w(window.WebSocket,N)}catch(d){}}}return Z(b,a),b}(h),R=null,y=function(){return null==R&&(R=new k),R},I=function(a){var b,c,d,e;for(e=D.ajax.ignoreURLs,c=0,d=e.length;d>c;c++)if(b=e[c],"string"==typeof b){if(-1!==a.indexOf(b))return!0}else if(b.test(a))return!0;return!1},y().on("request",function(b){var c,d,e,f,g;return f=b.type,e=b.request,g=b.url,I(g)?void 0:j.running||D.restartOnRequestAfter===!1&&"force"!==J(f)?void 0:(d=arguments,c=D.restartOnRequestAfter||0,"boolean"==typeof c&&(c=0),setTimeout(function(){var b,c,g,h,i,k;if(b="socket"===f?e.readyState<2:0<(h=e.readyState)&&4>h){for(j.restart(),i=j.sources,k=[],c=0,g=i.length;g>c;c++){if(K=i[c],K instanceof a){K.watch.apply(K,d);break}k.push(void 0)}return k}},c))}),a=function(){function a(){var a=this;this.elements=[],y().on("request",function(){return a.watch.apply(a,arguments)})}return a.prototype.watch=function(a){var b,c,d,e;return d=a.type,b=a.request,e=a.url,I(e)?void 0:(c="socket"===d?new n(b):new o(b),this.elements.push(c))},a}(),o=function(){function a(a){var b,c,d,e,f,g,h=this;if(this.progress=0,null!=window.ProgressEvent)for(c=null,a.addEventListener("progress",function(a){return a.lengthComputable?h.progress=100*a.loaded/a.total:h.progress=h.progress+(100-h.progress)/2},!1),g=["load","abort","timeout","error"],d=0,e=g.length;e>d;d++)b=g[d],a.addEventListener(b,function(){return h.progress=100},!1);else f=a.onreadystatechange,a.onreadystatechange=function(){var b;return 0===(b=a.readyState)||4===b?h.progress=100:3===a.readyState&&(h.progress=50),"function"==typeof f?f.apply(null,arguments):void 0}}return a}(),n=function(){function a(a){var b,c,d,e,f=this;for(this.progress=0,e=["error","open"],c=0,d=e.length;d>c;c++)b=e[c],a.addEventListener(b,function(){return f.progress=100},!1)}return a}(),d=function(){function a(a){var b,c,d,f;for(null==a&&(a={}),this.elements=[],null==a.selectors&&(a.selectors=[]),f=a.selectors,c=0,d=f.length;d>c;c++)b=f[c],this.elements.push(new e(b))}return a}(),e=function(){function a(a){this.selector=a,this.progress=0,this.check()}return a.prototype.check=function(){var a=this;return document.querySelector(this.selector)?this.done():setTimeout(function(){return a.check()},D.elements.checkInterval)},a.prototype.done=function(){return this.progress=100},a}(),c=function(){function a(){var a,b,c=this;this.progress=null!=(b=this.states[document.readyState])?b:100,a=document.onreadystatechange,document.onreadystatechange=function(){return null!=c.states[document.readyState]&&(c.progress=c.states[document.readyState]),"function"==typeof a?a.apply(null,arguments):void 0}}return a.prototype.states={loading:0,interactive:50,complete:100},a}(),f=function(){function a(){var a,b,c,d,e,f=this;this.progress=0,a=0,e=[],d=0,c=C(),b=setInterval(function(){var g;return g=C()-c-50,c=C(),e.push(g),e.length>D.eventLag.sampleCount&&e.shift(),a=q(e),++d>=D.eventLag.minSamples&&a=100&&(this.done=!0),b===this.last?this.sinceLastUpdate+=a:(this.sinceLastUpdate&&(this.rate=(b-this.last)/this.sinceLastUpdate),this.catchup=(b-this.progress)/D.catchupTime,this.sinceLastUpdate=0,this.last=b),b>this.progress&&(this.progress+=this.catchup*a),c=1-Math.pow(this.progress/100,D.easeFactor),this.progress+=c*this.rate*a,this.progress=Math.min(this.lastProgress+D.maxProgressPerFrame,this.progress),this.progress=Math.max(0,this.progress),this.progress=Math.min(100,this.progress),this.lastProgress=this.progress,this.progress},a}(),L=null,H=null,r=null,M=null,p=null,s=null,j.running=!1,z=function(){return D.restartOnPushState?j.restart():void 0},null!=window.history.pushState&&(T=window.history.pushState,window.history.pushState=function(){return z(),T.apply(window.history,arguments)}),null!=window.history.replaceState&&(W=window.history.replaceState,window.history.replaceState=function(){return z(),W.apply(window.history,arguments)}),l={ajax:a,elements:d,document:c,eventLag:f},(B=function(){var a,c,d,e,f,g,h,i;for(j.sources=L=[],g=["ajax","elements","document","eventLag"],c=0,e=g.length;e>c;c++)a=g[c],D[a]!==!1&&L.push(new l[a](D[a]));for(i=null!=(h=D.extraSources)?h:[],d=0,f=i.length;f>d;d++)K=i[d],L.push(new K(D));return j.bar=r=new b,H=[],M=new m})(),j.stop=function(){return j.trigger("stop"),j.running=!1,r.destroy(),s=!0,null!=p&&("function"==typeof t&&t(p),p=null),B()},j.restart=function(){return j.trigger("restart"),j.stop(),j.start()},j.go=function(){var a;return j.running=!0,r.render(),a=C(),s=!1,p=G(function(b,c){var d,e,f,g,h,i,k,l,n,o,p,q,t,u,v,w;for(l=100-r.progress,e=p=0,f=!0,i=q=0,u=L.length;u>q;i=++q)for(K=L[i],o=null!=H[i]?H[i]:H[i]=[],h=null!=(w=K.elements)?w:[K],k=t=0,v=h.length;v>t;k=++t)g=h[k],n=null!=o[k]?o[k]:o[k]=new m(g),f&=n.done,n.done||(e++,p+=n.tick(b));return d=p/e,r.update(M.tick(b,d)),r.done()||f||s?(r.update(100),j.trigger("done"),setTimeout(function(){return r.finish(),j.running=!1,j.trigger("hide")},Math.max(D.ghostTime,Math.max(D.minTime-(C()-a),0)))):c()})},j.start=function(a){v(D,a),j.running=!0;try{r.render()}catch(b){i=b}return document.querySelector(".pace")?(j.trigger("start"),j.go()):setTimeout(j.start,50)},"function"==typeof define&&define.amd?define(["pace"],function(){return j}):"object"==typeof exports?module.exports=j:D.startOnPageLoad&&j.start()}).call(this); \ No newline at end of file diff --git a/Bootstrap.Admin/Scripts/_references.js b/Bootstrap.Admin/Scripts/_references.js index 0c6b8109..7386b336 100644 Binary files a/Bootstrap.Admin/Scripts/_references.js and b/Bootstrap.Admin/Scripts/_references.js differ diff --git a/Bootstrap.Admin/Views/Shared/_Layout.cshtml b/Bootstrap.Admin/Views/Shared/_Layout.cshtml index 0767ef25..d2d5cbac 100644 --- a/Bootstrap.Admin/Views/Shared/_Layout.cshtml +++ b/Bootstrap.Admin/Views/Shared/_Layout.cshtml @@ -9,7 +9,7 @@ - + @@ -27,7 +27,7 @@ - + @RenderSection("Javascript", false)