Heimdall/public/js/app.js
2022-03-17 19:03:06 +00:00

749 lines
26 KiB
JavaScript
Vendored

function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
/**
* Huebee PACKAGED v2.0.0
* 1-click color picker
* MIT license
* http://huebee.buzz
* Copyright 2018 Metafizzy
*/
!function (t, e) {
"function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == (typeof module === "undefined" ? "undefined" : _typeof(module)) && module.exports ? module.exports = e() : t.EvEmitter = e();
}("undefined" != typeof window ? window : this, function () {
function t() {}
var e = t.prototype;
return e.on = function (t, e) {
if (t && e) {
var n = this._events = this._events || {},
i = n[t] = n[t] || [];
return i.indexOf(e) == -1 && i.push(e), this;
}
}, e.once = function (t, e) {
if (t && e) {
this.on(t, e);
var n = this._onceEvents = this._onceEvents || {},
i = n[t] = n[t] || {};
return i[e] = !0, this;
}
}, e.off = function (t, e) {
var n = this._events && this._events[t];
if (n && n.length) {
var i = n.indexOf(e);
return i != -1 && n.splice(i, 1), this;
}
}, e.emitEvent = function (t, e) {
var n = this._events && this._events[t];
if (n && n.length) {
var i = 0,
o = n[i];
e = e || [];
for (var s = this._onceEvents && this._onceEvents[t]; o;) {
var r = s && s[o];
r && (this.off(t, o), delete s[o]), o.apply(this, e), i += r ? 0 : 1, o = n[i];
}
return this;
}
}, t;
}), function (t, e) {
"function" == typeof define && define.amd ? define("unipointer/unipointer", ["ev-emitter/ev-emitter"], function (n) {
return e(t, n);
}) : "object" == (typeof module === "undefined" ? "undefined" : _typeof(module)) && module.exports ? module.exports = e(t, require("ev-emitter")) : t.Unipointer = e(t, t.EvEmitter);
}(window, function (t, e) {
function n() {}
function i() {}
var o = i.prototype = Object.create(e.prototype);
o.bindStartEvent = function (t) {
this._bindStartEvent(t, !0);
}, o.unbindStartEvent = function (t) {
this._bindStartEvent(t, !1);
}, o._bindStartEvent = function (e, n) {
n = void 0 === n || !!n;
var i = n ? "addEventListener" : "removeEventListener";
t.navigator.pointerEnabled ? e[i]("pointerdown", this) : t.navigator.msPointerEnabled ? e[i]("MSPointerDown", this) : (e[i]("mousedown", this), e[i]("touchstart", this));
}, o.handleEvent = function (t) {
var e = "on" + t.type;
this[e] && this[e](t);
}, o.getTouch = function (t) {
for (var e = 0; e < t.length; e++) {
var n = t[e];
if (n.identifier == this.pointerIdentifier) return n;
}
}, o.onmousedown = function (t) {
var e = t.button;
e && 0 !== e && 1 !== e || this._pointerDown(t, t);
}, o.ontouchstart = function (t) {
this._pointerDown(t, t.changedTouches[0]);
}, o.onMSPointerDown = o.onpointerdown = function (t) {
this._pointerDown(t, t);
}, o._pointerDown = function (t, e) {
this.isPointerDown || (this.isPointerDown = !0, this.pointerIdentifier = void 0 !== e.pointerId ? e.pointerId : e.identifier, this.pointerDown(t, e));
}, o.pointerDown = function (t, e) {
this._bindPostStartEvents(t), this.emitEvent("pointerDown", [t, e]);
};
var s = {
mousedown: ["mousemove", "mouseup"],
touchstart: ["touchmove", "touchend", "touchcancel"],
pointerdown: ["pointermove", "pointerup", "pointercancel"],
MSPointerDown: ["MSPointerMove", "MSPointerUp", "MSPointerCancel"]
};
return o._bindPostStartEvents = function (e) {
if (e) {
var n = s[e.type];
n.forEach(function (e) {
t.addEventListener(e, this);
}, this), this._boundPointerEvents = n;
}
}, o._unbindPostStartEvents = function () {
this._boundPointerEvents && (this._boundPointerEvents.forEach(function (e) {
t.removeEventListener(e, this);
}, this), delete this._boundPointerEvents);
}, o.onmousemove = function (t) {
this._pointerMove(t, t);
}, o.onMSPointerMove = o.onpointermove = function (t) {
t.pointerId == this.pointerIdentifier && this._pointerMove(t, t);
}, o.ontouchmove = function (t) {
var e = this.getTouch(t.changedTouches);
e && this._pointerMove(t, e);
}, o._pointerMove = function (t, e) {
this.pointerMove(t, e);
}, o.pointerMove = function (t, e) {
this.emitEvent("pointerMove", [t, e]);
}, o.onmouseup = function (t) {
this._pointerUp(t, t);
}, o.onMSPointerUp = o.onpointerup = function (t) {
t.pointerId == this.pointerIdentifier && this._pointerUp(t, t);
}, o.ontouchend = function (t) {
var e = this.getTouch(t.changedTouches);
e && this._pointerUp(t, e);
}, o._pointerUp = function (t, e) {
this._pointerDone(), this.pointerUp(t, e);
}, o.pointerUp = function (t, e) {
this.emitEvent("pointerUp", [t, e]);
}, o._pointerDone = function () {
this.isPointerDown = !1, delete this.pointerIdentifier, this._unbindPostStartEvents(), this.pointerDone();
}, o.pointerDone = n, o.onMSPointerCancel = o.onpointercancel = function (t) {
t.pointerId == this.pointerIdentifier && this._pointerCancel(t, t);
}, o.ontouchcancel = function (t) {
var e = this.getTouch(t.changedTouches);
e && this._pointerCancel(t, e);
}, o._pointerCancel = function (t, e) {
this._pointerDone(), this.pointerCancel(t, e);
}, o.pointerCancel = function (t, e) {
this.emitEvent("pointerCancel", [t, e]);
}, i.getPointerPoint = function (t) {
return {
x: t.pageX,
y: t.pageY
};
}, i;
}), function (t, e) {
"function" == typeof define && define.amd ? define(["ev-emitter/ev-emitter", "unipointer/unipointer"], function (n, i) {
return e(t, n, i);
}) : "object" == (typeof module === "undefined" ? "undefined" : _typeof(module)) && module.exports ? module.exports = e(t, require("ev-emitter"), require("unipointer")) : t.Huebee = e(t, t.EvEmitter, t.Unipointer);
}(window, function (t, e, n) {
function i(t, e) {
if (t = h(t), !t) throw "Bad element for Huebee: " + t;
this.anchor = t, this.options = {}, this.option(i.defaults), this.option(e), this.create();
}
function o() {
for (var t = document.querySelectorAll("[data-huebee]"), e = 0; e < t.length; e++) {
var n,
o = t[e],
s = o.getAttribute("data-huebee");
try {
n = s && JSON.parse(s);
} catch (t) {
C && C.error("Error parsing data-huebee on " + o.className + ": " + t);
continue;
}
new i(o, n);
}
}
function s(t) {
_.clearRect(0, 0, 1, 1), _.fillStyle = "#010203", _.fillStyle = t, _.fillRect(0, 0, 1, 1);
var e = _.getImageData(0, 0, 1, 1).data;
if (e = [e[0], e[1], e[2], e[3]], "1,2,3,255" != e.join(",")) {
var n = u.apply(this, e);
return {
color: t.trim(),
hue: n[0],
sat: n[1],
lum: n[2]
};
}
}
function r(t, e) {
for (var n in e) {
t[n] = e[n];
}
return t;
}
function h(t) {
return "string" == typeof t && (t = document.querySelector(t)), t;
}
function a(t, e, n) {
var i = c(t, e, n);
return d(i);
}
function c(t, e, n) {
var i,
o,
s = (1 - Math.abs(2 * n - 1)) * e,
r = t / 60,
h = s * (1 - Math.abs(r % 2 - 1));
switch (Math.floor(r)) {
case 0:
i = [s, h, 0];
break;
case 1:
i = [h, s, 0];
break;
case 2:
i = [0, s, h];
break;
case 3:
i = [0, h, s];
break;
case 4:
i = [h, 0, s];
break;
case 5:
i = [s, 0, h];
break;
default:
i = [0, 0, 0];
}
return o = n - s / 2, i = i.map(function (t) {
return t + o;
});
}
function u(t, e, n) {
t /= 255, e /= 255, n /= 255;
var i,
o = Math.max(t, e, n),
s = Math.min(t, e, n),
r = o - s,
h = .5 * (o + s),
a = 0 === r ? 0 : r / (1 - Math.abs(2 * h - 1));
0 === r ? i = 0 : o === t ? i = (e - n) / r % 6 : o === e ? i = (n - t) / r + 2 : o === n && (i = (t - e) / r + 4);
var c = 60 * i;
return [c, parseFloat(a), parseFloat(h)];
}
function d(t) {
var e = t.map(function (t) {
t = Math.round(255 * t);
var e = t.toString(16).toUpperCase();
return e = e.length < 2 ? "0" + e : e;
});
return "#" + e.join("");
}
function p(t) {
return "#" + t[1] + t[3] + t[5];
}
i.defaults = {
hues: 12,
hue0: 0,
shades: 5,
saturations: 3,
notation: "shortHex",
setText: !0,
setBGColor: !0
};
var f = i.prototype = Object.create(e.prototype);
f.option = function (t) {
this.options = r(this.options, t);
};
var v = 0,
l = {};
f.create = function () {
function t(t) {
t.target == i && t.preventDefault();
}
var e = this.guid = ++v;
this.anchor.huebeeGUID = e, l[e] = this, this.setBGElems = this.getSetElems(this.options.setBGColor), this.setTextElems = this.getSetElems(this.options.setText), this.outsideCloseIt = this.outsideClose.bind(this), this.onDocKeydown = this.docKeydown.bind(this), this.closeIt = this.close.bind(this), this.openIt = this.open.bind(this), this.onElemTransitionend = this.elemTransitionend.bind(this), this.isInputAnchor = "INPUT" == this.anchor.nodeName, this.options.staticOpen || (this.anchor.addEventListener("click", this.openIt), this.anchor.addEventListener("focus", this.openIt)), this.isInputAnchor && this.anchor.addEventListener("input", this.inputInput.bind(this));
var n = this.element = document.createElement("div");
n.className = "huebee ", n.className += this.options.staticOpen ? "is-static-open " : "is-hidden ", n.className += this.options.className || "";
var i = this.container = document.createElement("div");
if (i.className = "huebee__container", i.addEventListener("mousedown", t), i.addEventListener("touchstart", t), this.createCanvas(), this.cursor = document.createElement("div"), this.cursor.className = "huebee__cursor is-hidden", i.appendChild(this.cursor), this.createCloseButton(), n.appendChild(i), !this.options.staticOpen) {
var o = getComputedStyle(this.anchor.parentNode);
"relative" != o.position && "absolute" != o.position && (this.anchor.parentNode.style.position = "relative");
}
var s = this.options.hues,
r = this.options.customColors,
h = r && r.length;
this.satY = h ? Math.ceil(h / s) + 1 : 0, this.updateColors(), this.setAnchorColor(), this.options.staticOpen && this.open();
}, f.getSetElems = function (t) {
return t === !0 ? [this.anchor] : "string" == typeof t ? document.querySelectorAll(t) : void 0;
}, f.createCanvas = function () {
var t = this.canvas = document.createElement("canvas");
t.className = "huebee__canvas", this.ctx = t.getContext("2d");
var e = this.canvasPointer = new n();
e._bindStartEvent(t), e.on("pointerDown", this.canvasPointerDown.bind(this)), e.on("pointerMove", this.canvasPointerMove.bind(this)), this.container.appendChild(t);
};
var m = "http://www.w3.org/2000/svg";
f.createCloseButton = function () {
if (!this.options.staticOpen) {
var t = document.createElementNS(m, "svg");
t.setAttribute("class", "huebee__close-button"), t.setAttribute("viewBox", "0 0 24 24"), t.setAttribute("width", "24"), t.setAttribute("height", "24");
var e = document.createElementNS(m, "path");
e.setAttribute("d", "M 7,7 L 17,17 M 17,7 L 7,17"), e.setAttribute("class", "huebee__close-button__x"), t.appendChild(e), t.addEventListener("click", this.closeIt), this.container.appendChild(t);
}
}, f.updateColors = function () {
this.swatches = {}, this.colorGrid = {}, this.updateColorModer();
var t = this.options.shades,
e = this.options.saturations,
n = this.options.hues,
i = this.options.customColors;
if (i && i.length) {
var o = 0;
i.forEach(function (t) {
var e = o % n,
i = Math.floor(o / n),
r = s(t);
r && (this.addSwatch(r, e, i), o++);
}.bind(this));
}
for (var r = 0; r < e; r++) {
var h = 1 - r / e,
a = t * r + this.satY;
this.updateSaturationGrid(r, h, a);
}
for (r = 0; r < t + 2; r++) {
var c = 1 - r / (t + 1),
u = this.colorModer(0, 0, c),
d = s(u);
this.addSwatch(d, n + 1, r);
}
}, f.updateSaturationGrid = function (t, e, n) {
for (var i = this.options.shades, o = this.options.hues, r = this.options.hue0, h = 0; h < i; h++) {
for (var a = 0; a < o; a++) {
var c = Math.round(360 * a / o + r) % 360,
u = 1 - (h + 1) / (i + 1),
d = this.colorModer(c, e, u),
p = s(d),
f = h + n;
this.addSwatch(p, a, f);
}
}
}, f.addSwatch = function (t, e, n) {
this.swatches[e + "," + n] = t, this.colorGrid[t.color.toUpperCase()] = {
x: e,
y: n
};
};
var E = {
hsl: function hsl(t, e, n) {
return e = Math.round(100 * e), n = Math.round(100 * n), "hsl(" + t + ", " + e + "%, " + n + "%)";
},
hex: a,
shortHex: function shortHex(t, e, n) {
var i = a(t, e, n);
return p(i);
}
};
f.updateColorModer = function () {
this.colorModer = E[this.options.notation] || E.shortHex;
}, f.renderColors = function () {
var t = 2 * this.gridSize;
for (var e in this.swatches) {
var n = this.swatches[e],
i = e.split(","),
o = i[0],
s = i[1];
this.ctx.fillStyle = n.color, this.ctx.fillRect(o * t, s * t, t, t);
}
}, f.setAnchorColor = function () {
this.isInputAnchor && this.setColor(this.anchor.value);
};
var g = document.documentElement;
f.open = function () {
if (!this.isOpen) {
var t = this.anchor,
e = this.element;
this.options.staticOpen || (e.style.left = t.offsetLeft + "px", e.style.top = t.offsetTop + t.offsetHeight + "px"), this.bindOpenEvents(!0), e.removeEventListener("transitionend", this.onElemTransitionend), t.parentNode.insertBefore(e, t.nextSibling);
var n = getComputedStyle(e).transitionDuration;
this.hasTransition = n && "none" != n && parseFloat(n), this.isOpen = !0, this.updateSizes(), this.renderColors(), this.setAnchorColor();
e.offsetHeight;
e.classList.remove("is-hidden");
}
}, f.bindOpenEvents = function (t) {
if (!this.options.staticOpen) {
var e = (t ? "add" : "remove") + "EventListener";
g[e]("mousedown", this.outsideCloseIt), g[e]("touchstart", this.outsideCloseIt), document[e]("focusin", this.outsideCloseIt), document[e]("keydown", this.onDocKeydown), this.anchor[e]("blur", this.closeIt);
}
}, f.updateSizes = function () {
var t = this.options.hues,
e = this.options.shades,
n = this.options.saturations;
this.cursorBorder = parseInt(getComputedStyle(this.cursor).borderTopWidth, 10), this.gridSize = Math.round(this.cursor.offsetWidth - 2 * this.cursorBorder), this.canvasOffset = {
x: this.canvas.offsetLeft,
y: this.canvas.offsetTop
};
var i = Math.max(e * n + this.satY, e + 2),
o = this.gridSize * (t + 2);
this.canvas.width = 2 * o, this.canvas.style.width = o + "px", this.canvas.height = this.gridSize * i * 2;
}, f.outsideClose = function (t) {
var e = this.anchor.contains(t.target),
n = this.element.contains(t.target);
e || n || this.close();
};
var b = {
13: !0,
27: !0
};
f.docKeydown = function (t) {
b[t.keyCode] && this.close();
};
var w = "string" == typeof g.style.transform;
f.close = function () {
this.isOpen && (w && this.hasTransition ? this.element.addEventListener("transitionend", this.onElemTransitionend) : this.remove(), this.element.classList.add("is-hidden"), this.bindOpenEvents(!1), this.isOpen = !1);
}, f.remove = function () {
var t = this.element.parentNode;
t.contains(this.element) && t.removeChild(this.element);
}, f.elemTransitionend = function (t) {
t.target == this.element && (this.element.removeEventListener("transitionend", this.onElemTransitionend), this.remove());
}, f.inputInput = function () {
this.setColor(this.anchor.value);
}, f.canvasPointerDown = function (t, e) {
t.preventDefault(), this.updateOffset(), this.canvasPointerChange(e);
}, f.updateOffset = function () {
var e = this.canvas.getBoundingClientRect();
this.offset = {
x: e.left + t.pageXOffset,
y: e.top + t.pageYOffset
};
}, f.canvasPointerMove = function (t, e) {
this.canvasPointerChange(e);
}, f.canvasPointerChange = function (t) {
var e = Math.round(t.pageX - this.offset.x),
n = Math.round(t.pageY - this.offset.y),
i = this.gridSize,
o = Math.floor(e / i),
s = Math.floor(n / i),
r = this.swatches[o + "," + s];
this.setSwatch(r);
}, f.setColor = function (t) {
var e = s(t);
this.setSwatch(e);
}, f.setSwatch = function (t) {
var e = t && t.color;
if (t) {
var n = e == this.color;
this.color = e, this.hue = t.hue, this.sat = t.sat, this.lum = t.lum;
var i = this.lum - .15 * Math.cos((this.hue + 70) / 180 * Math.PI);
this.isLight = i > .5;
var o = this.colorGrid[e.toUpperCase()];
this.updateCursor(o), this.setTexts(), this.setBackgrounds(), n || this.emitEvent("change", [e, t.hue, t.sat, t.lum]);
}
}, f.setTexts = function () {
if (this.setTextElems) for (var t = 0; t < this.setTextElems.length; t++) {
var e = this.setTextElems[t],
n = "INPUT" == e.nodeName ? "value" : "textContent";
e[n] = this.color;
}
}, f.setBackgrounds = function () {
if (this.setBGElems) for (var t = this.isLight ? "#222" : "white", e = 0; e < this.setBGElems.length; e++) {
var n = this.setBGElems[e];
n.style.backgroundColor = this.color, n.style.color = t;
}
}, f.updateCursor = function (t) {
if (this.isOpen) {
var e = t ? "remove" : "add";
if (this.cursor.classList[e]("is-hidden"), t) {
var n = this.gridSize,
i = this.canvasOffset,
o = this.cursorBorder;
this.cursor.style.left = t.x * n + i.x - o + "px", this.cursor.style.top = t.y * n + i.y - o + "px";
}
}
};
var C = t.console,
S = document.readyState;
"complete" == S || "interactive" == S ? o() : document.addEventListener("DOMContentLoaded", o), i.data = function (t) {
t = h(t);
var e = t && t.huebeeGUID;
return e && l[e];
};
var y = document.createElement("canvas");
y.width = y.height = 1;
var _ = y.getContext("2d");
return i;
});
$.when($.ready).then(function () {
var base = (document.querySelector('base') || {}).href;
if ($('.message-container').length) {
setTimeout(function () {
$('.message-container').fadeOut();
}, 3500);
} // from https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
// Set the name of the hidden property and the change event for visibility
var hidden, visibilityChange;
if (typeof document.hidden !== "undefined") {
// Opera 12.10 and Firefox 18 and later support
hidden = "hidden";
visibilityChange = "visibilitychange";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}
var livestatsRefreshTimeouts = [];
var livestatsFuncs = [];
var livestatsContainers = $('.livestats-container');
function stopLivestatsRefresh() {
for (var _i = 0, _livestatsRefreshTime = livestatsRefreshTimeouts; _i < _livestatsRefreshTime.length; _i++) {
var timeoutId = _livestatsRefreshTime[_i];
window.clearTimeout(timeoutId);
}
}
function startLivestatsRefresh() {
for (var _i2 = 0, _livestatsFuncs = livestatsFuncs; _i2 < _livestatsFuncs.length; _i2++) {
var fun = _livestatsFuncs[_i2];
fun();
}
}
if (livestatsContainers.length > 0) {
if (typeof document.addEventListener === "undefined" || hidden === undefined) {
console.log("This browser does not support visibilityChange");
} else {
document.addEventListener(visibilityChange, function () {
if (document[hidden]) {
stopLivestatsRefresh();
} else {
startLivestatsRefresh();
}
}, false);
}
livestatsContainers.each(function (index) {
var id = $(this).data('id');
var dataonly = $(this).data('dataonly');
var increaseby = dataonly == 1 ? 20000 : 1000;
var container = $(this);
var max_timer = 30000;
var timer = 5000;
var fun = function worker() {
$.ajax({
url: base + 'get_stats/' + id,
dataType: 'json',
success: function success(data) {
container.html(data.html);
if (data.status == 'active') timer = increaseby;else {
if (timer < max_timer) timer += 2000;
}
},
complete: function complete() {
// Schedule the next request when the current one's complete
livestatsRefreshTimeouts[index] = window.setTimeout(worker, timer);
}
});
};
livestatsFuncs[index] = fun;
fun();
});
}
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#appimage img').attr('src', e.target.result);
};
reader.readAsDataURL(input.files[0]);
}
}
$('#upload').change(function () {
readURL(this);
});
/*$(".droppable").droppable({
tolerance: "intersect",
drop: function( event, ui ) {
var tag = $( this ).data('id');
var item = $( ui.draggable ).data('id');
$.get('tag/add/'+tag+'/'+item, function(data) {
if(data == 1) {
$( ui.draggable ).remove();
} else {
alert('not added');
}
});
}
});*/
$('#sortable').sortable({
stop: function stop(event, ui) {
var idsInOrder = $('#sortable').sortable('toArray', {
attribute: 'data-id'
});
$.post(base + 'order', {
order: idsInOrder
});
}
});
$('#sortable').sortable('disable');
$('#sortable').on('mouseenter', '.item', function () {
$(this).siblings('.tooltip').addClass('active');
$('.refresh', this).addClass('active');
}).on('mouseleave', '.item', function () {
$(this).siblings('.tooltip').removeClass('active');
$('.refresh', this).removeClass('active');
});
$('#search-container').on('input', 'input[name=q]', function () {
var search = this.value;
var items = $('#sortable').children('.item-container');
if ($('#search-container select[name=provider]').val() === 'tiles') {
if (search.length > 0) {
items.hide();
items.filter(function () {
var name = $(this).data('name').toLowerCase();
return name.includes(search.toLowerCase());
}).show();
} else {
items.show();
}
} else {
items.show();
}
}).on('change', 'select[name=provider]', function () {
var items = $('#sortable').children('.item-container');
if ($(this).val() === 'tiles') {
$('#search-container button').hide();
var search = $('#search-container input[name=q]').val();
if (search.length > 0) {
items.hide();
items.filter(function () {
var name = $(this).data('name').toLowerCase();
return name.includes(search.toLowerCase());
}).show();
} else {
items.show();
}
} else {
$('#search-container button').show();
items.show();
}
});
$('#app').on('click', '#config-button', function (e) {
e.preventDefault();
var app = $('#app');
var active = app.hasClass('header');
app.toggleClass('header');
if (active) {
$('.add-item').hide();
$('.item-edit').hide();
$('#app').removeClass('sidebar');
$('#sortable').sortable('disable');
} else {
$('#sortable').sortable('enable');
setTimeout(function () {
$('.add-item').fadeIn();
$('.item-edit').fadeIn();
}, 350);
}
}).on('click', '#add-item, #pin-item', function (e) {
e.preventDefault();
var app = $('#app');
var active = app.hasClass('sidebar');
app.toggleClass('sidebar');
}).on('click', '.close-sidenav', function (e) {
e.preventDefault();
var app = $('#app');
app.removeClass('sidebar');
}).on('click', '#test_config', function (e) {
e.preventDefault();
var apiurl = $('#create input[name=url]').val();
var override_url = $('#sapconfig input[name="config[override_url]"]').val();
if (override_url.length && override_url != '') {
apiurl = override_url;
}
var data = {};
data['url'] = apiurl;
$('.config-item').each(function (index) {
var config = $(this).data('config');
data[config] = $(this).val();
});
$.post(base + 'test_config', {
data: data
}, function (data) {
alert(data);
});
});
$('#pinlist').on('click', 'a', function (e) {
e.preventDefault();
var current = $(this);
var id = current.data('id');
var tag = current.data('tag');
$.get(base + 'items/pintoggle/' + id + '/true/' + tag, function (data) {
var inner = $(data).filter('#sortable').html();
$('#sortable').html(inner);
current.toggleClass('active');
});
});
});