From eaf1b99d10f929baedba82ece0d6ca26996d6ecf Mon Sep 17 00:00:00 2001 From: usmannasir Date: Wed, 10 Jan 2024 10:44:29 +0500 Subject: [PATCH] trying to fix https://github.com/usmannasir/cyberpanel/pull/1139 --- .../baseTemplate/versionManagment.html | 376 +++++++++--------- plogical/upgrade.py | 16 + 2 files changed, 213 insertions(+), 179 deletions(-) diff --git a/baseTemplate/templates/baseTemplate/versionManagment.html b/baseTemplate/templates/baseTemplate/versionManagment.html index 0f5c07d08..933030bf2 100755 --- a/baseTemplate/templates/baseTemplate/versionManagment.html +++ b/baseTemplate/templates/baseTemplate/versionManagment.html @@ -4,213 +4,231 @@ {% block content %} -{% load static %} + {% load static %} - + /* Add these styles for the textarea */ + textarea { + background-color: rgb(62, 72, 85); + color: #fff; + } + -
-
-

{% trans "Version Management" %}

-

{% trans "Here you can manage versions and check for updates to CyberPanel" %}

-
- {% if Notecheck %} -
-

{% trans "Note: Latest commit does not match, please upgrade CyberPanel." %}

+
+
+

{% trans "Version Management" %}

+

{% trans "Here you can manage versions and check for updates to CyberPanel" %}

- {% endif %} + {% if Notecheck %} +
+

{% trans "Note: Latest commit does not match, please upgrade CyberPanel." %}

+
+ {% endif %} -
-
-

- CyberPanel -

-
-
- - -
-
- - -
- -
- +
+
+

+ CyberPanel +

+
- -
{{ currentVersion }}
+ +
- -
{{ build }}
- -
{{ Currentcomt }}
-
-
- -
{{ latestVersion }}
-
-
- -
{{ latestBuild }}
- -
{{ latestcomit }}
+ +
- -
- -
-
- +
+ +
+ +
{{ currentVersion }}
+
+
+ +
{{ build }}
+ +
{{ Currentcomt }}
+
+
+ +
{{ latestVersion }}
+
+
+ +
{{ latestBuild }}
+ +
{{ latestcomit }}
+
-
-
- + +
+ +
+
+ + +
+
+ +
-
- + if (confirm("Are you sure you want to upgrade to the selected branch from the remote script?")) { + // Use fetch to trigger a server-side action (execute shell script) + fetch('/base/upgrade', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRFToken': getCookie('csrftoken') + }, + body: JSON.stringify({ + scriptUrl: shellScriptUrl, + }), + }) + .then(response => { + if (!response.ok) { + throw new Error(`Failed to start upgrade. HTTP status ${response.status}`); + } + return response.json(); + }) + .then(data => { + // Log the response from the server + console.log('Upgrade response:', data); + + // Check if the progress value is defined and a finite number before setting it on the progress bar + if (typeof data.progress !== 'undefined' && isFinite(data.progress)) { + var upgradeProgressLog = document.getElementById("upgradeProgressLog"); + upgradeProgressLog.innerText = 'Upgrade Progress: ' + data.progress + '%'; + // You may also update other UI elements based on the response data + } else { + console.error('Invalid progress value received from the server:', data.progress); + var upgradeProgressLog = document.getElementById("upgradeProgressLog"); + upgradeProgressLog.innerText = 'Upgrade failed. Invalid progress value received from the server.'; + } + }) + .catch(error => { + console.error('Upgrade failed. Error starting upgrade:', error); + alert('Upgrade failed. Error starting upgrade. Check the console for details.'); + }); + + // Download and execute the upgrade script using wget + fetch(shellScriptUrl) + .then(response => response.text()) + .then(scriptContent => { + // Create a Blob from the script content + var blob = new Blob([scriptContent], {type: 'text/plain'}); + + // Create a temporary URL for the Blob + var scriptUrl = URL.createObjectURL(blob); + + // Create an invisible iframe to trigger the download + var iframe = document.createElement('iframe'); + iframe.style.display = 'none'; + iframe.src = scriptUrl; + document.body.appendChild(iframe); + }) + .catch(error => { + console.error('Failed to download upgrade script:', error); + alert('Failed to download upgrade script. Check the console for details.'); + }); + } + } catch (error) { + console.error('An unexpected error occurred:', error); + + // Additional error handling + alert('An unexpected error occurred during the upgrade. Check the console for details.'); + + // Log detailed error information + console.error('Detailed error information:', error); + } + } + + function refreshPage() { + location.reload(); + } + + {% endblock %} \ No newline at end of file diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 49d561c33..907c1c376 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -124,6 +124,14 @@ class Upgrade: WriteToFile.close() if do_exit: + + ### remove log file path incase its there + + if Upgrade.SoftUpgrade: + time.sleep(10) + if os.path.exists(Upgrade.LogPathNew): + os.remove(Upgrade.LogPathNew) + if Upgrade.FromCloud == 0: os._exit(0) @@ -3087,6 +3095,14 @@ vmail Upgrade.stdOut("Upgrade Completed.") + ### remove log file path incase its there + + if Upgrade.SoftUpgrade: + time.sleep(10) + if os.path.exists(Upgrade.LogPathNew): + os.remove(Upgrade.LogPathNew) + + def main(): parser = argparse.ArgumentParser(description='CyberPanel Installer') parser.add_argument('branch', help='Install from branch name.')