Merge pull request #1462 from bergware/master

Miscellaneous updates and fixes
This commit is contained in:
tom mortensen
2023-10-15 14:24:33 -07:00
committed by GitHub
229 changed files with 1085 additions and 1458 deletions

View File

@@ -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';

View 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}

View File

@@ -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,

View File

@@ -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>

View File

@@ -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)">

View File

@@ -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,

View File

@@ -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">

View File

@@ -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);
},

View File

@@ -0,0 +1 @@
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#f2f2f2}

View File

@@ -0,0 +1 @@
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#1c1c1c}

View File

@@ -0,0 +1 @@
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#1c1c1c}

View File

@@ -0,0 +1 @@
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#f2f2f2}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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}

View File

@@ -0,0 +1 @@
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#f2f2f2}

View File

@@ -0,0 +1 @@
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#1c1c1c}

View File

@@ -0,0 +1 @@
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#1c1c1c}

View File

@@ -0,0 +1 @@
.fileTree{width:240px;max-height:200px;overflow-y:scroll;overflow-x:hidden;position:absolute;display:none;background:#f2f2f2}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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>

View File

@@ -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;}

View File

@@ -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 = {};

View File

@@ -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>

View File

@@ -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'});

View File

@@ -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}

View File

@@ -0,0 +1,2 @@
#plugin_tree{width:33%;height:200px;overflow-y:scroll}
table tbody td{line-height:normal}

View File

@@ -0,0 +1 @@
span.vhshift{margin-top:13px!important}

View File

@@ -0,0 +1 @@
span.vhshift{margin-top:13px!important}

View 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}

View File

@@ -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,

View File

@@ -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,

View File

@@ -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>

View File

@@ -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>

View File

@@ -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";

View File

@@ -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">

View File

@@ -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") ;
}});

View File

@@ -98,5 +98,4 @@ switch ($action) {
#execCommand_nchan("ls /") ;
write("stop_Wait\0$waitID") ;
write('_DONE_','');
?>

View 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;}

View 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;}

View 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;}

View 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;}

View 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}

View 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;}

View 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;}

View 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;}

View 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;}

View 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}

View File

@@ -0,0 +1 @@
.fileTree{background:#f2f2f2;width:500px;max-height:320px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}

View File

@@ -0,0 +1 @@
.fileTree{background:#1c1c1c;width:500px;max-height:320px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}

View File

@@ -0,0 +1 @@
.fileTree{background:#1c1c1c;width:500px;max-height:320px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}

View File

@@ -0,0 +1 @@
.fileTree{background:#f2f2f2;width:500px;max-height:320px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}

View 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}

View File

@@ -0,0 +1 @@
.fileTree{background:#f2f2f2;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}

View File

@@ -0,0 +1 @@
.fileTree{background:#1c1c1c;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}

View File

@@ -0,0 +1 @@
.fileTree{background:#1c1c1c;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}

View File

@@ -0,0 +1 @@
.fileTree{background:#f2f2f2;width:300px;max-height:150px;overflow-y:scroll;overflow-x:hidden;position:absolute;z-index:100;display:none}

View 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}

View 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}

View File

@@ -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()">&#9776; 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()">&#10006;</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>

View File

@@ -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");

View File

@@ -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>';

View File

@@ -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>

View File

@@ -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');}

View File

@@ -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"):?>

View File

@@ -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>

View File

@@ -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});

View File

@@ -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');

View File

@@ -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'});

View File

@@ -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);

View File

@@ -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>

View File

@@ -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)));

View File

@@ -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';

View File

@@ -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

View File

@@ -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;

View File

@@ -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();

View File

@@ -28,13 +28,6 @@ $tail = '&quot;)"></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>

View File

@@ -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

View File

@@ -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'];

View File

@@ -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):?>

View File

@@ -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++) {

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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'))?>";

View File

@@ -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

View File

@@ -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(){

View File

@@ -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;

View File

@@ -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:

View File

@@ -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>

View File

@@ -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'});

View File

@@ -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">

View File

@@ -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