get files for dropdowns from/on selected servers
This commit is contained in:
parent
b224a88e7d
commit
40b341c626
|
@ -27,7 +27,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="nlvmi.js?3"></script>
|
||||
<script src="nlvmi.js?4"></script>
|
||||
<div class=container-fluid><div class="row" style="background-color:lightgreen;"><div class="col-sm"><h1><a href="?" style=color:white;>nlvmi</a><a href="?" style="color:black;font-size:10px;">@<?php echo gethostname();?></a></h1></div><div class=col-sm style=text-align:right>
|
||||
<?php if($_SESSION['isadmin']==1){ echo "<a style=color:black href=# onclick=\"javascript:post('?', {'usermgmt': 'show'});\">usermanagement</a></br><a style=color:black href=# onclick=\"javascript:post('?', {'servermgmt': 'show'});\">servers</a></br>";} ?>
|
||||
<a style=color:black href=# onclick="javascript:post('?', {'logout': 'logout'});">logout</a></div></div>
|
||||
|
|
109
web/index.php
109
web/index.php
|
@ -23,6 +23,29 @@ function checkvm($vmname) {
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
function serverdepropdown($server, $val, $what){
|
||||
if ($what == "cdrom"){
|
||||
$dir = "isodirectory";
|
||||
$enddiv = "</div>";
|
||||
} elseif (preg_match('/drive/', $what)) {
|
||||
$dir = "vmdirectory";
|
||||
$enddiv="";
|
||||
}
|
||||
echo "<div class=row><div class=col-md-1 style=text-align:right>$what</div><div class=col-md-2><div class=dropdown><button class=\"btn btn-secondary dropdown-toggle\" type=button id=".$what."button data-toggle=dropdown aria-haspopup=true aria-expanded=false>$val</button>";
|
||||
echo "<div class=dropdown-menu aria-labelledby=".$what."button>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('".$what."button','')\">no $what</a><div class=dropdown-divider></div>";
|
||||
$shellout=shell_exec("/usr/bin/nlvmi listdir $server $dir");
|
||||
$files = explode("\n", $shellout);
|
||||
for ($f=0; $f<count($files); $f++){
|
||||
$file = explode(" ", $files[$f]);
|
||||
$lastpart = count($file) -1;
|
||||
if((preg_match('/\//', $file[$lastpart]))&&(!preg_match('/^d/', $file[0]))){
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('".$what."button','$file[$lastpart]')\">$file[$lastpart]</a>";
|
||||
|
||||
}
|
||||
}
|
||||
echo "$enddiv</div></div></div><input type=hidden id=".$what."buttonh name=$what value=$val>";
|
||||
}
|
||||
|
||||
//read config file
|
||||
$configfile = new SplFileObject("/etc/nlvmi/nlvmi.conf");
|
||||
|
@ -241,7 +264,40 @@ if (isset($_SESSION['username'])){
|
|||
//}
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_POST['serverbuttoni'])){
|
||||
serverdepropdown($_POST['serverbuttoni'], "no cdrom", 'cdrom');
|
||||
exit;
|
||||
} elseif (isset($_POST['serverbuttona'])){
|
||||
serverdepropdown($_POST['serverbuttona'], "no drive1", 'drive1');
|
||||
echo "<div class=row><div class=col>format1</div><div class=col><div class=dropdown><button class=\"btn btn-secondary dropdown-toggle\" type=button id=format1buttonformat1 data-toggle=dropdown aria-haspopup=true aria-expanded=false></button>";
|
||||
echo "<div class=dropdown-menu aria-labelledby=formatbuttonformat1>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('format1buttonformat1','')\"> </a>";
|
||||
echo "<div class=dropdown-divider></div>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('format1buttonformat1','raw')\">raw</a>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('format1buttonformat1','qcow2')\">qcow2</a>";
|
||||
echo "</div></div></div></div></div></div></div><input type=hidden id=format1buttonformat1h name=format1 value=\"no drive1\">";
|
||||
exit;
|
||||
} elseif (isset($_POST['serverbuttonb'])){
|
||||
serverdepropdown($_POST['serverbuttonb'], "no drive2", 'drive2');
|
||||
echo "<div class=row><div class=col>format2</div><div class=col><div class=dropdown><button class=\"btn btn-secondary dropdown-toggle\" type=button id=format2buttonformat2 data-toggle=dropdown aria-haspopup=true aria-expanded=false></button>";
|
||||
echo "<div class=dropdown-menu aria-labelledby=formatbuttonformat2>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('format2buttonformat2','')\"> </a>";
|
||||
echo "<div class=dropdown-divider></div>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('format2buttonformat2','raw')\">raw</a>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('format2buttonformat2','qcow2')\">qcow2</a>";
|
||||
echo "</div></div></div></div></div><input type=hidden id=format2buttonformat2h name=format2 value=\"no drive1\">";
|
||||
exit;
|
||||
} elseif (isset($_POST['serverbuttonc'])){
|
||||
serverdepropdown($_POST['serverbuttonc'], "no drive3", 'drive3');
|
||||
echo "<div class=row><div class=col>format3</div><div class=col><div class=dropdown><button class=\"btn btn-secondary dropdown-toggle\" type=button id=format3buttonformat3 data-toggle=dropdown aria-haspopup=true aria-expanded=false></button>";
|
||||
echo "<div class=dropdown-menu aria-labelledby=formatbuttonformat3>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('format3buttonformat3','')\"> </a>";
|
||||
echo "<div class=dropdown-divider></div>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('format3buttonformat3','raw')\">raw</a>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('format3buttonformat3','qcow2')\">qcow2</a>";
|
||||
echo "</div></div></div></div></div><input type=hidden id=format3buttonformat3h name=format3 value=\"no drive1\">";
|
||||
exit;
|
||||
}
|
||||
//ajax queries are all done, time for the header
|
||||
include('header.php');
|
||||
|
||||
|
@ -358,6 +414,7 @@ if (isset($_SESSION['username'])){
|
|||
while ($col = $res->fetchArray(SQLITE3_ASSOC)) {
|
||||
$arrColnames[]=$col['name'];
|
||||
}
|
||||
$server = $e['server'];
|
||||
for ($col=0; $col <count($arrColnames); $col++){
|
||||
if ($arrColnames[$col]!="id"){
|
||||
if (isset($e[$arrColnames[$col]])){
|
||||
|
@ -402,7 +459,7 @@ if (isset($_SESSION['username'])){
|
|||
echo "<div class=dropdown-divider></div>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('$arrColnames[$col]button$arrColnames[$col]','raw')\">raw</a>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('$arrColnames[$col]button$arrColnames[$col]','qcow2')\">qcow2</a>";
|
||||
echo "</div></div></div></div></div><input type=hidden id=$arrColnames[$col]button$arrColnames[$col]h name=$arrColnames[$col] value=\"$val\">";
|
||||
echo "</div></div></div></div></div></div><input type=hidden id=$arrColnames[$col]button$arrColnames[$col]h name=$arrColnames[$col] value=\"$val\">";
|
||||
} elseif ($arrColnames[$col] == "autostart"){
|
||||
$checked="";
|
||||
if ($val=="1"){
|
||||
|
@ -410,22 +467,11 @@ if (isset($_SESSION['username'])){
|
|||
}
|
||||
echo "<div class=row><div class=col-md-1 style=text-align:right>autostart</div><div class=col-md-2><input data-onstyle=\"success\" data-offstyle=danger name=autostart id=\"autostart\" type=\"checkbox\" data-toggle=\"toggle\" data-on=\"boot with host\" data-off=\"no autostart\" $checked></div></div>";
|
||||
} elseif ($arrColnames[$col] == "cdrom"){
|
||||
echo "<div class=row><div class=col-md-1 style=text-align:right>cdrom</div><div class=col-md-2><div class=dropdown><button class=\"btn btn-secondary dropdown-toggle\" type=button id=cdrombutton data-toggle=dropdown aria-haspopup=true aria-expanded=false>$val</button>";
|
||||
echo "<div class=dropdown-menu aria-labelledby=cdrombutton>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('cdrombutton','')\">no cdrom</a><div class=dropdown-divider></div>";
|
||||
$isodirs = explode('|', $config['ISODIRECTORY']);
|
||||
foreach($isodirs as $isodir){
|
||||
$files = array_diff(scandir($isodir), array('.', '..'));
|
||||
$files = array_values(array_filter($files));
|
||||
for ($f=0; $f<count($files); $f++){
|
||||
if ((preg_match('/iso/', $files[$f]))||(preg_match('/ISO/', $files[$f]))){
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('cdrombutton','$isodir/$files[$f]')\">$isodir/$files[$f]</a>";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "</div></div></div></div><input type=hidden id=cdrombuttonh name=cdrom value=$val>";
|
||||
} elseif (preg_match('/format/', $arrColnames[$col])) {
|
||||
echo "<div class=col-md-1 style=text-align:right>$arrColnames[$col]</div><div class=col-md-2><input class=form-control type=text name=$arrColnames[$col] value=$val></div></div>";
|
||||
echo "<div id=cdromdiv>";
|
||||
serverdepropdown($server, $val, "cdrom");
|
||||
echo "</div>";
|
||||
// } elseif (preg_match('/format/', $arrColnames[$col])) {
|
||||
// echo "<div class=col-md-1 style=text-align:right>$arrColnames[$col]</div><div class=col-md-2><input class=form-control type=text name=$arrColnames[$col] value=$val></div></div></div>";
|
||||
} elseif (preg_match('/tapdev/', $arrColnames[$col])) {
|
||||
echo "<div class=row><div class=col-md-1 style=text-align:right>$arrColnames[$col]</div><div class=col-md-2><input class=form-control type=text name=$arrColnames[$col] value=\"$val\" placeholder=\"$placehold[$colname]\"></div>";
|
||||
} elseif (preg_match('/macaddr/', $arrColnames[$col])) {
|
||||
|
@ -433,18 +479,27 @@ if (isset($_SESSION['username'])){
|
|||
} elseif (preg_match('/brdev/', $arrColnames[$col])) {
|
||||
echo "<div class=col-md-1 style=text-align:right>$arrColnames[$col]</div><div class=col-md-2><input class=form-control type=text name=$arrColnames[$col] value=\"$val\" placeholder=\"$placehold[$colname]\"></div></div>";
|
||||
} elseif (preg_match('/drive/', $arrColnames[$col])){
|
||||
echo "<div id=$arrColnames[$col]div>";
|
||||
serverdepropdown($server, $val, $arrColnames[$col]);
|
||||
|
||||
} elseif ($arrColnames[$col] == "server"){
|
||||
echo "<div class=row><div class=col-md-1 style=text-align:right>$arrColnames[$col]</div><div class=col-md-2><div class=dropdown><button class=\"btn btn-secondary dropdown-toggle\" type=button id=$arrColnames[$col]button data-toggle=dropdown aria-haspopup=true aria-expanded=false>$val</button>";
|
||||
echo "<div class=dropdown-menu aria-labelledby=$arrColnames[$col]button>";
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('$arrColnames[$col]button','')\">no disk</a><div class=dropdown-divider></div>";
|
||||
$vmdirs = explode('|', $config['VMDIRECTORY']);
|
||||
foreach($vmdirs as $vmdir){
|
||||
$files = array_diff(scandir($vmdir), array('.', '..'));
|
||||
$files = array_values(array_filter($files));
|
||||
for ($f=0; $f<count($files); $f++){
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('$arrColnames[$col]button','$vmdir/$files[$f]')\">$vmdir/$files[$f]</a>";
|
||||
}
|
||||
$sqls="SELECT hostname FROM servers";
|
||||
$ress = $db_handle->query($sqls);
|
||||
while ($rows = $ress->fetchArray(SQLITE3_ASSOC)){
|
||||
|
||||
echo "<a class=dropdown-item href=\"javascript:dropdown('$arrColnames[$col]button','$rows[hostname]')\">$rows[hostname]</a>";
|
||||
}
|
||||
echo "</div></div></div><input type=hidden id=$arrColnames[$col]buttonh name=$arrColnames[$col] value=$val>";
|
||||
// $vmdirs = explode('|', $config['VMDIRECTORY']);
|
||||
// foreach($vmdirs as $vmdir){
|
||||
// $files = array_diff(scandir($vmdir), array('.', '..'));
|
||||
// $files = array_values(array_filter($files));
|
||||
// for ($f=0; $f<count($files); $f++){
|
||||
// echo "<a class=dropdown-item href=\"javascript:dropdown('$arrColnames[$col]button','$vmdir/$files[$f]')\">$vmdir/$files[$f]</a>";
|
||||
// }
|
||||
// }
|
||||
echo "</div></div></div></div><input type=hidden id=$arrColnames[$col]buttonh name=$arrColnames[$col] value=$val>";
|
||||
} else {
|
||||
|
||||
echo "<div class=row><div class=col-md-1 style=text-align:right>$arrColnames[$col]</div><div class=col-md-2><input class=form-control type=text name=$arrColnames[$col] value=\"$val\" placeholder=\"$placehold[$colname]\"></div></div>";
|
||||
|
|
44
web/nlvmi.js
44
web/nlvmi.js
|
@ -11,6 +11,48 @@ function makeid() {
|
|||
function dropdown(i,e) {
|
||||
document.getElementById(i).innerHTML = e;
|
||||
document.getElementById(i +'h').value = e;
|
||||
if (i == "serverbutton") {
|
||||
console.log("here");
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: "?rand="+ makeid(),
|
||||
data: "serverbuttoni="+e,
|
||||
success: function(response) {
|
||||
document.getElementById('cdromdiv').innerHTML = response;
|
||||
},
|
||||
});
|
||||
console.log("a");
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: "?rand="+ makeid(),
|
||||
data: "serverbuttona="+e,
|
||||
success: function(response) {
|
||||
document.getElementById('drive1div').innerHTML = response;
|
||||
},
|
||||
});
|
||||
console.log("b");
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: "?rand="+ makeid(),
|
||||
data: "serverbuttonb="+e,
|
||||
success: function(response) {
|
||||
document.getElementById('drive2div').innerHTML = response;
|
||||
},
|
||||
});
|
||||
console.log("c");
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: "?rand="+ makeid(),
|
||||
data: "serverbuttonc="+e,
|
||||
success: function(response) {
|
||||
document.getElementById('drive3div').innerHTML = response;
|
||||
},
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function post(path, params, method) {
|
||||
|
@ -48,9 +90,7 @@ $('#confirm-delete').on('show.bs.modal', function(e) {
|
|||
});
|
||||
|
||||
function submitbutton(formid){
|
||||
console.log(formid);
|
||||
data = $('#'+ formid).serialize();
|
||||
console.log(data);
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: "?rand="+ makeid(),
|
||||
|
|
Loading…
Reference in New Issue