diff --git a/plugins/dynamix.docker.manager/DockerContainers.page b/plugins/dynamix.docker.manager/DockerContainers.page
index dcac595fe..50b1a1700 100644
--- a/plugins/dynamix.docker.manager/DockerContainers.page
+++ b/plugins/dynamix.docker.manager/DockerContainers.page
@@ -19,7 +19,6 @@ Markdown="false"
?>
-
-
-
-
@@ -54,10 +43,11 @@ th.three{width:3%}
| Application | Version | Network | Port Mappings (App to Host) | Volume Mappings (App to Host) | Autostart | Log |
| Please wait... retrieving container information |
-
-
-
-
+
+
+
+
+
@@ -82,7 +72,7 @@ function listview() {
$('.docker_readmore').readmore('destroy');
}
}
-function loadlist() {
+function loadlist(update) {
$.get('/plugins/dynamix.docker.manager/include/DockerContainers.php',function(d) {
var data = d.split(/\0/);
$('#docker_list').html(data[0]);
@@ -103,6 +93,11 @@ function loadlist() {
listview();
context.init({preventDoubleContext:false});
$('input[type=button]').prop('disabled',false);
+ if (update) {
+ $('input#checkAll').hide(); $('input#updateAll').show();
+ } else {
+ $('input#checkAll').show(); $('input#updateAll').hide();
+ }
});
}
$(function() {
@@ -113,6 +108,6 @@ $(function() {
$.cookie('docker_listview_mode',$('.advancedview').is(':checked')?'advanced':'basic',{expires:3650});
listview();
});
- loadlist();
+ $.post('/plugins/dynamix.docker.manager/include/DockerUpdate.php',{},function(u){loadlist(u);});
});
diff --git a/plugins/dynamix.docker.manager/include/DockerContainers.php b/plugins/dynamix.docker.manager/include/DockerContainers.php
index 105311a5d..75f7f4f30 100644
--- a/plugins/dynamix.docker.manager/include/DockerContainers.php
+++ b/plugins/dynamix.docker.manager/include/DockerContainers.php
@@ -48,7 +48,7 @@ foreach ($all_containers as $ct) {
$support = html_entity_decode($info['Support']);
$project = html_entity_decode($info['Project']);
$menu[] = sprintf("addDockerContainerContext('%s','%s','%s',%s,%s,%s,'%s','%s','%s','%s');",addslashes($name),addslashes($imageID),addslashes($template),$running,$updateStatus,$is_autostart,addslashes($webGui),$id,addslashes($support),addslashes($project));
- $docker[] = "docker.push({id:'$id',state:'$running'});";
+ $docker[] = "docker.push({name:'$name',id:'$id',state:'$running',update:'$updateStatus'});";
$shape = $ct['Running'] ? 'play':'square';
$status = $ct['Running'] ? 'started':'stopped';
$icon = $info['icon'] ?: '/plugins/dynamix.docker.manager/images/question.png';
diff --git a/plugins/dynamix.docker.manager/include/DockerUpdate.php b/plugins/dynamix.docker.manager/include/DockerUpdate.php
new file mode 100644
index 000000000..100f89350
--- /dev/null
+++ b/plugins/dynamix.docker.manager/include/DockerUpdate.php
@@ -0,0 +1,31 @@
+
+
+$docroot = $docroot ?? $_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp';
+require_once "$docroot/plugins/dynamix.docker.manager/include/DockerClient.php";
+
+$DockerClient = new DockerClient();
+$DockerTemplates = new DockerTemplates();
+
+if ($_POST['check']) {
+ $DockerTemplates->downloadTemplates();
+ $DockerTemplates->getAllInfo(true);
+}
+$all_containers = $DockerClient->getDockerContainers();
+$all_info = $DockerTemplates->getAllInfo();
+foreach ($all_containers as $ct) {
+ $info = &$all_info[$ct['Name']];
+ if ($info['updated']=='false'&&$info['updated']!='undef') {echo 'true'; break;}
+}
+?>
diff --git a/plugins/dynamix.docker.manager/javascript/docker.js b/plugins/dynamix.docker.manager/javascript/docker.js
index 6a5c2c67d..5229f91c8 100644
--- a/plugins/dynamix.docker.manager/javascript/docker.js
+++ b/plugins/dynamix.docker.manager/javascript/docker.js
@@ -42,9 +42,9 @@ function addDockerImageContext(image, imageTag) {
function execUpContainer(container) {
var title = "Updating the container: "+container;
var address = "/plugins/dynamix.docker.manager/include/CreateDocker.php?updateContainer=true&ct[]="+encodeURIComponent(container);
- popupWithIframe(title, address, true);
+ popupWithIframe(title, address, true, 'loadlist');
}
-function popupWithIframe(title, cmd, reload) {
+function popupWithIframe(title, cmd, reload, func) {
pauseEvents();
$("#iframe-popup").html('');
$("#iframe-popup").dialog({
@@ -62,7 +62,7 @@ function popupWithIframe(title, cmd, reload) {
},
close:function(event, ui) {
if (reload && !$("#myIframe").contents().find("#canvas").length) {
- location = window.location.href;
+ if (func) setTimeout(func+'()',0); else location = window.location.href;
} else {
resumeEvents();
}
@@ -154,16 +154,17 @@ function stopAll() {
for (var i=0,ct; ct=docker[i]; i++) if (ct.state=='true') $('#'+ct.id).find('i').addClass('fa-spin');
$.post('/plugins/dynamix.docker.manager/include/ContainerManager.php',{action:'stop'}, function(){loadlist();});
}
-function reloadUpdate() {
+function checkAll() {
+ $('input[type=button]').prop('disabled',true);
$(".updatecolumn").html(" checking...");
- $("#cmdStartStop").val("/plugins/dynamix.docker.manager/scripts/dockerupdate.php");
- $("#cmdArg1").remove();
- $("#cmdArg2").remove();
- $("#formStartStop").submit();
+ $.post('/plugins/dynamix.docker.manager/include/DockerUpdate.php',{check:true},function(u){loadlist(u);});
}
-function autoStart(container, event) {
- document.getElementsByName("container")[0].value = container;
- $("#formStartStop").submit();
+function updateAll() {
+ $('input[type=button]').prop('disabled',true);
+ var list = '';
+ for (var i=0,ct; ct=docker[i]; i++) if (ct.update=='false') list += '&ct[]='+ct.name;
+ var address = "/plugins/dynamix.docker.manager/include/CreateDocker.php?updateContainer=true"+list;
+ popupWithIframe('Updating all Containers', address, true, 'loadlist');
}
function containerLogs(container, id) {
var height = 600;