mirror of
https://github.com/laurent22/joplin.git
synced 2024-11-27 08:21:03 +02:00
The changelong text is truncated if it's longer than 1000 characters, but avoids cutting off a partial line, unless that would lead to cutting off too much of the text. An ellipsis is added to mark the truncation. Additionally, when the changelong is truncated, it adds a "Full Release Notes" button that opens the GitHub release page in a browser window.
This commit is contained in:
parent
f90cc8d67d
commit
348c4ad3a3
@ -93,6 +93,18 @@ async function fetchLatestRelease(options) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function truncateText(text, length) {
|
||||||
|
let truncated = text.substring(0, length);
|
||||||
|
const lastNewLine = truncated.lastIndexOf('\n');
|
||||||
|
// Cut off at a line break unless we'd be cutting off half the text
|
||||||
|
if (lastNewLine > length / 2) {
|
||||||
|
truncated = `${truncated.substring(0, lastNewLine)}\n...`;
|
||||||
|
} else {
|
||||||
|
truncated = `${truncated.trim()}...`;
|
||||||
|
}
|
||||||
|
return truncated;
|
||||||
|
}
|
||||||
|
|
||||||
function checkForUpdates(inBackground, window, logFilePath, options) {
|
function checkForUpdates(inBackground, window, logFilePath, options) {
|
||||||
if (isCheckingForUpdate_) {
|
if (isCheckingForUpdate_) {
|
||||||
autoUpdateLogger_.info('checkForUpdates: Skipping check because it is already running');
|
autoUpdateLogger_.info('checkForUpdates: Skipping check because it is already running');
|
||||||
@ -126,16 +138,21 @@ function checkForUpdates(inBackground, window, logFilePath, options) {
|
|||||||
buttons: [_('OK')],
|
buttons: [_('OK')],
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
const releaseNotes = release.notes.trim() ? `\n\n${release.notes.trim()}` : '';
|
const fullReleaseNotes = release.notes.trim() ? `\n\n${release.notes.trim()}` : '';
|
||||||
|
const MAX_RELEASE_NOTES_LENGTH = 1000;
|
||||||
|
const truncateReleaseNotes = fullReleaseNotes.length > MAX_RELEASE_NOTES_LENGTH;
|
||||||
|
const releaseNotes = truncateReleaseNotes ? truncateText(fullReleaseNotes, MAX_RELEASE_NOTES_LENGTH) : fullReleaseNotes;
|
||||||
|
|
||||||
const newVersionString = release.prerelease ? _('%s (pre-release)', release.version) : release.version;
|
const newVersionString = release.prerelease ? _('%s (pre-release)', release.version) : release.version;
|
||||||
|
|
||||||
const buttonIndex = dialog.showMessageBox(parentWindow_, {
|
const buttonIndex = dialog.showMessageBox(parentWindow_, {
|
||||||
type: 'info',
|
type: 'info',
|
||||||
message: `${_('An update is available, do you want to download it now?')}\n\n${_('Your version: %s', packageInfo.version)}\n${_('New version: %s', newVersionString)}${releaseNotes}`,
|
message: `${_('An update is available, do you want to download it now?')}\n\n${_('Your version: %s', packageInfo.version)}\n${_('New version: %s', newVersionString)}${releaseNotes}`,
|
||||||
buttons: [_('Yes'), _('No')],
|
buttons: [_('Yes'), _('No')].concat(truncateReleaseNotes ? [_('Full Release Notes')] : []),
|
||||||
});
|
});
|
||||||
|
|
||||||
if (buttonIndex === 0) require('electron').shell.openExternal(release.downloadUrl ? release.downloadUrl : release.pageUrl);
|
if (buttonIndex === 0) require('electron').shell.openExternal(release.downloadUrl ? release.downloadUrl : release.pageUrl);
|
||||||
|
if (buttonIndex === 2) require('electron').shell.openExternal(release.pageUrl);
|
||||||
}
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
autoUpdateLogger_.error(error);
|
autoUpdateLogger_.error(error);
|
||||||
|
Loading…
Reference in New Issue
Block a user