Revert "Replace generic console.error handlers with window.cloudron.onError"

This reverts commit 7db5a48e35.
This commit is contained in:
Johannes Zellner
2025-12-10 18:04:07 +01:00
parent 4dd1a960c1
commit 1cd069df5e
90 changed files with 298 additions and 297 deletions
+2 -2
View File
@@ -72,7 +72,7 @@ function checkValidity() {
async function refreshApiTokens() {
const [error, tokens] = await tokensModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
apiTokens.value = tokens.filter(function (c) { return c.clientId === TOKEN_TYPES.ID_SDK; });
}
@@ -117,7 +117,7 @@ async function onRevokeToken(apiToken) {
if (!yes) return;
const [error] = await tokensModel.remove(apiToken.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
await refreshApiTokens();
}
+3 -2
View File
@@ -188,13 +188,14 @@ async function onSubmit() {
function onBackupConfigChanged(event) {
const reader = new FileReader();
reader.onload = function (result) {
if (!result.target || !result.target.result) return window.cloudron.onError(new Error('Unable to read backup config'));
if (!result.target || !result.target.result) return console.error('Unable to read backup config');
let data;
try {
data = JSON.parse(result.target.result); // 'provider', 'config', 'limits', 'format', 'remotePath', 'encrypted', 'encryptedFilenames'
} catch (e) {
return window.cloudron.onError(e);
console.error('Unable to parse backup config', e);
return;
}
provider.value = data.provider;
@@ -106,7 +106,7 @@ async function onSubmit(overwriteDns) {
if (error) {
formError.value.location = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
if (result.needsOverwrite && !overwriteDns) {
@@ -175,12 +175,12 @@ function onClose() {
onMounted(async () => {
let [error, result] = await usersModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
result.forEach(u => u.username = u.username || u.email);
users.value = result;
[error, result] = await groupsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
groups.value = result;
});
+4 -4
View File
@@ -61,7 +61,7 @@ const identifier = ref('');
const appsById = {};
async function refresh() {
const [error, result] = await appPasswordsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
// setup label for the table UI
result.forEach(function (password) {
@@ -98,7 +98,7 @@ async function onSubmit() {
addedPassword.value = '';
const [error, result] = await appPasswordsModel.add(identifier.value, passwordName.value);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
addedPassword.value = result.password;
passwordName.value = '';
@@ -120,7 +120,7 @@ async function onRemove(appPassword) {
if (!yes) return;
const [error] = await appPasswordsModel.remove(appPassword.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
await refresh();
}
@@ -130,7 +130,7 @@ onMounted(async () => {
identifiers.value = [{ id: 'mail', label: 'Mail client' }];
const [error, apps] = await appsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
apps.forEach(function (app) {
if (!app.manifest.addons) return;
@@ -114,7 +114,7 @@ defineExpose({
formError.value = {};
const [error, result] = await domainsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
domains.value = result;
+4 -4
View File
@@ -88,7 +88,7 @@ async function onSubmit() {
if (error) {
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
emits('success');
@@ -109,7 +109,7 @@ async function onRemove() {
if (!yes) return;
const [error] = await applinksModel.remove(id.value);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
emits('success');
applinkDialog.value.close();
@@ -129,11 +129,11 @@ defineExpose({
// fetch users and groups
let [error, result] = await usersModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
users.value = result;
[error, result] = await groupsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
groups.value = result;
applinkDialog.value.open();
@@ -72,7 +72,7 @@ async function getBlockDevices() {
if (props.provisioning) [error, blockDevices] = await provisionModel.blockDevices();
else [error, blockDevices] = await systemModel.blockDevices();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
ext4BlockDevices.value = [];
xfsBlockDevices.value = [];
@@ -167,7 +167,7 @@ async function onSubmit() {
if (error) {
formError.value.generic = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
// stash for encryption password step
@@ -203,7 +203,7 @@ async function onSetupEncryption() {
formError.value.generic = error.body ? error.body.message : 'Internal error';
}
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
emit('success');
@@ -217,7 +217,7 @@ watch(encryptionPassword, () => {
async function getMemory() {
const [error, result] = await systemModel.memory();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
maxMemoryLimit.value = Math.ceil(result.memory / (1024*1024*1024)) * 1024 * 1024 * 1024;
}
@@ -272,7 +272,7 @@ defineExpose({
await getMemory();
const [error, result] = await appsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
contentOptions.value = [{
id: 'box',
@@ -53,7 +53,7 @@ async function onSubmit() {
else formError.value.generic = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
}
@@ -116,7 +116,7 @@ async function onSubmit() {
if (error) {
formError.value.generic = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
emit('success');
@@ -126,7 +126,7 @@ async function onSubmit() {
async function getMemory() {
const [error, result] = await systemModel.memory();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
maxMemoryLimit.value = Math.ceil(result.memory / (1024*1024*1024)) * 1024 * 1024 * 1024;
}
@@ -28,7 +28,7 @@ async function onSubmit() {
if (error) {
formError.value.generic = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
let contents;
@@ -56,7 +56,7 @@ async function onSubmit() {
if (error) {
formError.value.generic = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
emit('success');
@@ -79,7 +79,7 @@ defineExpose({
enableForUpdates.value = !!t.enableForUpdates;
const [error, result] = await appsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
contentOptions.value = [{
id: 'box',
@@ -45,7 +45,7 @@ async function onSubmit() {
if (error) {
busy.value = false;
formError.value = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
const selectedRetention = BackupSitesModel.backupRetentions.find(function (x) { return x.name === configureRetention.value; });
@@ -53,7 +53,7 @@ async function onSubmit() {
if (error) {
busy.value = false;
formError.value = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
emit('success');
+6 -6
View File
@@ -32,17 +32,17 @@ async function onNameSave(newName) {
async function onAvatarSubmit(file) {
const [error] = await brandingModel.setAvatar(file);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
}
async function onBackgroundSubmit(file) {
const [error] = await brandingModel.setBackground(file);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
}
async function onBackgroundUnset() {
const [error] = await brandingModel.unsetBackground();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
backgroundUrl.value = '';
}
@@ -55,18 +55,18 @@ async function onFooterSave(newFooter) {
const [error] = await brandingModel.setFooter(newFooter);
savingFooter.value = false;
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
footer.value = newFooter;
}
onMounted(async () => {
let [error, result] = await dashboardModel.config();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
name.value = result.cloudronName;
[error, result] = await brandingModel.getFooter();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
footer.value = result;
});
@@ -22,7 +22,7 @@ async function onSubmit() {
busy.value = true;
const [error] = await mailModel.setCatchallAddresses(props.domainConfig.domain, addresses.value);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
currentAddresses.value = addresses.value.slice();
busy.value = false;
@@ -43,13 +43,13 @@ const hasChanged = computed(() => {
onMounted(async () => {
const [error, result] = await domainsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
// only for inbound enabled but then we have extra rest calls
for (const domain of result) {
const [error, result] = await mailboxesModel.list(domain.domain);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
allAddresses.value = allAddresses.value.concat(result.map(mailbox => {
return {
+3 -3
View File
@@ -18,7 +18,7 @@ async function waitForLastTask() {
if (!lastTask.value.id) return;
const [error, result] = await taskModel.get(lastTask.value.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result;
@@ -33,7 +33,7 @@ async function waitForLastTask() {
async function refreshTasks() {
const [error, result] = await taskModel.getByType(TASK_TYPES.TASK_CHECK_CERTS);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result[0] || {};
@@ -57,7 +57,7 @@ async function onRenew() {
// always rebuild the nginx configs when triggered via the UI. we assume user is clicking this because something is wrong
const [error] = await domainsModel.renewCerts({ rebuild: true });
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
await refreshTasks();
}
+5 -5
View File
@@ -25,14 +25,14 @@ async function waitForLastTask() {
if (!lastTask.value.id) return;
const [error, result] = await taskModel.get(lastTask.value.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result;
if (!result.active) {
if (result.success) {
const [error] = await dashboardModel.setDomain(newDomain.value);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
window.location.href = 'https://my.' + newDomain.value;
} else {
await refreshTasks();
@@ -46,7 +46,7 @@ async function waitForLastTask() {
async function refreshTasks() {
const [error, result] = await taskModel.getByType(TASK_TYPES.TASK_PREPARE_DASHBOARD_LOCATION);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result[0] || {};
@@ -86,7 +86,7 @@ async function selectCurrentDomain(newDomains) {
domains.value = newDomains;
const [error, result] = await dashboardModel.config();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
if (domains.value.length) {
const adminDomain = domains.value.find(d => d.domain === result.adminDomain);
@@ -99,7 +99,7 @@ async function selectCurrentDomain(newDomains) {
onMounted(async () => {
const [error, result] = await domainsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
await selectCurrentDomain(result);
+1 -1
View File
@@ -12,7 +12,7 @@ const filesystems = ref([]);
onMounted(async () => {
const [error, result] = await systemModel.filesystems();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
filesystems.value = result;
ready.value = true;
+1 -1
View File
@@ -22,7 +22,7 @@ let eventSource = null;
async function refresh() {
const [error, result] = await systemModel.filesystemUsage(props.filesystem.filesystem);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
contents.value = [];
@@ -79,7 +79,7 @@ async function onRemove(registry) {
}
async function refresh() {
const [error, result] = await dockerRegistriesModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
registries.value = result;
}
@@ -52,7 +52,7 @@ async function onSubmit() {
if (error) {
busy.value = false;
formError.value.generic = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
emit('success');
+1 -1
View File
@@ -78,7 +78,7 @@ async function onSubmit() {
if (error) {
errorMessage.value = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
emit('success');
+2 -2
View File
@@ -207,7 +207,7 @@ async function updateTaskStatus(id) {
async function refreshTasks() {
const [error, result] = await tasksModel.getByType(TASK_TYPES.TASK_SYNC_EXTERNAL_LDAP);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
// limit to last 10
tasks.value = result.slice(0, 10);
@@ -225,7 +225,7 @@ async function refreshTasks() {
async function refresh() {
const [error, result] = await userDirectoryModel.getExternalLdapConfig();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
config.value = result;
}
+2 -2
View File
@@ -20,7 +20,7 @@ const isBlocklistValid = computed(() => {
async function refreshBlocklist() {
const [error, result] = await networkModel.getBlocklist();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
blocklist.value = result;
blocklistLength.value = result.split('\n').filter(function (l) { return l.length !== 0 && l[0] !== '#'; }).length;
@@ -88,7 +88,7 @@ async function onTrustedIpsSubmit() {
async function refreshTrustedIps() {
const [error, result] = await networkModel.getTrustedIps();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
trustedIps.value = result;
trustedIpsLength.value = result.split('\n').filter(function (l) { return l.length !== 0 && l[0] !== '#'; }).length;
+4 -4
View File
@@ -34,7 +34,7 @@ async function onSubmit() {
if (error.body && error.body.message.indexOf('name') === 0) formError.value.name = error.body.message;
else formError.value.generic = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
} else {
const [error] = await groupsModel.add(name.value, userIds.value, appIds.value);
@@ -42,7 +42,7 @@ async function onSubmit() {
if (error.body && error.body.message.indexOf('name') === 0) formError.value.name = error.body.message;
else formError.value.generic = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
}
@@ -60,13 +60,13 @@ defineExpose({
busy.value = false;
let [error, result] = await usersModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
result.forEach(u => u.label = (u.username || u.email));
allUsers.value = result;
userIds.value = g ? g.userIds : [];
[error, result] = await appsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
result.forEach(a => a.label = (a.label || a.fqdn));
allApps.value = result;
appIds.value = g ? g.appIds : [];
+4 -4
View File
@@ -41,7 +41,7 @@ function onOpenNotifications(popover, event, elem) {
async function onMarkNotificationRead(notification) {
notification.busy = true;
const [error] = await notificationModel.update(notification.id, true);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
await refresh();
@@ -55,7 +55,7 @@ async function onMarkAllNotificationRead() {
await eachLimit(notifications.value, 5, async (notification) => {
notification.busy = true;
const [error] = await notificationModel.update(notification.id, true);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
});
await refresh();
@@ -67,7 +67,7 @@ async function onMarkAllNotificationRead() {
async function refresh() {
const [error, result] = await notificationModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
result.forEach(n => {
n.isCollapsed = true;
@@ -91,7 +91,7 @@ const platformStatus = ref({
let platformTimeoutId = 0;
async function trackPlatformStatus() {
const [error, result] = await servicesModel.getPlatformStatus();
if (error) return window.cloudron.onError(error);
if (error) return console.error('Failed to get platform status.', error);
platformStatus.value = result;
@@ -33,7 +33,7 @@ async function onSubmit() {
if (error) {
busy.value = false;
formError.value = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
busy.value = false;
@@ -22,7 +22,7 @@ const busy = ref(false);
async function onSendInvite() {
const [error] = await usersModel.sendInviteEmail(user.value.id, email.value);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
window.pankow.notify({ type: 'success', text: t('users.invitationNotification.body', { email: email.value })});
+2 -2
View File
@@ -49,14 +49,14 @@ function checkValidity() {
async function refresh() {
let [error, result] = await networkModel.getIpv4Config();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
provider.value = result.provider;
address.value = result.ip;
interfaceName.value = result.ifname;
[error, result] = await networkModel.getIpv4();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
detectedAddress.value = result;
}
+2 -2
View File
@@ -49,14 +49,14 @@ function checkValidity() {
async function refresh() {
let [error, result] = await networkModel.getIpv6Config();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
provider.value = result.provider;
address.value = result.ip;
interfaceName.value = result.ifname;
[error, result] = await networkModel.getIpv6();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
detectedAddress.value = result;
}
+3 -3
View File
@@ -46,18 +46,18 @@ async function onSubmit() {
onMounted(async () => {
let [error, result] = await domainsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
const domains = result;
[error, result] = await dashboardModel.config();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
ldapUrl.value = `ldaps://${result.adminFqdn}:636`;
adminDomain.value = domains.find(d => d.domain === result.adminDomain);
[error, result] = await userDirectoryModel.getExposedLdapConfig();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
enabled.value = result.enabled;
secret.value = result.secret;
+2 -2
View File
@@ -52,7 +52,7 @@ export default {
this.busyRestart = true;
const [error] = await this.appsModel.restart(this.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
this.busyRestart = false;
}
@@ -102,7 +102,7 @@ export default {
this.appsModel = AppsModel.create();
const [error, app] = await this.appsModel.get(this.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
this.name = `${app.label || app.fqdn} (${app.manifest.title})`;
this.showFilemanager = !!app.manifest.addons.localstorage;
@@ -55,14 +55,14 @@ async function refresh() {
busy.value = true;
let [error, result] = await mailModel.status(props.domain);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
if (result.relay) result.relay.isOpen = false;
domainStatus.value = result;
[error, result] = await mailModel.config(props.domain);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
mailConfig.value = result;
@@ -80,7 +80,7 @@ async function onShowDialog() {
busy.value = false;
const [error, result] = await mailModel.config(props.domain);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
mailConfig.value = result;
provider.value = result.relay.provider;
@@ -132,7 +132,7 @@ async function onSubmit() {
if (error) {
formError.value = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
currentProvider.value = provider.value;
@@ -144,7 +144,7 @@ async function onSubmit() {
onMounted(async () => {
const [error, result] = await mailModel.config(props.domain);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
provider.value = result.relay.provider;
currentProvider.value = result.relay.provider;
@@ -28,7 +28,7 @@ async function waitForLastTask() {
if (!lastTask.value.id) return;
const [error, result] = await taskModel.get(lastTask.value.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result;
@@ -49,7 +49,7 @@ async function waitForLastTask() {
async function refreshTasks() {
const [error, result] = await taskModel.getByType(TASK_TYPES.TASK_CHANGE_MAIL_LOCATION);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result[0] || {};
@@ -75,7 +75,7 @@ async function onSubmit() {
lastTask.value.message = 'Preparing dashboard domain';
const [error] = await mailModel.setLocation(subdomain.value, domain.value);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
originalDomain.value = domain.value;
originalSubdomain.value = subdomain.value;
@@ -85,12 +85,12 @@ async function onSubmit() {
onMounted(async () => {
let [error, result] = await domainsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
domains.value = result;
[error, result] = await mailModel.location();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
domain.value = result.domain;
subdomain.value = result.subdomain;
+3 -3
View File
@@ -70,21 +70,21 @@ async function onSubmit() {
if (error) {
busy.value = false;
formError.value = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
[error] = await mailboxesModel.setAliases(domain.value, name.value, aliases.value);
if (error) {
busy.value = false;
formError.value = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
} else {
const [error] = await mailboxesModel.add(domain.value, name.value, data);
if (error) {
busy.value = false;
formError.value = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
}
@@ -42,7 +42,7 @@ async function onSubmit() {
if (error.status === 400 && error.body.message.indexOf('Invalid mail member') === 0) formError.value.members = error.body.message;
else if (error.status === 400) formError.value.name = error.body.message;
else formError.value.generic = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
} else {
const [error] = await mailinglistsModel.add(domain.value, name.value, data);
@@ -51,7 +51,7 @@ async function onSubmit() {
if (error.status === 400 && error.body.message.indexOf('Invalid mail member') === 0) formError.value.members = error.body.message;
else if (error.status === 400) formError.value.name = error.body.message;
else formError.value.generic = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
}
@@ -32,14 +32,14 @@ async function onSubmit() {
if (reboot.value) config.push('reboot');
const [error] = await profileModel.setNotificationConfig(config);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
busy.value = false;
}
onMounted(async () => {
const [error, result] = await profileModel.get();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
const config = result.notificationConfig || [];
@@ -24,7 +24,7 @@ async function onSend() {
if (error) {
busy.value = false;
formError.value = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
window.pankow.notify({ type: 'success', text: t('profile.passwordResetNotification.body', { email: email.value }) });
@@ -41,7 +41,7 @@ defineExpose({
email.value = u.fallbackEmail || u.email;
const [error, result] = await usersModel.getPasswordResetLink(u.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
resetLink.value = result;
dialog.value.open();
+3 -3
View File
@@ -25,15 +25,15 @@ defineExpose({
fqdn.value = a.fqdn;
let [error, result] = await dashboardModel.config();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
adminFqdn.value = result.adminFqdn;
[error, result] = await domainsModel.get(result.adminDomain);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
adminDomainProvider.value = result.provider;
[error, result] = await profileModel.get();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
username.value = result.username;
dialog.value.open();
+3 -3
View File
@@ -18,7 +18,7 @@ async function waitForLastTask() {
if (!lastTask.value.id) return;
const [error, result] = await tasksModel.get(lastTask.value.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result;
@@ -33,7 +33,7 @@ async function waitForLastTask() {
async function refreshTasks() {
const [error, result] = await tasksModel.getByType(TASK_TYPES.TASK_SYNC_DNS_RECORDS);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result[0] || {};
@@ -57,7 +57,7 @@ async function onSync() {
// no options means all records
const [error] = await domainsModel.setDnsRecords({});
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
await refreshTasks();
}
@@ -87,7 +87,7 @@ async function waitForBackupTask(id) {
if (!id || (trackingBackupTask.value.id && trackingBackupTask.value.id !== id)) return;
const [error, result] = await tasksModel.get(id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
trackingBackupTask.value = result;
@@ -106,7 +106,7 @@ async function waitForCleanupTask(id) {
if (!id || (trackingCleanupTask.value.id && trackingCleanupTask.value.id !== id)) return;
const [error, result] = await tasksModel.get(id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
trackingCleanupTask.value = result;
@@ -126,7 +126,7 @@ async function refreshTasks() {
for (const site of sites.value) {
const [error, results] = await tasksModel.getByType(TASK_TYPES.TASK_FULL_BACKUP_PREFIX + site.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
results.forEach(r => r.siteName = site.name);
tasks = tasks.concat(results);
@@ -137,7 +137,7 @@ async function refreshTasks() {
for (const site of sites.value) {
const [error, results] = await tasksModel.getByType(TASK_TYPES.TASK_CLEAN_BACKUPS_PREFIX + site.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
results.forEach(r => r.siteName = site.name);
tasks = tasks.concat(results);
@@ -160,7 +160,7 @@ async function refreshTasks() {
async function refreshBackups() {
const [error, result] = await backupsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
result.forEach(function (backup) {
backup.site = sites.value.find(t => t.id === backup.siteId);
@@ -172,17 +172,17 @@ async function refreshBackups() {
async function refreshBackupSites() {
const [error, result] = await backupSitesModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
sites.value = result;
}
async function onDownloadConfig(backup) {
const [error, dashboardConfig] = await dashboardModel.config();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
const [backupConfigError, backupConfig] = await backupSitesModel.generateBackupConfig(backup);
if (backupConfigError) return window.cloudron.onError(backupConfigError);
if (backupConfigError) return console.error(backupConfigError);
const filename = `${dashboardConfig.adminFqdn}-backup-config-${(new Date(backup.creationTime)).toISOString().split('T')[0]}.json`;
download(filename, JSON.stringify(backupConfig, null, 4));
@@ -214,7 +214,7 @@ async function onEditSubmit() {
const [error] = await backupsModel.update(editBackupId.value, editBackupLabel.value, editBackupPersist.value ? -1 : 0);
if (error) {
if (error) return window.cloudron.onError(error);
return console.error(error);
}
await refreshBackups();
+4 -4
View File
@@ -131,7 +131,7 @@ async function rebuild() {
serviceIds: []
};
const [error, metrics] = await systemModel.getMetrics(options);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
const appIds = selectedContainers.value.map(c => c.id);
for (const [idx, id] of appIds.concat(['system']).entries()) {
@@ -163,15 +163,15 @@ onMounted(async () => {
let error, result;
[error, result] = await systemModel.memory();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
systemMemory = result;
[error, result] = await systemModel.cpus();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
systemCpus = result;
[error, result] = await appsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
allContainers.value = result.map(a => { return { label: a.label || a.fqdn, id: a.id }; });
if (result.length) allContainers.value.push({ separator: true });
allContainers.value.push(...serviceContainers);
+5 -5
View File
@@ -49,25 +49,25 @@ async function onReboot() {
onMounted(async () => {
let [error, result] = await systemModel.memory();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
memory.value = result;
[error, result] = await systemModel.cpus();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
cpus.value = result;
[error, result] = await cloudronModel.getTimeZone();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
[error, result] = await systemModel.info();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
info.value = result;
uptime.value = moment.duration(info.value.uptimeSecs, 'seconds').locale(navigator.language).humanize();
activeSince.value = info.value.activationTime ? moment(info.value.activationTime).fromNow() : 'unknown';
[error, result] = await dashboardModel.config();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
config.value = result;
});
+7 -7
View File
@@ -62,7 +62,7 @@ const configureHours = ref([]);
async function refreshAutoupdatePattern() {
const [error, result] = await updaterModel.getAutoupdatePattern();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
currentPattern.value = result.pattern;
configurePattern.value = result.pattern;
@@ -70,14 +70,14 @@ async function refreshAutoupdatePattern() {
async function refreshApps() {
const [error, result] = await appsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
apps.value = result;
}
async function refreshPendingUpdateInfo() {
const [error, result] = await updaterModel.getBoxUpdate();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
updateError.value = {};
stopError.value = {};
@@ -118,7 +118,7 @@ async function onSubmitConfigure() {
if (error) {
configureError.value = error.body ? error.body.message : 'Internal error';
configureBusy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
await refreshAutoupdatePattern();
@@ -140,7 +140,7 @@ async function waitForTask() {
if (error) {
setTimeout(waitForTask, 2000);
if (error) return window.cloudron.onError(error);
return console.error(error);
}
lastTask.value = result;
@@ -157,7 +157,7 @@ async function waitForTask() {
async function refreshTasks() {
const [error, result] = await tasksModel.getByType(TASK_TYPES.TASK_UPDATE);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result[0] || {};
if (result.length && !result[0].active && !result[0].success) updateError.value.generic = result[0].error.message;
@@ -233,7 +233,7 @@ async function onStop() {
onMounted(async () => {
const [error, result] = await dashboardModel.config();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
version.value = result.version;
ubuntuVersion.value = result.ubuntuVersion;
+1 -1
View File
@@ -150,7 +150,7 @@ async function onRestartApp() {
busyRestart.value = true;
const [error] = await appsModel.restart(id.value);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
busyRestart.value = false;
}
+11 -11
View File
@@ -90,7 +90,7 @@ async function onSubmit() {
formError.value.username = 'Username already taken';
} else {
// should not happen!!
window.cloudron.onError(message);
console.error(message);
}
} else if (error.status === 400) {
if (message.toLowerCase().indexOf('email') !== -1) {
@@ -100,10 +100,10 @@ async function onSubmit() {
formError.value.username = message;
} else {
// should not happen!!
window.cloudron.onError(error);
console.error(error);
}
} else {
window.cloudron.onError(error);
console.error(error);
}
busy.value = false;
return;
@@ -118,7 +118,7 @@ async function onSubmit() {
if (error) {
formError.value.role = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
}
@@ -127,7 +127,7 @@ async function onSubmit() {
if (error) {
formError.value.generic = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
}
@@ -135,7 +135,7 @@ async function onSubmit() {
if (groupError) {
formError.value.generic = groupError.body ? groupError.body.message : 'Internal error';
busy.value = false;
return window.cloudron.onError(groupError);
return console.error(groupError);
}
if (sendInvite.value) {
@@ -143,7 +143,7 @@ async function onSubmit() {
if (error) {
formError.value.generic = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
}
@@ -158,7 +158,7 @@ async function onSubmit() {
if (avatarError) {
formError.value.generic = avatarError.body ? avatarError.body.message : 'Internal error';
busy.value = false;
return window.cloudron.onError(avatarError);
return console.error(avatarError);
}
emit('success');
@@ -184,14 +184,14 @@ defineExpose({
avatarFile = u?.avatarUrl ? 'src' : 'fallback';
let [error, result] = await groupsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
result.forEach(g => g.label = g.name);
allGroups.value = result;
allLocalGroups.value = result.filter(g => !g.source);
localGroupIds.value = u ? u.groupIds.filter(gid => allLocalGroups.value.find(g => g.id === gid)) : [];
[error, result] = await profileModel.get();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
profile.value = result;
isSelf.value = u && u.id === profile.value.id;
@@ -204,7 +204,7 @@ defineExpose({
];
[error, result] = await dashboardModel.config();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
profileLocked.value = result.profileLocked;
imagePicker.value.reset();
+1 -1
View File
@@ -51,7 +51,7 @@ async function onSubmit() {
if (error) {
errorMessage.value = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
emit('success');
+4 -4
View File
@@ -33,14 +33,14 @@ async function onSubmit() {
if (error) {
errorMessage.value = error.body ? error.body.message : 'Internal error';
submitBusy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
[error] = await appsModel.configure(props.app.id, 'operators', { operators: (operatorAcl.value.users.length || operatorAcl.value.groups.length) ? operatorAcl.value : null});
if (error) {
errorMessage.value = error.body ? error.body.message : 'Internal error';
submitBusy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
submitBusy.value = false;
@@ -50,7 +50,7 @@ onMounted(async () => {
loading.value = true;
let [error, result] = await usersModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
const userIds = new Set();
for (const u of result) {
u.username = u.username || u.email; // ensure username
@@ -59,7 +59,7 @@ onMounted(async () => {
users.value = result;
[error, result] = await groupsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
groups.value = result;
const groupIds = new Set();
for (const g of result) groupIds.add(g.id);
+10 -10
View File
@@ -127,7 +127,7 @@ async function onChangeAutoBackups(value) {
const [error] = await appsModel.configure(props.app.id, 'automatic_backup', { enable: value });
if (error) {
autoBackupsEnabled.value = !value;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
}
@@ -135,7 +135,7 @@ async function waitForTask() {
if (!lastTask.value.id) return;
const [error, result] = await tasksModel.get(lastTask.value.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result;
@@ -152,7 +152,7 @@ async function waitForTask() {
async function refreshTasks() {
const [error, result] = await tasksModel.getByType(TASK_TYPES.TASK_APP_BACKUP_PREFIX + props.app.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
lastTask.value = result[0] || {};
@@ -173,7 +173,7 @@ async function onStartBackup(backupSiteId) {
startBackupBusy.value = true;
const [error] = await appsModel.backup(props.app.id, backupSiteId);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
await refreshTasks();
}
@@ -182,7 +182,7 @@ async function onStopBackup() {
stopBackupBusy.value = true;
const [error] = await tasksModel.stop(lastTask.value.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
await refreshTasks();
@@ -207,7 +207,7 @@ async function onEditSubmit() {
if (error) {
editError.value = error.body ? error.body.message : 'Internal error';
editBusy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
refreshBackupList();
@@ -221,7 +221,7 @@ function getDownloadLink(backup) {
async function onDownloadConfig(backup) {
const [backupConfigError, backupConfig] = await backupSitesModel.generateBackupConfig(backup);
if (backupConfigError) return window.cloudron.onError(backupConfigError);
if (backupConfigError) return console.error(backupConfigError);
const filename = `${props.app.fqdn}-backup-config-${(new Date(backup.creationTime)).toISOString().split('T')[0]}.json`;
download(filename, JSON.stringify(backupConfig, null, 4));
@@ -248,7 +248,7 @@ async function onRestoreSubmit() {
const [error] = await appsModel.restore(props.app.id, restoreBackup.value.id);
if (error) {
restoreBusy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
restoreDialog.value.close();
@@ -266,7 +266,7 @@ function onClone(backup) {
async function refreshBackupList() {
const [error, result] = await appsModel.backups(props.app.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
result.forEach(backup => {
backup.site = backupSites.value.find(t => t.id === backup.siteId);
@@ -278,7 +278,7 @@ onMounted(async () => {
autoBackupsEnabled.value = props.app.enableBackup;
const [error, result] = await appsModel.listBackupSites(props.app.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
backupSites.value = result;
backupSitesMenu.value = result.map(site => {
+1 -1
View File
@@ -49,7 +49,7 @@ async function onSubmit() {
busy.value = true;
const [error] = await appsModel.configure(props.app.id, 'crontab', { crontab: crontab.value });
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
busy.value = false;
}
+2 -2
View File
@@ -59,7 +59,7 @@ async function onSubmit() {
if (error) {
labelError.value = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
}
@@ -68,7 +68,7 @@ async function onSubmit() {
if (error) {
tagsError.value = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
}
+4 -4
View File
@@ -52,7 +52,7 @@ async function onSendmailSubmit() {
if (error) {
sendmailError.value = error.body ? error.body.message : 'Internal error';
sendmailBusy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
sendmailBusy.value = false;
@@ -75,7 +75,7 @@ async function onRecvmailSubmit() {
if (error) {
recvmailError.value = error.body ? error.body.message : 'Internal error';
recvmailBusy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
recvmailBusy.value = false;
@@ -83,7 +83,7 @@ async function onRecvmailSubmit() {
onMounted(async () => {
const [error, result] = await domainsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
domains.value = result.map(d => {
return {
@@ -103,7 +103,7 @@ onMounted(async () => {
let tmp = [];
for (const d of domains.value) {
const [error, result] = await mailboxesModel.list(d.domain);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
tmp = tmp.concat(result);
}
+1 -1
View File
@@ -14,7 +14,7 @@ const eventlogs = ref([]);
onMounted(async () => {
const [error, result] = await appsModel.getEvents(props.app.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
eventlogs.value = result.map(e => {
return {
+2 -2
View File
@@ -92,7 +92,7 @@ async function rebuild() {
if (period.value.hours !== 0) {
const [error, metrics] = await appsModel.getMetrics(app.id, { fromSecs: period.value.hours * 60 * 60, intervalSecs: period.value.intervalSecs });
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
datasets.cpu[0].data = metrics[app.id].cpu;
datasets.memory[0].data = metrics[app.id].memory;
@@ -120,7 +120,7 @@ async function rebuild() {
onMounted(async () => {
const [error, result] = await systemModel.cpus();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
systemCpus = result;
+2 -2
View File
@@ -24,7 +24,7 @@ const profile = inject('profile');
async function onAckChecklistItem(item, key) {
const [error] = await appsModel.ackChecklistItem(props.app.id, key, true);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
item.acknowledged = true;
item.changedAt = Date.now();
@@ -46,7 +46,7 @@ async function onSubmit() {
const [error] = await appsModel.configure(props.app.id, 'notes', { notes: noteContent.value });
if (error) {
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
// let main view know about this
+3 -3
View File
@@ -104,7 +104,7 @@ async function onSubmit() {
if (error) {
errorMessage.value = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
if (result.needsOverwrite && !overwriteDns.value) {
@@ -137,7 +137,7 @@ async function onSubmit() {
if (error) {
errorMessage.value = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
busy.value = false;
@@ -145,7 +145,7 @@ async function onSubmit() {
onMounted(async () => {
const [error, result] = await domainsModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
result.forEach(d => {
d.label = '.' + d.domain;
+1 -1
View File
@@ -20,7 +20,7 @@ async function onSubmit() {
if (error) {
errorMessage.value = error.body ? error.body.message : 'Internal error';
busy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
busy.value = false;
+1 -1
View File
@@ -25,7 +25,7 @@ async function onToggleDebugMode() {
const [error] = await appsModel.configure(props.app.id, 'debug_mode', { debugMode: data });
if (error) {
debugModeBusy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
// let the task start
+3 -3
View File
@@ -31,7 +31,7 @@ async function onSubmitMemoryLimit() {
const limit = tmp === memoryTicks.value[0] ? 0 : tmp; // this will reset to app minimum
const [error] = await appsModel.configure(props.app.id, 'memory_limit', { memoryLimit: limit });
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
// give polling some time
setTimeout(() => memoryLimitBusy.value = false, 4000);
@@ -41,7 +41,7 @@ async function onSubmitCpuQuota() {
cpuQuotaBusy.value = true;
const [error] = await appsModel.configure(props.app.id, 'cpu_quota', { cpuQuota: parseInt(cpuQuota.value) });
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
currentCpuQuota.value = parseInt(cpuQuota.value);
@@ -83,7 +83,7 @@ const devicesChanged = computed(() => {
onMounted(async () => {
const [error, result] = await systemModel.memory();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
cpuQuota.value = props.app.cpuQuota;
currentCpuQuota.value = props.app.cpuQuota;
+1 -1
View File
@@ -27,7 +27,7 @@ async function onSubmit() {
};
const [error] = await appsModel.configure(props.app.id, 'reverse_proxy', data);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
busy.value = false;
}
+2 -2
View File
@@ -21,7 +21,7 @@ async function onTurnChange(value) {
if (error) {
turnBusy.value = false;
turnEnabled.value = !value;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
turnBusy.value = false;
@@ -38,7 +38,7 @@ async function onRedisChange(value) {
if (error) {
redisBusy.value = false;
redisEnabled.value = !value;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
redisBusy.value = false;
+3 -3
View File
@@ -52,7 +52,7 @@ async function onSubmitMove() {
if (error) {
moveError.value = error.body ? error.body.message : 'Internal error';
moveBusy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
originalVolumeId.value = volumeId.value;
@@ -87,7 +87,7 @@ async function onSubmitMounts() {
if (error) {
mountsError.value = error.body ? error.body.message : 'Internal error';
mountsBusy.value = false;
if (error) return window.cloudron.onError(error);
return console.error(error);
}
// make a copy, cannot clone due to Proxy objects
@@ -121,7 +121,7 @@ const mountsChanged = computed(() => {
onMounted(async () => {
const [error, result] = await volumesModel.list();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
props.app.mounts.forEach(mount => { // { volumeId, readOnly }
const volume = result.find(v => { return v.id === mount.volumeId; });
+4 -4
View File
@@ -31,7 +31,7 @@ async function onUninstall() {
if (!yes) return;
const [error] = await appsModel.uninstall(props.app.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
window.location.href = '/#/apps';
}
@@ -50,20 +50,20 @@ async function onArchive() {
if (!yes) return;
const [error] = await appsModel.archive(props.app.id, latestBackup.value.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
window.location.href = '/#/apps';
}
onMounted(async () => {
let [error, result] = await appsModel.backups(props.app.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
latestBackup.value = result[0] || null;
if (latestBackup.value) {
[error, result] = await appsModel.listBackupSites(props.app.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
latestBackup.value.siteName = result.find((s) => s.id === latestBackup.value.siteId).name;
}
+4 -4
View File
@@ -42,7 +42,7 @@ async function waitForTask(id) {
if (!id) return;
const [error, result] = await tasksModel.get(id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
// task done, refresh menu
if (!result.active) {
@@ -57,7 +57,7 @@ async function onCheck() {
busyCheck.value = true;
const [error] = await appsModel.checkUpdate(props.app.id);
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
busyCheck.value = false;
}
@@ -70,7 +70,7 @@ async function onUpdate() {
if (error) {
busyUpdate.value = false;
if (error.status === 400) updateError.value = error.body ? error.body.message : 'Internal error';
if (error) return window.cloudron.onError(error);
return console.error(error);
}
dialog.value.close();
@@ -89,7 +89,7 @@ onMounted(async () => {
autoUpdatesEnabled.value = props.app.enableAutomaticUpdate;
const [error, result] = await profileModel.get();
if (error) return window.cloudron.onError(error);
if (error) return console.error(error);
profile.value = result;
});