| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- /**
- * 获取应用安装进度。
- * Get solution install progress.
- *
- * @access public
- * @return void
- */
- function getInstallProgress()
- {
- $.get($.createLink('install', 'ajaxProgress', 'id='+ solutionID)).done(function(response)
- {
- var res = JSON.parse(response);
- if(res.result == 'success')
- {
- var installed = true;
- for(var index in res.data)
- {
- var cloudApp = res.data[index];
- if(cloudApp.status == 'waiting')
- {
- $('.arrow.app-' + cloudApp.id).removeClass('active');
- $('.step.app-' + cloudApp.id + ' .step-no').removeClass('active');
- }
- else
- {
- $('.arrow.app-' + cloudApp.id).addClass('active');
- $('.step.app-' + cloudApp.id + ' .step-no').addClass('active');
- }
- if(cloudApp.status == 'installing' || cloudApp.status == 'installed')
- {
- $('#' + cloudApp.alias + '-status').text(installLabel);
- }
- if(cloudApp.status == 'configured')
- {
- $('#' + cloudApp.alias + '-status').text(configLabel);
- }
- if(cloudApp.status != 'installed' && cloudApp.status != 'configured')
- {
- installed = false;
- }
- if(cloudApp.status == 'error')
- {
- $('.error-message').text(res.message);
- $('.progress.loading').hide();
- }
- if(res.logs.hasOwnProperty(cloudApp.chart))
- {
- if(!shownLogs.hasOwnProperty(cloudApp.chart)) shownLogs[cloudApp.chart] = [];
- var logs = res.logs[cloudApp.chart]
- for(var j in logs)
- {
- if(shownLogs[cloudApp.chart].indexOf(logs[j].content) == -1)
- {
- term.write(logs[j].content + '\n');
- shownLogs[cloudApp.chart].push(logs[j].content);
- }
- }
- }
- }
- if(installed)
- {
- clearInterval(logTimer);
- $('.progress-message').text(notices.installationSuccess);
- if(!isModal)
- {
- loadPage($.createLink('install', 'step6'));
- }
- else
- {
- zui.Modal.alert(notices.installationSuccess).then(() => {
- const modal = zui.Modal.query('#installProgress');
- if(modal) modal.hide();
- loadPage($.createLink('space', 'browse'));
- })
- }
- }
- }
- else
- {
- $('#retryInstallBtn').removeClass('hidden');
- $('#skipInstallBtn').removeClass('primary');
- $('#skipInstallBtn').text(skipLang);
- $('#cancelInstallBtn').addClass('hidden');
- var errMessage = res.message;
- if(res.message instanceof Array) errMessage = res.message.join('<br/>');
- if(res.message instanceof Object) errMessage = Object.values(res.message).join('<br/>');
- $('.error-message').text(errMessage);
- clearInterval(logTimer);
- }
- });
- }
- window.retryInstall = function()
- {
- $('#retryInstallBtn').attr('disabled', true);
- zui.Modal.confirm(notices.confirmReinstall).then((result) =>
- {
- $('#retryInstallBtn').removeAttr('disabled');
- if(!result) return;
- $('#retryInstallBtn').addClass('hidden');
- $('#skipInstallBtn').text(backgroundLang);
- $('#skipInstallBtn').addClass('primary');
- $('#cancelInstallBtn').removeClass('hidden');
- $('.error-message').text('');
- $.get($.createLink('install', 'ajaxInstall', 'id=' + solutionID));
- });
- }
- window.cancelInstall = function()
- {
- $('#cancelInstallBtn').attr('disabled', true);
- zui.Modal.confirm(notices.cancelInstall).then((result) =>
- {
- $('#cancelInstallBtn').removeAttr('disabled');
- if(!result) return;
- clearInterval(logTimer);
- toggleLoading('#mainContent', true);
- $.ajaxSubmit({
- url: $.createLink('install', 'ajaxUninstall', 'id=' + solutionID),
- onComplete: function()
- {
- toggleLoading('#mainContent', false);
- }
- });
- });
- }
- $(function()
- {
- if(startInstall) $.get($.createLink('install', 'ajaxInstall', 'id=' + solutionID));
- $.getLib(config.webRoot + 'js/xterm/xterm.js', {root: false}, function()
- {
- term = new Terminal({convertEol: true, rows: 20});
- term.open(document.getElementById('terminal'));
- });
- if(typeof logTimer != 'undefined') clearInterval(logTimer);
- logTimer = setInterval(getInstallProgress, 4000);
- });
|