v2.0.0.0000
This commit is contained in:
331
html/js/base.js
Normal file
331
html/js/base.js
Normal file
@@ -0,0 +1,331 @@
|
||||
var config = new Object();
|
||||
var menu = new Object();
|
||||
var subMenu = new Object();
|
||||
var activeStreams = new Object();
|
||||
var xEPG = new Object();
|
||||
var users = new Object();
|
||||
var log = new Object();
|
||||
var undo = new Object();
|
||||
var webSockets = true;
|
||||
var closeLog, version, activeMenu;
|
||||
var columnToSort = 0
|
||||
|
||||
|
||||
if (window.WebSocket === undefined) {
|
||||
alert("Your browser does not support WebSockets");
|
||||
webSockets = false;
|
||||
}
|
||||
|
||||
function pageReady() {
|
||||
var data = new Object();
|
||||
data["cmd"] = "getServerConfig";
|
||||
xTeVe(data);
|
||||
//showLoadingScreen(false);
|
||||
|
||||
var resizeHandle = document.getElementById("openStreams");
|
||||
var box = document.getElementById("myStreamsBox");
|
||||
resizeHandle.addEventListener("mousedown", initialiseResize, false);
|
||||
|
||||
function initialiseResize(e) {
|
||||
window.addEventListener("mousemove", startResizing, false);
|
||||
window.addEventListener("mouseup", stopResizing, false);
|
||||
}
|
||||
|
||||
function startResizing(e) {
|
||||
box.style.height = (e.clientY - box.offsetTop) + "px";
|
||||
|
||||
var elm = document.getElementById("allStreams");
|
||||
if (e.clientY > 120) {
|
||||
elm.className = "visible";
|
||||
} else {
|
||||
elm.className = "notVisible";
|
||||
}
|
||||
|
||||
calculateWrapperHeight();
|
||||
|
||||
}
|
||||
function stopResizing(e) {
|
||||
window.removeEventListener('mousemove', startResizing, false);
|
||||
window.removeEventListener('mouseup', stopResizing, false);
|
||||
calculateWrapperHeight();
|
||||
}
|
||||
|
||||
window.addEventListener("resize", function(){
|
||||
calculateWrapperHeight();
|
||||
}, true);
|
||||
}
|
||||
|
||||
|
||||
function getObjKeys(obj) {
|
||||
var keys = new Array();
|
||||
|
||||
for (var i in obj) {
|
||||
if (obj.hasOwnProperty(i)) {
|
||||
keys.push(i);
|
||||
}
|
||||
}
|
||||
|
||||
return keys;
|
||||
}
|
||||
|
||||
|
||||
function createElement(item) {
|
||||
//console.log(item);
|
||||
var element = document.createElement(item["_element"]);
|
||||
if (item.hasOwnProperty("_text")) {
|
||||
//element.innerHTML = "<p>" + item["_text"] + "</p>";
|
||||
element.innerHTML = item["_text"];
|
||||
}
|
||||
|
||||
var keys = getObjKeys(item);
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
if (keys[i].charAt(0) != "_") {
|
||||
//console.log(keys[i], item[keys[i]]);
|
||||
element.setAttribute(keys[i], item[keys[i]]);
|
||||
}
|
||||
}
|
||||
|
||||
//console.log(element);
|
||||
return element;
|
||||
}
|
||||
|
||||
function modifyOption(id, options, values) {
|
||||
var select = document.getElementById(id);
|
||||
select.innerHTML = "";
|
||||
|
||||
for (var i = 0; i < options.length; i++) {
|
||||
|
||||
var element = document.createElement("OPTION")
|
||||
|
||||
element.value = values[i];
|
||||
element.innerHTML = options[i];
|
||||
|
||||
document.getElementById(id).appendChild(element);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function startWebSocket() {
|
||||
if (webSockets == false) {
|
||||
return;
|
||||
}
|
||||
|
||||
//ws.send('{"cmd": "getServerConfig1"}');
|
||||
|
||||
}
|
||||
|
||||
function checkErr(obj) {
|
||||
//alert(obj["err"])
|
||||
//screenLog(obj["err"], "error")
|
||||
console.log(obj);
|
||||
var newObj = new Object();
|
||||
var newErr = new Object();
|
||||
newErr["key"] = "Error";
|
||||
newErr["value"] = obj["err"];
|
||||
newErr["type"] = "error";
|
||||
|
||||
newObj[0] = newErr
|
||||
showLog(newObj);
|
||||
return
|
||||
}
|
||||
|
||||
function screenLog(msg, msgType, show) {
|
||||
return
|
||||
clearTimeout(closeLog)
|
||||
var div = document.getElementById("screenLog");
|
||||
var newMsg = new Object();
|
||||
|
||||
newMsg["_element"] = "P";
|
||||
|
||||
switch(msgType) {
|
||||
case "error": newMsg["class"] = "errorMsg"; break;
|
||||
case "warning": newMsg["class"] = "warningMsg"; break;
|
||||
//default: newMsg["class"] = "infoMsg"
|
||||
}
|
||||
|
||||
newMsg["_text"] = msg;
|
||||
|
||||
div.appendChild(createElement(newMsg));
|
||||
|
||||
div.scrollTop = div.scrollHeight;
|
||||
|
||||
if (show == false) {
|
||||
return;
|
||||
}
|
||||
|
||||
div.className = ""
|
||||
closeLog = setTimeout(closeScreenLog, 10000);
|
||||
}
|
||||
|
||||
|
||||
function closeScreenLog() {
|
||||
var div = document.getElementById("screenLog");
|
||||
div.className = "screenLogHidden"
|
||||
}
|
||||
|
||||
function showScreenLog() {
|
||||
clearTimeout(closeLog)
|
||||
var div = document.getElementById("screenLog");
|
||||
var currentClass = div.className;
|
||||
div.className = "screenLogHidden"
|
||||
|
||||
switch(currentClass) {
|
||||
case "screenLogHidden": div.className = ""; break;
|
||||
case "": div.className = "screenLogHidden"; break;
|
||||
}
|
||||
}
|
||||
|
||||
function showLoadingScreen(elm) {
|
||||
var div = document.getElementById("loading");
|
||||
switch(elm) {
|
||||
case true: div.className = "block"; break;
|
||||
case false: div.className = "none"; break;
|
||||
|
||||
/*
|
||||
case true: div.style.display = "block"; break;
|
||||
case false: div.style.display = "none"; break;
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
function createClintInfo(obj) {
|
||||
//console.log(obj);
|
||||
var keys = getObjKeys(obj);
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
if(document.getElementById(keys[i])){
|
||||
document.getElementById(keys[i]).innerHTML = obj[keys[i]];
|
||||
}
|
||||
}
|
||||
//document.getElementById("clientInfo").className = "visible";
|
||||
}
|
||||
|
||||
function showElement(elmID, type) {
|
||||
switch(type) {
|
||||
case true: cssClass = "block"; break;
|
||||
case false: cssClass = "none"; break;
|
||||
}
|
||||
|
||||
document.getElementById(elmID).className = cssClass;
|
||||
}
|
||||
|
||||
function showPopUpElement(elm) {
|
||||
var allElements = new Array("deleteUserDetail", "mapping-detail", "user-detail", "file-detail");
|
||||
|
||||
for (var i = 0; i < allElements.length; i++) {
|
||||
showElement(allElements[i], false)
|
||||
}
|
||||
|
||||
showElement(elm, true)
|
||||
|
||||
setTimeout(function(){
|
||||
showElement("popup", true);
|
||||
}, 10);
|
||||
}
|
||||
|
||||
// body...
|
||||
|
||||
function showStreams(force) {
|
||||
|
||||
var elmBox = document.getElementById("myStreamsBox");
|
||||
var elm = document.getElementById("allStreams");
|
||||
//console.log(elm);
|
||||
show = elm.className;
|
||||
|
||||
switch(force) {
|
||||
case true: show = "notVisible"; break;
|
||||
case false: show = "visible"; break;
|
||||
}
|
||||
|
||||
switch(show) {
|
||||
case "notVisible":
|
||||
elm.className = "visible";
|
||||
elmBox.style.height = "100px";
|
||||
break;
|
||||
|
||||
default:
|
||||
elm.className = "notVisible";
|
||||
elmBox.style.height = "20px";
|
||||
break;
|
||||
}
|
||||
|
||||
var show = elm.style.display; {
|
||||
//console.log(elm.style.display);
|
||||
}
|
||||
|
||||
calculateWrapperHeight();
|
||||
}
|
||||
|
||||
function xteveBackup() {
|
||||
console.log("xteveBackup");
|
||||
var data = new Object();
|
||||
data["cmd"] = "xteveBackup";
|
||||
|
||||
xTeVe(data);
|
||||
}
|
||||
|
||||
function xteveRestore(elm) {
|
||||
var restore = document.createElement("INPUT");
|
||||
restore.setAttribute("type", "file");
|
||||
restore.setAttribute("class", "notVisible");
|
||||
restore.setAttribute("name", "");
|
||||
restore.id = "upload";
|
||||
|
||||
document.body.appendChild(restore);
|
||||
restore.click();
|
||||
|
||||
restore.onchange = function() {
|
||||
var filename = restore.files[0].name
|
||||
//console.log(restore.srcElement.files[0]);
|
||||
var check = confirm("File: " + filename + "\nAll data will be replaced with those from the backup.\nShould the files be restored?");
|
||||
if (check == true) {
|
||||
var reader = new FileReader();
|
||||
var file = document.querySelector('input[type=file]').files[0];
|
||||
if (file) {
|
||||
reader.readAsDataURL(file);
|
||||
reader.onload = function() {
|
||||
console.log(reader.result);
|
||||
var data = new Object();
|
||||
data["cmd"] = "xteveRestore"
|
||||
data["base64"] = reader.result
|
||||
|
||||
xTeVe(data);
|
||||
return
|
||||
};
|
||||
} else {
|
||||
alert("File could not be loaded")
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function getBase64(file) {
|
||||
var reader = new FileReader();
|
||||
reader.readAsDataURL(file);
|
||||
reader.onload = function() {
|
||||
console.log(reader.result);
|
||||
};
|
||||
reader.onerror = function(error) {
|
||||
console.log('Error: ', error);
|
||||
};
|
||||
}
|
||||
|
||||
function logout() {
|
||||
document.cookie.split(';').forEach(function(c) {
|
||||
document.cookie = c.trim().split('=')[0] + '=;' + 'expires=Thu, 01 Jan 1970 00:00:00 UTC;';
|
||||
});
|
||||
location.reload();
|
||||
}
|
||||
|
||||
function getCookie(name) {
|
||||
var value = "; " + document.cookie;
|
||||
var parts = value.split("; " + name + "=");
|
||||
if (parts.length == 2) return parts.pop().split(";").shift();
|
||||
}
|
||||
|
||||
function setCookie(token) {
|
||||
//console.log(token);
|
||||
document.cookie = "Token=" + token
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user