342 lines
8.5 KiB
JavaScript
342 lines
8.5 KiB
JavaScript
function openUsers(elm) {
|
|
colomnSort = 0;
|
|
|
|
var newDiv = document.getElementById("settings");
|
|
|
|
var newEntry = new Object();
|
|
newEntry["_element"] = "HR";
|
|
newDiv.appendChild(createElement(newEntry));
|
|
|
|
var newEntry = new Object();
|
|
newEntry["_element"] = "INPUT";
|
|
newEntry["type"] = "button";
|
|
newEntry["class"] = "button";
|
|
newEntry["value"] = "New";
|
|
newEntry["onclick"] = "userDetail(0)";
|
|
newDiv.appendChild(createElement(newEntry));
|
|
|
|
var div = document.getElementById("settings");
|
|
|
|
// Build table
|
|
var newTable = new Object();
|
|
newTable["_element"] = "TABLE";
|
|
newTable["id"] = "id_mapping";
|
|
newTable["class"] = "table-mapping";
|
|
div.appendChild(createElement(newTable));
|
|
|
|
setTimeout(function(){
|
|
createUsersTable();
|
|
}, 10);
|
|
}
|
|
|
|
function createUsersTable() {
|
|
var table = document.getElementById("id_mapping");
|
|
table.innerHTML = "";
|
|
var newTR = new Object();
|
|
newTR["_element"] = "TR";
|
|
newTR["class"] = "table-mapping-header";
|
|
table.appendChild(createElement(newTR));
|
|
|
|
var tr = table.lastChild;
|
|
var trHeadlines = new Array("Username", "Password", "WEB", "PMS", "M3U", "XML", "API")
|
|
|
|
for (var i = 0; i < trHeadlines.length; i++) {
|
|
var newTD = new Object();
|
|
newTD["_element"] = "TD";
|
|
newTD["_text"] = trHeadlines[i];
|
|
tr.appendChild(createElement(newTD));
|
|
}
|
|
|
|
|
|
// Sort users
|
|
var userIds = getObjKeys(users);
|
|
|
|
var userObj = new Object();
|
|
|
|
for (var i = 0; i < userIds.length; i++) {
|
|
var username = users[userIds[i]]["data"]["username"];
|
|
userObj[username] = userIds[i];
|
|
}
|
|
|
|
var allUsers = getObjKeys(userObj);
|
|
allUsers.sort();
|
|
// --
|
|
|
|
for (var i = 0; i < allUsers.length; i++) {
|
|
var table = document.getElementById("id_mapping");
|
|
var userID = userObj[allUsers[i]];
|
|
var username = allUsers[i];
|
|
var item = users[userID]["data"];
|
|
|
|
// Create TR
|
|
var newTR = new Object();
|
|
newTR["_element"] = "TR";
|
|
newTR["class"] = "";
|
|
newTR["id"] = userID;
|
|
newTR["onclick"] = 'javascript: userDetail("' + userID + '");';
|
|
table.appendChild(createElement(newTR));
|
|
|
|
var tr = table.lastChild;
|
|
|
|
// Create username TD
|
|
var newTD = new Object();
|
|
newTD["_element"] = "P";
|
|
newTD["_text"] = username;
|
|
createNewTD(newTD, tr);
|
|
|
|
// Create password TD
|
|
var newTD = new Object();
|
|
newTD["_element"] = "P";
|
|
newTD["_text"] = ".....";
|
|
createNewTD(newTD, tr);
|
|
|
|
// Create web access
|
|
var newTD = new Object();
|
|
newTD["_element"] = "P";
|
|
switch(item["authentication.web"]){
|
|
case true: newTD["_text"] = "✓"; break;
|
|
default: newTD["_text"] = "-"; break;
|
|
}
|
|
createNewTD(newTD, tr);
|
|
|
|
// Create PMS access
|
|
var newTD = new Object();
|
|
newTD["_element"] = "P";
|
|
switch(item["authentication.pms"]){
|
|
case true: newTD["_text"] = "✓"; break;
|
|
default: newTD["_text"] = "-"; break;
|
|
}
|
|
createNewTD(newTD, tr);
|
|
|
|
// Create M3U access
|
|
var newTD = new Object();
|
|
newTD["_element"] = "P";
|
|
switch(item["authentication.m3u"]){
|
|
case true: newTD["_text"] = "✓"; break;
|
|
default: newTD["_text"] = "-"; break;
|
|
}
|
|
createNewTD(newTD, tr);
|
|
|
|
// Create XMLTV access
|
|
var newTD = new Object();
|
|
newTD["_element"] = "P";
|
|
switch(item["authentication.xml"]){
|
|
case true: newTD["_text"] = "✓"; break;
|
|
default: newTD["_text"] = "-"; break;
|
|
}
|
|
createNewTD(newTD, tr);
|
|
|
|
// Create API access
|
|
var newTD = new Object();
|
|
newTD["_element"] = "P";
|
|
|
|
switch(item["authentication.api"]){
|
|
case true: newTD["_text"] = "✓"; break;
|
|
default: newTD["_text"] = "-"; break;
|
|
}
|
|
createNewTD(newTD, tr);
|
|
|
|
}
|
|
|
|
// usage Info
|
|
var div = document.getElementById("settings");
|
|
switch(menu[activeMenu.id].hasOwnProperty("_usage")) {
|
|
case true:
|
|
var usageItem = new Object();
|
|
usageItem["_element"] = "PRE"
|
|
usageItem["_text"] = menu[activeMenu.id]["_usage"];
|
|
|
|
var newHR = new Object();
|
|
newHR["_element"] = "HR"
|
|
div.appendChild(createElement(newHR));
|
|
div.appendChild(createElement(usageItem));
|
|
}
|
|
|
|
sortTable(0);
|
|
}
|
|
|
|
function userDetail(userID) {
|
|
showPopUpElement('user-detail');
|
|
setTimeout(function(){
|
|
showElement("popup", true);
|
|
}, 10);
|
|
var defaultUser;
|
|
|
|
document.getElementById("saveUserDetail").setAttribute("onclick", 'javascript: saveUserDetail("' + userID + '", false)');
|
|
document.getElementById("deleteUserDetail").setAttribute("onclick", 'javascript: saveUserDetail("' + userID + '", true)');
|
|
|
|
var data = new Object();
|
|
|
|
switch(userID) {
|
|
case 0: // New User
|
|
data["username"] = "";
|
|
data["authentication.web"] = false;
|
|
data["authentication.pms"] = true;
|
|
data["authentication.xml"] = true;
|
|
data["authentication.m3u"] = false;
|
|
data["authentication.api"] = false;
|
|
data["defaultUser"] = false;
|
|
setTimeout(function(){
|
|
showElement("deleteUserDetail", false)
|
|
}, 1);
|
|
|
|
break;
|
|
|
|
default:
|
|
data = users[userID]["data"];
|
|
showElement("deleteUserDetail", true)
|
|
document.getElementById("deleteUserDetail").className = "delete";
|
|
|
|
break
|
|
}
|
|
|
|
|
|
var username = data["username"];
|
|
data["password"] = "";
|
|
data["confirm"] = "";
|
|
|
|
var keys = getObjKeys(data);
|
|
defaultUser = data["defaultUser"];
|
|
if (data.hasOwnProperty("defaultUser")) {
|
|
defaultUser = JSON.parse(data["defaultUser"]);
|
|
}
|
|
|
|
for (var i = 0; i < keys.length; i++) {
|
|
|
|
if(document.getElementById(keys[i])){
|
|
var td = document.getElementById(keys[i])
|
|
} else {
|
|
var td = undefined;
|
|
}
|
|
|
|
var newItem = new Object();
|
|
|
|
newItem["_element"] = "INPUT";
|
|
|
|
newItem["value"] = data[keys[i]];
|
|
newItem["name"] = keys[i];
|
|
|
|
|
|
|
|
|
|
|
|
switch(keys[i].indexOf("authentication")) {
|
|
case -1:
|
|
if (keys[i] == "password" || keys[i] == "confirm") {
|
|
newItem["type"] = "password";
|
|
} else {
|
|
newItem["type"] = "text";
|
|
}
|
|
break;
|
|
|
|
default:
|
|
newItem["type"] = "checkbox";
|
|
|
|
if (keys[i] == "authentication.web" && defaultUser == true) {
|
|
newItem["onclick"] = "return false";
|
|
}
|
|
|
|
if (data[keys[i]] == true) {
|
|
newItem["checked"] = data[keys[i]];
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
switch(keys[i]) {
|
|
case "defaultUser":
|
|
//if (data[keys[i]] == true) {
|
|
newItem["type"] = "hidden";
|
|
//}
|
|
}
|
|
|
|
|
|
if (td != undefined) {
|
|
td.innerHTML = "";
|
|
var element = createNewElement(newItem)
|
|
//console.log(element);
|
|
td.appendChild(element);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (defaultUser == true) {
|
|
showElement("deleteUserDetail", false)
|
|
} else {
|
|
showElement("deleteUserDetail", true)
|
|
document.getElementById("deleteUserDetail").className = "delete";
|
|
}
|
|
|
|
}
|
|
|
|
function saveUserDetail(userID, deleteUser) {
|
|
|
|
var inputs = document.getElementById("user-detail-table").getElementsByTagName("INPUT");
|
|
|
|
var newUserData = new Object();
|
|
for (var i = 0; i < inputs.length; i++) {
|
|
switch(inputs[i].type) {
|
|
case "checkbox": newUserData[inputs[i].name] = inputs[i].checked; break;
|
|
default: newUserData[inputs[i].name] = inputs[i].value; break;
|
|
}
|
|
|
|
if (inputs["username"].value.length == 0) {
|
|
inputs["username"].style.border = "solid 1px red";
|
|
return;
|
|
}
|
|
|
|
switch(userID) {
|
|
case "0":
|
|
if (inputs["password"].value.length == 0) {
|
|
console.log(inputs["password"].value.length);
|
|
inputs["password"].style.border = "solid 1px red";
|
|
return
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (inputs["password"].value.length > 0) {
|
|
if (inputs["password"].value != inputs["confirm"].value) {
|
|
inputs["password"].style.border = "solid 1px red";
|
|
inputs["confirm"].style.border = "solid 1px red";
|
|
return;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
var data = new Object();
|
|
|
|
switch(userID) {
|
|
case "0":
|
|
//data = newUserData
|
|
data["userData"] = newUserData
|
|
data["cmd"] = "saveNewUser"; break;
|
|
|
|
default:
|
|
var thisUser = new Object();
|
|
|
|
if (deleteUser == true) {
|
|
if (confirm('Delete the selected user?')) {
|
|
data["deleteUser"] = true;
|
|
} else {
|
|
showElement("popup", false);
|
|
return
|
|
}
|
|
}
|
|
|
|
thisUser[userID] = newUserData;
|
|
|
|
data["userData"] = thisUser;
|
|
data["cmd"] = "saveUserData"; break;
|
|
}
|
|
|
|
xTeVe(data);
|
|
//createUsersTable()
|
|
showElement("popup", false);
|
|
}
|
|
|
|
|