v2.0.0.0000
This commit is contained in:
341
html/js/users.js
Normal file
341
html/js/users.js
Normal file
@@ -0,0 +1,341 @@
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user