summaryrefslogtreecommitdiffstats
path: root/modules-available/rebootcontrol/templates/status-exec.html
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/rebootcontrol/templates/status-exec.html')
-rw-r--r--modules-available/rebootcontrol/templates/status-exec.html76
1 files changed, 76 insertions, 0 deletions
diff --git a/modules-available/rebootcontrol/templates/status-exec.html b/modules-available/rebootcontrol/templates/status-exec.html
new file mode 100644
index 00000000..a3efef5f
--- /dev/null
+++ b/modules-available/rebootcontrol/templates/status-exec.html
@@ -0,0 +1,76 @@
+<h3>{{timestamp_s}}</h3>
+
+<div data-tm-id="{{id}}" data-tm-log="error" data-tm-callback="updateStatus">{{lang_executingRemotely}}</div>
+
+<div class="slx-space"></div>
+
+<div class="list-group">
+ <div class="list-group-item">
+<div class="row">
+ <div class="col-md-6 col-sm-8 col-xs-12 slx-bold">{{lang_host}}</div>
+ <div class="col-md-4 col-sm-2 col-xs-6 slx-bold">{{lang_status}}</div>
+ <div class="col-md-2 col-sm-2 col-xs-6 slx-bold text-right">{{lang_exitCode}}</div>
+</div>
+ </div>
+
+{{#clients}}
+<div class="list-group-item" id="client-{{machineuuid}}">
+ <div class="row">
+ <div class="col-md-6 col-sm-8 col-xs-12 slx-bold">
+ <a href="?do=statistics&amp;uuid={{machineuuid}}">
+ {{hostname}}{{^hostname}}{{clientip}}{{/hostname}}
+ </a>
+ </div>
+ <div class="col-md-4 col-sm-2 col-xs-6 state"></div>
+ <div class="col-md-2 col-sm-2 col-xs-6 text-right exitCode"></div>
+ </div>
+ <div class="stdout collapse">
+ <i>{{lang_stdout}}</i>
+ <pre></pre>
+ </div>
+ <div class="stderr collapse">
+ <i>{{lang_stderr}}</i>
+ <pre></pre>
+ </div>
+</div>
+{{/clients}}
+</div>
+
+<script><!--
+
+var ignoreHosts = {};
+
+function updateStatus(task) {
+ if (!task || !task.data || !task.data.result)
+ return;
+ for (var host in task.data.result) {
+ if (!task.data.result.hasOwnProperty(host) || ignoreHosts[host])
+ continue;
+ updateStatusClient(host, task.data.result[host]);
+ }
+}
+
+function updateStatusClient(id, status) {
+ var $p = $('#client-' + id);
+ if ($p.length === 0)
+ return;
+ $p.find('.state').text(status.state);
+ if (status.stdout) $p.find('.stdout').show().find('pre').text(status.stdout);
+ if (status.stderr) $p.find('.stderr').show().find('pre').text(status.stderr);
+ if (status.state === 'DONE' || status.state === 'ERROR' || status.state === 'TIMEOUT') {
+ $p.find('.state').addClass((status.state === 'DONE') ? 'text-success' : 'text-danger');
+ if (status.exitCode >= 0) {
+ $p.find('.exitCode').text(status.exitCode).addClass((status.exitCode === 0 ? 'text-success' : 'text-danger'));
+ }
+ ignoreHosts[id] = true;
+ var txt = status.stdout.trim();
+ if (txt.startsWith('<') && txt.endsWith('</svg>')) {
+ var $i = $('<img class="img-responsive">');
+ $i[0].src = 'data:image/svg+xml,' + encodeURIComponent(txt);
+ $p.find('.stdout').hide();
+ $p.append($i);
+ }
+ }
+}
+
+//--></script> \ No newline at end of file