diff --git a/pkg/mac/build-functions.sh b/pkg/mac/build-functions.sh index 09c993886..3d0eaa5da 100644 --- a/pkg/mac/build-functions.sh +++ b/pkg/mac/build-functions.sh @@ -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" } diff --git a/runtime/src/js/autoUpdaterHandler.js b/runtime/src/js/autoUpdaterHandler.js index 5e2f0774a..9d9525e34 100644 --- a/runtime/src/js/autoUpdaterHandler.js +++ b/runtime/src/js/autoUpdaterHandler.js @@ -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); diff --git a/runtime/src/js/menu.js b/runtime/src/js/menu.js index c349cca21..be4fe1bbb 100644 --- a/runtime/src/js/menu.js +++ b/runtime/src/js/menu.js @@ -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'], diff --git a/runtime/src/js/pgadmin.js b/runtime/src/js/pgadmin.js index d07493607..5e661a338 100644 --- a/runtime/src/js/pgadmin.js +++ b/runtime/src/js/pgadmin.js @@ -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); diff --git a/web/pgadmin/browser/static/js/browser.js b/web/pgadmin/browser/static/js/browser.js index cbe6eaf47..35b2a9668 100644 --- a/web/pgadmin/browser/static/js/browser.js +++ b/web/pgadmin/browser/static/js/browser.js @@ -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) { diff --git a/web/pgadmin/misc/__init__.py b/web/pgadmin/misc/__init__.py index 21e338d1e..43d0a6558 100644 --- a/web/pgadmin/misc/__init__.py +++ b/web/pgadmin/misc/__init__.py @@ -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: diff --git a/web/pgadmin/static/js/BrowserComponent.jsx b/web/pgadmin/static/js/BrowserComponent.jsx index bfe5e4c71..4055982cc 100644 --- a/web/pgadmin/static/js/BrowserComponent.jsx +++ b/web/pgadmin/static/js/BrowserComponent.jsx @@ -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'); diff --git a/web/pgadmin/static/js/components/FormComponents.jsx b/web/pgadmin/static/js/components/FormComponents.jsx index 2ea8e7134..ece76443c 100644 --- a/web/pgadmin/static/js/components/FormComponents.jsx +++ b/web/pgadmin/static/js/components/FormComponents.jsx @@ -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': {