Merge pull request #1 from gfjardim/master

Some bugfixes
This commit is contained in:
Eric Schultz
2016-03-14 23:46:09 -05:00
5 changed files with 86 additions and 446 deletions

View File

@@ -22,7 +22,6 @@ $DockerClient = new DockerClient();
$DockerUpdate = new DockerUpdate();
$DockerTemplates = new DockerTemplates();
?>
<link type="text/css" rel="stylesheet" href="/plugins/dynamix.docker.manager/styles/gh-buttons.css">
<link type="text/css" rel="stylesheet" href="/webGui/styles/jquery.ui.css">
<link type="text/css" rel="stylesheet" href="/webGui/styles/jquery.switchbutton.css">
<link type="text/css" rel="stylesheet" href="/webGui/styles/context.standalone.css">

View File

@@ -326,7 +326,7 @@ function xmlToVar($xml) {
return $out;
}
function xmlToCommand($xml) {
function xmlToCommand($xml, $create_paths=false) {
global $var;
$xml = xmlToVar($xml);
$cmdName = (strlen($xml['Name'])) ? '--name="'.$xml['Name'].'"' : "";
@@ -349,10 +349,20 @@ function xmlToCommand($xml) {
if (!strlen($containerConfig)) continue;
if ($confType == "path") {
$Volumes[] = sprintf('"%s":"%s":%s', $hostConfig, $containerConfig, $Mode);
if ( ! file_exists($hostConfig) && $create_paths ) {
@mkdir($hostConfig, 0777, true);
@chown($hostConfig, 99);
@chgrp($hostConfig, 100);
}
} elseif ($confType == 'port') {
$Ports[] = sprintf("%s:%s/%s", $hostConfig, $containerConfig, $Mode);
# Export ports as variable if Network is set to host
if (strtolower($xml['Network']) == 'host') {
$Variables[] = strtoupper(sprintf('"%s_PORT_%s"="%s"', $Mode, $containerConfig, $hostConfig));
} else {
$Ports[] = sprintf("%s:%s/%s", $hostConfig, $containerConfig, $Mode);
}
} elseif ($confType == "variable") {
$Variables[] = sprintf('%s="%s"', $containerConfig, $hostConfig);
$Variables[] = sprintf('"%s"="%s"', $containerConfig, $hostConfig);
} elseif ($confType == "device") {
$Devices[] = '"'.$containerConfig.'"';
}
@@ -410,12 +420,14 @@ function setXmlVal(&$xml, $value, $el, $attr = null, $pos = 0) {
if (isset($_POST['contName'])) {
$postXML = postToXML($_POST, true);
$dry_run = ($_POST['dryRun'] == "true") ? true : false;
$create_paths = $dry_run ? false : true;
// Get the command line
list($cmd, $Name, $Repository) = xmlToCommand($postXML);
list($cmd, $Name, $Repository) = xmlToCommand($postXML, $create_paths);
// Run dry
if ($_POST['dryRun'] == "true") {
if ($dry_run) {
echo "<h2>XML</h2>";
echo "<pre>".htmlentities($postXML)."</pre>";
echo "<h2>COMMAND:</h2>";
@@ -606,6 +618,7 @@ $showAdditionalInfo = '';
<link type="text/css" rel="stylesheet" href="/webGui/styles/jquery.ui.css">
<link type="text/css" rel="stylesheet" href="/webGui/styles/jquery.switchbutton.css">
<link type="text/css" rel="stylesheet" href="/webGui/styles/jquery.filetree.css">
<link rel="stylesheet" type="text/css" href="/plugins/dynamix.docker.manager/styles/style-<?=$display['theme'];?>.css">
<style>
body{-webkit-overflow-scrolling:touch;}
.fileTree{width:240px;height:150px;overflow:scroll;position:absolute;z-index:100;display:none;margin-bottom: 100px;}
@@ -799,6 +812,9 @@ $showAdditionalInfo = '';
["Name","Target","Default","Mode","Description","Type","Display","Required","Mask","Value"].forEach(function(e){
Opts[e] = getVal(Element, e);
});
if ( ! Opts["Name"] ){
Opts["Name"] = makeName(Opts["Type"]);
}
Opts.Description = (Opts.Description.length) ? Opts.Description : "Container "+Opts.Type+": "+Opts.Target;
if (Opts.Required == "true") {
Opts.Buttons = "<span class='advanced'><button type='button' onclick='editConfigPopup("+confNum+")'> Edit</button> ";
@@ -897,6 +913,11 @@ $showAdditionalInfo = '';
$('#ConfigNum' + num).fadeOut("fast", function() { $(this).remove(); });
}
function makeName(type) {
i = $("#configLocation input[name^='confType'][value='"+type+"']").length + 1;
return type + " "+i;
}
function toggleMode(el) {
var mode = $(el).parent().siblings('#Mode');
var valueDiv = $(el).parent().siblings('#Value');

View File

@@ -1,440 +0,0 @@
/* ------------------------------------------
* CSS3 GITHUB BUTTONS (Nicolas Gallagher)
* Licensed under Unlicense
* http://github.com/necolas/css3-github-buttons
* --------------------------------------- */
/* =============================================================================
Base Button
========================================================================== */
.button {
position: relative;
overflow: visible;
display: inline-block;
padding: 0.5em 1em;
border: 1px solid #d4d4d4;
margin: 0;
text-decoration: none;
text-align: center;
text-shadow: 1px 1px 0 #fff;
font:11px/normal sans-serif;
color: #333;
white-space: nowrap;
cursor: pointer;
outline: none;
background-color: #ececec;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f4f4f4), to(#ececec));
background-image: -moz-linear-gradient(#f4f4f4, #ececec);
background-image: -ms-linear-gradient(#f4f4f4, #ececec);
background-image: -o-linear-gradient(#f4f4f4, #ececec);
background-image: linear-gradient(#f4f4f4, #ececec);
-moz-background-clip: padding; /* for Firefox 3.6 */
background-clip: padding-box;
border-radius: 0.2em;
/* IE hacks */
zoom: 1;
*display: inline;
}
.button:hover,
.button:focus,
.button:active,
.button.active {
border-color: #3072b3;
border-bottom-color: #2a65a0;
text-decoration: none;
text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
color: #fff;
background-color: #3c8dde;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#599bdc), to(#3072b3));
background-image: -moz-linear-gradient(#599bdc, #3072b3);
background-image: -o-linear-gradient(#599bdc, #3072b3);
background-image: linear-gradient(#599bdc, #3072b3);
}
.button:active,
.button.active {
border-color: #2a65a0;
border-bottom-color: #3884cd;
background-color: #3072b3;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3072b3), to(#599bdc));
background-image: -moz-linear-gradient(#3072b3, #599bdc);
background-image: -ms-linear-gradient(#3072b3, #599bdc);
background-image: -o-linear-gradient(#3072b3, #599bdc);
background-image: linear-gradient(#3072b3, #599bdc);
}
/* overrides extra padding on button elements in Firefox */
.button::-moz-focus-inner {
padding: 0;
border: 0;
}
/* =============================================================================
Button icons
========================================================================== */
.button.icon:before {
content: "";
position: relative;
top: 1px;
float:left;
width: 12px;
height: 12px;
margin: 0 0.75em 0 -0.25em;
background: url(gh-icons.png) 0 99px no-repeat;
}
.button.arrowup.icon:before { background-position: 0 0; }
.button.arrowup.icon:hover:before,
.button.arrowup.icon:focus:before,
.button.arrowup.icon:active:before { background-position: -12px 0; }
.button.arrowdown.icon:before { background-position: 0 -12px; }
.button.arrowdown.icon:hover:before,
.button.arrowdown.icon:focus:before,
.button.arrowdown.icon:active:before { background-position: -12px -12px; }
.button.arrowleft.icon:before { background-position: 0 -24px; }
.button.arrowleft.icon:hover:before,
.button.arrowleft.icon:focus:before,
.button.arrowleft.icon:active:before { background-position: -12px -24px; }
.button.arrowright.icon:before { float:right; margin: 0 -0.25em 0 0.5em; background-position: 0 -36px; }
.button.arrowright.icon:hover:before,
.button.arrowright.icon:focus:before,
.button.arrowright.icon:active:before { background-position: -12px -36px; }
.button.approve.icon:before { background-position: 0 -48px; }
.button.approve.icon:hover:before,
.button.approve.icon:focus:before,
.button.approve.icon:active:before { background-position: -12px -48px; }
.button.add.icon:before { background-position: 0 -288px; }
.button.add.icon:hover:before,
.button.add.icon:focus:before,
.button.add.icon:active:before { background-position: -12px -288px; }
.button.remove.icon:before { background-position: 0 -60px; }
.button.remove.icon:hover:before,
.button.remove.icon:focus:before,
.button.remove.icon:active:before { background-position: -12px -60px; }
.button.log.icon:before { background-position: 0 -72px; }
.button.log.icon:hover:before,
.button.log.icon:focus:before,
.button.log.icon:active:before { background-position: -12px -72px; }
.button.calendar.icon:before { background-position: 0 -84px; }
.button.calendar.icon:hover:before,
.button.calendar.icon:focus:before,
.button.calendar.icon:active:before { background-position: -12px -84px; }
.button.chat.icon:before { background-position: 0 -96px; }
.button.chat.icon:hover:before,
.button.chat.icon:focus:before,
.button.chat.icon:active:before { background-position: -12px -96px; }
.button.clock.icon:before { background-position: 0 -108px; }
.button.clock.icon:hover:before,
.button.clock.icon:focus:before,
.button.clock.icon:active:before { background-position: -12px -108px; }
.button.settings.icon:before { background-position: 0 -120px; }
.button.settings.icon:hover:before,
.button.settings.icon:focus:before,
.button.settings.icon:active:before { background-position: -12px -120px; }
.button.comment.icon:before { background-position: 0 -132px; }
.button.comment.icon:hover:before,
.button.comment.icon:focus:before,
.button.comment.icon:active:before { background-position: -12px -132px; }
.button.fork.icon:before { background-position: 0 -144px; }
.button.fork.icon:hover:before,
.button.fork.icon:focus:before,
.button.fork.icon:active:before { background-position: -12px -144px; }
.button.like.icon:before { background-position: 0 -156px; }
.button.like.icon:hover:before,
.button.like.icon:focus:before,
.button.like.icon:active:before { background-position: -12px -156px; }
.button.favorite.icon:before { background-position: 0 -348px; }
.button.favorite.icon:hover:before,
.button.favorite.icon:focus:before,
.button.favorite.icon:active:before { background-position: -12px -348px; }
.button.home.icon:before { background-position: 0 -168px; }
.button.home.icon:hover:before,
.button.home.icon:focus:before,
.button.home.icon:active:before { background-position: -12px -168px; }
.button.key.icon:before { background-position: 0 -180px; }
.button.key.icon:hover:before,
.button.key.icon:focus:before,
.button.key.icon:active:before { background-position: -12px -180px; }
.button.lock.icon:before { background-position: 0 -192px; }
.button.lock.icon:hover:before,
.button.lock.icon:focus:before,
.button.lock.icon:active:before { background-position: -12px -192px; }
.button.unlock.icon:before { background-position: 0 -204px; }
.button.unlock.icon:hover:before,
.button.unlock.icon:focus:before,
.button.unlock.icon:active:before { background-position: -12px -204px; }
.button.loop.icon:before { background-position: 0 -216px; }
.button.loop.icon:hover:before,
.button.loop.icon:focus:before,
.button.loop.icon:active:before { background-position: -12px -216px; }
.button.search.icon:before { background-position: 0 -228px; }
.button.search.icon:hover:before,
.button.search.icon:focus:before,
.button.search.icon:active:before { background-position: -12px -228px; }
.button.mail.icon:before { background-position: 0 -240px; }
.button.mail.icon:hover:before,
.button.mail.icon:focus:before,
.button.mail.icon:active:before { background-position: -12px -240px; }
.button.move.icon:before { background-position: 0 -252px; }
.button.move.icon:hover:before,
.button.move.icon:focus:before,
.button.move.icon:active:before { background-position: -12px -252px; }
.button.edit.icon:before { background-position: 0 -264px; }
.button.edit.icon:hover:before,
.button.edit.icon:focus:before,
.button.edit.icon:active:before { background-position: -12px -264px; }
.button.pin.icon:before { background-position: 0 -276px; }
.button.pin.icon:hover:before,
.button.pin.icon:focus:before,
.button.pin.icon:active:before { background-position: -12px -276px; }
.button.reload.icon:before { background-position: 0 -300px; }
.button.reload.icon:hover:before,
.button.reload.icon:focus:before,
.button.reload.icon:active:before { background-position: -12px -300px; }
.button.rss.icon:before { background-position: 0 -312px; }
.button.rss.icon:hover:before,
.button.rss.icon:focus:before,
.button.rss.icon:active:before { background-position: -12px -312px; }
.button.tag.icon:before { background-position: 0 -324px; }
.button.tag.icon:hover:before,
.button.tag.icon:focus:before,
.button.tag.icon:active:before { background-position: -12px -324px; }
.button.trash.icon:before { background-position: 0 -336px; }
.button.trash.icon:hover:before,
.button.trash.icon:focus:before,
.button.trash.icon:active:before { background-position: -12px -336px; }
.button.user.icon:before { background-position: 0 -360px; }
.button.user.icon:hover:before,
.button.user.icon:focus:before,
.button.user.icon:active:before { background-position: -12px -360px; }
/* =============================================================================
Button extensions
========================================================================== */
/* Primary button
========================================================================== */
.button.primary {
font-weight: bold;
}
/* Danger button
========================================================================== */
.button.danger {
color: #900;
}
.button.danger:hover,
.button.danger:focus,
.button.danger:active {
border-color: #b53f3a;
border-bottom-color: #a0302a;
color: #fff;
background-color: #dc5f59;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dc5f59), to(#b33630));
background-image: -moz-linear-gradient(#dc5f59, #b33630);
background-image: -ms-linear-gradient(#dc5f59, #b33630);
background-image: -o-linear-gradient(#dc5f59, #b33630);
background-image: linear-gradient(#dc5f59, #b33630);
}
.button.danger:active,
.button.danger.active {
border-color: #a0302a;
border-bottom-color: #bf4843;
background-color: #b33630;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b33630), to(#dc5f59));
background-image: -moz-linear-gradient(#b33630, #dc5f59);
background-image: -ms-linear-gradient(#b33630, #dc5f59);
background-image: -o-linear-gradient(#b33630, #dc5f59);
background-image: linear-gradient(#b33630, #dc5f59);
}
/* Green button
========================================================================== */
.button.green {
color: #009900;
}
.button.blue {
color: #0519FF;
}
.button.blue:hover,
.button.blue:focus,
.button.blue:active {
color: #fff;
}
.button.green:hover,
.button.green:focus,
.button.green:active {
color: #FFF;
text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25);
background-color: #60B044;
background-image: linear-gradient(#8ADD6D, #60B044);
background-repeat: repeat-x;
border-color: #5CA941;
}
.button.green:active,
.button.green.active {
color: #FFF;
text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25);
background-color: #60B044;
background-image: linear-gradient(#60B044, #8ADD6D);
background-repeat: repeat-x;
border-color: #5CA941;
}
/* Pill button
========================================================================== */
.button.pill {
border-radius: 50em;
}
/* Disabled button
========================================================================== */
.button.disable {
opacity: 0.5;
}
/* Big button
========================================================================== */
.button.big {
font-size: 14px;
}
.button.big.icon:before {
top: 0;
}
/* =============================================================================
Button groups
========================================================================== */
/* Standard group
========================================================================== */
.button-group {
display: inline-block;
list-style: none;
padding: 0;
margin: 0;
/* IE hacks */
zoom: 1;
*display: inline;
}
.button + .button,
.button + .button-group,
.button-group + .button,
.button-group + .button-group {
margin-left: 15px;
}
.button-group li {
float: left;
padding: 0;
margin: 0;
}
.button-group .button {
float: left;
margin-left: -1px;
}
.button-group > .button:not(:first-child):not(:last-child),
.button-group li:not(:first-child):not(:last-child) .button {
border-radius: 0;
}
.button-group > .button:first-child,
.button-group li:first-child .button {
margin-left: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.button-group > .button:last-child,
.button-group li:last-child > .button {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
/* Minor group
========================================================================== */
.button-group.minor-group .button {
border: 1px solid #d4d4d4;
text-shadow: none;
background-image: none;
background-color: #fff;
}
.button-group.minor-group .button:hover,
.button-group.minor-group .button:focus {
background-color: #599bdc;
}
.button-group.minor-group .button:active,
.button-group.minor-group .button.active {
background-color: #3072b3;
}
.button-group.minor-group .button.icon:before {
opacity: 0.8;
}
/* =============================================================================
Button container (mixing buttons and groups, e.g., nav bar)
========================================================================== */
.button-container .button,
.button-container .button-group {
vertical-align: top;
}

View File

@@ -0,0 +1,60 @@
/*
jQuery UI adaptation to unRAID's style
*/
.ui-dialog .ui-dialog-title {
text-align: center;
width: 100%
}
.ui-dialog .ui-dialog-content {
padding: 15px;
font-weight: bold;
}
.ui-button-text {
padding: 0px 5px;
}
.ui-dialog .ui-dialog-titlebar-close {
top:45%;
}
.ui-dialog .ui-button-text-only {
margin: .5em .4em .5em 0;
cursor: pointer;
text-decoration:none;
white-space:nowrap;
cursor:pointer;
outline:none;
}
.ui-widget-content {
border:1px solid #303030;
background:#000000;
color:#808080;
}
.ui-widget-header {
border: 0px solid #101010;
background: -webkit-radial-gradient(#606060,#303030);
background: linear-gradient(#606060,#303030);
color:#F0F0F0;
font-weight: bold;
}
.ui-dialog .ui-button-text-only, .ui-dialog .ui-dialog-titlebar-close {
border:1px solid #303030;
color:#808080;
background:-webkit-radial-gradient(#505050,#181818);
background:linear-gradient(#505050,#181818);
}
.ui-dialog .ui-button-text-only:hover, .ui-dialog .ui-dialog-titlebar-close:hover {
border-color:#6AB034;
color:#FFFFFF;
background:-webkit-radial-gradient(#5E9E2E,#8FD956);
background:linear-gradient(#5E9E2E,#8FD956);
}
.ui-dialog .ui-button-text-only:active, .ui-dialog .ui-dialog-titlebar-close:active {
border-color:#6AB034;
box-shadow:inset 0 0 8px 4px #548C29,0 1px 0 0 #101010;
}
.ui-dialog .ui-button-text-only[disabled], .ui-dialog ..ui-dialog-titlebar-close[disabled]{
color:#505050;
border-color:#181818;
background:linear-gradient(#202020,#101010);
background:-webkit-radial-gradient(#202020,#101010);
cursor:default;
}