diff options
-rw-r--r-- | applications/luci-app-commands/ucode/template/commands.ut | 49 |
1 files changed, 18 insertions, 31 deletions
diff --git a/applications/luci-app-commands/ucode/template/commands.ut b/applications/luci-app-commands/ucode/template/commands.ut index f11efe948c..90a3c298f0 100644 --- a/applications/luci-app-commands/ucode/template/commands.ut +++ b/applications/luci-app-commands/ucode/template/commands.ut @@ -29,15 +29,9 @@ -%} <script type="text/javascript">//<![CDATA[ - var stxhr = new XHR(); - function command_run(ev, id) { - var args; var field = document.getElementById(id); - if (field) - args = encodeURIComponent(field.value); - var legend = document.getElementById('command-rc-legend'); var output = document.getElementById('command-rc-output'); @@ -51,31 +45,24 @@ legend.parentNode.style.display = 'block'; legend.style.display = 'inline'; - stxhr.get(L.url('admin/system/commands/run', id) + (args ? '?args=' + args : ''), null, - function(x, st) - { - if (st) - { - if (st.binary) - st.stdout = '[' + _('Binary data not displayed, download instead.') + ']'; - - legend.style.display = 'none'; - output.innerHTML = String.format( - '<pre><strong># %h\n</strong>%h<span style="color:red">%h</span></pre>' + - '<div class="alert-message warning">%h (%h %d)</div>', - st.command, st.stdout, st.stderr, - (st.exitcode == 0) ? _('Command successful') : _('Command failed'), - _('Code:'), st.exitcode); - } - else - { - legend.style.display = 'none'; - output.innerHTML = '<span class="error">%h</span>'.format(_('Failed to execute command!')); - } - - location.hash = '#output'; - } - ); + L.Request.get(L.url('admin/system/commands/run', id), field ? { args: field.value } : null).then(function(reply) { + var st = reply.json(); + + if (st.binary) + st.stdout = '[' + _('Binary data not displayed, download instead.') + ']'; + + output.innerHTML = String.format( + '<pre><strong># %h\n</strong>%h<span style="color:red">%h</span></pre>' + + '<div class="alert-message warning">%h (%h %d)</div>', + st.command, st.stdout, st.stderr, + (st.exitcode == 0) ? _('Command successful') : _('Command failed'), + _('Code:'), st.exitcode); + }).catch(function() { + output.innerHTML = '<span class="error">%h</span>'.format(_('Failed to execute command!')); + }).finally(function() { + legend.style.display = 'none'; + location.hash = '#output'; + }); } ev.preventDefault(); |