1. Fixed the issue where auto-update was not working for macOS x64 arch machines as pgadmin4 zip file name has x86_64 in it.
2. Improved error handling in the /upgrade_check API by replacing the static “Failed to check for update” message for Windows users with a dynamic error message. 3. Fixed the CSS issue affecting the close icon in the warning notifier. 4. Removed trailing periods from helper texts and notifier messages in the app’s auto-update workflow. #9133pull/9244/head
parent
758bbc7272
commit
543149fb14
|
|
@ -11,7 +11,14 @@ _setup_env() {
|
|||
APP_LONG_VERSION=${APP_LONG_VERSION}-${APP_SUFFIX}
|
||||
fi
|
||||
BUNDLE_DIR="${BUILD_ROOT}/${APP_NAME}.app"
|
||||
DMG_NAME="${DIST_ROOT}"/$(echo "${APP_NAME}" | sed 's/ //g' | awk '{print tolower($0)}')-"${APP_LONG_VERSION}-$(uname -m).dmg"
|
||||
|
||||
# uname -m returns "x86_64" on Intel, but we need "x64"
|
||||
DMG_ARCH="$(uname -m)"
|
||||
if [ "${DMG_ARCH}" == "x86_64" ]; then
|
||||
DMG_ARCH="x64"
|
||||
fi
|
||||
|
||||
DMG_NAME="${DIST_ROOT}/$(echo "${APP_NAME}" | sed 's/ //g' | awk '{print tolower($0)}')-${APP_LONG_VERSION}-${DMG_ARCH}.dmg"
|
||||
PYTHON_OS_VERSION="11"
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,24 +21,24 @@ export function updateConfigAndMenus(event, configStore, pgAdminMainScreen, menu
|
|||
// This function registers autoUpdater event listeners ONCE
|
||||
function registerAutoUpdaterEvents({ pgAdminMainScreen, configStore, menuCallbacks }) {
|
||||
autoUpdater.on('checking-for-update', () => {
|
||||
misc.writeServerLog('[Auto-Updater]: Checking for update...');
|
||||
misc.writeServerLog('[Auto-Updater]: Checking for update.');
|
||||
});
|
||||
|
||||
autoUpdater.on('update-available', () => {
|
||||
updateConfigAndMenus('update-available', configStore, pgAdminMainScreen, menuCallbacks);
|
||||
misc.writeServerLog('[Auto-Updater]: Update downloading...');
|
||||
misc.writeServerLog('[Auto-Updater]: Update downloading.');
|
||||
pgAdminMainScreen.webContents.send('notifyAppAutoUpdate', { update_downloading: true });
|
||||
});
|
||||
|
||||
autoUpdater.on('update-not-available', () => {
|
||||
updateConfigAndMenus('update-not-available', configStore, pgAdminMainScreen, menuCallbacks);
|
||||
misc.writeServerLog('[Auto-Updater]: No update available...');
|
||||
misc.writeServerLog('[Auto-Updater]: No update available.');
|
||||
pgAdminMainScreen.webContents.send('notifyAppAutoUpdate', { no_update_available: true });
|
||||
});
|
||||
|
||||
autoUpdater.on('update-downloaded', () => {
|
||||
updateConfigAndMenus('update-downloaded', configStore, pgAdminMainScreen, menuCallbacks);
|
||||
misc.writeServerLog('[Auto-Updater]: Update downloaded...');
|
||||
misc.writeServerLog('[Auto-Updater]: Update downloaded.');
|
||||
pgAdminMainScreen.webContents.send('notifyAppAutoUpdate', { update_downloaded: true });
|
||||
});
|
||||
|
||||
|
|
@ -82,7 +82,7 @@ function handleSendDataForAppUpdate({
|
|||
|
||||
try {
|
||||
autoUpdater.setFeedURL({ url: serverUrl });
|
||||
misc.writeServerLog('[Auto-Updater]: Initiating update check...');
|
||||
misc.writeServerLog('[Auto-Updater]: Initiating update check.');
|
||||
autoUpdater.checkForUpdates();
|
||||
} catch (err) {
|
||||
misc.writeServerLog('[Auto-Updater]: Error setting autoUpdater feed URL: ' + err.message);
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ function handleAutoUpdateMenu(menuFile, configStore, callbacks) {
|
|||
menuFile.submenu.unshift({
|
||||
name: 'mnu_restart_to_update',
|
||||
id: 'mnu_restart_to_update',
|
||||
label: 'Restart to Update...',
|
||||
label: 'Restart to Update',
|
||||
enabled: true,
|
||||
priority: 998,
|
||||
click: callbacks['restart_to_update'],
|
||||
|
|
|
|||
|
|
@ -443,14 +443,14 @@ function notifyUpdateInstalled() {
|
|||
try {
|
||||
// Notify renderer
|
||||
if (pgAdminMainScreen) {
|
||||
misc.writeServerLog('[Auto-Updater]: Update installed successfully...');
|
||||
misc.writeServerLog('[Auto-Updater]: Update installed successfully.');
|
||||
setTimeout(() => {
|
||||
pgAdminMainScreen.webContents.send('notifyAppAutoUpdate', {update_installed: true});
|
||||
}, 10000);
|
||||
} else {
|
||||
// If main screen not ready, wait and send after it's created
|
||||
app.once('browser-window-created', (event, window) => {
|
||||
misc.writeServerLog('[Auto-Updater]: Update installed successfully...');
|
||||
misc.writeServerLog('[Auto-Updater]: Update installed successfully.');
|
||||
setTimeout(() => {
|
||||
pgAdminMainScreen.webContents.send('notifyAppAutoUpdate', {update_installed: true});
|
||||
}, 10000);
|
||||
|
|
|
|||
|
|
@ -282,7 +282,7 @@ define('pgadmin.browser', [
|
|||
});
|
||||
const isDesktopWithAutoUpdate = pgAdmin.server_mode == 'False' && data.check_for_auto_updates && data.auto_update_url !== '';
|
||||
const isUpdateAvailable = data.outdated && data.upgrade_version_int > data.current_version_int;
|
||||
const noUpdateMessage = 'No update available...';
|
||||
const noUpdateMessage = 'No update available.';
|
||||
// This is for desktop installers whose auto_update_url is mentioned in https://www.pgadmin.org/versions.json
|
||||
if (isDesktopWithAutoUpdate) {
|
||||
if (isUpdateAvailable) {
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import ssl
|
|||
from urllib.request import urlopen
|
||||
from urllib.parse import unquote
|
||||
from pgadmin.settings import get_setting, store_setting
|
||||
import html
|
||||
|
||||
MODULE_NAME = 'misc'
|
||||
|
||||
|
|
@ -389,10 +390,11 @@ def upgrade_check():
|
|||
if response.getcode() == 200:
|
||||
data = json.loads(response.read().decode('utf-8'))
|
||||
current_app.logger.debug('Response data: %s' % data)
|
||||
except Exception:
|
||||
current_app.logger.exception(
|
||||
'Exception when checking for update')
|
||||
return internal_server_error('Failed to check for update')
|
||||
except Exception as e:
|
||||
current_app.logger.exception(e)
|
||||
# Escaping the error message to prevent HTML execution in UI
|
||||
escaped_error = html.escape(str(e))
|
||||
return internal_server_error(errormsg=escaped_error)
|
||||
|
||||
if data and config.UPGRADE_CHECK_KEY and \
|
||||
config.UPGRADE_CHECK_KEY in data:
|
||||
|
|
|
|||
|
|
@ -198,9 +198,9 @@ export default function BrowserComponent({pgAdmin}) {
|
|||
if (data?.check_version_update) {
|
||||
pgAdmin.Browser.check_version_update(true);
|
||||
} else if (data.update_downloading) {
|
||||
appAutoUpdateNotifier('Update downloading...', 'info', null, 10000);
|
||||
appAutoUpdateNotifier('Update downloading.', 'info', null, 10000);
|
||||
} else if (data.no_update_available) {
|
||||
appAutoUpdateNotifier('No update available...', 'info', null, 10000);
|
||||
appAutoUpdateNotifier('No update available.', 'info', null, 10000);
|
||||
} else if (data.update_downloaded) {
|
||||
const UPDATE_DOWNLOADED_MESSAGE = gettext('An update is ready. Restart the app now to install it, or later to keep using the current version.');
|
||||
appAutoUpdateNotifier(UPDATE_DOWNLOADED_MESSAGE, 'warning', installUpdate, null, 'Update downloaded', 'update_downloaded');
|
||||
|
|
|
|||
|
|
@ -1287,7 +1287,6 @@ const StyledNotifierMessageBox = styled(Box)(({theme}) => ({
|
|||
backgroundColor: theme.palette.warning.light,
|
||||
'& .FormFooter-iconWarning': {
|
||||
color: theme.palette.warning.main,
|
||||
marginBottom: theme.spacing(8),
|
||||
},
|
||||
},
|
||||
'& .FormFooter-message': {
|
||||
|
|
|
|||
Loading…
Reference in New Issue