mirror of
https://github.com/webmin/webmin.git
synced 2025-08-19 01:15:14 +00:00
81 lines
2.7 KiB
JavaScript
81 lines
2.7 KiB
JavaScript
/*
|
|
Jeroen's Chmod Calculator- By Jeroen Vermeulen of Alphamega Hosting <jeroen@alphamegahosting.com>
|
|
Visit http://www.javascriptkit.com for this script and more
|
|
This notice must stay intact
|
|
*/
|
|
|
|
function octalchange()
|
|
{
|
|
var val = document.chmod.t_total.value;
|
|
var extrabin = parseInt(val.charAt(0)).toString(2);
|
|
while (extrabin.length<2) { extrabin="0"+extrabin; };
|
|
var ownerbin = parseInt(val.charAt(1)).toString(2);
|
|
while (ownerbin.length<4) { ownerbin="0"+ownerbin; };
|
|
var groupbin = parseInt(val.charAt(2)).toString(2);
|
|
while (groupbin.length<4) { groupbin="0"+groupbin; };
|
|
var otherbin = parseInt(val.charAt(3)).toString(2);
|
|
while (otherbin.length<4) { otherbin="0"+otherbin; };
|
|
document.chmod.sticky.checked = parseInt(extrabin.charAt(1));
|
|
document.chmod.setgid.checked = parseInt(extrabin.charAt(0));
|
|
document.chmod.owner4.checked = parseInt(ownerbin.charAt(1));
|
|
document.chmod.owner2.checked = parseInt(ownerbin.charAt(2));
|
|
document.chmod.owner1.checked = parseInt(ownerbin.charAt(3));
|
|
document.chmod.group4.checked = parseInt(groupbin.charAt(1));
|
|
document.chmod.group2.checked = parseInt(groupbin.charAt(2));
|
|
document.chmod.group1.checked = parseInt(groupbin.charAt(3));
|
|
document.chmod.other4.checked = parseInt(otherbin.charAt(1));
|
|
document.chmod.other2.checked = parseInt(otherbin.charAt(2));
|
|
document.chmod.other1.checked = parseInt(otherbin.charAt(3));
|
|
calc_chmod(1);
|
|
};
|
|
|
|
function calc_chmod(nototals)
|
|
{
|
|
var users = new Array("owner", "group", "other");
|
|
var totals = new Array("","","","");
|
|
var syms = new Array("","","");
|
|
|
|
if (document.chmod['sticky'].checked == true) { totals[0] = 1; } else { totals[0] = 0; }
|
|
if (document.chmod['setgid'].checked == true) { totals[0] = totals[0] + 2; }
|
|
|
|
for (var i=0; i<users.length; i++)
|
|
{
|
|
var user=users[i];
|
|
var field4 = user + "4";
|
|
var field2 = user + "2";
|
|
var field1 = user + "1";
|
|
//var total = "t_" + user;
|
|
var symbolic = "sym_" + user;
|
|
var number = 0;
|
|
var sym_string = "";
|
|
|
|
if (document.chmod[field4].checked == true) { number += 4; }
|
|
if (document.chmod[field2].checked == true) { number += 2; }
|
|
if (document.chmod[field1].checked == true) { number += 1; }
|
|
|
|
if (document.chmod[field4].checked == true) {
|
|
sym_string += "r";
|
|
} else {
|
|
sym_string += "-";
|
|
}
|
|
if (document.chmod[field2].checked == true) {
|
|
sym_string += "w";
|
|
} else {
|
|
sym_string += "-";
|
|
}
|
|
if (document.chmod[field1].checked == true) {
|
|
sym_string += "x";
|
|
} else {
|
|
sym_string += "-";
|
|
}
|
|
|
|
totals[i + 1] = totals[i + 1]+number;
|
|
syms[i] = syms[i]+sym_string;
|
|
|
|
};
|
|
|
|
if (!nototals) document.chmod.t_total.value = totals[0] + totals[1] + totals[2] + totals[3];
|
|
document.chmod.sym_total.value = "-" + syms[0] + syms[1] + syms[2];
|
|
}
|
|
window.onload=octalchange
|