mirror of
https://github.com/unraid/webgui.git
synced 2026-01-05 17:20:04 -06:00
Merge pull request #1462 from bergware/master
Miscellaneous updates and fixes
This commit is contained in:
@@ -5,8 +5,8 @@ Icon="icon-ups"
|
||||
Tag="battery-3"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2022, Lime Technology
|
||||
* Copyright 2012-2022, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
* Copyright 2015, Dan Landon.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -22,13 +22,6 @@ Tag="battery-3"
|
||||
$sName = "dynamix.apcupsd";
|
||||
$cfg = parse_plugin_cfg($sName);
|
||||
?>
|
||||
|
||||
<style>
|
||||
table.ups thead tr th{width:16.6%;padding-left:10px}
|
||||
table.ups tbody tr td{padding-left:10px;font-weight:bold}
|
||||
tr.ups{height:3rem;line-height:3rem}
|
||||
i.ups{margin-right:8px}
|
||||
</style>
|
||||
<script>
|
||||
function toggleCustomCable(form) {
|
||||
var readonly = form.UPSCABLE.value != 'custom';
|
||||
|
||||
4
emhttp/plugins/dynamix.apcupsd/sheets/UPSsettings.css
Normal file
4
emhttp/plugins/dynamix.apcupsd/sheets/UPSsettings.css
Normal file
@@ -0,0 +1,4 @@
|
||||
table.ups thead tr th{width:16.6%;padding-left:10px}
|
||||
table.ups tbody tr td{padding-left:10px;font-weight:bold}
|
||||
tr.ups{height:3rem;line-height:3rem}
|
||||
i.ups{margin-right:8px}
|
||||
@@ -3,9 +3,9 @@ Cond="(pgrep('dockerd')!==false)"
|
||||
Markdown="false"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2020, Lime Technology
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
* Copyright 2014-2020, Guilherme Jardim, Eric Schultz, Jon Panozzo.
|
||||
* Copyright 2012-2020, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
|
||||
@@ -29,20 +29,7 @@ $cpus = cpu_list();
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.ui.css')?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.switchbutton.css')?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/plugins/dynamix.docker.manager/styles/style-$theme.css")?>">
|
||||
<style>
|
||||
.basic{display:block}
|
||||
.advanced{display:none;white-space:nowrap}
|
||||
.log{cursor:zoom-in}
|
||||
.exec{cursor:pointer}
|
||||
table#docker_containers{text-align:left}
|
||||
th.five{width:5%}
|
||||
th.nine{width:9%}
|
||||
th.load{width:140px}
|
||||
input.wait{width:24px;margin:0 4px;padding:0 5px;border:none;box-shadow:none;background-color:transparent}
|
||||
table tbody td{line-height:normal}
|
||||
i.mover{margin-right:8px;display:none}
|
||||
#resetsort{margin-left:12px;display:inline-block;width:32px}
|
||||
</style>
|
||||
|
||||
<table id="docker_containers" class="tablesorter shift">
|
||||
<thead><tr><th><a id="resetsort" class="nohand" onclick="resetSorting()" title="_(Reset sorting)_"><i class="fa fa-th-list"></i></a>_(Application)_</th><th>_(Version)_</th><th>_(Network)_</th><th>_(Port Mappings)_ <small>(_(App to Host)_)</small></th><th>_(Volume Mappings)_ <small>(_(App to Host)_)</small></th><th class="load advanced">_(CPU & Memory load)_</th><th class="nine">_(Autostart)_</th><th class="five">_(Uptime)_</th></tr></thead>
|
||||
<tbody id="docker_list"><tr><td colspan='8'></td></tr></tbody>
|
||||
|
||||
@@ -106,31 +106,6 @@ $bgcolor = strstr('white,azure',$display['theme']) ? '#f2f2f2' : '#1c1c1c';
|
||||
?>
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.filetree.css')?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.switchbutton.css')?>">
|
||||
<style>
|
||||
.errortext{color:#EF3D47;display:none;margin-left:20px}
|
||||
.fileTree{background:<?=$bgcolor?>;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
.basic{display:inline-block}
|
||||
.advanced{display:none}
|
||||
select.mask{min-width:0;margin:0 10px 0 4px}
|
||||
select.net{min-width:0;margin:0 4px 0 2px}
|
||||
select option.hide{display:none}
|
||||
input.ip4{width:100px;margin:0 4px 0 1px}
|
||||
input.ip6{width:140px;margin:0 4px}
|
||||
input.gw4{width:100px;margin:0 4px 0 1px}
|
||||
input.gw6{width:160px;margin:0 4px}
|
||||
input.pool6{width:40px;margin:0 4px 0 1px}
|
||||
span.net{margin-left:4px;margin-right:2px}
|
||||
span.ip4{display:inline-block;width:260px}
|
||||
span.ip6{display:inline-block;width:310px}
|
||||
span.gw4{display:inline-block;width:200px}
|
||||
span.gw6{display:inline-block;width:270px}
|
||||
span.nonexist{margin-left:20px}
|
||||
<?if (strstr('white,azure',$display['theme'])):?>
|
||||
span.disabled{color:#B0B0B0}
|
||||
<?else:?>
|
||||
span.disabled{color:#404040}
|
||||
<?endif;?>
|
||||
</style>
|
||||
<span class="status vhshift"><input type="checkbox" class="advancedview"></span>
|
||||
|
||||
<form markdown="1" id="settingsForm" name="settingsForm" method="POST" action="/update.php" target="progressFrame" onsubmit="return prepareDocker(this)">
|
||||
|
||||
@@ -3,9 +3,9 @@ Cond="(pgrep('dockerd')!==false)"
|
||||
Markdown="false"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2020, Lime Technology
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
* Copyright 2014-2020, Guilherme Jardim, Eric Schultz, Jon Panozzo.
|
||||
* Copyright 2012-2020, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?PHP
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2015-2023, Guilherme Jardim, Eric Schultz, Jon Panozzo.
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
* Copyright 2015-2020, Guilherme Jardim, Eric Schultz, Jon Panozzo.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -277,18 +277,6 @@ $bgcolor = strstr('white,azure',$display['theme']) ? '#f2f2f2' : '#1c1c1c';
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/jquery.filetree.css")?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/plugins/dynamix.docker.manager/styles/style-{$display['theme']}.css")?>">
|
||||
|
||||
<style>
|
||||
.noshow,.advanced{display:none}
|
||||
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:<?=$bgcolor?>}
|
||||
.required:after{content:" *";color:#E80000}
|
||||
span.boxed{display:inline-block;line-height:normal;white-space:normal;width:56%}
|
||||
span.cpu,label.checkbox{display:inline-block;width:32px}
|
||||
span.ct{display:inline-block;width:230px}
|
||||
span.net{display:inline-block;width:120px}
|
||||
span.ip{display:inline-block;width:160px}
|
||||
dl,dt,dd{line-height:normal!important}
|
||||
</style>
|
||||
|
||||
<script src="<?autov('/webGui/javascript/jquery.switchbutton.js')?>"></script>
|
||||
<script src="<?autov('/webGui/javascript/jquery.filetree.js')?>" charset="utf-8"></script>
|
||||
<script src="<?autov('/plugins/dynamix.vm.manager/javascript/dynamix.vm.manager.js')?>"></script>
|
||||
@@ -406,8 +394,6 @@ function addConfigPopup() {
|
||||
resizable: false,
|
||||
width: 800,
|
||||
modal: true,
|
||||
show : {effect: 'fade' , duration: 250},
|
||||
hide : {effect: 'fade' , duration: 250},
|
||||
buttons: {
|
||||
"_(Add)_": function() {
|
||||
$(this).dialog("close");
|
||||
@@ -439,11 +425,10 @@ function addConfigPopup() {
|
||||
}
|
||||
}
|
||||
});
|
||||
$(".ui-dialog .ui-dialog-titlebar").addClass('menu');
|
||||
$('.ui-dialog .ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$(".ui-dialog .ui-dialog-title").css({'text-align':'center','width':'100%'});
|
||||
$(".ui-dialog .ui-dialog-content").css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$(".ui-button-text").css({'padding':'0px 5px'});
|
||||
$('.ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$('.ui-dialog-title').css({'text-align':'center','width':'100%','font-size':'1.8rem'});
|
||||
$('.ui-dialog-content').css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$('.ui-button-text').css({'padding':'0px 5px'});
|
||||
}
|
||||
|
||||
function editConfigPopup(num,disabled) {
|
||||
@@ -480,8 +465,6 @@ function editConfigPopup(num,disabled) {
|
||||
resizable: false,
|
||||
width: 800,
|
||||
modal: true,
|
||||
show: {effect:'fade', duration: 250},
|
||||
hide: {effect:'fade', duration: 250},
|
||||
buttons: {
|
||||
"_(Save)_": function() {
|
||||
$(this).dialog("close");
|
||||
@@ -522,11 +505,10 @@ function editConfigPopup(num,disabled) {
|
||||
}
|
||||
}
|
||||
});
|
||||
$(".ui-dialog .ui-dialog-titlebar").addClass('menu');
|
||||
$('.ui-dialog .ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$(".ui-dialog .ui-dialog-title").css({'text-align':'center','width':'100%'});
|
||||
$(".ui-dialog .ui-dialog-content").css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$(".ui-button-text").css({'padding':'0px 5px'});
|
||||
$('.ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$('.ui-dialog-title').css({'text-align':'center','width':'100%','font-size':'1.8rem'});
|
||||
$('.ui-dialog-content').css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$('.ui-button-text').css({'padding':'0px 5px'});
|
||||
$('.desc_readmore').readmore({maxHeight:10});
|
||||
}
|
||||
|
||||
@@ -1009,7 +991,7 @@ _(Password Mask)_:
|
||||
<input type="hidden" name="confRequired[]" value="{7}">
|
||||
<input type="hidden" name="confMask[]" value="{8}">
|
||||
<span class="{11}">{0}:</span>
|
||||
: <span class="boxed"><input type="text" name="confValue[]" default="{2}" value="{9}" autocomplete="off" spellcheck="false" {11}>{10}<br><span class='orange-text'>{12}: {1}</span><br><span class="orange-text">{4}</span><br>
|
||||
: <span class="boxed"><input type="text" class="setting_input" name="confValue[]" default="{2}" value="{9}" autocomplete="off" spellcheck="false" {11}>{10}<br><span class='orange-text'>{12}: {1}</span><br><span class="orange-text">{4}</span><br></span>
|
||||
</div>
|
||||
|
||||
<div markdown="1" id="templateAllocations" style="display:none">
|
||||
|
||||
@@ -66,8 +66,6 @@ function popupWithIframe(title, cmd, reload, func) {
|
||||
height: Math.max(window.innerHeight*3/5,600),
|
||||
resizable:true,
|
||||
modal:true,
|
||||
show:{effect:'fade', duration:250},
|
||||
hide:{effect:'fade', duration:250},
|
||||
open:function(ev, ui) {
|
||||
$('#myIframe').attr('src', cmd);
|
||||
},
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#f2f2f2}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#1c1c1c}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#1c1c1c}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#f2f2f2}
|
||||
@@ -0,0 +1,9 @@
|
||||
.noshow,.advanced{display:none}
|
||||
.required:after{content:" *";color:#E80000}
|
||||
span.boxed{display:inline-block;line-height:normal;white-space:normal;width:60%}
|
||||
span.cpu,label.checkbox{display:inline-block;width:32px}
|
||||
span.ct{display:inline-block;width:230px}
|
||||
span.net{display:inline-block;width:120px}
|
||||
span.ip{display:inline-block;width:160px}
|
||||
dl,dt,dd{line-height:normal!important}
|
||||
input.setting_input{margin-right:50px}
|
||||
@@ -0,0 +1,12 @@
|
||||
.basic{display:block}
|
||||
.advanced{display:none;white-space:nowrap}
|
||||
.log{cursor:zoom-in}
|
||||
.exec{cursor:pointer}
|
||||
table#docker_containers{text-align:left}
|
||||
th.five{width:5%}
|
||||
th.nine{width:9%}
|
||||
th.load{width:140px}
|
||||
input.wait{width:24px;margin:0 4px;padding:0 5px;border:none;box-shadow:none;background-color:transparent}
|
||||
table tbody td{line-height:normal}
|
||||
i.mover{margin-right:8px;display:none}
|
||||
#resetsort{margin-left:12px;display:inline-block;width:32px}
|
||||
@@ -0,0 +1,2 @@
|
||||
.fileTree{background:#f2f2f2;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
span.disabled{color:#B0B0B0}
|
||||
@@ -0,0 +1,2 @@
|
||||
.fileTree{background:#1c1c1c;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
span.disabled{color:#404040}
|
||||
@@ -0,0 +1,2 @@
|
||||
.fileTree{background:#1c1c1c;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
span.disabled{color:#404040}
|
||||
@@ -0,0 +1,2 @@
|
||||
.fileTree{background:#f2f2f2;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
span.disabled{color:#B0B0B0}
|
||||
@@ -0,0 +1,17 @@
|
||||
.errortext{color:#EF3D47;display:none;margin-left:20px}
|
||||
.basic{display:inline-block}
|
||||
.advanced{display:none}
|
||||
select.mask{min-width:0;margin:0 10px 0 4px}
|
||||
select.net{min-width:0;margin:0 4px 0 2px}
|
||||
select option.hide{display:none}
|
||||
input.ip4{width:100px;margin:0 4px 0 1px}
|
||||
input.ip6{width:140px;margin:0 4px}
|
||||
input.gw4{width:100px;margin:0 4px 0 1px}
|
||||
input.gw6{width:160px;margin:0 4px}
|
||||
input.pool6{width:40px;margin:0 4px 0 1px}
|
||||
span.net{margin-left:4px;margin-right:2px}
|
||||
span.ip4{display:inline-block;width:260px}
|
||||
span.ip6{display:inline-block;width:310px}
|
||||
span.gw4{display:inline-block;width:200px}
|
||||
span.gw6{display:inline-block;width:270px}
|
||||
span.nonexist{margin-left:20px}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#f2f2f2}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#1c1c1c}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#1c1c1c}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#f2f2f2}
|
||||
@@ -0,0 +1,9 @@
|
||||
.noshow,.advanced{display:none}
|
||||
.required:after{content:" *";color:#E80000}
|
||||
span.boxed{display:inline-block;line-height:normal;white-space:normal;width:60%}
|
||||
span.cpu,label.checkbox{display:inline-block;width:32px}
|
||||
span.ct{display:inline-block;width:230px}
|
||||
span.net{display:inline-block;width:120px}
|
||||
span.ip{display:inline-block;width:160px}
|
||||
dl,dt,dd{line-height:normal!important}
|
||||
input.setting_input{margin-right:50px}
|
||||
@@ -1,62 +1,14 @@
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button{
|
||||
font-family:clear-sans;font-size:1.1rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;margin:10px 12px 10px 0;padding:9px 18px;text-decoration:none;white-space:nowrap;cursor:pointer;outline:none;border-radius:4px;border:0;color:#ff8c2f;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#e22828),to(#e22828)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#ff8c2f),to(#ff8c2f)) 100% 100% no-repeat;background:linear-gradient(90deg,#e22828 0,#ff8c2f) 0 0 no-repeat,linear-gradient(90deg,#e22828 0,#ff8c2f) 0 100% no-repeat,linear-gradient(0deg,#e22828 0,#e22828) 0 100% no-repeat,linear-gradient(0deg,#ff8c2f 0,#ff8c2f) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button:hover{
|
||||
color:#f2f2f2;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f));background:linear-gradient(90deg,#e22828 0,#ff8c2f)
|
||||
}
|
||||
.ui-dropdownchecklist .ui-state-default{
|
||||
background:#f2f2f2;
|
||||
border:none;
|
||||
box-shadow:none;
|
||||
outline:none;
|
||||
cursor:pointer;
|
||||
height:2.2rem;
|
||||
line-height:2.2rem;
|
||||
}
|
||||
.ui-dropdownchecklist-group{
|
||||
font-weight:normal;
|
||||
font-style:italic;
|
||||
padding:1px 9px 1px 8px;
|
||||
}
|
||||
.ui-dropdownchecklist-selector{
|
||||
border:1px solid #1c1c1c;
|
||||
display:inline-block;
|
||||
cursor:pointer;
|
||||
padding:1px 9px 1px 8px;
|
||||
}
|
||||
.ui-dropdownchecklist-selector-wrapper{
|
||||
vertical-align:middle;
|
||||
font-size:0;
|
||||
}
|
||||
.ui-widget-header{
|
||||
border:none;
|
||||
background:#e3e3e3;
|
||||
color:#1c1c1c;
|
||||
font-weight:bold;
|
||||
}
|
||||
.ui-widget-content{
|
||||
border:1px solid #1c1c1c;
|
||||
background:#f2f2f2;
|
||||
color:#1c1c1c;
|
||||
|
||||
.ui-state-active{
|
||||
background:#e8e8e8;
|
||||
}
|
||||
.ui-dropdownchecklist-dropcontainer{
|
||||
background:#f2f2f2;
|
||||
border:1px solid #1c1c1c;
|
||||
}
|
||||
.ui-state-disabled{
|
||||
color:#1c1c1c;border-color:#a2a2a2;background:#e8e8e8;opacity:0.5;
|
||||
}
|
||||
.ui-dropdownchecklist-indent{
|
||||
padding-left:7px;
|
||||
}
|
||||
.ui-dropdownchecklist-text{
|
||||
color:#1c1c1c;
|
||||
font-size:1.3rem;
|
||||
}
|
||||
.ui-dropdownchecklist .ui-widget-content .ui-state-default{
|
||||
background:#f2f2f2;
|
||||
border:0px;
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button{font-family:clear-sans;font-size:1.1rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;margin:10px 12px 10px 0;padding:9px 18px;text-decoration:none;white-space:nowrap;cursor:pointer;outline:none;border-radius:4px;border:0;color:#ff8c2f;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#e22828),to(#e22828)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#ff8c2f),to(#ff8c2f)) 100% 100% no-repeat;background:linear-gradient(90deg,#e22828 0,#ff8c2f) 0 0 no-repeat,linear-gradient(90deg,#e22828 0,#ff8c2f) 0 100% no-repeat,linear-gradient(0deg,#e22828 0,#e22828) 0 100% no-repeat,linear-gradient(0deg,#ff8c2f 0,#ff8c2f) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button:hover{color:#f2f2f2;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f));background:linear-gradient(90deg,#e22828 0,#ff8c2f)}
|
||||
.ui-dropdownchecklist .ui-state-default{background:#f2f2f2;border:none;box-shadow:none;outline:none;cursor:pointer;height:2.2rem;line-height:2.2rem}
|
||||
.ui-dropdownchecklist-group{font-weight:normal;font-style:italic;padding:1px 9px 1px 8px}
|
||||
.ui-dropdownchecklist-selector{border:1px solid #1c1c1c;display:inline-block;cursor:pointer;padding:1px 9px 1px 8px}
|
||||
.ui-dropdownchecklist-selector-wrapper{vertical-align:middle;font-size:0}
|
||||
.ui-widget-header{border:none;background:#e3e3e3;color:#1c1c1c;font-weight:bold}
|
||||
.ui-widget-content{border:1px solid #1c1c1c;background:#f2f2f2;color:#1c1c1c}
|
||||
.ui-state-active{background:#e8e8e8}
|
||||
.ui-dropdownchecklist-dropcontainer{background:#f2f2f2;border:1px solid #1c1c1c}
|
||||
.ui-state-disabled{color:#1c1c1c;border-color:#a2a2a2;background:#e8e8e8;opacity:0.5}
|
||||
.ui-dropdownchecklist-indent{padding-left:7px}
|
||||
.ui-dropdownchecklist-text{color:#1c1c1c;font-size:1.3rem}
|
||||
.ui-dropdownchecklist .ui-widget-content .ui-state-default{background:#f2f2f2;border:0px}
|
||||
|
||||
@@ -1,62 +1,14 @@
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button{
|
||||
font-family:clear-sans;font-size:1.1rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;margin:10px 12px 10px 0;padding:9px 18px;text-decoration:none;white-space:nowrap;cursor:pointer;outline:none;border-radius:4px;border:0;color:#ff8c2f;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#e22828),to(#e22828)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#ff8c2f),to(#ff8c2f)) 100% 100% no-repeat;background:linear-gradient(90deg,#e22828 0,#ff8c2f) 0 0 no-repeat,linear-gradient(90deg,#e22828 0,#ff8c2f) 0 100% no-repeat,linear-gradient(0deg,#e22828 0,#e22828) 0 100% no-repeat,linear-gradient(0deg,#ff8c2f 0,#ff8c2f) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button:hover{
|
||||
color:#f2f2f2;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f));background:linear-gradient(90deg,#e22828 0,#ff8c2f)
|
||||
}
|
||||
.ui-dropdownchecklist .ui-state-default{
|
||||
background:#1c1c1c;
|
||||
border:none;
|
||||
box-shadow:none;
|
||||
outline:none;
|
||||
cursor:pointer;
|
||||
height:2.2rem;
|
||||
line-height:2.2rem;
|
||||
}
|
||||
.ui-dropdownchecklist-group{
|
||||
font-weight:normal;
|
||||
font-style:italic;
|
||||
padding:1px 9px 1px 8px;
|
||||
}
|
||||
.ui-dropdownchecklist-selector{
|
||||
border:1px solid #e5e5e5;
|
||||
display:inline-block;
|
||||
cursor:pointer;
|
||||
padding:1px 9px 1px 8px;
|
||||
}
|
||||
.ui-dropdownchecklist-selector-wrapper{
|
||||
vertical-align:middle;
|
||||
font-size:0;
|
||||
}
|
||||
.ui-widget-header{
|
||||
border:none;
|
||||
background:#2b2b2b;
|
||||
color:#f2f2f2;
|
||||
font-weight:bold;
|
||||
}
|
||||
.ui-widget-content{
|
||||
border:1px solid #e5e5e5;
|
||||
background:#1c1c1c;
|
||||
color:#f2f2f2;
|
||||
|
||||
.ui-state-active{
|
||||
background:#262626;
|
||||
}
|
||||
.ui-dropdownchecklist-dropcontainer{
|
||||
background:#1c1c1c;
|
||||
border:1px solid #e5e5e5;
|
||||
}
|
||||
.ui-state-disabled{
|
||||
color:#f2f2f2;border-color:#6c6c6c;background:#262626;opacity:0.5;
|
||||
}
|
||||
.ui-dropdownchecklist-indent{
|
||||
padding-left:7px;
|
||||
}
|
||||
.ui-dropdownchecklist-text{
|
||||
color:#f2f2f2;
|
||||
font-size:1.3rem;
|
||||
}
|
||||
.ui-dropdownchecklist .ui-widget-content .ui-state-default{
|
||||
background:#1c1c1c;
|
||||
border:0px;
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button{font-family:clear-sans;font-size:1.1rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;margin:10px 12px 10px 0;padding:9px 18px;text-decoration:none;white-space:nowrap;cursor:pointer;outline:none;border-radius:4px;border:0;color:#ff8c2f;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#e22828),to(#e22828)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#ff8c2f),to(#ff8c2f)) 100% 100% no-repeat;background:linear-gradient(90deg,#e22828 0,#ff8c2f) 0 0 no-repeat,linear-gradient(90deg,#e22828 0,#ff8c2f) 0 100% no-repeat,linear-gradient(0deg,#e22828 0,#e22828) 0 100% no-repeat,linear-gradient(0deg,#ff8c2f 0,#ff8c2f) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button:hover{color:#f2f2f2;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f));background:linear-gradient(90deg,#e22828 0,#ff8c2f)}
|
||||
.ui-dropdownchecklist .ui-state-default{background:#1c1c1c;border:none;box-shadow:none;outline:none;cursor:pointer;height:2.2rem;line-height:2.2rem}
|
||||
.ui-dropdownchecklist-group{font-weight:normal;font-style:italic;padding:1px 9px 1px 8px}
|
||||
.ui-dropdownchecklist-selector{border:1px solid #e5e5e5;display:inline-block;cursor:pointer;padding:1px 9px 1px 8px}
|
||||
.ui-dropdownchecklist-selector-wrapper{vertical-align:middle;font-size:0}
|
||||
.ui-widget-header{border:none;background:#2b2b2b;color:#f2f2f2;font-weight:bold}
|
||||
.ui-widget-content{border:1px solid #e5e5e5;background:#1c1c1c;color:#f2f2f2}
|
||||
.ui-state-active{background:#262626}
|
||||
.ui-dropdownchecklist-dropcontainer{background:#1c1c1c;border:1px solid #e5e5e5}
|
||||
.ui-state-disabled{color:#f2f2f2;border-color:#6c6c6c;background:#262626;opacity:0.5}
|
||||
.ui-dropdownchecklist-indent{padding-left:7px}
|
||||
.ui-dropdownchecklist-text{color:#f2f2f2;font-size:1.3rem}
|
||||
.ui-dropdownchecklist .ui-widget-content .ui-state-default{background:#1c1c1c;border:0px}
|
||||
|
||||
@@ -1,62 +1,14 @@
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button{
|
||||
font-family:clear-sans;font-size:1.1rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;margin:10px 12px 10px 0;padding:9px 18px;text-decoration:none;white-space:nowrap;cursor:pointer;outline:none;border-radius:4px;border:0;color:#ff8c2f;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#e22828),to(#e22828)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#ff8c2f),to(#ff8c2f)) 100% 100% no-repeat;background:linear-gradient(90deg,#e22828 0,#ff8c2f) 0 0 no-repeat,linear-gradient(90deg,#e22828 0,#ff8c2f) 0 100% no-repeat,linear-gradient(0deg,#e22828 0,#e22828) 0 100% no-repeat,linear-gradient(0deg,#ff8c2f 0,#ff8c2f) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button:hover{
|
||||
color:#f2f2f2;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f));background:linear-gradient(90deg,#e22828 0,#ff8c2f)
|
||||
}
|
||||
.ui-dropdownchecklist .ui-state-default{
|
||||
background:#1c1c1c;
|
||||
border:none;
|
||||
box-shadow:none;
|
||||
outline:none;
|
||||
cursor:pointer;
|
||||
height:2.2rem;
|
||||
line-height:2.2rem;
|
||||
}
|
||||
.ui-dropdownchecklist-group{
|
||||
font-weight:normal;
|
||||
font-style:italic;
|
||||
padding:1px 9px 1px 8px;
|
||||
}
|
||||
.ui-dropdownchecklist-selector{
|
||||
border:1px solid #e5e5e5;
|
||||
display:inline-block;
|
||||
cursor:pointer;
|
||||
padding:1px 9px 1px 8px;
|
||||
}
|
||||
.ui-dropdownchecklist-selector-wrapper{
|
||||
vertical-align:middle;
|
||||
font-size:0;
|
||||
}
|
||||
.ui-widget-header{
|
||||
border:none;
|
||||
background:#2b2b2b;
|
||||
color:#f2f2f2;
|
||||
font-weight:bold;
|
||||
}
|
||||
.ui-widget-content{
|
||||
border:1px solid #e5e5e5;
|
||||
background:#1c1c1c;
|
||||
color:#f2f2f2;
|
||||
|
||||
.ui-state-active{
|
||||
background:#262626;
|
||||
}
|
||||
.ui-dropdownchecklist-dropcontainer{
|
||||
background:#1c1c1c;
|
||||
border:1px solid #e5e5e5;
|
||||
}
|
||||
.ui-state-disabled{
|
||||
color:#f2f2f2;border-color:#6c6c6c;background:#262626;opacity:0.5;
|
||||
}
|
||||
.ui-dropdownchecklist-indent{
|
||||
padding-left:7px;
|
||||
}
|
||||
.ui-dropdownchecklist-text{
|
||||
color:#f2f2f2;
|
||||
font-size:1.3rem;
|
||||
}
|
||||
.ui-dropdownchecklist .ui-widget-content .ui-state-default{
|
||||
background:#1c1c1c;
|
||||
border:0px;
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button{font-family:clear-sans;font-size:1.1rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;margin:10px 12px 10px 0;padding:9px 18px;text-decoration:none;white-space:nowrap;cursor:pointer;outline:none;border-radius:4px;border:0;color:#ff8c2f;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#e22828),to(#e22828)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#ff8c2f),to(#ff8c2f)) 100% 100% no-repeat;background:linear-gradient(90deg,#e22828 0,#ff8c2f) 0 0 no-repeat,linear-gradient(90deg,#e22828 0,#ff8c2f) 0 100% no-repeat,linear-gradient(0deg,#e22828 0,#e22828) 0 100% no-repeat,linear-gradient(0deg,#ff8c2f 0,#ff8c2f) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button:hover{color:#f2f2f2;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f));background:linear-gradient(90deg,#e22828 0,#ff8c2f)}
|
||||
.ui-dropdownchecklist .ui-state-default{background:#1c1c1c;border:none;box-shadow:none;outline:none;cursor:pointer;height:2.2rem;line-height:2.2rem}
|
||||
.ui-dropdownchecklist-group{font-weight:normal;font-style:italic;padding:1px 9px 1px 8px}
|
||||
.ui-dropdownchecklist-selector{border:1px solid #e5e5e5;display:inline-block;cursor:pointer;padding:1px 9px 1px 8px}
|
||||
.ui-dropdownchecklist-selector-wrapper{vertical-align:middle;font-size:0}
|
||||
.ui-widget-header{border:none;background:#2b2b2b;color:#f2f2f2;font-weight:bold}
|
||||
.ui-widget-content{border:1px solid #e5e5e5;background:#1c1c1c;color:#f2f2f2}
|
||||
.ui-state-active{background:#262626}
|
||||
.ui-dropdownchecklist-dropcontainer{background:#1c1c1c;border:1px solid #e5e5e5}
|
||||
.ui-state-disabled{color:#f2f2f2;border-color:#6c6c6c;background:#262626;opacity:0.5}
|
||||
.ui-dropdownchecklist-indent{padding-left:7px}
|
||||
.ui-dropdownchecklist-text{color:#f2f2f2;font-size:1.3rem}
|
||||
.ui-dropdownchecklist .ui-widget-content .ui-state-default{background:#1c1c1c;border:0px}
|
||||
|
||||
@@ -1,62 +1,14 @@
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button{
|
||||
font-family:clear-sans;font-size:1.1rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;margin:10px 12px 10px 0;padding:9px 18px;text-decoration:none;white-space:nowrap;cursor:pointer;outline:none;border-radius:4px;border:0;color:#ff8c2f;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#e22828),to(#e22828)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#ff8c2f),to(#ff8c2f)) 100% 100% no-repeat;background:linear-gradient(90deg,#e22828 0,#ff8c2f) 0 0 no-repeat,linear-gradient(90deg,#e22828 0,#ff8c2f) 0 100% no-repeat,linear-gradient(0deg,#e22828 0,#e22828) 0 100% no-repeat,linear-gradient(0deg,#ff8c2f 0,#ff8c2f) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button:hover{
|
||||
color:#f2f2f2;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f));background:linear-gradient(90deg,#e22828 0,#ff8c2f)
|
||||
}
|
||||
.ui-dropdownchecklist .ui-state-default{
|
||||
background:#f2f2f2;
|
||||
border:none;
|
||||
box-shadow:none;
|
||||
outline:none;
|
||||
cursor:pointer;
|
||||
height:2.2rem;
|
||||
line-height:2.2rem;
|
||||
}
|
||||
.ui-dropdownchecklist-group{
|
||||
font-weight:normal;
|
||||
font-style:italic;
|
||||
padding:1px 9px 1px 8px;
|
||||
}
|
||||
.ui-dropdownchecklist-selector{
|
||||
border:1px solid #1c1c1c;
|
||||
display:inline-block;
|
||||
cursor:pointer;
|
||||
padding:1px 9px 1px 8px;
|
||||
}
|
||||
.ui-dropdownchecklist-selector-wrapper{
|
||||
vertical-align:middle;
|
||||
font-size:0;
|
||||
}
|
||||
.ui-widget-header{
|
||||
border:none;
|
||||
background:#e3e3e3;
|
||||
color:#1c1c1c;
|
||||
font-weight:bold;
|
||||
}
|
||||
.ui-widget-content{
|
||||
border:1px solid #1c1c1c;
|
||||
background:#f2f2f2;
|
||||
color:#1c1c1c;
|
||||
|
||||
.ui-state-active{
|
||||
background:#e8e8e8;
|
||||
}
|
||||
.ui-dropdownchecklist-dropcontainer{
|
||||
background:#f2f2f2;
|
||||
border:1px solid #1c1c1c;
|
||||
}
|
||||
.ui-state-disabled{
|
||||
color:#1c1c1c;border-color:#a2a2a2;background:#e8e8e8;opacity:0.5;
|
||||
}
|
||||
.ui-dropdownchecklist-indent{
|
||||
padding-left:7px;
|
||||
}
|
||||
.ui-dropdownchecklist-text{
|
||||
color:#1c1c1c;
|
||||
font-size:1.3rem;
|
||||
}
|
||||
.ui-dropdownchecklist .ui-widget-content .ui-state-default{
|
||||
background:#f2f2f2;
|
||||
border:0px;
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button{font-family:clear-sans;font-size:1.1rem;font-weight:bold;letter-spacing:2px;text-transform:uppercase;margin:10px 12px 10px 0;padding:9px 18px;text-decoration:none;white-space:nowrap;cursor:pointer;outline:none;border-radius:4px;border:0;color:#ff8c2f;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#e22828),to(#e22828)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#ff8c2f),to(#ff8c2f)) 100% 100% no-repeat;background:linear-gradient(90deg,#e22828 0,#ff8c2f) 0 0 no-repeat,linear-gradient(90deg,#e22828 0,#ff8c2f) 0 100% no-repeat,linear-gradient(0deg,#e22828 0,#e22828) 0 100% no-repeat,linear-gradient(0deg,#ff8c2f 0,#ff8c2f) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button:hover{color:#f2f2f2;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f));background:linear-gradient(90deg,#e22828 0,#ff8c2f)}
|
||||
.ui-dropdownchecklist .ui-state-default{background:#f2f2f2;border:none;box-shadow:none;outline:none;cursor:pointer;height:2.2rem;line-height:2.2rem}
|
||||
.ui-dropdownchecklist-group{font-weight:normal;font-style:italic;padding:1px 9px 1px 8px}
|
||||
.ui-dropdownchecklist-selector{border:1px solid #1c1c1c;display:inline-block;cursor:pointer;padding:1px 9px 1px 8px}
|
||||
.ui-dropdownchecklist-selector-wrapper{vertical-align:middle;font-size:0}
|
||||
.ui-widget-header{border:none;background:#e3e3e3;color:#1c1c1c;font-weight:bold}
|
||||
.ui-widget-content{border:1px solid #1c1c1c;background:#f2f2f2;color:#1c1c1c}
|
||||
.ui-state-active{background:#e8e8e8}
|
||||
.ui-dropdownchecklist-dropcontainer{background:#f2f2f2;border:1px solid #1c1c1c}
|
||||
.ui-state-disabled{color:#1c1c1c;border-color:#a2a2a2;background:#e8e8e8;opacity:0.5}
|
||||
.ui-dropdownchecklist-indent{padding-left:7px}
|
||||
.ui-dropdownchecklist-text{color:#1c1c1c;font-size:1.3rem}
|
||||
.ui-dropdownchecklist .ui-widget-content .ui-state-default{background:#f2f2f2;border:0px}
|
||||
|
||||
@@ -26,13 +26,6 @@ function my_time_now($time) {
|
||||
$regGen = (int)$var['regGen'] ?? 0;
|
||||
$trialExtensionEligible = $regGen === 0 || $regGen === 1;
|
||||
?>
|
||||
<style>
|
||||
span.thanks{padding-left:12px;color:#6FA239;font-weight:bold;}
|
||||
span.thanks.red{color:#F0000C;}
|
||||
div.device{padding:0 12px;font-weight:normal;font-style:italic;}
|
||||
div.remark{padding:0 12px;text-align:justify;}
|
||||
</style>
|
||||
|
||||
<?if ( (strstr($var['regTy'], "unregistered")) or ($var['regTy']=="Trial") or (strstr($var['regTy'], "no connection")) or (strstr($var['regTy'], "withdrawn")) or (strstr($var['regTy'], "expired")) ):?>
|
||||
|
||||
<span class="thanks">_(Thank you for trying Unraid OS)_!</span>
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
span.thanks{padding-left:12px;color:#6FA239;font-weight:bold;}
|
||||
span.thanks.red{color:#F0000C;}
|
||||
div.device{padding:0 12px;font-weight:normal;font-style:italic;}
|
||||
div.remark{padding:0 12px;text-align:justify;}
|
||||
@@ -13,14 +13,6 @@ Link='nav-user'
|
||||
* all copies or substantial portions of the Software.
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
/* Additional CSS for when user supplies element */
|
||||
.ca_element_notice{padding-right:20px;width:100%;height:40px;line-height:40px;color:#e68a00;background:#feefb3;border-bottom:#e68a00 1px solid;text-align:center;font-size:1.4rem;z-index:900;}
|
||||
a.ca_PluginUpdateInstall{cursor:pointer;}
|
||||
span.ca_PluginUpdateDismiss{float:right;margin-right:20px;cursor:pointer;}
|
||||
span.bannerInfo {cursor:pointer;text-decoration:none;margin:0 12px 0 6px;}
|
||||
span.bannerInfo::before {content:"\f05a";font-family:fontAwesome;color:#e68a00;}
|
||||
</style>
|
||||
<script>
|
||||
const ca_args = {};
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ Tabs="true"
|
||||
Code="e944"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2022, Lime Technology
|
||||
* Copyright 2012-2022, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -25,10 +25,6 @@ if (!exec("pgrep -f $docroot/plugins/dynamix.plugin.manager/scripts/plugin")) {
|
||||
$check = $notify['version'] ? 0 : 1;
|
||||
?>
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.filetree.css')?>">
|
||||
<style>
|
||||
#plugin_tree{width:33%;height:200px;overflow-y:scroll}
|
||||
table tbody td{line-height:normal}
|
||||
</style>
|
||||
|
||||
<script src="<?autov('/webGui/javascript/jquery.filetree.js')?>" charset="utf-8"></script>
|
||||
<script>
|
||||
|
||||
@@ -4,8 +4,8 @@ Icon="icon-update"
|
||||
Tag="upload"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2022, Lime Technology
|
||||
* Copyright 2012-2022, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -35,21 +35,6 @@ if (file_exists($changes)) {
|
||||
}
|
||||
$reboot = preg_match("/^\*\*(REBOOT REQUIRED|DOWNGRADE)/",@file_get_contents("$docroot/plugins/unRAIDServer/README.md",false,null,0,20));
|
||||
?>
|
||||
<style>
|
||||
ul,li{margin:0;padding-top:0;padding-bottom:0}
|
||||
pre.pre{margin:30px 0}
|
||||
pre>p{margin:0;padding:0}
|
||||
pre#swaltext{height:600px!important}
|
||||
@media (max-width:960px){pre#swaltext{height:400px!important}}
|
||||
@media (max-width:960px){.sweet-alert.nchan{height:600px;width:900px;margin-left:-470px}}
|
||||
@media (max-height:768px){pre#swaltext{height:400px!important}}
|
||||
@media (max-height:768px){.sweet-alert.nchan{height:600px;width:900px;margin-left:-470px}}
|
||||
input[value="_(Install)_"],input[value="_(Update)_"],input[value="_(Restore)_"]{margin:0}
|
||||
<?if ($themes1):?>
|
||||
span.vhshift{margin-top:13px!important}
|
||||
<?endif;?>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
var diagnosticsFile = "";
|
||||
var nchan_diagnostics = new NchanSubscriber('/sub/diagnostics',{subscriber:'websocket'});
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
.ca_element_notice{padding-right:20px;width:100%;height:40px;line-height:40px;color:#e68a00;background:#feefb3;border-bottom:#e68a00 1px solid;text-align:center;font-size:1.4rem;z-index:900}
|
||||
a.ca_PluginUpdateInstall{cursor:pointer}
|
||||
span.ca_PluginUpdateDismiss{float:right;margin-right:20px;cursor:pointer}
|
||||
span.bannerInfo {cursor:pointer;text-decoration:none;margin:0 12px 0 6px}
|
||||
span.bannerInfo::before {content:"\f05a";font-family:fontAwesome;color:#e68a00}
|
||||
2
emhttp/plugins/dynamix.plugin.manager/sheets/Plugins.css
Normal file
2
emhttp/plugins/dynamix.plugin.manager/sheets/Plugins.css
Normal file
@@ -0,0 +1,2 @@
|
||||
#plugin_tree{width:33%;height:200px;overflow-y:scroll}
|
||||
table tbody td{line-height:normal}
|
||||
@@ -0,0 +1 @@
|
||||
span.vhshift{margin-top:13px!important}
|
||||
@@ -0,0 +1 @@
|
||||
span.vhshift{margin-top:13px!important}
|
||||
9
emhttp/plugins/dynamix.plugin.manager/sheets/Update.css
Normal file
9
emhttp/plugins/dynamix.plugin.manager/sheets/Update.css
Normal file
@@ -0,0 +1,9 @@
|
||||
ul,li{margin:0;padding-top:0;padding-bottom:0}
|
||||
pre.pre{margin:30px 0}
|
||||
pre>p{margin:0;padding:0}
|
||||
pre#swaltext{height:600px!important}
|
||||
@media (max-width:960px){pre#swaltext{height:400px!important}}
|
||||
@media (max-width:960px){.sweet-alert.nchan{height:600px;width:900px;margin-left:-470px}}
|
||||
@media (max-height:768px){pre#swaltext{height:400px!important}}
|
||||
@media (max-height:768px){.sweet-alert.nchan{height:600px;width:900px;margin-left:-470px}}
|
||||
input[value="_(Install)_"],input[value="_(Update)_"],input[value="_(Restore)_"]{margin:0}
|
||||
@@ -4,9 +4,9 @@ Cond="(pgrep('libvirtd')!==false)"
|
||||
Markdown="false"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2020, Lime Technology
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
* Copyright 2015-2020, Derek Macias, Eric Schultz, Jon Panozzo.
|
||||
* Copyright 2012-2020, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
|
||||
@@ -4,9 +4,9 @@ Cond="(pgrep('libvirtd')!==false)"
|
||||
Markdown="false"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2020, Lime Technology
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
* Copyright 2015-2020, Derek Macias, Eric Schultz, Jon Panozzo.
|
||||
* Copyright 2012-2020, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
|
||||
@@ -112,36 +112,6 @@ if (empty($vms)) {
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/jquery.filetree.css")?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/jquery.ui.css")?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/plugins/dynamix.docker.manager/styles/style-$theme.css")?>">
|
||||
<style>
|
||||
th.th1{width:25%}
|
||||
th.th2{width:15%}
|
||||
th.th3{width:80px}
|
||||
div.four{font-size:1.1rem;width:260px}
|
||||
div.four label{float:left;display:table-cell;width:25%}
|
||||
div.four label:nth-child(4n+4){float:none;clear:both}
|
||||
div.four label.cpu1{width:32%}
|
||||
div.four label.cpu2{width:26%}
|
||||
div.template,div#dialogWindow,input#upload{display:none}
|
||||
div.template,div#dialogWindow2,input#upload{display:none}
|
||||
table.domdisk thead tr th:nth-child(1){width:56%!important}
|
||||
table.domdisk thead tr th:nth-child(n+2){width:8%!important}
|
||||
table.domdisk thead tr th:nth-child(1){padding-left:72px}
|
||||
table.domdisk tbody tr td:nth-child(1){padding-left:72px}
|
||||
table.domdisk tbody tr:nth-child(even){background-color:transparent!important}
|
||||
table.domdisk tbody tr:nth-child(4n-1){background-color:transparent!important}
|
||||
i.mover{margin-right:8px;display:none}
|
||||
#resetsort{margin-left:12px;display:inline-block;width:32px}
|
||||
.fileTree{background:<?=$bgcolor?>;width:500px;max-height:320px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button[disabled]{cursor:default;color:#808080;background:-webkit-gradient(linear,left top,right top,from(#404040),to(#808080)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#404040),to(#808080)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#404040),to(#404040)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#808080),to(#808080)) 100% 100% no-repeat;background:linear-gradient(90deg,#404040 0,#808080) 0 0 no-repeat,linear-gradient(90deg,#404040 0,#808080) 0 100% no-repeat,linear-gradient(0deg,#404040 0,#404040) 0 100% no-repeat,linear-gradient(0deg,#808080 0,#808080) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%}
|
||||
.dropdown-menu{z-index:10001}
|
||||
</style>
|
||||
<table id="kvm_table" class="tablesorter four shift">
|
||||
<thead><tr><th class="th1"><a id="resetsort" class="nohand" onclick="resetSorting()" title="Reset sorting"><i class="fa fa-th-list"></i></a>_(Name)_</th><th class="th2">_(Description)_</th><th>_(CPUs)_</th><th>_(Memory)_</th><th>_(vDisks / vCDs)_</th><th>_(Graphics)_</th><th class="th3">_(Autostart)_</th></tr></thead>
|
||||
<tbody id="kvm_list"><tr><td colspan='8'></td></tr></tbody>
|
||||
</table>
|
||||
<input type="button" onclick="addVM()" id="btnAddVM" value="_(Add VM)_" style="display:none">
|
||||
<input type="button" onclick="startAll()" value="_(Start All)_" style="display:none">
|
||||
<input type="button" onclick="stopAll()" value="_(Stop All)_" style="display:none">
|
||||
|
||||
<script src="<?autov('/webGui/javascript/jquery.switchbutton.js')?>"></script>
|
||||
<script src="<?autov('/plugins/dynamix.vm.manager/javascript/dynamix.vm.manager.js')?>"></script>
|
||||
@@ -166,37 +136,38 @@ function changemedia(uuid,dev,bus,file) {
|
||||
if (file === "--select") getisoimage(uuid,dev,bus,file);
|
||||
if (file === "--eject") ajaxVMDispatch({action:"change-media", uuid:uuid , cdrom:"" , dev:dev , bus:bus , file:file}, "loadlist");
|
||||
}
|
||||
function dialogStyle() {
|
||||
$('.ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$('.ui-dialog-title').css({'text-align':'center','width':'100%','font-size':'1.8rem'});
|
||||
$('.ui-dialog-content').css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$('.ui-button-text').css({'padding':'0px 5px'});
|
||||
}
|
||||
function getisoimageboth(uuid,dev,bus,file,dev2,bus2,file2){
|
||||
var root = <?= '"'.$domain_cfg["MEDIADIR"].'"';?>;
|
||||
var match= ".iso";
|
||||
var root = "<?=$domain_cfg["MEDIADIR"]?>";
|
||||
var match = ".iso";
|
||||
var box = $("#dialogWindow");
|
||||
box.html($("#templateISOboth").html());
|
||||
|
||||
box.find('#target').attr('data-pickroot',root).attr('data-picktop',root).attr('data-pickmatch',match).attr('value', file).fileTreeAttach(null,null,function(path){
|
||||
var bits = path.substr(1).split('/');
|
||||
var auto = bits.length>3 ? '' : share;
|
||||
box.find('#target').val(path+auto).change();
|
||||
});
|
||||
box.find('#target2').attr('data-pickroot',root).attr('data-picktop',root).attr('data-pickmatch',match).attr('value', file2).fileTreeAttach(null,null,function(path){
|
||||
var bits = path.substr(1).split('/');
|
||||
var auto = bits.length>3 ? '' : share;
|
||||
box.find('#target2').val(path+auto).change();
|
||||
});
|
||||
var height = 100;
|
||||
|
||||
box.find('#target').attr('data-pickroot',root).attr('data-picktop',root).attr('data-pickmatch',match).attr('value',file).fileTreeAttach(null,null,function(path){
|
||||
var bits = path.substr(1).split('/');
|
||||
var auto = bits.length>3 ? '' : share;
|
||||
box.find('#target').val(path+auto).change();
|
||||
});
|
||||
box.find('#target2').attr('data-pickroot',root).attr('data-picktop',root).attr('data-pickmatch',match).attr('value',file2).fileTreeAttach(null,null,function(path){
|
||||
var bits = path.substr(1).split('/');
|
||||
var auto = bits.length>3 ? '' : share;
|
||||
box.find('#target2').val(path+auto).change();
|
||||
});
|
||||
box.dialog({
|
||||
title: "Select ISOs for CDROMs",
|
||||
resizable: false,
|
||||
title: "_(Select ISOs for CDROMs)_",
|
||||
height: 600,
|
||||
width: 600,
|
||||
height: 300,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
show: {effect:'fade', duration:250},
|
||||
hide: {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
"_(Update)_": function(){
|
||||
var target = box.find('#target');
|
||||
if (target.length) {
|
||||
target = target.val();
|
||||
target = target.val();
|
||||
} else target = '';
|
||||
var target2 = box.find('#target2');
|
||||
if (target2.length) {
|
||||
@@ -204,7 +175,7 @@ function getisoimageboth(uuid,dev,bus,file,dev2,bus2,file2){
|
||||
} else target2 = '';
|
||||
box.find('#target').prop('disabled',true);
|
||||
box.find('#target2').prop('disabled',true);
|
||||
ajaxVMDispatch({action:"change-media-both", uuid:uuid , cdrom:"" , dev:dev , bus:bus , file:target, dev2:dev2 , bus2:bus2 , file2:target2}, "loadlist");
|
||||
ajaxVMDispatch({action:"change-media-both", uuid:uuid, cdrom:"", dev:dev, bus:bus, file:target, dev2:dev2, bus2:bus2, file2:target2}, "loadlist");
|
||||
box.dialog('close');
|
||||
},
|
||||
"_(Cancel)_": function(){
|
||||
@@ -215,25 +186,21 @@ function getisoimageboth(uuid,dev,bus,file,dev2,bus2,file2){
|
||||
dialogStyle();
|
||||
}
|
||||
function getisoimage(uuid,dev,bus,file){
|
||||
var root = <?= '"'.$domain_cfg["MEDIADIR"].'"';?>;
|
||||
var match= ".iso";
|
||||
var root = "<?=$domain_cfg["MEDIADIR"]?>";
|
||||
var match = ".iso";
|
||||
var box = $("#dialogWindow");
|
||||
box.html($("#templateISO").html());
|
||||
|
||||
box.find('#target').attr('data-pickroot',root).attr('data-picktop',root).attr('data-pickmatch',match).fileTreeAttach(null,null,function(path){
|
||||
var bits = path.substr(1).split('/');
|
||||
var auto = bits.length>3 ? '' : share;
|
||||
box.find('#target').val(path+auto).change();
|
||||
});
|
||||
var height = 100;
|
||||
var bits = path.substr(1).split('/');
|
||||
var auto = bits.length>3 ? '' : share;
|
||||
box.find('#target').val(path+auto).change();
|
||||
});
|
||||
box.dialog({
|
||||
title: "Select ISO",
|
||||
resizable: false,
|
||||
title: "_(Select ISO)_",
|
||||
height: 600,
|
||||
width: 600,
|
||||
height: 300,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
show: {effect:'fade', duration:250},
|
||||
hide: {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
"_(Insert)_": function(){
|
||||
var target = box.find('#target');
|
||||
@@ -242,7 +209,7 @@ function getisoimage(uuid,dev,bus,file){
|
||||
if (!target ) {errorTarget(); return;}
|
||||
} else target = '';
|
||||
box.find('#target').prop('disabled',true);
|
||||
ajaxVMDispatch({action:"change-media", uuid:uuid , cdrom:"" , dev:dev , bus:bus , file:target}, "loadlist");
|
||||
ajaxVMDispatch({action:"change-media", uuid:uuid, cdrom:"", dev:dev, bus:bus, file:target}, "loadlist");
|
||||
box.dialog('close');
|
||||
},
|
||||
"_(Cancel)_": function(){
|
||||
@@ -253,44 +220,32 @@ function getisoimage(uuid,dev,bus,file){
|
||||
dialogStyle();
|
||||
}
|
||||
function VMClone(uuid, name){
|
||||
|
||||
//var root = <?= '"'.$domain_cfg["MEDIADIR"].'"';?>;
|
||||
var match= ".iso";
|
||||
var box = $("#dialogWindow");
|
||||
var height = 200;
|
||||
box.html($("#templateClone").html());
|
||||
box.find('#VMBeingCloned').html(name).change() ;
|
||||
box.find('#target').val(name + "_clone") ;
|
||||
document.getElementById("Free").checked = true ;
|
||||
document.getElementById("Overwrite").checked = true ;
|
||||
var Cancel = _("Cancel") ;
|
||||
box.find('#VMBeingCloned').html(name).change();
|
||||
box.find('#target').val(name + "_clone");
|
||||
document.getElementById("Free").checked = true;
|
||||
document.getElementById("Overwrite").checked = true;
|
||||
box.dialog({
|
||||
title: "VM Clone",
|
||||
resizable: false,
|
||||
title: "_(VM Clone)_",
|
||||
height: 330,
|
||||
width: 600,
|
||||
height: 500,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
show: {effect:'fade', duration:250},
|
||||
hide: {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
"_(Clone)_" : function(){
|
||||
"_(Clone)_": function(){
|
||||
var target = box.find('#target');
|
||||
if (target.length) {
|
||||
target = target.val();
|
||||
//if (!target ) {errorTarget(); return;}
|
||||
//if (!target) {errorTarget(); return;}
|
||||
} else target = '';
|
||||
|
||||
var clone = box.find("#target").prop('value') ;
|
||||
x = box.find('#Start').prop('checked') ;
|
||||
if (x) start = 'yes' ; else start = 'no' ;
|
||||
x = box.find('#Edit').prop('checked') ;
|
||||
if (x) edit = 'yes' ; else edit = 'no' ;
|
||||
x = box.find('#Overwrite').prop('checked') ;
|
||||
if (x) overwrite = 'yes' ; else overwrite = 'no' ;
|
||||
x = box.find('#Free').prop('checked') ;
|
||||
if (x) free = 'yes' ; else free = 'no' ;
|
||||
scripturl = "VMClone.php " + encodeURIComponent("/usr/local/emhttp/plugins/dynamix.vm.manager/include/VMClone.php&" + $.param({action:"clone" , name:name ,clone:clone, overwrite:overwrite , edit:edit, start,start, free:free})) ;
|
||||
openVMAction((scripturl),"VM Clone", "dynamix.vm.manager", "loadlist") ;
|
||||
var clone = box.find("#target").prop('value');
|
||||
var start = box.find('#Start').prop('checked') ? 'yes' : 'no';
|
||||
var edit = box.find('#Edit').prop('checked') ? 'yes' : 'no';
|
||||
var overwrite = box.find('#Overwrite').prop('checked') ? 'yes' : 'no';
|
||||
var free = box.find('#Free').prop('checked') ? 'yes' : 'no';
|
||||
scripturl = "VMClone.php " + encodeURIComponent("/usr/local/emhttp/plugins/dynamix.vm.manager/include/VMClone.php&" + $.param({action:"clone", name:name, clone:clone, overwrite:overwrite, edit:edit, start:start, free:free}));
|
||||
openVMAction((scripturl),"VM Clone", "dynamix.vm.manager", "loadlist");
|
||||
box.dialog('close');
|
||||
},
|
||||
"_(Cancel)_": function(){
|
||||
@@ -300,44 +255,30 @@ function VMClone(uuid, name){
|
||||
});
|
||||
dialogStyle();
|
||||
}
|
||||
|
||||
|
||||
function selectsnapshot(uuid, name ,snaps, opt, getlist,state){
|
||||
|
||||
var root = <?= '"'.$domain_cfg["MEDIADIR"].'"';?>;
|
||||
var match= ".iso";
|
||||
var box = $("#dialogWindow2");
|
||||
var box = $("#dialogWindow");
|
||||
box.html($("#templatesnapshot"+opt).html());
|
||||
var height = 200;
|
||||
const Capopt = opt.charAt(0).toUpperCase() + opt.slice(1) ;
|
||||
var optiontext = Capopt + " Snapshot" ;
|
||||
box.find('#VMName').html(name) ;
|
||||
box.find('#targetsnap').val(snaps) ;
|
||||
box.find('#targetsnapl').html(snaps) ;
|
||||
const capopt = opt.charAt(0).toUpperCase() + opt.slice(1);
|
||||
var optiontext = capopt + " _(Snapshot)_";
|
||||
box.find('#VMName').html(name);
|
||||
box.find('#targetsnap').val(snaps);
|
||||
box.find('#targetsnapl').html(snaps);
|
||||
if (getlist) {
|
||||
var only = 1 ;
|
||||
if (opt == "remove") only = 0;
|
||||
$.post("/plugins/dynamix.vm.manager/include/VMajax.php", {action:"snap-images", uuid:uuid , snapshotname:snaps, only:only}, function(data) {
|
||||
if (data.html) {
|
||||
box.find('#targetsnapimages').html(data.html) ;
|
||||
}
|
||||
var only = (opt == "remove") ? 0 : 1;
|
||||
$.post("/plugins/dynamix.vm.manager/include/VMajax.php", {action:"snap-images", uuid:uuid, snapshotname:snaps, only:only}, function(data) {
|
||||
if (data.html) box.find('#targetsnapimages').html(data.html);
|
||||
},'json');
|
||||
}
|
||||
|
||||
document.getElementById("targetsnaprmv").checked = true ;
|
||||
document.getElementById("targetsnaprmvmeta").checked = true ;
|
||||
document.getElementById("targetsnapkeep").checked = true ;
|
||||
document.getElementById("targetsnapfspc").checked = true ;
|
||||
|
||||
document.getElementById("targetsnaprmv").checked = true;
|
||||
document.getElementById("targetsnaprmvmeta").checked = true;
|
||||
document.getElementById("targetsnapkeep").checked = true;
|
||||
document.getElementById("targetsnapfspc").checked = true;
|
||||
box.dialog({
|
||||
title: "_("+optiontext+ ")_",
|
||||
resizable: false,
|
||||
title: optiontext,
|
||||
height: 330,
|
||||
width: 600,
|
||||
height: 500,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
show: {effect:'fade', duration:250},
|
||||
hide: {effect:'fade', duration:250},
|
||||
|
||||
buttons: {
|
||||
"_(Proceed)_": function(){
|
||||
var target = box.find('#targetsnap');
|
||||
@@ -345,26 +286,22 @@ function selectsnapshot(uuid, name ,snaps, opt, getlist,state){
|
||||
target = target.val();
|
||||
if (!target ) {errorTarget(); return;}
|
||||
} else target = '';
|
||||
var remove = 'yes'
|
||||
var keep = 'yes'
|
||||
var removemeta = 'yes'
|
||||
var remove = 'yes'
|
||||
var keep = 'yes'
|
||||
var removemeta = 'yes'
|
||||
var free = 'yes'
|
||||
var desc = ''
|
||||
box.find('#targetsnap').prop('disabled',true);
|
||||
if (opt == "revert") {
|
||||
var x = box.find('#targetsnaprmv').prop('checked') ;
|
||||
if (x) remove = 'yes' ; else remove = 'no' ;
|
||||
x = box.find('#targetsnaprmvmeta').prop('checked') ;
|
||||
if (x) removemeta = 'yes' ; else removemeta = 'no' ;
|
||||
x = box.find('#targetsnapkeep').prop('checked') ;
|
||||
if (x) keep = 'yes' ; else keep = 'no' ;
|
||||
remove = box.find('#targetsnaprmv').prop('checked') ? 'yes' : 'no';
|
||||
removemeta = box.find('#targetsnaprmvmeta').prop('checked') ? 'yes' : 'no';
|
||||
keep = box.find('#targetsnapkeep').prop('checked') ? 'yes' : 'no';
|
||||
}
|
||||
if (opt == "create") {
|
||||
var x = box.find('#targetsnapfspc').prop('checked') ;
|
||||
if (x) free = 'yes' ; else free = 'no' ;
|
||||
var desc = box.find("#targetsnapdesc").prop('value') ;
|
||||
if (opt == "create") {
|
||||
free = box.find('#targetsnapfspc').prop('checked') ? 'yes' : 'no';
|
||||
desc = box.find("#targetsnapdesc").prop('value');
|
||||
}
|
||||
ajaxVMDispatch({action:"snap-" + opt +'-external', uuid:uuid , snapshotname:target , remove:remove, free:free ,removemeta:removemeta ,keep:keep, desc:desc} , "loadlist");
|
||||
ajaxVMDispatch({action:"snap-" + opt +'-external', uuid:uuid, snapshotname:target, remove:remove, free:free, removemeta:removemeta, keep:keep, desc:desc}, "loadlist");
|
||||
box.dialog('close');
|
||||
},
|
||||
"_(Cancel)_": function(){
|
||||
@@ -374,86 +311,72 @@ function selectsnapshot(uuid, name ,snaps, opt, getlist,state){
|
||||
});
|
||||
dialogStyle();
|
||||
}
|
||||
|
||||
function selectblock(uuid, name ,snaps, opt, getlist,state){
|
||||
|
||||
var root = <?= '"'.$domain_cfg["MEDIADIR"].'"';?>;
|
||||
var match= ".iso";
|
||||
var box = $("#dialogWindow2");
|
||||
function selectblock(uuid, name, snaps, opt, getlist, state){
|
||||
var box = $("#dialogWindow");
|
||||
box.html($("#templateblock").html());
|
||||
var height = 200;
|
||||
const Capopt = opt.charAt(0).toUpperCase() + opt.slice(1) ;
|
||||
var optiontext = Capopt + " Block Devices" ;
|
||||
box.find('#VMName').html(name) ;
|
||||
box.find('#targetsnap').val(snaps) ;
|
||||
box.find('#targetsnapl').html(snaps) ;
|
||||
|
||||
getlist = true ;
|
||||
const capopt = opt.charAt(0).toUpperCase() + opt.slice(1);
|
||||
var optiontext = capopt + " _(Block Devices)_";
|
||||
box.find('#VMName').html(name);
|
||||
box.find('#targetsnap').val(snaps);
|
||||
box.find('#targetsnapl').html(snaps);
|
||||
getlist = true;
|
||||
if (getlist) {
|
||||
var only = 1 ;
|
||||
var only = 1;
|
||||
if (opt == "remove") only = 0;
|
||||
$.post("/plugins/dynamix.vm.manager/include/VMajax.php", {action:"snap-list", uuid:uuid }, function(data) {
|
||||
if (data.html) {
|
||||
var targetbase = document.getElementById("targetblockbase") ;
|
||||
htmlstrbase = "<select class='targetblockbase' name='targetblockbase' id='targetblockbase'><option value='--base'>--base</option>" + data.html + "</select>"
|
||||
htmlstrtop = "<select class='targetblocktop' name='targetblocktop' id='targetblocktop'><option value='--top'>--top</option>" + data.html + "</select>"
|
||||
$("select.targetblockbase").replaceWith(htmlstrbase) ;
|
||||
$("select.targetblocktop").replaceWith(htmlstrtop) ;
|
||||
}
|
||||
$.post("/plugins/dynamix.vm.manager/include/VMajax.php", {action:"snap-list", uuid:uuid}, function(data){
|
||||
if (data.html) {
|
||||
var targetbase = document.getElementById("targetblockbase");
|
||||
htmlstrbase = "<select class='targetblockbase' name='targetblockbase' id='targetblockbase'><option value='--base'>--base</option>" + data.html + "</select>"
|
||||
htmlstrtop = "<select class='targetblocktop' name='targetblocktop' id='targetblocktop'><option value='--top'>--top</option>" + data.html + "</select>"
|
||||
$("select.targetblockbase").replaceWith(htmlstrbase);
|
||||
$("select.targetblocktop").replaceWith(htmlstrtop);
|
||||
}
|
||||
},'json');
|
||||
}
|
||||
|
||||
document.getElementById("targetsnaprmv").checked = true ;
|
||||
document.getElementById("targetsnaprmvmeta").checked = true ;
|
||||
document.getElementById("targetsnapkeep").checked = true ;
|
||||
document.getElementById("targetsnapfspc").checked = true ;
|
||||
if (opt== "pull") {
|
||||
$('.toprow').hide();
|
||||
$('.targetpivotrow').hide();
|
||||
$('.targetdeleterow').hide();
|
||||
} else {
|
||||
$('.toprow').show();
|
||||
$('.targetpivotrow').show();
|
||||
$('.targetdeleterow').show();
|
||||
}
|
||||
|
||||
document.getElementById("targetsnaprmv").checked = true;
|
||||
document.getElementById("targetsnaprmvmeta").checked = true;
|
||||
document.getElementById("targetsnapkeep").checked = true;
|
||||
document.getElementById("targetsnapfspc").checked = true;
|
||||
if (opt == "pull") {
|
||||
$('.toprow').hide();
|
||||
$('.targetpivotrow').hide();
|
||||
$('.targetdeleterow').hide();
|
||||
} else {
|
||||
$('.toprow').show();
|
||||
$('.targetpivotrow').show();
|
||||
$('.targetdeleterow').show();
|
||||
}
|
||||
box.dialog({
|
||||
title: "_("+optiontext+ ")_",
|
||||
resizable: false,
|
||||
title: optiontext,
|
||||
height: 330,
|
||||
width: 600,
|
||||
height: 500,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
show: {effect:'fade', duration:250},
|
||||
hide: {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
_("Action")_: function(){
|
||||
"_(Action)_": function(){
|
||||
var target = box.find('#targetsnap');
|
||||
if (target.length) {
|
||||
target = target.val();
|
||||
if (!target ) {errorTarget(); return;}
|
||||
} else target = '';
|
||||
var remove = 'yes'
|
||||
var keep = 'yes'
|
||||
var removemeta = 'yes'
|
||||
var remove = 'yes'
|
||||
var keep = 'yes'
|
||||
var removemeta = 'yes'
|
||||
var free = 'yes'
|
||||
var delete_file = 'yes'
|
||||
var pivot = 'yes'
|
||||
var desc = ''
|
||||
box.find('#targetsnap').prop('disabled',true);
|
||||
if (opt == "create") {
|
||||
var x = box.find('#targetsnapfspc').prop('checked') ;
|
||||
if (x) free = 'yes' ; else free = 'no' ;
|
||||
var desc = box.find("#targetsnapdesc").prop('value') ;
|
||||
free = box.find('#targetsnapfspc').prop('checked') ? 'yes' : 'no';
|
||||
var desc = box.find("#targetsnapdesc").prop('value');
|
||||
}
|
||||
var targetbase = box.find("#targetblockbase").prop('value') ;
|
||||
var targettop = box.find("#targetblocktop").prop('value') ;
|
||||
|
||||
x = box.find('#targetpivot').prop('checked') ;
|
||||
if (x) pivot = 'yes' ; else pivot = 'no' ;
|
||||
x = box.find('#targetdelete').prop('checked') ;
|
||||
if (x) delete_file = 'yes' ; else delete_file = 'no' ;
|
||||
Ajaxurl = "VMAjaxCall.php " + encodeURIComponent("/usr/local/emhttp/plugins/dynamix.vm.manager/include/VMajax.php&" + $.param({action:opt , name:name ,targetbase:targetbase, targettop:targettop , snapshotname:target , remove:remove, targetpivot:pivot ,removemeta:removemeta ,targetdelete:delete_file})) ;
|
||||
openVMAction((Ajaxurl),"Block Commit", "dynamix.vm.manager", "loadlist") ;
|
||||
var targetbase = box.find("#targetblockbase").prop('value');
|
||||
var targettop = box.find("#targetblocktop").prop('value');
|
||||
pivot = box.find('#targetpivot').prop('checked') ? 'yes' : 'no';
|
||||
delete_file = box.find('#targetdelete').prop('checked') ? 'yes' : 'no';
|
||||
Ajaxurl = "VMAjaxCall.php " + encodeURIComponent("/usr/local/emhttp/plugins/dynamix.vm.manager/include/VMajax.php&" + $.param({action:opt, name:name, targetbase:targetbase, targettop:targettop, snapshotname:target, remove:remove, targetpivot:pivot, removemeta:removemeta, targetdelete:delete_file}));
|
||||
openVMAction((Ajaxurl),"Block Commit", "dynamix.vm.manager", "loadlist");
|
||||
box.dialog('close');
|
||||
},
|
||||
"_(Cancel)_": function(){
|
||||
@@ -463,13 +386,6 @@ function selectblock(uuid, name ,snaps, opt, getlist,state){
|
||||
});
|
||||
dialogStyle();
|
||||
}
|
||||
|
||||
function dialogStyle() {
|
||||
$('.ui-dialog-titlebar-close').css({'background':'transparent','border':'none','font-size':'1.8rem','margin-top':'-14px','margin-right':'-18px'}).html('<i class="fa fa-times"></i>').prop('title');
|
||||
$('.ui-dialog-title').css({'text-align':'center','width':'100%','font-size':'1.8rem'});
|
||||
$('.ui-dialog-content').css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$('.ui-button-text').css({'padding':'0px 5px'});
|
||||
}
|
||||
var sortableHelper = function(e,ui){
|
||||
var child = ui.next();
|
||||
if (child.is(':visible')) child.addClass('unhide').hide();
|
||||
@@ -561,7 +477,17 @@ $(function() {
|
||||
});
|
||||
</script>
|
||||
|
||||
<table id="kvm_table" class="tablesorter four shift">
|
||||
<thead><tr><th class="th1"><a id="resetsort" class="nohand" onclick="resetSorting()" title="Reset sorting"><i class="fa fa-th-list"></i></a>_(Name)_</th><th class="th2">_(Description)_</th><th>_(CPUs)_</th><th>_(Memory)_</th><th>_(vDisks / vCDs)_</th><th>_(Graphics)_</th><th class="th3">_(Autostart)_</th></tr></thead>
|
||||
<tbody id="kvm_list"><tr><td colspan='8'></td></tr></tbody>
|
||||
</table>
|
||||
|
||||
<input type="button" onclick="addVM()" id="btnAddVM" value="_(Add VM)_" style="display:none">
|
||||
<input type="button" onclick="startAll()" value="_(Start All)_" style="display:none">
|
||||
<input type="button" onclick="stopAll()" value="_(Stop All)_" style="display:none">
|
||||
|
||||
<div id="dialogWindow"></div>
|
||||
|
||||
<div markdown="1" id="templateISO" class="template">
|
||||
_(ISO Image)_:
|
||||
: <input type="text" id="target" autocomplete="off" spellcheck="false" value="" data-pickcloseonfile="true" data-pickfolders="true" data-pickfilter="" data-pickmatch="" data-pickroot="" data-picktop="">
|
||||
@@ -569,115 +495,54 @@ _(ISO Image)_:
|
||||
|
||||
<div markdown="1" id="templateISOboth" class="template">
|
||||
_(CD1 ISO Image)_:
|
||||
: <input type="text" id="target" autocomplete="off" spellcheck="false" value="" data-pickcloseonfile="true" data-pickfolders="true" data-pickfilter="" data-pickmatch="" data-pickroot="" data-picktop=""><br>
|
||||
: <input type="text" id="target" autocomplete="off" spellcheck="false" value="" data-pickcloseonfile="true" data-pickfolders="true" data-pickfilter="" data-pickmatch="" data-pickroot="" data-picktop="">
|
||||
|
||||
_(CD2 ISO Image)_:
|
||||
: <input type="text" id="target2" autocomplete="off" spellcheck="false" value="" data-pickcloseonfile="true" data-pickfolders="true" data-pickfilter="" data-pickmatch="" data-pickroot="" data-picktop="">
|
||||
</div>
|
||||
|
||||
<div id="dialogWindow2"></div>
|
||||
<div markdown="1" id="templatesnapshotcreate" class="template">
|
||||
<table id='snapshot'>
|
||||
<br><br>
|
||||
<tr><td> _(VM Name)_:</td><td>
|
||||
<label id="VMName"></label></td></tr>
|
||||
<tr><td>_(Snapshot Name)_:</td><td>
|
||||
<input type="text" id="targetsnap" autocomplete="off" spellcheck="false" value="--generate" onclick="this.select()">
|
||||
_(Check free space)_:
|
||||
<input type="checkbox" id="targetsnapfspc" checked></td></tr>
|
||||
<tr><td>_(Description )_:</td><td>
|
||||
<input type="text" id="targetsnapdesc" autocomplete="off" spellcheck="false" value="" onclick="this.select()"></td></tr>
|
||||
<div id="templatesnapshotcreate" class="template">
|
||||
<table id='snapshot' class='snapshot'>
|
||||
<tr><td>_(VM Name)_:</td><td><label id="VMName"></label></td></tr>
|
||||
<tr><td>_(Snapshot Name)_:</td><td><input type="text" id="targetsnap" autocomplete="off" spellcheck="false" value="--generate" onclick="this.select()">_(Check free space)_: <input type="checkbox" id="targetsnapfspc" checked></td></tr>
|
||||
<tr><td>_(Description )_:</td><td><input type="text" id="targetsnapdesc" autocomplete="off" spellcheck="false" value="" onclick="this.select()"></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div markdown="1" id="templatesnapshotrevert" class="template">
|
||||
_(VM Name)_:
|
||||
<label id="VMName"></label>
|
||||
<br>
|
||||
_(Snapshot Name)_:
|
||||
<input type="text" id="targetsnap" hidden>
|
||||
<label id="targetsnapl"></label><br>
|
||||
_(Remove Images)_:
|
||||
<input type="checkbox" id="targetsnaprmv" checked >
|
||||
_(Remove Meta)_:
|
||||
<input type="checkbox" id="targetsnaprmvmeta" checked>
|
||||
<!--_(Keep snapshot)_:-->
|
||||
<input type="checkbox" id="targetsnapkeep" hidden><br>
|
||||
<div id="templatesnapshotrevert" class="template">
|
||||
_(VM Name)_: <label id="VMName"></label><br>
|
||||
_(Snapshot Name)_: <input type="text" id="targetsnap" hidden><label id="targetsnapl"></label><br>
|
||||
_(Remove Images)_: <input type="checkbox" id="targetsnaprmv" checked><br>
|
||||
_(Remove Meta)_:<input type="checkbox" id="targetsnaprmvmeta" checked> <input type="checkbox" id="targetsnapkeep" hidden><label id="targetsnapimages"></label><br>
|
||||
</div>
|
||||
|
||||
<label id="targetsnapimages"></label><br>
|
||||
<div id="templatesnapshotremove" class="template">
|
||||
<h3>!! _(Warning removing Snapshots can break the chain)_ !!</h3>
|
||||
|
||||
<div markdown="1" id="templatesnapshotremove" class="template" post>
|
||||
_(!! Warning removing Snapshots can break the chain !!)_<br><br>
|
||||
_(VM Name)_: <label id="VMName"></label><br>
|
||||
_(Snapshot Name)_: <input type="text" id="targetsnap" hidden><label id="targetsnapl"></label><label id="targetsnapimages"></label>
|
||||
</div>
|
||||
|
||||
_(VM Name)_:
|
||||
<label id="VMName"></label>
|
||||
<br>
|
||||
_(Snapshot Name)_:
|
||||
<input type="text" id="targetsnap" hidden>
|
||||
<label id="targetsnapl"></label><br>
|
||||
|
||||
<label id="targetsnapimages"></label><br>
|
||||
|
||||
<div markdown="1" id="templateblock" class="template">
|
||||
_(VM Name)_:
|
||||
<label id="VMName"></label>
|
||||
<br>
|
||||
_(Snapshot Name)_:
|
||||
<input type="text" id="targetsnap" hidden>
|
||||
<label id="targetsnapl"></label><br>
|
||||
<br><br><br><br>
|
||||
<table id='block'>
|
||||
<tr><td>_(Base Image)_:</td><td>
|
||||
<select class="targetblockbase" s>
|
||||
</select></td></tr>
|
||||
<tr name="toprow" class="toprow" ><td>_(Top Image )_:</td><td>
|
||||
<select class="targetblocktop" name="targetblocktop" id="targetblocktop">
|
||||
</select></td><td>
|
||||
<tr name="targetpivotrow" class="targetpivotrow" ><td>_(Pivot)_:</td><td>
|
||||
<input type="checkbox" id="targetpivot" checked></td></tr>
|
||||
<tr name="targetdeleterow" class="targetdeleterow" ><td>_(Delete)_:</td><td>
|
||||
<input type="checkbox" id="targetdelete" checked></td></tr>
|
||||
<div id="templateblock" class="template">
|
||||
_(VM Name)_: <label id="VMName"></label><br>
|
||||
_(Snapshot Name)_: <input type="text" id="targetsnap" hidden><label id="targetsnapl"></label><br><br>
|
||||
<table id='block' class='snapshot'>
|
||||
<tr><td>_(Base Image)_:</td><td><select class="targetblockbase"></select></td></tr>
|
||||
<tr name="toprow" class="toprow" ><td>_(Top Image )_:</td><td><select class="targetblocktop" name="targetblocktop" id="targetblocktop"></select></td><td></tr>
|
||||
<tr name="targetpivotrow" class="targetpivotrow" ><td>_(Pivot)_:</td><td><input type="checkbox" id="targetpivot" checked></td></tr>
|
||||
<tr name="targetdeleterow" class="targetdeleterow" ><td>_(Delete)_:</td><td><input type="checkbox" id="targetdelete" checked></td></tr>
|
||||
</table>
|
||||
<input type="checkbox" id="targetsnapkeep" hidden><br>
|
||||
<label id="targetsnapimages"></label><br>
|
||||
</div>
|
||||
|
||||
<div id="dialogWindow"></div>
|
||||
<div markdown="1" id="templateClone" class="template">
|
||||
<html <?=$display['rtl']?>lang="<?=strtok($locale,'_')?:'en'?>">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="viewport" content="width=1600">
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<meta name="referrer" content="same-origin">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/default-fonts.css")?>">
|
||||
</head>
|
||||
<body>
|
||||
<br>
|
||||
<table>
|
||||
<tr><td>_(VM Being Cloned)_:</td>
|
||||
<td><span id="VMBeingCloned"></span></td></tr>
|
||||
|
||||
<tr><td>_(New VM)_:</td>
|
||||
<td><input type="text" id="target" autocomplete="off" spellcheck="false" value="" onclick="this.select()" ></td></tr>
|
||||
|
||||
<tr><td>_(Overwrite)_:</td>
|
||||
<td><input type="checkbox" id="Overwrite" value="" ></td></tr>
|
||||
|
||||
<tr hidden><td>_(Start Cloned VM)_:</td>
|
||||
<td><input type="checkbox" id="Start" value="" ></td></tr>
|
||||
|
||||
<tr hidden><td>_(Edit VM after clone)_:</td>
|
||||
<td><input type="checkbox" id="Edit" value="" ></td></tr>
|
||||
|
||||
<tr><td>_(Check Free Space)_:</td>
|
||||
<td><input type="checkbox" id="Free" value="" ></td></tr>
|
||||
|
||||
<div id="templateClone" class="template">
|
||||
<table class='snapshot'>
|
||||
<tr><td>_(VM Being Cloned)_:</td><td><span id="VMBeingCloned"></span></td></tr>
|
||||
<tr><td>_(New VM)_:</td><td><input type="text" id="target" autocomplete="off" spellcheck="false" value="" onclick="this.select()" ></td></tr>
|
||||
<tr><td>_(Overwrite)_:</td><td><input type="checkbox" id="Overwrite" value="" ></td></tr>
|
||||
<tr hidden><td>_(Start Cloned VM)_:</td><td><input type="checkbox" id="Start" value="" ></td></tr>
|
||||
<tr hidden><td>_(Edit VM after clone)_:</td><td><input type="checkbox" id="Edit" value="" ></td></tr>
|
||||
<tr><td>_(Check Free Space)_:</td><td><input type="checkbox" id="Free" value="" ></td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -61,21 +61,6 @@ $libvirt_log = file_exists("/var/log/libvirt/libvirtd.log");
|
||||
?>
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.filetree.css')?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.switchbutton.css')?>">
|
||||
<style>
|
||||
body{-webkit-overflow-scrolling:touch}
|
||||
.errortext{color:#EF3D47;display:none}
|
||||
.fileTree{background:<?=$bgcolor?>;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
.basic{display:block}
|
||||
.advanced{display:none}
|
||||
#winvirtio{display:none}
|
||||
#download_status{margin-left:5px;color:#777;display:none}
|
||||
#download_button{cursor:pointer;margin-left:-2px;color:#08C;display:none;transform:translate(0px,2px)}
|
||||
#download_button.fa-spin{cursor:default;color:#777}
|
||||
#download_button span{font-family:clear-sans}
|
||||
#download_button.fa-spin span{font-family:clear-sans;display:none}
|
||||
#remove_button{cursor:pointer;margin-left:-2px;color:#EF3D47;display:none;transform:translate(0px,2px)}
|
||||
#remove_button span{font-family:clear-sans}
|
||||
</style>
|
||||
|
||||
<?if ($hardware):?>
|
||||
<span class="status vhshift"><input type="checkbox" class="advancedview"></span>
|
||||
|
||||
@@ -4,8 +4,8 @@ Cond="(pgrep('libvirtd')!==false)"
|
||||
Markdown="false"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2020, Lime Technology
|
||||
* Copyright 2015-2020, Derek Macias, Eric Schultz, Jon Panozzo.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2015-2023, Derek Macias, Eric Schultz, Jon Panozzo.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -15,12 +15,6 @@ Markdown="false"
|
||||
* all copies or substantial portions of the Software.
|
||||
*/
|
||||
?>
|
||||
<style type="text/css">
|
||||
.vmheader{padding:10px;font-size:1.4rem;text-align:left;color:#888}
|
||||
.vmtemplate{display:inline-block;width:80px;height:90px;margin-bottom:15px;margin-left:10px;text-align:center;vertical-align:top}
|
||||
.vmtemplate img{width:48px;height:48px}
|
||||
.vmtemplate p{text-align:center;margin-top:8px;line-height:12px}
|
||||
</style>
|
||||
<?
|
||||
$docroot = $docroot ?? $_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp';
|
||||
require_once "$docroot/plugins/dynamix.vm.manager/include/libvirt_helpers.php";
|
||||
|
||||
@@ -88,55 +88,6 @@ if (isset($_GET['uuid'])) {
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.filetree.css')?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.switchbutton.css')?>">
|
||||
|
||||
<style>
|
||||
body{-webkit-overflow-scrolling:touch}
|
||||
.fileTree{background:<?=$bgcolor?>;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:relative;z-index:100;display:none}
|
||||
#vmform table{margin-top:0}
|
||||
#vmform div.title + table{margin-top:0}
|
||||
#vmform table tr{vertical-align:top;line-height:40px}
|
||||
#vmform table tr td:nth-child(odd){width:300px;text-align:right;padding-right:10px}
|
||||
#vmform table tr td:nth-child(even){width:110px}
|
||||
#vmform table tr td:first-child{padding-right:30px}
|
||||
#vmform table tr td:last-child{width:inherit}
|
||||
#vmform .multiple{position:relative}
|
||||
#vmform .sectionbutton{position:absolute;left:2px;cursor:pointer;opacity:0.4;font-size:1.4rem;line-height:17px;z-index:10;transition-property:opacity,left;transition-duration:0.1s;transition-timing-function:linear}
|
||||
#vmform .sectionbutton.remove{top:0;opacity:0.3}
|
||||
#vmform .sectionbutton.add{bottom:0}
|
||||
#vmform .sectionbutton:hover{opacity:1.0}
|
||||
#vmform .sectiontab{position:absolute;top:2px;bottom:2px;left:0;width:6px;border-radius:3px;background-color:#DDDDDD;transition-property:background,width;transition-duration:0.1s;transition-timing-function:linear}
|
||||
#vmform .multiple:hover .sectionbutton{opacity:0.7;left:4px}
|
||||
#vmform .multiple:hover .sectionbutton.remove{opacity:0.6}
|
||||
#vmform .multiple:hover .sectiontab{background-color:#CCCCCC;width:8px}
|
||||
#vmform table.multiple{margin:10px 0;background:<?=$bgcolor?>;background-size:800px 100%;background-position:-800px;background-repeat:no-repeat;background-clip:content-box;transition:background 0.3s linear}
|
||||
#vmform table.multiple:hover{background-position:0 0;}
|
||||
#vmform table.multiple td{padding:5px 0}
|
||||
span.advancedview_panel{display:none;line-height:16px;margin-top:1px}
|
||||
.basic{display:none}
|
||||
.advanced{/*Empty placeholder*/}
|
||||
.switch-button-label.off{color:inherit}
|
||||
#template_img{cursor:pointer}
|
||||
#template_img:hover{opacity:0.5}
|
||||
#template_img:hover i{opacity:1.0}
|
||||
.template_img_chooser_inner{display:inline-block;width:80px;margin-bottom:15px;margin-right:10px;text-align:center;}
|
||||
.template_img_chooser_inner img{width:48px;height:48px}
|
||||
.template_img_chooser_inner p{text-align:center;line-height:8px;}
|
||||
#template_img_chooser{width:560px;height:300px;overflow-y:scroll;position:relative}
|
||||
#template_img_chooser div:hover{background-color:#eee;cursor:pointer;}
|
||||
#template_img_chooser_outer{position:absolute;display:none;border-radius:5px;border:1px solid <?=$border?>;background:<?=$bgcolor?>;z-index:10}
|
||||
#form_content{display:none}
|
||||
#vmform .four{overflow:hidden}
|
||||
#vmform .four label{float:left;display:table-cell;width:15%;}
|
||||
#vmform .four label:nth-child(4n+4){}
|
||||
#vmform .four label.cpu1{width:28%;height:16px;line-height:16px}
|
||||
#vmform .four label.cpu2{width:3%;height:16px;line-height:16px}
|
||||
#vmform .mac_generate{cursor:pointer;margin-left:-5px;color:#08C;font-size:1.3rem;transform:translate(0px, 2px)}
|
||||
#vmform .disk{display:none}
|
||||
#vmform .disk_preview{display:inline-block;color:#BBB;transform:translate(0px, 1px)}
|
||||
span#dropbox{border:1px solid <?=$border?>;background:<?=$bgcolor?>;padding:28px 12px;line-height:72px;margin-right:16px;}
|
||||
i.fa-plus-circle,i.fa-minus-circle{margin-left:8px}
|
||||
input[type=checkbox]{margin-left:0}
|
||||
</style>
|
||||
|
||||
<span class="status advancedview_panel" style="margin-top:<?=$top?>px"><input type="checkbox" class="advancedview"></span>
|
||||
<div class="domain">
|
||||
<form id="vmform" method="POST">
|
||||
|
||||
@@ -69,14 +69,14 @@ function addVMContext(name, uuid, template, state, vmrcurl, vmrcprotocol, log, c
|
||||
if (x!=-1) path = path.substring(0,x);
|
||||
if (vmrcurl !== "" && state == "running") {
|
||||
if (console == "web" || console == "both") {
|
||||
var vmrctext=_("VM Console") + "(" + vmrcprotocol + ")" ;
|
||||
var vmrctext=_("VM Console") + " (" + vmrcprotocol + ")" ;
|
||||
opts.push({text:vmrctext, icon:"fa-desktop", action:function(e) {
|
||||
e.preventDefault();
|
||||
window.open(vmrcurl, '_blank', 'scrollbars=yes,resizable=yes');
|
||||
}});
|
||||
}
|
||||
if (console == "remote" || console == "both") {
|
||||
opts.push({text:_("VM remote-viewer")+ "(" + vmrcprotocol + ")" , icon:"fa-desktop", action:function(e) {
|
||||
opts.push({text:_("VM remote-viewer")+ " (" + vmrcprotocol + ")" , icon:"fa-desktop", action:function(e) {
|
||||
e.preventDefault();
|
||||
ajaxVMDispatchconsoleRV({action:"domain-consoleRV", uuid:uuid, vmrcurl:vmrcurl}, "loadlist") ;
|
||||
}});
|
||||
@@ -137,12 +137,12 @@ function addVMContext(name, uuid, template, state, vmrcurl, vmrcprotocol, log, c
|
||||
}});
|
||||
if (vmrcprotocol == "VNC" || vmrcprotocol == "SPICE") {
|
||||
if (console == "web" || console == "both") {
|
||||
opts.push({text:_("Start with console")+ "(" + vmrcprotocol + ")" , icon:"fa-play", action:function(e) {
|
||||
opts.push({text:_("Start with console")+ " (" + vmrcprotocol + ")" , icon:"fa-play", action:function(e) {
|
||||
e.preventDefault();
|
||||
ajaxVMDispatchconsole({action:"domain-start-console", uuid:uuid, vmrcurl:vmrcurl}, "loadlist") ;
|
||||
}});}
|
||||
if (console == "remote" || console == "both") {
|
||||
opts.push({text:_("Start with remote-viewer")+ "(" + vmrcprotocol + ")" , icon:"fa-play", action:function(e) {
|
||||
opts.push({text:_("Start with remote-viewer")+ " (" + vmrcprotocol + ")" , icon:"fa-play", action:function(e) {
|
||||
e.preventDefault();
|
||||
ajaxVMDispatchconsoleRV({action:"domain-start-consoleRV", uuid:uuid, vmrcurl:vmrcurl}, "loadlist") ;
|
||||
}});
|
||||
|
||||
@@ -98,5 +98,4 @@ switch ($action) {
|
||||
#execCommand_nchan("ls /") ;
|
||||
write("stop_Wait\0$waitID") ;
|
||||
write('_DONE_','');
|
||||
|
||||
?>
|
||||
4
emhttp/plugins/dynamix.vm.manager/sheets/AddVM-azure.css
Normal file
4
emhttp/plugins/dynamix.vm.manager/sheets/AddVM-azure.css
Normal file
@@ -0,0 +1,4 @@
|
||||
.fileTree{background:#f2f2f2;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:relative;z-index:100;display:none}
|
||||
#vmform table.multiple{margin:10px 0;background:#f2f2f2;background-size:800px 100%;background-position:-800px;background-repeat:no-repeat;background-clip:content-box;transition:background 0.3s linear}
|
||||
#template_img_chooser_outer{position:absolute;display:none;border-radius:5px;border:1px solid <?=$border?>;background:#f2f2f2;z-index:10}
|
||||
span#dropbox{border:1px solid <?=$border?>;background:#f2f2f2;padding:28px 12px;line-height:72px;margin-right:16px;}
|
||||
4
emhttp/plugins/dynamix.vm.manager/sheets/AddVM-black.css
Normal file
4
emhttp/plugins/dynamix.vm.manager/sheets/AddVM-black.css
Normal file
@@ -0,0 +1,4 @@
|
||||
.fileTree{background:#1c1c1c;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:relative;z-index:100;display:none}
|
||||
#vmform table.multiple{margin:10px 0;background:#1c1c1c;background-size:800px 100%;background-position:-800px;background-repeat:no-repeat;background-clip:content-box;transition:background 0.3s linear}
|
||||
#template_img_chooser_outer{position:absolute;display:none;border-radius:5px;border:1px solid <?=$border?>;background:#1c1c1c;z-index:10}
|
||||
span#dropbox{border:1px solid <?=$border?>;background:#1c1c1c;padding:28px 12px;line-height:72px;margin-right:16px;}
|
||||
4
emhttp/plugins/dynamix.vm.manager/sheets/AddVM-gray.css
Normal file
4
emhttp/plugins/dynamix.vm.manager/sheets/AddVM-gray.css
Normal file
@@ -0,0 +1,4 @@
|
||||
.fileTree{background:#1c1c1c;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:relative;z-index:100;display:none}
|
||||
#vmform table.multiple{margin:10px 0;background:#1c1c1c;background-size:800px 100%;background-position:-800px;background-repeat:no-repeat;background-clip:content-box;transition:background 0.3s linear}
|
||||
#template_img_chooser_outer{position:absolute;display:none;border-radius:5px;border:1px solid <?=$border?>;background:#1c1c1c;z-index:10}
|
||||
span#dropbox{border:1px solid <?=$border?>;background:#1c1c1c;padding:28px 12px;line-height:72px;margin-right:16px;}
|
||||
4
emhttp/plugins/dynamix.vm.manager/sheets/AddVM-white.css
Normal file
4
emhttp/plugins/dynamix.vm.manager/sheets/AddVM-white.css
Normal file
@@ -0,0 +1,4 @@
|
||||
.fileTree{background:#f2f2f2;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:relative;z-index:100;display:none}
|
||||
#vmform table.multiple{margin:10px 0;background:#f2f2f2;background-size:800px 100%;background-position:-800px;background-repeat:no-repeat;background-clip:content-box;transition:background 0.3s linear}
|
||||
#template_img_chooser_outer{position:absolute;display:none;border-radius:5px;border:1px solid <?=$border?>;background:#f2f2f2;z-index:10}
|
||||
span#dropbox{border:1px solid <?=$border?>;background:#f2f2f2;padding:28px 12px;line-height:72px;margin-right:16px;}
|
||||
42
emhttp/plugins/dynamix.vm.manager/sheets/AddVM.css
Normal file
42
emhttp/plugins/dynamix.vm.manager/sheets/AddVM.css
Normal file
@@ -0,0 +1,42 @@
|
||||
body{-webkit-overflow-scrolling:touch}
|
||||
#vmform table{margin-top:0}
|
||||
#vmform div.title + table{margin-top:0}
|
||||
#vmform table tr{vertical-align:top;line-height:40px}
|
||||
#vmform table tr td:nth-child(odd){width:300px;text-align:right;padding-right:10px}
|
||||
#vmform table tr td:nth-child(even){width:110px}
|
||||
#vmform table tr td:first-child{padding-right:30px}
|
||||
#vmform table tr td:last-child{width:inherit}
|
||||
#vmform .multiple{position:relative}
|
||||
#vmform .sectionbutton{position:absolute;left:2px;cursor:pointer;opacity:0.4;font-size:1.4rem;line-height:17px;z-index:10;transition-property:opacity,left;transition-duration:0.1s;transition-timing-function:linear}
|
||||
#vmform .sectionbutton.remove{top:0;opacity:0.3}
|
||||
#vmform .sectionbutton.add{bottom:0}
|
||||
#vmform .sectionbutton:hover{opacity:1.0}
|
||||
#vmform .sectiontab{position:absolute;top:2px;bottom:2px;left:0;width:6px;border-radius:3px;background-color:#DDDDDD;transition-property:background,width;transition-duration:0.1s;transition-timing-function:linear}
|
||||
#vmform .multiple:hover .sectionbutton{opacity:0.7;left:4px}
|
||||
#vmform .multiple:hover .sectionbutton.remove{opacity:0.6}
|
||||
#vmform .multiple:hover .sectiontab{background-color:#CCCCCC;width:8px}
|
||||
#vmform table.multiple:hover{background-position:0 0;}
|
||||
#vmform table.multiple td{padding:5px 0}
|
||||
span.advancedview_panel{display:none;line-height:16px;margin-top:1px}
|
||||
.basic{display:none}
|
||||
.advanced{/*Empty placeholder*/}
|
||||
.switch-button-label.off{color:inherit}
|
||||
#template_img{cursor:pointer}
|
||||
#template_img:hover{opacity:0.5}
|
||||
#template_img:hover i{opacity:1.0}
|
||||
.template_img_chooser_inner{display:inline-block;width:80px;margin-bottom:15px;margin-right:10px;text-align:center;}
|
||||
.template_img_chooser_inner img{width:48px;height:48px}
|
||||
.template_img_chooser_inner p{text-align:center;line-height:8px;}
|
||||
#template_img_chooser{width:560px;height:300px;overflow-y:scroll;position:relative}
|
||||
#template_img_chooser div:hover{background-color:#eee;cursor:pointer;}
|
||||
#form_content{display:none}
|
||||
#vmform .four{overflow:hidden}
|
||||
#vmform .four label{float:left;display:table-cell;width:15%;}
|
||||
#vmform .four label:nth-child(4n+4){}
|
||||
#vmform .four label.cpu1{width:28%;height:16px;line-height:16px}
|
||||
#vmform .four label.cpu2{width:3%;height:16px;line-height:16px}
|
||||
#vmform .mac_generate{cursor:pointer;margin-left:-5px;color:#08C;font-size:1.3rem;transform:translate(0px, 2px)}
|
||||
#vmform .disk{display:none}
|
||||
#vmform .disk_preview{display:inline-block;color:#BBB;transform:translate(0px, 1px)}
|
||||
i.fa-plus-circle,i.fa-minus-circle{margin-left:8px}
|
||||
input[type=checkbox]{margin-left:0}
|
||||
@@ -0,0 +1,4 @@
|
||||
.fileTree{background:#f2f2f2;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:relative;z-index:100;display:none}
|
||||
#vmform table.multiple{margin:10px 0;background:#f2f2f2;background-size:800px 100%;background-position:-800px;background-repeat:no-repeat;background-clip:content-box;transition:background 0.3s linear}
|
||||
#template_img_chooser_outer{position:absolute;display:none;border-radius:5px;border:1px solid <?=$border?>;background:#f2f2f2;z-index:10}
|
||||
span#dropbox{border:1px solid <?=$border?>;background:#f2f2f2;padding:28px 12px;line-height:72px;margin-right:16px;}
|
||||
@@ -0,0 +1,4 @@
|
||||
.fileTree{background:#1c1c1c;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:relative;z-index:100;display:none}
|
||||
#vmform table.multiple{margin:10px 0;background:#1c1c1c;background-size:800px 100%;background-position:-800px;background-repeat:no-repeat;background-clip:content-box;transition:background 0.3s linear}
|
||||
#template_img_chooser_outer{position:absolute;display:none;border-radius:5px;border:1px solid <?=$border?>;background:#1c1c1c;z-index:10}
|
||||
span#dropbox{border:1px solid <?=$border?>;background:#1c1c1c;padding:28px 12px;line-height:72px;margin-right:16px;}
|
||||
@@ -0,0 +1,4 @@
|
||||
.fileTree{background:#1c1c1c;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:relative;z-index:100;display:none}
|
||||
#vmform table.multiple{margin:10px 0;background:#1c1c1c;background-size:800px 100%;background-position:-800px;background-repeat:no-repeat;background-clip:content-box;transition:background 0.3s linear}
|
||||
#template_img_chooser_outer{position:absolute;display:none;border-radius:5px;border:1px solid <?=$border?>;background:#1c1c1c;z-index:10}
|
||||
span#dropbox{border:1px solid <?=$border?>;background:#1c1c1c;padding:28px 12px;line-height:72px;margin-right:16px;}
|
||||
@@ -0,0 +1,4 @@
|
||||
.fileTree{background:#f2f2f2;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:relative;z-index:100;display:none}
|
||||
#vmform table.multiple{margin:10px 0;background:#f2f2f2;background-size:800px 100%;background-position:-800px;background-repeat:no-repeat;background-clip:content-box;transition:background 0.3s linear}
|
||||
#template_img_chooser_outer{position:absolute;display:none;border-radius:5px;border:1px solid <?=$border?>;background:#f2f2f2;z-index:10}
|
||||
span#dropbox{border:1px solid <?=$border?>;background:#f2f2f2;padding:28px 12px;line-height:72px;margin-right:16px;}
|
||||
42
emhttp/plugins/dynamix.vm.manager/sheets/UpdateVM.css
Normal file
42
emhttp/plugins/dynamix.vm.manager/sheets/UpdateVM.css
Normal file
@@ -0,0 +1,42 @@
|
||||
body{-webkit-overflow-scrolling:touch}
|
||||
#vmform table{margin-top:0}
|
||||
#vmform div.title + table{margin-top:0}
|
||||
#vmform table tr{vertical-align:top;line-height:40px}
|
||||
#vmform table tr td:nth-child(odd){width:300px;text-align:right;padding-right:10px}
|
||||
#vmform table tr td:nth-child(even){width:110px}
|
||||
#vmform table tr td:first-child{padding-right:30px}
|
||||
#vmform table tr td:last-child{width:inherit}
|
||||
#vmform .multiple{position:relative}
|
||||
#vmform .sectionbutton{position:absolute;left:2px;cursor:pointer;opacity:0.4;font-size:1.4rem;line-height:17px;z-index:10;transition-property:opacity,left;transition-duration:0.1s;transition-timing-function:linear}
|
||||
#vmform .sectionbutton.remove{top:0;opacity:0.3}
|
||||
#vmform .sectionbutton.add{bottom:0}
|
||||
#vmform .sectionbutton:hover{opacity:1.0}
|
||||
#vmform .sectiontab{position:absolute;top:2px;bottom:2px;left:0;width:6px;border-radius:3px;background-color:#DDDDDD;transition-property:background,width;transition-duration:0.1s;transition-timing-function:linear}
|
||||
#vmform .multiple:hover .sectionbutton{opacity:0.7;left:4px}
|
||||
#vmform .multiple:hover .sectionbutton.remove{opacity:0.6}
|
||||
#vmform .multiple:hover .sectiontab{background-color:#CCCCCC;width:8px}
|
||||
#vmform table.multiple:hover{background-position:0 0;}
|
||||
#vmform table.multiple td{padding:5px 0}
|
||||
span.advancedview_panel{display:none;line-height:16px;margin-top:1px}
|
||||
.basic{display:none}
|
||||
.advanced{/*Empty placeholder*/}
|
||||
.switch-button-label.off{color:inherit}
|
||||
#template_img{cursor:pointer}
|
||||
#template_img:hover{opacity:0.5}
|
||||
#template_img:hover i{opacity:1.0}
|
||||
.template_img_chooser_inner{display:inline-block;width:80px;margin-bottom:15px;margin-right:10px;text-align:center;}
|
||||
.template_img_chooser_inner img{width:48px;height:48px}
|
||||
.template_img_chooser_inner p{text-align:center;line-height:8px;}
|
||||
#template_img_chooser{width:560px;height:300px;overflow-y:scroll;position:relative}
|
||||
#template_img_chooser div:hover{background-color:#eee;cursor:pointer;}
|
||||
#form_content{display:none}
|
||||
#vmform .four{overflow:hidden}
|
||||
#vmform .four label{float:left;display:table-cell;width:15%;}
|
||||
#vmform .four label:nth-child(4n+4){}
|
||||
#vmform .four label.cpu1{width:28%;height:16px;line-height:16px}
|
||||
#vmform .four label.cpu2{width:3%;height:16px;line-height:16px}
|
||||
#vmform .mac_generate{cursor:pointer;margin-left:-5px;color:#08C;font-size:1.3rem;transform:translate(0px, 2px)}
|
||||
#vmform .disk{display:none}
|
||||
#vmform .disk_preview{display:inline-block;color:#BBB;transform:translate(0px, 1px)}
|
||||
i.fa-plus-circle,i.fa-minus-circle{margin-left:8px}
|
||||
input[type=checkbox]{margin-left:0}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{background:#f2f2f2;width:500px;max-height:320px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{background:#1c1c1c;width:500px;max-height:320px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{background:#1c1c1c;width:500px;max-height:320px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{background:#f2f2f2;width:500px;max-height:320px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
20
emhttp/plugins/dynamix.vm.manager/sheets/VMMachines.css
Normal file
20
emhttp/plugins/dynamix.vm.manager/sheets/VMMachines.css
Normal file
@@ -0,0 +1,20 @@
|
||||
th.th1{width:25%}
|
||||
th.th2{width:15%}
|
||||
th.th3{width:80px}
|
||||
div.four{font-size:1.1rem;width:260px}
|
||||
div.four label{float:left;display:table-cell;width:25%}
|
||||
div.four label:nth-child(4n+4){float:none;clear:both}
|
||||
div.four label.cpu1{width:32%}
|
||||
div.four label.cpu2{width:26%}
|
||||
div.template,div#dialogWindow,input#upload{display:none}
|
||||
table.domdisk thead tr th:nth-child(1){width:56%!important}
|
||||
table.domdisk thead tr th:nth-child(n+2){width:8%!important}
|
||||
table.domdisk thead tr th:nth-child(1){padding-left:72px}
|
||||
table.domdisk tbody tr td:nth-child(1){padding-left:72px}
|
||||
table.domdisk tbody tr:nth-child(even){background-color:transparent!important}
|
||||
table.domdisk tbody tr:nth-child(4n-1){background-color:transparent!important}
|
||||
table.snapshot{margin-top:0}
|
||||
i.mover{margin-right:8px;display:none}
|
||||
#resetsort{margin-left:12px;display:inline-block;width:32px}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button[disabled]{cursor:default;color:#808080;background:-webkit-gradient(linear,left top,right top,from(#404040),to(#808080)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#404040),to(#808080)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#404040),to(#404040)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#808080),to(#808080)) 100% 100% no-repeat;background:linear-gradient(90deg,#404040 0,#808080) 0 0 no-repeat,linear-gradient(90deg,#404040 0,#808080) 0 100% no-repeat,linear-gradient(0deg,#404040 0,#404040) 0 100% no-repeat,linear-gradient(0deg,#808080 0,#808080) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%}
|
||||
.dropdown-menu{z-index:10001}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{background:#f2f2f2;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{background:#1c1c1c;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{background:#1c1c1c;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
@@ -0,0 +1 @@
|
||||
.fileTree{background:#f2f2f2;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}
|
||||
12
emhttp/plugins/dynamix.vm.manager/sheets/VMSettings.css
Normal file
12
emhttp/plugins/dynamix.vm.manager/sheets/VMSettings.css
Normal file
@@ -0,0 +1,12 @@
|
||||
body{-webkit-overflow-scrolling:touch}
|
||||
.errortext{color:#EF3D47;display:none}
|
||||
.basic{display:block}
|
||||
.advanced{display:none}
|
||||
#winvirtio{display:none}
|
||||
#download_status{margin-left:5px;color:#777;display:none}
|
||||
#download_button{cursor:pointer;margin-left:-2px;color:#08C;display:none;transform:translate(0px,2px)}
|
||||
#download_button.fa-spin{cursor:default;color:#777}
|
||||
#download_button span{font-family:clear-sans}
|
||||
#download_button.fa-spin span{font-family:clear-sans;display:none}
|
||||
#remove_button{cursor:pointer;margin-left:-2px;color:#EF3D47;display:none;transform:translate(0px,2px)}
|
||||
#remove_button span{font-family:clear-sans}
|
||||
4
emhttp/plugins/dynamix.vm.manager/sheets/VMTemplates.css
Normal file
4
emhttp/plugins/dynamix.vm.manager/sheets/VMTemplates.css
Normal file
@@ -0,0 +1,4 @@
|
||||
.vmheader{padding:10px;font-size:1.4rem;text-align:left;color:#888}
|
||||
.vmtemplate{display:inline-block;width:80px;height:90px;margin-bottom:15px;margin-left:10px;text-align:center;vertical-align:top}
|
||||
.vmtemplate img{width:48px;height:48px}
|
||||
.vmtemplate p{text-align:center;margin-top:8px;line-height:12px}
|
||||
@@ -22,13 +22,9 @@
|
||||
--------------------------------------------------
|
||||
S.Fairweather added addition functions to allow being called from external source and form for password.
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<title>Spice Javascript client</title>
|
||||
<base href="spice/">
|
||||
<link rel="stylesheet" type="text/css" href="./spice.css" />
|
||||
@@ -55,7 +51,6 @@
|
||||
.form-container input[type=text]:focus, .form-container input[type=password]:focus {background-color: #ddd;outline: none; }
|
||||
.form-container .btn:hover, .open-button:hover { opacity: 1; }
|
||||
</style>
|
||||
|
||||
<script type="module" crossorigin="anonymous">
|
||||
import * as SpiceHtml5 from './src/main.js';
|
||||
window.connect = connect;
|
||||
@@ -63,13 +58,11 @@
|
||||
var sc;
|
||||
const queryString = window.location.search;
|
||||
const urlParams = new URLSearchParams(queryString);
|
||||
|
||||
var auto = urlParams.get('autoconnect') ;
|
||||
var host = urlParams.get("host") ;
|
||||
var port = urlParams.get("port") ;
|
||||
var vmname = urlParams.get("vmname") ;
|
||||
var password = urlParams.get("password") ;
|
||||
|
||||
if (vmname == null) {
|
||||
vmname = host ;
|
||||
} else {
|
||||
@@ -79,47 +72,36 @@
|
||||
document.getElementById("port").value = port;
|
||||
document.getElementById("password").value = password;
|
||||
document.getElementById('hostname').innerHTML = (vmname) ;
|
||||
|
||||
if (auto === 'true' || auto == '1') {
|
||||
auto = true;
|
||||
connect();
|
||||
}
|
||||
|
||||
function spice_error(e)
|
||||
{
|
||||
disconnect();
|
||||
if (e !== undefined && e.message === "Permission denied.") {
|
||||
document.getElementById("passwordForm").style.display = "block";
|
||||
}
|
||||
document.getElementById("passwordForm").style.display = "block";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function connect()
|
||||
{
|
||||
var host, port, password, scheme = "ws://", uri;
|
||||
if (window.location.protocol == 'https:') {
|
||||
scheme = "wss://";
|
||||
}
|
||||
|
||||
host = document.getElementById("host").value;
|
||||
port = document.getElementById("port").value;
|
||||
password = document.getElementById("password").value;
|
||||
|
||||
|
||||
if ((!host) || (!port)) {
|
||||
console.log("must set host and port");
|
||||
return;
|
||||
}
|
||||
|
||||
if (sc) {
|
||||
sc.stop();
|
||||
}
|
||||
|
||||
uri = scheme + host + port;
|
||||
|
||||
document.getElementById('connectButton').innerHTML = "Stop Connection";
|
||||
document.getElementById('connectButton').onclick = disconnect;
|
||||
|
||||
try
|
||||
{
|
||||
sc = new SpiceHtml5.SpiceMainConn({uri: uri, screen_id: "spice-screen", dump_id: "debug-div",
|
||||
@@ -130,9 +112,7 @@
|
||||
alert(e.toString());
|
||||
disconnect();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function disconnect()
|
||||
{
|
||||
console.log(">> disconnect");
|
||||
@@ -152,14 +132,11 @@
|
||||
}
|
||||
console.log("<< disconnect");
|
||||
}
|
||||
|
||||
function agent_connected(sc)
|
||||
{
|
||||
window.addEventListener('resize', SpiceHtml5.handle_resize);
|
||||
window.spice_connection = this;
|
||||
|
||||
SpiceHtml5.resize_helper(this);
|
||||
|
||||
if (window.File && window.FileReader && window.FileList && window.Blob)
|
||||
{
|
||||
var spice_xfer_area = document.createElement("div");
|
||||
@@ -173,20 +150,15 @@
|
||||
console.log("File API is not supported");
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById('connectButton').onclick = connect();
|
||||
document.getElementById('sendCtrlAltDel').addEventListener('click', function(){ SpiceHtml5.sendCtrlAltDel(sc); });
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="login">
|
||||
<button onclick="open_nav()">☰ SPICE</button>
|
||||
<p id="hostname">Host Console</p>
|
||||
<p id="hostname">Host Console</p>
|
||||
</div>
|
||||
|
||||
<div id="Sidenav" class="SidenavClosed" style="width: 0;">
|
||||
<p class="closebtn" onclick="close_nav()">✖</p>
|
||||
<label for="host">Host:</label> <input type='text' id='host' value='localhost'> <!-- localhost --><br>
|
||||
@@ -196,34 +168,26 @@
|
||||
<button id="sendCtrlAltDel">Send Ctrl-Alt-Delete</button>
|
||||
<button id="debugLogs">Toggle Debug Logs</button>
|
||||
<div id="message-div" class="spice-message" style="display: none;"></div>
|
||||
|
||||
<div id="debug-div">
|
||||
<!-- If DUMPXXX is turned on, dumped images will go here -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="spice-area">
|
||||
<div id="spice-screen" class="spice-screen"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-popup" id="passwordForm">
|
||||
<form action="/action_page.php" class="form-container">
|
||||
<h3>Spice requires a password.</h3>
|
||||
|
||||
<input type="password" autocomplete="off" placeholder="Enter Password" id="psw" name="psw" required>
|
||||
|
||||
<button type="button" class="btn cancel" onclick="connectpsw()">Connect</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
function connectpsw() {
|
||||
document.getElementById("password").value = document.getElementById("psw").value;
|
||||
document.getElementById("passwordForm").style.display = "none";
|
||||
connect() ;
|
||||
document.getElementById("password").value = document.getElementById("psw").value;
|
||||
document.getElementById("passwordForm").style.display = "none";
|
||||
connect() ;
|
||||
}
|
||||
|
||||
function show_debug_Logs() {
|
||||
var content = document.getElementById('message-div')
|
||||
if (content.style.display === 'block') {
|
||||
@@ -232,16 +196,13 @@
|
||||
content.style.display = 'block';
|
||||
}
|
||||
}
|
||||
|
||||
function open_nav() {
|
||||
document.getElementById('Sidenav').className = 'SidenavOpen';
|
||||
}
|
||||
|
||||
function close_nav() {
|
||||
document.getElementById('Sidenav').className = 'SidenavClosed';
|
||||
}
|
||||
document.getElementById('debugLogs').addEventListener('click', function() { show_debug_Logs(); });
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -3,8 +3,8 @@ Name="Apps"
|
||||
Code="e942"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2022, Lime Technology
|
||||
* Copyright 2012-2022, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -14,10 +14,6 @@ Code="e942"
|
||||
* all copies or substantial portions of the Software.
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
div.notice{margin:150px 0 20px 0}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function installPlugin(file) {
|
||||
openPlugin("plugin install "+file,"_(Install Plugin)_","","refresh");
|
||||
|
||||
@@ -81,13 +81,6 @@ function print_error($error) {
|
||||
return sprintf(_('Finding **%s** error'.($error==1?'':'s')),$error?:'0');
|
||||
}
|
||||
?>
|
||||
<style>
|
||||
tr#copy,tr#file{display:none}
|
||||
td.gap{padding-left:26px!important}
|
||||
td.wrap{white-space:normal!important}
|
||||
span#pass{display:none;margin-left:20px}
|
||||
input[type=checkbox]{margin-left:0}
|
||||
</style>
|
||||
<script>
|
||||
var ctrl = '<span class="status <?=$tabbed?"":"vhshift"?>"><a style="cursor:pointer" class="tooltip_diskio" title="_(Toggle reads/writes display)_" onclick="toggle_diskio();return false"><i class="toggle fa"></i></a></span>';
|
||||
|
||||
|
||||
@@ -31,52 +31,12 @@ $dir = htmlspecialchars(str_replace('\\','\\\\',$dir));
|
||||
$lock = $root=='mnt' ? ($main ?: '---') : ($root=='boot' ? _('flash') : '---');
|
||||
$isshare = $root=='mnt' && (!$main || !$next || ($main=='rootshare' && !$rest));
|
||||
$editor = '/boot/config/editor.cfg';
|
||||
$newos = version_compare(parse_ini_file('/etc/unraid-version')['version'],'6.11.9','>');
|
||||
|
||||
if (!file_exists($editor)) file_put_contents($editor,implode("\n",['','txt','js','php','page','plg','xml','old','bak','log','css']));
|
||||
?>
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/jquery.filetree.css")?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/jquery.switchbutton.css")?>">
|
||||
|
||||
<style>
|
||||
div#ace_settingsmenu,table#controls,table#more-controls{margin-top:0;background-color:#f2f2f2}
|
||||
tr.ace_optionsMenuEntry td{padding:4px;color:#1c1b1b}
|
||||
tr.ace_optionsMenuEntry td select option{color:#1c1b1b;background-color:#e8e8e8}
|
||||
<?if ($theme=='black'):?>
|
||||
tr.ace_optionsMenuEntry td select{color:#1c1b1b;border-bottom:1px solid #1c1b1b;background-image:linear-gradient(66.6deg,transparent 60%,#1c1b1b 40%),linear-gradient(113.4deg, #1c1b1b 40%,transparent 60%)}
|
||||
tr.ace_optionsMenuEntry td input[type=number]{color:#1c1b1b}
|
||||
<?endif;?>
|
||||
tr.ace_optionsMenuEntry td input[type=number]::-webkit-inner-spin-button{-webkit-appearance:auto;cursor:pointer}
|
||||
tr.ace_optionsMenuEntry td input[type=number]{-moz-appearance:auto;margin:0}
|
||||
|
||||
.loc{text-align:left!important;padding-left:0!important}
|
||||
<?if ($newos):?>
|
||||
.title{letter-spacing:1px}
|
||||
.title span.left{text-transform:none}
|
||||
<?else:?>
|
||||
#title{letter-spacing:1px}
|
||||
#title span.left{text-transform:none}
|
||||
<?endif;?>
|
||||
table.tablesorter.indexer{margin-top:0}
|
||||
table.tablesorter.indexer thead th:nth-child(1){width:12px;text-align:left;padding-left:11px}
|
||||
table.tablesorter.indexer thead th:nth-child(2){width:3%!important}
|
||||
table.tablesorter.indexer thead th:nth-child(3){width:auto!important}
|
||||
table.tablesorter.indexer thead th:nth-child(n+4){width:10%!important}
|
||||
table.tablesorter.indexer thead th:nth-child(9){width:3%!important}
|
||||
table.tablesorter.indexer tbody tr:hover td{background-color:<?=$dfm['hover']?>}
|
||||
table.tablesorter.indexer thead th{text-align:left}
|
||||
table.tablesorter.indexer tbody td{text-align:left}
|
||||
table.tablesorter.indexer thead th:last-child{text-align:right}
|
||||
table.tablesorter.indexer tbody td:last-child{text-align:right}
|
||||
i[id^="row_"],i[id^="check_"]{cursor:pointer;font-size:1.8rem;color:gray}
|
||||
td[id^="name_"]{cursor:pointer}
|
||||
i.fa-home{font-size:2rem}
|
||||
i.fa-chevron-right{font-size:1.2rem;margin:0 8px}
|
||||
div.autoheight{width:100%;overflow-y:auto;margin-top:<?=$themes1?'-30px':'0'?>}
|
||||
div#buttons{display:none}
|
||||
.dropdown-menu{z-index:10001}
|
||||
</style>
|
||||
|
||||
<script src="<?autov("/webGui/javascript/jquery.filetree.js")?>"></script>
|
||||
<script src="<?autov("/webGui/javascript/jquery.switchbutton.js")?>"></script>
|
||||
<script>
|
||||
|
||||
@@ -3,8 +3,8 @@ Title="CPU Pinning VM"
|
||||
Tag="icon-cpu"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2021, Lime Technology
|
||||
* Copyright 2012-2021, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -41,14 +41,6 @@ function create() {
|
||||
echo "<th>$label</th>".implode(array_map(function($t){return "<th>$t</th>";},$text));
|
||||
}
|
||||
?>
|
||||
<style>
|
||||
table.tablesorter tr>th+th{text-align:right;vertical-align:top}
|
||||
table.tablesorter tr>td+td+td{vertical-align:top}
|
||||
table.tablesorter tr>th+th+th,table.tablesorter tr>td+td{text-align:center}
|
||||
table.tablesorter th:first-child,table.tablesorter td:first-child{width:180px;text-align:left}
|
||||
input.flat{margin:0}
|
||||
input.lock{margin:0}
|
||||
</style>
|
||||
<script>
|
||||
String.prototype.strip = function(){return this.replace(/ |\(|\)|\[|\]/g,'');}
|
||||
String.prototype.encode = function(){return this.replace(/\./g,'%2e');}
|
||||
|
||||
@@ -30,13 +30,10 @@ function isSubpool($name) {
|
||||
$subpool = ($tildaPosition!==false) ? substr($name, $tildaPosition+1) : false;
|
||||
return ($subpool!==false && in_array($subpool, $subpools)) ? $subpool : false;
|
||||
}
|
||||
$bgcolor = strstr('white,azure',$display['theme']) ? '#f2f2f2' : '#1c1c1c';
|
||||
?>
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/jquery.ui.css")?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/plugins/dynamix.docker.manager/styles/style-{$display['theme']}.css")?>">
|
||||
<style>
|
||||
table.divider{margin-top:20px}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function validate(poolname) {
|
||||
var valid = /^[a-z]([a-z0-9~._-]*[a-z_-])*$/;
|
||||
@@ -69,8 +66,6 @@ function addPoolPopup() {
|
||||
resizable: false,
|
||||
width: 600,
|
||||
modal: true,
|
||||
show : {effect:'fade', duration:250},
|
||||
hide : {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
"_(Add)_": function() {
|
||||
if (validate($(this).find('input[name="poolName"]').val())) {
|
||||
@@ -87,7 +82,6 @@ function addPoolPopup() {
|
||||
$('.ui-dialog .ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$(".ui-dialog .ui-dialog-title").css({'text-align':'center','width':'100%'});
|
||||
$(".ui-dialog .ui-dialog-content").css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$(".ui-widget-content").css({'background':'<?=$bgcolor?>'});
|
||||
$(".ui-button-text").css({'padding':'0px 5px'});
|
||||
}
|
||||
function removeOption(inputString,value) {
|
||||
@@ -122,8 +116,6 @@ function addSubpoolPopup(poolname,currentsubpools) {
|
||||
resizable: false,
|
||||
width: 600,
|
||||
modal: true,
|
||||
show : {effect:'fade', duration:250},
|
||||
hide : {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
"_(Add)_": function() {
|
||||
subpool=$(this).find('select[name="subpool"]').val();
|
||||
@@ -136,12 +128,10 @@ function addSubpoolPopup(poolname,currentsubpools) {
|
||||
}
|
||||
}
|
||||
});
|
||||
$(".ui-dialog .ui-dialog-titlebar").addClass('menu');
|
||||
$('.ui-dialog .ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$(".ui-dialog .ui-dialog-title").css({'text-align':'center','width':'100%'});
|
||||
$(".ui-dialog .ui-dialog-content").css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$(".ui-widget-content").css({'background':'<?=$bgcolor?>'});
|
||||
$(".ui-button-text").css({'padding':'0px 5px'});
|
||||
$('.ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$('.ui-dialog-title').css({'text-align':'center','width':'100%','font-size':'1.8rem'});
|
||||
$('.ui-dialog-content').css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$('.ui-button-text').css({'padding':'0px 5px'});
|
||||
}
|
||||
|
||||
<?if (_var($var,'fsState')=="Started"):?>
|
||||
|
||||
@@ -52,10 +52,9 @@ function customTiles($column) {
|
||||
// adjust the text color in log window
|
||||
$fgcolor = in_array($theme,['white','azure']) ? '#1c1c1c' : '#f2f2f2';
|
||||
exec("sed -ri 's/^\.logLine\{color:#......;/.logLine{color:$fgcolor;/' $docroot/plugins/dynamix.docker.manager/log.htm >/dev/null &");
|
||||
|
||||
exec("/etc/rc.d/rc.docker status >/dev/null",$dummy,$dockerd);
|
||||
exec("/etc/rc.d/rc.libvirt status >/dev/null",$dummy,$libvirtd);
|
||||
$domain_cfg = parse_ini_file("/boot/config/domain.cfg");
|
||||
|
||||
$dockerd = $dockerd==0;
|
||||
$libvirtd = $libvirtd==0;
|
||||
$apcupsd = file_exists('/var/run/apcupsd.pid');
|
||||
@@ -173,73 +172,7 @@ switch ($display['theme']) {
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.switchbutton.css')?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.ui.css')?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/plugins/dynamix.docker.manager/styles/style-$theme.css")?>">
|
||||
<style>
|
||||
div.frame{padding-top:14px;padding-bottom:160px}
|
||||
div.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(<?=$themes1?'610px':'580px'?>,1fr));column-gap:20px}
|
||||
div.tile,i.tile{display:none}
|
||||
div#iframe-popup{display:none;-webkit-overflow-scrolling:touch}
|
||||
div.last{padding-bottom:12px}
|
||||
div.leftside{float:left;width:66%}
|
||||
div.rightside{float:right;margin:0;text-align:center}
|
||||
div[id$=chart]{margin:-12px 8px -24px -18px}
|
||||
div.template,div#dialogWindow,input#upload{display:none}
|
||||
span.head_info{width:250px;display:inline-block}
|
||||
span#head_cpu,span#head_ram,#head_ups,#head_apps,#head_vms,#_ups_status_{display:none;margin-left:0}
|
||||
span.head_bar{display:inline-block;width:180px}
|
||||
span.head_gap{padding-left:14px}
|
||||
span.green,span.red,span.orange{padding-left:0}
|
||||
span.ctrl{float:right;margin-top:0;margin-right:10px}
|
||||
span.ctrl span{font-size:2rem!important}
|
||||
span.outer{float:left}
|
||||
span.inner{width:143px}
|
||||
span.rx{width:80px;display:inline-block}
|
||||
span.busy,i.inactive{opacity:0.5}
|
||||
span.dense{width:180px;display:inline-block}
|
||||
span#ups_model{margin-right:30px}
|
||||
span#chart-toggle{float:right}
|
||||
span.header,tr.header{font-size:1.1rem!important;text-transform:uppercase;letter-spacing:1px}
|
||||
span.wg1{font-size:1.1rem;text-indent:24px}
|
||||
span.wg2{font-size:1.1rem}
|
||||
span[id^=cpu],span[id^=sys]{width:0}
|
||||
span[class^="fa "]{font-size:1.6rem;margin-right:18px}
|
||||
span.load.resize{font-size:1.1rem}
|
||||
span.fan{width:36%;display:inline-block}
|
||||
span.w18{width:18%;display:inline-block;float:left}
|
||||
span.w26{width:26%;display:inline-block;float:left}
|
||||
span.w36{width:36%;display:inline-block;float:left}
|
||||
span.w44{width:44%;display:inline-block;float:left}
|
||||
span.w72{width:72%;display:inline-block;float:left}
|
||||
select#cpuline,select#netline{border:none;padding:0 12px 0 0}
|
||||
select[name=enter_share],select[name=enter_user]{margin-top:0;float:none}
|
||||
img#mycase{width:auto;max-width:128px;height:auto;max-height:128px}
|
||||
i.heat{margin-left:8px}
|
||||
i.ups{margin-right:8px;font-size:1.4rem!important}
|
||||
i.vpn{font-size:1.4rem!important;cursor:pointer}
|
||||
i.indent{display:inline-block;width:18px}
|
||||
i.f32{font-size:32px!important}
|
||||
i.f14{font-size:1.4rem!important}
|
||||
i.fa.orb{margin-left:0}
|
||||
i.fa-wrench.tile{color:#0099ff!important;background-color:rgba(0,153,255,0.1)!important}
|
||||
i[class^="icon-"]{font-size:1.6rem;margin-right:8px}
|
||||
i[class^="icon-u-"]{font-size:inherit}
|
||||
i#mycase[class^="case-"]{font-size:128px}
|
||||
i#mycase[class^="fa "]{font-size:96px}
|
||||
a.cpu_close,span.hand{cursor:pointer;z-index:1001}
|
||||
tr#var0,tr#var1,tr#var2,tr#var3,tr#var4{cursor:alias}
|
||||
tr#var1,tr#var4,tr#cpu_chart,.cpu_open{display:none}
|
||||
td.none{text-align:center;padding-top:12px}
|
||||
input[value=Edit]{margin:12px 0 0 0;padding:5px 10px}
|
||||
.share1,.share3,.user1,.user3,.view1,.view2,.view3,.view4,.unused{display:none}
|
||||
.port_view,.control,#apps,#vms{z-index:10000}
|
||||
.flat{height:0;lineheight:0}
|
||||
.wrap{white-space:normal}
|
||||
.switch-button-background{margin-left:0;margin-top:4px}
|
||||
.switch-button-label{margin-top:3px}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button[disabled]{cursor:default;color:#808080;background:-webkit-gradient(linear,left top,right top,from(#404040),to(#808080)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#404040),to(#808080)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#404040),to(#404040)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#808080),to(#808080)) 100% 100% no-repeat;background:linear-gradient(90deg,#404040 0,#808080) 0 0 no-repeat,linear-gradient(90deg,#404040 0,#808080) 0 100% no-repeat,linear-gradient(0deg,#404040 0,#404040) 0 100% no-repeat,linear-gradient(0deg,#808080 0,#808080) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%}
|
||||
#current_time{font-size:4rem;margin-left:8px}
|
||||
#current_date{font-size:1.3rem;margin-left:18px}
|
||||
span.ampm{font-size:2rem}
|
||||
</style>
|
||||
|
||||
<script src="<?autov('/webGui/javascript/jquery.apexcharts.js')?>"></script>
|
||||
<script src="<?autov('/webGui/javascript/jquery.switchbutton.js')?>"></script>
|
||||
<script src="<?autov('/plugins/dynamix.docker.manager/javascript/docker.js')?>"></script>
|
||||
@@ -251,7 +184,7 @@ span.ampm{font-size:2rem}
|
||||
<table id='db-box1' class='share_status dashboard'>
|
||||
<tbody class='system'>
|
||||
<tr><td><i class='icon-performance f32'></i><div class='section'><?=_var($var,'NAME')?><br>
|
||||
<span><?=_var($var,'COMMENT')?></span><br></div>
|
||||
<span><?=_var($var,'COMMENT')?></span><span id="_current_time_" class="head_time"></span><br></div>
|
||||
<a href='/Dashboard/Settings/Identification'><i class='fa fa-fw fa-cog control' title="_(Go to identification settings)_"></i></a><i class='fa fa-fw fa-wrench control tile' onclick='contentMgmt()' title="_(Tile Management)_"></i>
|
||||
<span class='ctrl'>
|
||||
<?if ($parity||$mover||$btrfs):?>
|
||||
@@ -333,7 +266,7 @@ foreach ($cpus as $pair) {
|
||||
<tr><td><span class='w36'><i class='ups fa fa-compress'></i>_(Usable size)_: <?=my_scale($total,$unit,1,null,1024)." $unit"?></span><i class='ups fa fa-expand'></i>_(Maximum size)_: <?="$memory_maximum $unit"?><?=$low?'*':''?></td></tr>
|
||||
<tr id='var0'><td><span class='w26'><i class='ups fa fa-fw fa-microchip'></i>_(RAM)_</span><span class='w72'><span class='sys0 load resize'>0%</span><div class='usage-disk sys'><span id='sys0'></span><span></span></div></span></td></tr>
|
||||
<tr id='var1'><td><span class='w26'><i class='ups fa fa-fw fa-shield'></i>_(ZFS)_</span><span class='w72'><span class='sys1 load resize'>0%</span><div class='usage-disk sys'><span id='sys1'></span><span></span></div></span></td></tr>
|
||||
<tr id='var2'><td><span class='w26'><i class='ups fa fa-fw fa-suitcase'></i>_(Flash)_</span><span class='w72'><span class='sys2 load resize'>0%</span><div class='usage-disk sys'><span id='sys2'></span><span></span></div></span></td></tr>
|
||||
<tr id='var2'><td><span class='w26'><i class='ups fa fa-fw fa-pencil-square'></i>_(Flash)_</span><span class='w72'><span class='sys2 load resize'>0%</span><div class='usage-disk sys'><span id='sys2'></span><span></span></div></span></td></tr>
|
||||
<tr id='var3'><td><span class='w26'><i class='ups fa fa-fw fa-file-text'></i>_(Log)_</span><span class='w72'><span class='sys3 load resize'>0%</span><div class='usage-disk sys'><span id='sys3'></span><span></span></div></span></td></tr>
|
||||
<tr id='var4'><td><span class='w26'><i class='ups fa fa-fw fa-docker'></i>_(Docker)_</span><span class='w72'><span class='sys4 load resize'>0%</span><div class='usage-disk sys'><span id='sys4'></span><span></span></div></span></td></tr>
|
||||
</tbody>
|
||||
@@ -666,6 +599,7 @@ if (!$group) {
|
||||
<input type='hidden' name='csrf_token' value='<?=_var($var,'csrf_token')?>'>
|
||||
<input type='hidden' name='cmd' value=''>
|
||||
</form>
|
||||
|
||||
<div id="iframe-popup"></div>
|
||||
|
||||
<div id="templateContentMgmt" class="template">
|
||||
@@ -716,9 +650,8 @@ function hideShow() {
|
||||
!-->
|
||||
</div>
|
||||
|
||||
<div id="dialogWindow"></div>
|
||||
<div markdown="1" id="templateClone" class="template">
|
||||
<table>
|
||||
<div id="templateClone" class="template">
|
||||
<table class="snapshot">
|
||||
<tr><td>_(VM Being Cloned)_:</td><td><span id="VMBeingCloned"></span></td></tr>
|
||||
<tr><td>_(New VM)_:</td><td><input type="text" id="target" autocomplete="off" spellcheck="false" value="" onclick="this.select()"></td></tr>
|
||||
<tr><td>_(Overwrite)_:</td><td><input type="checkbox" id="Overwrite" value="" ></td></tr>
|
||||
@@ -728,9 +661,8 @@ function hideShow() {
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="dialogWindow2"></div>
|
||||
<div markdown="1" id="templatesnapshotcreate" class="template">
|
||||
<table id="snapshot">
|
||||
<div id="templatesnapshotcreate" class="template">
|
||||
<table id="snapshot" class="snapshot">
|
||||
<tr><td>_(VM Name)_:</td><td><label id="VMName"></label></td></tr>
|
||||
<tr><td>_(Snapshot Name)_:</td><td><input type="text" id="targetsnap" autocomplete="off" spellcheck="false" value="--generate" onclick="this.select()">_(Check free space)_:<input type="checkbox" id="targetsnapfspc" checked></td></tr>
|
||||
<tr><td>_(Description)_:</td><td><input type="text" id="targetsnapdesc" autocomplete="off" spellcheck="false" value="" onclick="this.select()"></td></tr>
|
||||
@@ -794,19 +726,13 @@ jQuery.prototype.mixedView = function(s) {
|
||||
this.find('tr:gt(0)').hide();
|
||||
this.find('span[id^="head_"]').show();
|
||||
this.find('span[id^="tile_"]').hide();
|
||||
this.find('span#_cpu_').prop('id','cpu');
|
||||
this.find('span#_sys0_').prop('id','sys0');
|
||||
this.find('span#_ups_loadpct_').prop('id','ups_loadpct');
|
||||
this.find('span#_ups_status_').prop('id','ups_status');
|
||||
changeSpan(this,0)
|
||||
return;
|
||||
}
|
||||
this.find('tr:gt(0)').show();
|
||||
this.find('span#cpu:first').prop('id','_cpu_');
|
||||
this.find('span#sys0:first').prop('id','_sys0_');
|
||||
this.find('span#ups_loadpct:first').prop('id','_ups_loadpct_');
|
||||
this.find('span#ups_status:first').prop('id','_ups_status_');
|
||||
this.find('span[id^="head_"]').hide();
|
||||
this.find('span[id^="tile_"]').show();
|
||||
changeSpan(this,1)
|
||||
if (this.attr('data')) {
|
||||
setTimeout(this.attr('data'));
|
||||
}
|
||||
@@ -866,63 +792,6 @@ var netchart = new ApexCharts(document.querySelector('#netchart'), options_net);
|
||||
if ($.cookie('port_select')!=null && !ports.includes($.cookie('port_select'))) $.removeCookie('port_select');
|
||||
var port_select = $.cookie('port_select')||ports[0];
|
||||
|
||||
function selectsnapshot(uuid, name ,snaps, opt, getlist){
|
||||
var root = <?= '"'.$domain_cfg["MEDIADIR"].'"';?>;
|
||||
var match= ".iso";
|
||||
var box = $("#dialogWindow2");
|
||||
box.html($("#templatesnapshot"+opt).html());
|
||||
var height = 200;
|
||||
const Capopt = opt.charAt(0).toUpperCase() + opt.slice(1);
|
||||
var optiontext = Capopt + " Snapshot";
|
||||
box.find('#VMName').html(name);
|
||||
box.find('#targetsnap').val(snaps);
|
||||
box.find('#targetsnapl').html(snaps);
|
||||
if (getlist) {
|
||||
var only = (opt == "remove") ? 0 : 1;
|
||||
$.post("/plugins/dynamix.vm.manager/include/VMajax.php", {action:"snap-images", uuid:uuid, snapshotname:snaps, only:only}, function(data){if (data.html) box.find('#targetsnapimages').html(data.html);},'json');
|
||||
}
|
||||
document.getElementById("targetsnapfspc").checked = true;
|
||||
box.dialog({
|
||||
title: "_("+optiontext+ ")_",
|
||||
resizable: false,
|
||||
width: 600,
|
||||
height: 500,
|
||||
modal: true,
|
||||
show: {effect:'fade', duration:250},
|
||||
hide: {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
"_(Proceed)_": function(){
|
||||
var target = box.find('#targetsnap');
|
||||
if (target.length) {
|
||||
target = target.val();
|
||||
if (!target) {errorTarget(); return;}
|
||||
} else target = '';
|
||||
var remove = 'yes';
|
||||
var removemeta = 'yes';
|
||||
var keep = 'yes';
|
||||
var free = 'yes';
|
||||
var desc = '';
|
||||
box.find('#targetsnap').prop('disabled',true);
|
||||
if (opt == "revert") {
|
||||
remove = box.find('#targetsnaprmv').prop('checked') ? 'yes' : 'no';
|
||||
removemeta = box.find('#targetsnaprmvmeta').prop('checked') ? 'yes' : 'no';
|
||||
keep = box.find('#targetsnapkeep').prop('checked') ? 'yes' : 'no';
|
||||
}
|
||||
if (opt == "create") {
|
||||
free = box.find('#targetsnapfspc').prop('checked') ? 'yes' : 'no';
|
||||
desc = box.find("#targetsnapdesc").prop('value');
|
||||
}
|
||||
ajaxVMDispatch({action:"snap-" + opt +'-external', uuid:uuid, snapshotname:target, remove:remove, free:free, desc:desc}, "loadlist");
|
||||
box.dialog('close');
|
||||
},
|
||||
"_(Cancel)_": function(){
|
||||
box.dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
dialogStyle();
|
||||
}
|
||||
|
||||
function initCharts(clear) {
|
||||
$.post('/webGui/include/InitCharts.php',{cmd:'get'},function(data) {
|
||||
data = JSON.parse(data);
|
||||
@@ -1068,6 +937,13 @@ function changeMode(item) {
|
||||
<?endif;?>
|
||||
$('select[name="enter_user"]').val(item);
|
||||
}
|
||||
function changeSpan(span,dir) {
|
||||
const spans = ['cpu','sys0','ups_loadpct','ups_status','current_time'];
|
||||
switch (dir) {
|
||||
case 0: for (var i=0,id; id=spans[i]; i++) span.find('span#_'+id+'_').prop('id',id); break;
|
||||
case 1: for (var i=0,id; id=spans[i]; i++) span.find('span#'+id+':first').prop('id','_'+id+'_'); break;
|
||||
}
|
||||
}
|
||||
function changeView(item) {
|
||||
if (item==0) $.removeCookie('enter_view'); else $.cookie('enter_view',item,{expires:3650});
|
||||
if (item==0) $('.view1').show(); else $('.view1').hide();
|
||||
@@ -1319,10 +1195,7 @@ function showContent() {
|
||||
tbody.find('tr:gt(0)').hide();
|
||||
tbody.find('span[id^="head_"]').show();
|
||||
tbody.find('span[id^="tile_"]').hide();
|
||||
tbody.find('span#_cpu_').prop('id','cpu');
|
||||
tbody.find('span#_sys0_').prop('id','sys0');
|
||||
tbody.find('span#_ups_loadpct_').prop('id','ups_loadpct');
|
||||
tbody.find('span#_ups_status_').prop('id','ups_status');
|
||||
changeSpan(tbody,0);
|
||||
}
|
||||
}
|
||||
if (count['db-box1']>0) $('div#tile1').show();
|
||||
@@ -1381,17 +1254,21 @@ function dismiss(button) {
|
||||
inactive.push(tbody.attr('sort'));
|
||||
$.cookie('inactive_content',inactive.join(';'),{expires:3650});
|
||||
}
|
||||
function dialogStyle() {
|
||||
$('.ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$('.ui-dialog-title').css({'text-align':'center','width':'100%','font-size':'1.8rem'});
|
||||
$('.ui-dialog-content').css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$('.ui-button-text').css({'padding':'0px 5px'});
|
||||
}
|
||||
function contentMgmt() {
|
||||
box = $("#iframe-popup");
|
||||
box.html($("#templateContentMgmt").html().build());
|
||||
box.dialog({
|
||||
title: "_(Tile Management)_",
|
||||
height: 350,
|
||||
height: 330,
|
||||
width: 900,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
show: {effect:'fade', duration:250},
|
||||
hide: {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
"_(Reset)_": function(){
|
||||
$.removeCookie('db-box1');
|
||||
@@ -1417,10 +1294,94 @@ function contentMgmt() {
|
||||
}
|
||||
}
|
||||
});
|
||||
$('.ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$('.ui-dialog-title').css({'text-align':'center','width':'100%','font-size':'1.8rem'});
|
||||
$('.ui-dialog-content').css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$('.ui-button-text').css({'padding':'0px 5px'});
|
||||
dialogStyle();
|
||||
}
|
||||
function VMClone(uuid, name){
|
||||
box = $("#iframe-popup");
|
||||
box.html($("#templateClone").html());
|
||||
box.find('#VMBeingCloned').html(name).change();
|
||||
box.find('#target').val(name + "_clone");
|
||||
document.getElementById("Free").checked = true;
|
||||
document.getElementById("Overwrite").checked = true;
|
||||
box.dialog({
|
||||
title: "_(VM Clone)_",
|
||||
height: 330,
|
||||
width: 600,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
buttons: {
|
||||
"_(Clone)_": function(){
|
||||
var target = box.find('#target');
|
||||
if (target.length) {
|
||||
target = target.val();
|
||||
//if (!target) {errorTarget(); return;}
|
||||
} else target = '';
|
||||
var clone = box.find("#target").prop('value');
|
||||
var start = box.find('#Start').prop('checked') ? 'yes' : 'no';
|
||||
var edit = box.find('#Edit').prop('checked') ? 'yes' : 'no';
|
||||
var overwrite = box.find('#Overwrite').prop('checked') ? 'yes' : 'no';
|
||||
var free = box.find('#Free').prop('checked') ? 'yes' : 'no';
|
||||
var scripturl = "VMClone.php " + encodeURIComponent("/usr/local/emhttp/plugins/dynamix.vm.manager/include/VMClone.php&" + $.param({action:"clone", name:name, clone:clone, overwrite:overwrite, edit:edit, start:start, free:free}));
|
||||
openVMAction((scripturl),"VM Clone", "dynamix.vm.manager", "loadlist");
|
||||
box.dialog('close');
|
||||
},
|
||||
"_(Cancel)_": function(){
|
||||
box.dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
dialogStyle();
|
||||
}
|
||||
function selectsnapshot(uuid, name ,snaps, opt, getlist){
|
||||
box = $("#iframe-popup");
|
||||
box.html($("#templatesnapshot"+opt).html());
|
||||
const capopt = opt.charAt(0).toUpperCase() + opt.slice(1);
|
||||
var optiontext = capopt + " _(Snapshot)_";
|
||||
box.find('#VMName').html(name);
|
||||
box.find('#targetsnap').val(snaps);
|
||||
box.find('#targetsnapl').html(snaps);
|
||||
if (getlist) {
|
||||
var only = (opt == "remove") ? 0 : 1;
|
||||
$.post("/plugins/dynamix.vm.manager/include/VMajax.php", {action:"snap-images", uuid:uuid, snapshotname:snaps, only:only}, function(data){if (data.html) box.find('#targetsnapimages').html(data.html);},'json');
|
||||
}
|
||||
document.getElementById("targetsnapfspc").checked = true;
|
||||
box.dialog({
|
||||
title: optiontext,
|
||||
height: 330,
|
||||
width: 600,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
buttons: {
|
||||
"_(Proceed)_": function(){
|
||||
var target = box.find('#targetsnap');
|
||||
if (target.length) {
|
||||
target = target.val();
|
||||
if (!target) {errorTarget(); return;}
|
||||
} else target = '';
|
||||
var remove = 'yes';
|
||||
var removemeta = 'yes';
|
||||
var keep = 'yes';
|
||||
var free = 'yes';
|
||||
var desc = '';
|
||||
box.find('#targetsnap').prop('disabled',true);
|
||||
if (opt == "revert") {
|
||||
remove = box.find('#targetsnaprmv').prop('checked') ? 'yes' : 'no';
|
||||
removemeta = box.find('#targetsnaprmvmeta').prop('checked') ? 'yes' : 'no';
|
||||
keep = box.find('#targetsnapkeep').prop('checked') ? 'yes' : 'no';
|
||||
}
|
||||
if (opt == "create") {
|
||||
free = box.find('#targetsnapfspc').prop('checked') ? 'yes' : 'no';
|
||||
desc = box.find("#targetsnapdesc").prop('value');
|
||||
}
|
||||
ajaxVMDispatch({action:"snap-" + opt +'-external', uuid:uuid, snapshotname:target, remove:remove, free:free, desc:desc}, "loadlist");
|
||||
box.dialog('close');
|
||||
},
|
||||
"_(Cancel)_": function(){
|
||||
box.dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
dialogStyle();
|
||||
}
|
||||
|
||||
var sortableHelper = function(e,ui){
|
||||
@@ -1643,52 +1604,4 @@ $(function() {
|
||||
$.post('/webGui/include/InitCharts.php',{cmd:'set',data:JSON.stringify(data)});
|
||||
});
|
||||
});
|
||||
function dialogStyle() {
|
||||
$('.ui-dialog-titlebar-close').css({'background':'transparent','border':'none','font-size':'1.8rem','margin-top':'-14px','margin-right':'-18px'}).html('<i class="fa fa-times"></i>').prop('title');
|
||||
$('.ui-dialog-title').css({'text-align':'center','width':'100%','font-size':'1.8rem'});
|
||||
$('.ui-dialog-content').css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$('.ui-button-text').css({'padding':'0px 5px'});
|
||||
}
|
||||
function VMClone(uuid, name){
|
||||
//var root = <?= '"'.$domain_cfg["MEDIADIR"].'"';?>;
|
||||
var match= ".iso";
|
||||
var box = $("#dialogWindow");
|
||||
var height = 200;
|
||||
box.html($("#templateClone").html());
|
||||
box.find('#VMBeingCloned').html(name).change() ;
|
||||
box.find('#target').val(name + "_clone") ;
|
||||
document.getElementById("Free").checked = true ;
|
||||
document.getElementById("Overwrite").checked = true ;
|
||||
var Cancel = _("Cancel") ;
|
||||
box.dialog({
|
||||
title: "VM Clone",
|
||||
resizable: false,
|
||||
width: 600,
|
||||
height: 500,
|
||||
modal: true,
|
||||
show: {effect:'fade', duration:250},
|
||||
hide: {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
"_(Clone)_": function(){
|
||||
var target = box.find('#target');
|
||||
if (target.length) {
|
||||
target = target.val();
|
||||
//if (!target ) {errorTarget(); return;}
|
||||
} else target = '';
|
||||
var clone = box.find("#target").prop('value');
|
||||
var start = box.find('#Start').prop('checked') ? 'yes' : 'no';
|
||||
var edit = box.find('#Edit').prop('checked') ? 'yes' : 'no';
|
||||
var overwrite = box.find('#Overwrite').prop('checked') ? 'yes' : 'no';
|
||||
var free = box.find('#Free').prop('checked') ? 'yes' : 'no';
|
||||
var scripturl = "VMClone.php " + encodeURIComponent("/usr/local/emhttp/plugins/dynamix.vm.manager/include/VMClone.php&" + $.param({action:"clone", name:name, clone:clone, overwrite:overwrite, edit:edit, start:start, free:free}));
|
||||
openVMAction((scripturl),"VM Clone", "dynamix.vm.manager", "loadlist");
|
||||
box.dialog('close');
|
||||
},
|
||||
"_(Cancel)_": function(){
|
||||
box.dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
dialogStyle();
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -15,10 +15,6 @@ Cond="strpos(_var($disks[$name],'status'),'_NP')===false"
|
||||
* all copies or substantial portions of the Software.
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
input[type=date]{border:none;margin-left:-2px;padding-left:0;background:transparent;box-shadow:none}
|
||||
select.noframe{border:none;margin-left:0;padding-left:0;background:transparent;box-shadow:none}
|
||||
</style>
|
||||
<script>
|
||||
function disklog(disk,key,value) {
|
||||
$.post('/webGui/include/DiskLog.php',{disk:disk,key:key,value:value});
|
||||
|
||||
@@ -23,7 +23,6 @@ $disk = &$disks[$name] ?? [];
|
||||
$dev = _var($disk,'device');
|
||||
$disk['id'] = _var($disk,'id');
|
||||
$events = explode('|',$disk['smEvents'] ?? $var['smEvents'] ?? $numbers);
|
||||
$bgcolor = in_array($display['theme'],['white','azure']) ? '#f2f2f2' : '#1c1c1c';
|
||||
$mode = ['Disabled','Hourly','Daily','Weekly','Monthly'];
|
||||
$days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
|
||||
|
||||
@@ -107,14 +106,7 @@ $text = isPool($name) ? _('This will ERASE content of ALL devices in the pool')
|
||||
?>
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/jquery.ui.css")?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/plugins/dynamix.docker.manager/styles/style-{$display['theme']}.css")?>">
|
||||
<style>
|
||||
input.option{display:none;width:40px}
|
||||
select.option,#autosize{display:none}
|
||||
span#devtext{display:none;font-weight:bold}
|
||||
span#helptext{display:none;font-style:italic}
|
||||
span.code{display:inline-block;width:186px}
|
||||
i.fa-info.i{margin-right:10px}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
if ($.cookie('deletepool')) {
|
||||
$.removeCookie('deletepool');
|
||||
@@ -489,8 +481,6 @@ function renamePoolPopup() {
|
||||
resizable: false,
|
||||
width: 600,
|
||||
modal: true,
|
||||
show : {effect:'fade', duration:250},
|
||||
hide : {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
"_(Rename)_": function() {
|
||||
if (validate($(this).find('input[name="poolName"]').val())) {
|
||||
@@ -503,12 +493,10 @@ function renamePoolPopup() {
|
||||
}
|
||||
}
|
||||
});
|
||||
$(".ui-dialog .ui-dialog-titlebar").addClass('menu');
|
||||
$('.ui-dialog .ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$(".ui-dialog .ui-dialog-title").css({'text-align':'center','width':'100%'});
|
||||
$(".ui-dialog .ui-dialog-content").css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$(".ui-widget-content").css({'background':'<?=$bgcolor?>'});
|
||||
$(".ui-button-text").css({'padding':'0px 5px'});
|
||||
$('.ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$('.ui-dialog-title').css({'text-align':'center','width':'100%','font-size':'1.8rem'});
|
||||
$('.ui-dialog-content').css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$('.ui-button-text').css({'padding':'0px 5px'});
|
||||
}
|
||||
function deletePool() {
|
||||
$.cookie('deletepool','deletepool');
|
||||
|
||||
@@ -4,8 +4,8 @@ Icon="icon-diagnostics"
|
||||
Tag="tv"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2022, Lime Technology
|
||||
* Copyright 2012-2022, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -18,17 +18,6 @@ Tag="tv"
|
||||
<?
|
||||
$zip = htmlspecialchars(str_replace(' ','_',strtolower($var['NAME'])));
|
||||
?>
|
||||
<style>
|
||||
ul,li{margin:0;padding-top:0;padding-bottom:0}
|
||||
pre.pre{margin:30px 0}
|
||||
pre>p{margin:0;padding:0}
|
||||
pre#swaltext{height:600px!important}
|
||||
@media (max-width:960px){pre#swaltext{height:400px!important}}
|
||||
@media (max-width:960px){.sweet-alert.nchan{height:600px;width:900px;margin-left:-470px}}
|
||||
@media (max-height:768px){pre#swaltext{height:400px!important}}
|
||||
@media (max-height:768px){.sweet-alert.nchan{height:600px;width:900px;margin-left:-470px}}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
var diagnosticsFile = "";
|
||||
var nchan_diagnostics = new NchanSubscriber('/sub/diagnostics',{subscriber:'websocket'});
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
Type="xmenu"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2020, Lime Technology
|
||||
* Copyright 2012-2020, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -31,20 +31,9 @@ $end = count($refs)-1;
|
||||
$prev = urlencode($i>0 ? $refs[$i-1] : $refs[$end]);
|
||||
$next = urlencode($i<$end ? $refs[$i+1] : $refs[0]);
|
||||
?>
|
||||
<style>
|
||||
div.clone1{position:absolute;right:0;margin-top:0}
|
||||
div.clone2{position:absolute;right:0;margin-top:48px}
|
||||
<?if ($themes1):?>
|
||||
span.wrap{display:inline-block;width:128px}
|
||||
select.clone{min-width:123px;margin-right:0}
|
||||
<?else:?>
|
||||
span.wrap{display:inline-block;width:150px}
|
||||
select.clone{min-width:145px;margin-right:0}
|
||||
<?endif;?>
|
||||
input.clone{margin-left:8px;margin-right:0}
|
||||
span.clone,i.clone{margin-right:4px}
|
||||
</style>
|
||||
<script>
|
||||
var ctrl = "<span class='ctrl2 status <?=$tabbed?'vhshift':'vshift'?>'><a href='/Shares/Disk?name=<?=$prev?>' title='previous disk share'><button type='button' style='margin-right:4px'><i class='fa fa-chevron-left fa-fw'></i></button></a><a href='/Shares/Disk?name=<?=$next?>' title='next disk share'><button type='button'><i class='fa fa-chevron-right fa-fw'></i></button></a></span>";
|
||||
|
||||
function toggleButton(button,id) {
|
||||
var disabled = true;
|
||||
switch (id) {
|
||||
@@ -58,8 +47,6 @@ function toggleButton(button,id) {
|
||||
$('input#'+button).prop('disabled',disabled);
|
||||
}
|
||||
|
||||
var ctrl = "<span class='ctrl2 status <?=$tabbed?'vhshift':'vshift'?>'><a href='/Shares/Disk?name=<?=$prev?>' title='previous disk share'><button type='button' style='margin-right:4px'><i class='fa fa-chevron-left fa-fw'></i></button></a><a href='/Shares/Disk?name=<?=$next?>' title='next disk share'><button type='button'><i class='fa fa-chevron-right fa-fw'></i></button></a></span>";
|
||||
|
||||
$(function() {
|
||||
<?if ($tabbed):?>
|
||||
$('.tabs').append(ctrl);
|
||||
|
||||
@@ -15,11 +15,6 @@ Cond="_var($var,'fsState')!='Stopped' && _var($var,'shareDisk')!='no'"
|
||||
* all copies or substantial portions of the Software.
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
table.share_status thead tr td:first-child{width:15%}
|
||||
table.share_status thead tr td:nth-child(n+3){width:10%}
|
||||
</style>
|
||||
|
||||
<table class="share_status">
|
||||
<thead><tr><td>_(Name)_</td><td>_(Comment)_</td><td>_(SMB)_</td><td>_(NFS)_</td><td>_(Type)_</td><td>_(Size)_</td><td>_(Free)_</td></tr></thead>
|
||||
<tbody id="disk_list"></tbody>
|
||||
|
||||
@@ -29,10 +29,6 @@ function displayTemp($temp) {
|
||||
return (is_numeric($temp) && _var($display,'unit')=='F') ? round(9/5*$temp)+32 : $temp;
|
||||
}
|
||||
?>
|
||||
<style>
|
||||
span.code{display:inline-block;width:186px}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function base64(str) {
|
||||
return window.btoa(unescape(encodeURIComponent(str)));
|
||||
|
||||
@@ -22,12 +22,6 @@ $plugins = '/var/log/plugins';
|
||||
|
||||
require_once "$docroot/plugins/dynamix.plugin.manager/include/PluginHelpers.php";
|
||||
?>
|
||||
<style>
|
||||
span#dropbox{margin-right:20px;}
|
||||
i.top{position:relative;padding-left:4px;cursor:pointer;}
|
||||
select.fixed{max-width:166px}
|
||||
</style>
|
||||
|
||||
<script src="<?autov('/webGui/javascript/jquery.filedrop.js')?>"></script>
|
||||
<script>
|
||||
var path = '/boot/config/plugins/dynamix';
|
||||
|
||||
@@ -71,20 +71,6 @@ $vlan_eth0 = $sort_eth0 = [];
|
||||
if (isset($eth0)) foreach (vlanID($eth0) as $key => $val) {$vlan_eth0[] = index($key); $sort_eth0[] = (int)$val;}
|
||||
array_multisort($sort_eth0,$vlan_eth0);
|
||||
?>
|
||||
<style>
|
||||
span.red{color:#E68A00}
|
||||
span.blue{color:#00529B}
|
||||
span.green{color:#4F8A10}
|
||||
span.vshift{margin-top:0!important}
|
||||
input.gap{margin-right:6px}
|
||||
input.form{font-size:1rem;padding:5px 10px;margin-left:10px}
|
||||
div.shade-white{background-color:#ededed;margin-top:10px;padding:8px 0 3px 0}
|
||||
div.shade-black{background-color:#212121;margin-top:10px;padding:8px 0 3px 0}
|
||||
div.shade-azure{background-color:#edeaef;margin-top:10px;padding:8px 0 3px 0}
|
||||
div.shade-gray{background-color:#121510;margin-top:10px;padding:8px 0 3px 0}
|
||||
select.slim{min-width:47px;margin-left:4px}
|
||||
input.slim{width:32px;margin-left:8px}
|
||||
</style>
|
||||
<script>
|
||||
<?if ($build):?>
|
||||
refresh(); // automatically include new ethernet ports
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
Type="xmenu"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2020, Lime Technology
|
||||
* Copyright 2012-2020, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -18,19 +18,6 @@ function clone_list($disk) {
|
||||
return strpos($disk['status'],'_NP')===false && ($disk['type']=='Data' || in_array($disk['name'],$pools));
|
||||
}
|
||||
?>
|
||||
<style>
|
||||
div.clone1{position:absolute;right:0;margin-top:0}
|
||||
div.clone2{position:absolute;right:0;margin-top:48px}
|
||||
<?if ($themes1):?>
|
||||
span.wrap{display:inline-block;width:128px}
|
||||
select.clone{min-width:123px;margin-right:0}
|
||||
<?else:?>
|
||||
span.wrap{display:inline-block;width:150px}
|
||||
select.clone{min-width:145px;margin-right:0}
|
||||
<?endif;?>
|
||||
input.clone{margin-left:8px;margin-right:0}
|
||||
span.clone,i.clone{margin-right:4px}
|
||||
</style>
|
||||
<script>
|
||||
function toggleButton(button,id) {
|
||||
var disabled = true;
|
||||
|
||||
@@ -4,7 +4,7 @@ Tag="flag"
|
||||
Cond="($var['regTy']!='Pro')"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2022, Lime Technology
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -14,10 +14,6 @@ Cond="($var['regTy']!='Pro')"
|
||||
* all copies or substantial portions of the Software.
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
span.info{margin-left:12px}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function installKey(file) {
|
||||
file = file.trim();
|
||||
|
||||
@@ -28,13 +28,6 @@ $tail = '")"></i>';
|
||||
foreach (glob("$plugins/lang-*.xml",GLOB_NOSORT) as $xml_file) $installed[] = language('LanguageLocal',$xml_file).$head.str_replace('lang-','',basename($xml_file,'.xml')).$tail;
|
||||
?>
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.switchbutton.css')?>">
|
||||
<style>
|
||||
select.wide{min-width:<?=$themes2?'314':'300'?>px}
|
||||
div.notice{margin-top:70px;margin-bottom:30px}
|
||||
div#selectlang{margin-top:20px}
|
||||
label.button{font-family:clear-sans;font-size:1.1rem;font-weight:bold;letter-spacing:1.8px;text-transform:uppercase;min-width:86px;margin:0;padding:8px;text-align:center;text-decoration:none;white-space:nowrap;cursor:pointer;outline:none;border-radius:4px;border:none;color:#ff8c2f;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 0 no-repeat,-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#e22828),to(#e22828)) 0 100% no-repeat,-webkit-gradient(linear,left bottom,left top,from(#ff8c2f),to(#ff8c2f)) 100% 100% no-repeat;background:linear-gradient(90deg,#e22828 0,#ff8c2f) 0 0 no-repeat,linear-gradient(90deg,#e22828 0,#ff8c2f) 0 100% no-repeat,linear-gradient(0deg,#e22828 0,#e22828) 0 100% no-repeat,linear-gradient(0deg,#ff8c2f 0,#ff8c2f) 100% 100% no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%}
|
||||
label.button:hover{color:#f2f2f2;background:-webkit-gradient(linear,left top,right top,from(#e22828),to(#ff8c2f));background:linear-gradient(90deg,#e22828 0,#ff8c2f)}
|
||||
</style>
|
||||
|
||||
<script src="<?autov('/webGui/javascript/jquery.switchbutton.js')?>"></script>
|
||||
<script>
|
||||
|
||||
@@ -190,10 +190,6 @@ foreach ($output as $line) {
|
||||
}
|
||||
sort($portsInUse,SORT_NUMERIC);
|
||||
?>
|
||||
<style>
|
||||
span.warning{margin-left:20px}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function provisionHandler(event, form) { // provisions and renewals require being Signed In to Unraid.net
|
||||
if (event.submitter.value === 'Delete') return true; // always allow deletes
|
||||
|
||||
@@ -26,13 +26,6 @@ if (file_exists($cfg)) {
|
||||
$exclude_interfaces = "";
|
||||
}
|
||||
?>
|
||||
<style>
|
||||
span[id^="info-"]{margin-left:20px}
|
||||
<?if ($themes1):?>
|
||||
span.status.vhshift{margin-right:-10px!important}
|
||||
<?endif;?>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function prepareText(form) {
|
||||
var mgmt = ['br0','bond0','eth0'];
|
||||
|
||||
@@ -34,12 +34,6 @@ foreach ($rules as $rule) {
|
||||
}
|
||||
ksort($link,SORT_NATURAL);
|
||||
?>
|
||||
<style>
|
||||
span[id^="info-"]{margin-left:20px}
|
||||
<?if ($themes1):?>
|
||||
span.status.vhshift{margin-right:-10px!important}
|
||||
<?endif;?>
|
||||
</style>
|
||||
<script>
|
||||
var info = {};
|
||||
<?foreach ($link as $eth => $val):?>
|
||||
|
||||
@@ -4,8 +4,8 @@ Icon="icon-config"
|
||||
Tag="cog"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2020, Lime Technology
|
||||
* Copyright 2012-2020, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -26,10 +26,6 @@ if ($newarray) {
|
||||
foreach ($pools as $pool) @unlink("/var/tmp/$pool.log.tmp");
|
||||
}
|
||||
?>
|
||||
<style>
|
||||
span.indent{display:inline-block;width:240px;margin-top:30px}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function prepareNewConfig(form) {
|
||||
for (var i=1,item; item=form.preset.options[i]; i++) {
|
||||
|
||||
@@ -22,12 +22,6 @@ function data_disks($disk) {
|
||||
return (_var($disk,'type')=="Data" || (_var($disk,'type')=="Cache" && in_array(_var($disk,'name'),$pools))) && _var($disk,'status')=='DISK_OK';
|
||||
}
|
||||
?>
|
||||
<style>
|
||||
span.block{display:inline-block;width:300px;margin:24px 0}
|
||||
pre.pre{margin:30px 0;padding:20px}
|
||||
pre>p{margin:0;padding:0}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function selection(select,remove) {
|
||||
if (remove) {
|
||||
|
||||
@@ -5,8 +5,8 @@ Icon="icon-notifications"
|
||||
Tag="phone-square"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2022, Lime Technology
|
||||
* Copyright 2012-2022, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
* Copyright 2012, Andrew Hamer-Adams, http://www.pixeleyes.co.nz.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -21,11 +21,6 @@ Tag="phone-square"
|
||||
$events = explode('|', $notify['events'] ?? '');
|
||||
$disabled = $notify['system'] ? '' : 'disabled';
|
||||
?>
|
||||
<style>
|
||||
select.a{min-width:220px}
|
||||
input.a{width:220px}
|
||||
span.a{display:inline-block;width:220px;font-style:italic}
|
||||
</style>
|
||||
<script>
|
||||
function prepareNotify(form) {
|
||||
form.entity.value = form.normal1.checked | form.warning1.checked | form.alert1.checked;
|
||||
|
||||
@@ -20,12 +20,6 @@ Tag="archive"
|
||||
$files = count(glob("{$notify['path']}/archive/*.notify", GLOB_NOSORT));
|
||||
$filters = mk_option(0,'',_('No filter')).mk_option(0,'alert',_('Alerts')).mk_option(0,'warning',_('Warnings')).mk_option(0,'normal',_('Notices'));
|
||||
?>
|
||||
<style>
|
||||
select.filter{margin:0}
|
||||
span.right{margin-top:-6px;font-size:1.3rem!important;padding:0!important}
|
||||
i.red-text{font-size:1.6rem}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
var rows = [];
|
||||
var filter = "<?=unscript(_var($_GET,'filter'))?>";
|
||||
|
||||
@@ -24,12 +24,6 @@ if (!file_exists($log)) touch($log);
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/jquery.ui.css")?>">
|
||||
<link type="text/css" rel="stylesheet" href="<?autov("/plugins/dynamix.docker.manager/styles/style-$theme.css")?>">
|
||||
|
||||
<style>
|
||||
div#templateWindow,div#dialogWindow{display:none}
|
||||
span.dim{opacity:0.2}
|
||||
#screenlog{margin-left:0}
|
||||
</style>
|
||||
|
||||
<div markdown="1" style="width:43%;margin-bottom:40px;padding:5px 15px;border:solid 1px">
|
||||
:php_settings_plug:
|
||||
This utility is used for development purposes only and allows Plugin Authors to verify their PHP code by enabling different levels of PHP error reporting.
|
||||
@@ -137,8 +131,6 @@ function PHPinfo() {
|
||||
height: Math.min(window.innerHeight-80,800),
|
||||
width: Math.min(window.innerWidth,1200),
|
||||
modal: true,
|
||||
show: {effect:'fade', duration:250},
|
||||
hide: {effect:'fade', duration:250},
|
||||
buttons: {
|
||||
"_(Done)_": function(){
|
||||
box.dialog('close');
|
||||
@@ -147,7 +139,8 @@ function PHPinfo() {
|
||||
});
|
||||
$('.ui-dialog-titlebar-close').css({'display':'none'});
|
||||
$('.ui-dialog-title').css({'text-align':'center','width':'100%','font-size':'1.8rem'});
|
||||
$('.ui-button-text').css({'padding':'0 5px'});
|
||||
$('.ui-dialog-content').css({'padding-top':'15px','vertical-align':'bottom'});
|
||||
$('.ui-button-text').css({'padding':'0px 5px'});
|
||||
}
|
||||
function preset(form) {
|
||||
// reset to default settings
|
||||
|
||||
@@ -29,12 +29,6 @@ foreach ($other as $port) {
|
||||
}
|
||||
}
|
||||
?>
|
||||
<style>
|
||||
input.fixed{width:200px;}
|
||||
<?if ($themes1):?>
|
||||
span.status.vhshift{margin-right:-10px!important}
|
||||
<?endif;?>
|
||||
</style>
|
||||
<script>
|
||||
function deleteRoute(gateway,route,metric) {
|
||||
swal({title:"Delete route?",text:route+" by gateway "+gateway,type:"warning",html:true,showCancelButton:true,confirmButtonText:"_(Proceed)_",cancelButtonText:"_(Cancel)_"},function(){
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
Type="xmenu"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2021, Lime Technology
|
||||
* Copyright 2012-2021, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -38,20 +38,6 @@ if ($name) {
|
||||
$tabbed = false;
|
||||
}
|
||||
?>
|
||||
<style>
|
||||
div.clone1{position:absolute;right:10px;margin-top:0}
|
||||
div.clone2{position:absolute;right:10px;margin-top:48px}
|
||||
span.input{display:inline-block;width:330px}
|
||||
<?if ($themes1):?>
|
||||
span.wrap{display:inline-block;width:128px}
|
||||
select.clone{min-width:123px;max-width:123px;margin-right:0}
|
||||
<?else:?>
|
||||
span.wrap{display:inline-block;width:150px}
|
||||
select.clone{min-width:145px;max-width:145px;margin-right:0}
|
||||
<?endif;?>
|
||||
input.clone{margin-left:8px;margin-right:0}
|
||||
span.clone{margin-right:4px}
|
||||
</style>
|
||||
<script>
|
||||
function toggleButton(button,id) {
|
||||
var disabled = true;
|
||||
|
||||
@@ -98,18 +98,6 @@ function direction() {
|
||||
// global shares include/exclude
|
||||
$myDisks = array_filter(array_diff(array_keys(array_filter($disks,'my_disks')), explode(',',$var['shareUserExclude'])), 'globalInclude');
|
||||
?>
|
||||
<style>
|
||||
div.shade-white{background-color:#ededed;margin-top:10px;padding:8px 0 3px 0}
|
||||
div.shade-black{background-color:#212121;margin-top:10px;padding:8px 0 3px 0}
|
||||
div.shade-azure{background-color:#edeaef;margin-top:10px;padding:8px 0 3px 0}
|
||||
div.shade-gray{background-color:#121510;margin-top:10px;padding:8px 0 3px 0}
|
||||
#s1,#s2,#s3,#s4,#s5,#autosize,.empty,.full2,#zfs-name{display:none}
|
||||
i.fa-info.i{margin-right:10px}
|
||||
<?if ($themes1):?>
|
||||
form[name=share_edit]{margin-top:-20px}
|
||||
<?endif;?>
|
||||
</style>
|
||||
|
||||
:share_edit_global1_help:
|
||||
<?if ($name):?>
|
||||
:share_edit_global2_help:
|
||||
|
||||
@@ -15,14 +15,6 @@ Cond="_var($var,'fsState')!='Stopped' && _var($var,'shareUser')=='e'"
|
||||
* all copies or substantial portions of the Software.
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
table.share_status thead tr td:first-child{width:15%}
|
||||
table.share_status thead tr td:nth-child(n+3){width:9%!important}
|
||||
table.share_status thead tr td:nth-child(5){width:13%!important}
|
||||
td.empty{text-align:center;padding-top:12px}
|
||||
i.fa-fw{margin-right:2px}
|
||||
</style>
|
||||
|
||||
<table class="share_status">
|
||||
<thead><tr><td>_(Name)_</td><td>_(Comment)_</td><td>_(SMB)_</td><td>_(NFS)_</td><td>_(Storage)_</td><td>_(Size)_</td><td>_(Free)_</td></tr></thead>
|
||||
<tbody id="shareslist"></tbody>
|
||||
|
||||
@@ -4,8 +4,8 @@ Icon="icon-hardware"
|
||||
Tag="server"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2021, Lime Technology
|
||||
* Copyright 2012-2021, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -15,12 +15,6 @@ Tag="server"
|
||||
* all copies or substantial portions of the Software.
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
table.pre{margin-top:0;background:transparent}
|
||||
table.pre td:first-child{width:144px}
|
||||
table tr td{padding:0 0 3px 0;margin:0}
|
||||
table tr td.thin{line-height:8px;height:8px}
|
||||
</style>
|
||||
<script>
|
||||
$(function(){
|
||||
$('#t1').load('/webGui/include/SysDevs.php',{table:'t1'});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Menu="UNRAID-OS"
|
||||
Title="System Drivers"
|
||||
Icon="fa-sitemap"
|
||||
Icon="icon-packages"
|
||||
Tag="server"
|
||||
---
|
||||
<?PHP
|
||||
@@ -15,18 +15,6 @@ Tag="server"
|
||||
* all copies or substantial portions of the Software.
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
table.t1{margin-top:0; border-collapse: collapse; border-spacing: 0;}
|
||||
table.t1 tr td{padding:0 0 3px 0;margin:0}
|
||||
table.t1 tr td.thin{line-height:8px;height:8px}
|
||||
table.t1 tr>td{width:1%;text-align:centre;white-space: nowrap}
|
||||
table.t1 tr>td+td{width:1%;white-space:nowrap}
|
||||
table.t1 tr>td+td+td{width:auto;text-align:left}
|
||||
table.t1 tr>td+td+td+td{text-align:left}
|
||||
table.t1 tr>td+td+td+td+td{text-align:left}
|
||||
.t1.tablesorter .filtered{display:none}
|
||||
</style>
|
||||
|
||||
<script type="text/javascript" src="/webGui/javascript/jquery.tablesorter.widgets.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@ Title="Syslinux Configuration"
|
||||
Tag="edit"
|
||||
---
|
||||
<?PHP
|
||||
/* Copyright 2005-2020, Lime Technology
|
||||
* Copyright 2012-2020, Bergware International.
|
||||
/* Copyright 2005-2023, Lime Technology
|
||||
* Copyright 2012-2023, Bergware International.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version 2,
|
||||
@@ -31,28 +31,7 @@ $menu = 'menu default';
|
||||
$mark = 'label ';
|
||||
?>
|
||||
<link type="text/css" rel="stylesheet" href="<?autov('/webGui/styles/jquery.switchbutton.css')?>">
|
||||
<style>
|
||||
div.basic{display:block}
|
||||
div.advanced{display:none}
|
||||
textarea.raw{resize:none;font-family:bitstream;width:65.5%}
|
||||
<?
|
||||
switch (strtok($display['theme'],'-')) {
|
||||
case 'gray':
|
||||
case 'azure':
|
||||
echo "span.array,span.system{margin-left:33.33%;width:65.5%;padding:2px 10px;font-weight:bold;border:solid 1px #606E7F;border-bottom:none}\n";
|
||||
echo "textarea.menu{margin-left:33.33%;width:65.5%;margin-bottom:12px;padding:4px 10px;font-family:bitstream;border-top:none}\n";
|
||||
break;
|
||||
case 'white':
|
||||
echo "span.array,span.system{margin-left:33.33%;width:65.5%;padding:2px 10px;font-weight:bold;border:solid 1px #1c1c1c;border-bottom:none}\n";
|
||||
echo "textarea.menu{margin-left:33.33%;width:65.5%;margin-bottom:12px;padding:4px 10px;font-family:bitstream;border:1px solid #1c1b1b;border-top:none}\n";
|
||||
break;
|
||||
case 'black':
|
||||
echo "span.array,span.system{margin-left:33.33%;width:65.5%;padding:2px 10px;font-weight:bold;border:solid 1px #f2f2f2;border-bottom:none}\n";
|
||||
echo "textarea.menu{margin-left:33.33%;width:65.5%;margin-bottom:12px;padding:4px 10px;font-family:bitstream;border:1px solid #f2f2f2;border-top:none}\n";
|
||||
break;
|
||||
}
|
||||
?>
|
||||
</style>
|
||||
|
||||
<script src="<?autov('/webGui/javascript/jquery.switchbutton.js')?>"></script>
|
||||
<script>
|
||||
const title = '<?=$title?>';
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user