Revert "Replace generic console.error handlers with window.cloudron.onError"
This reverts commit 7db5a48e35.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 : [];
|
||||
|
||||
@@ -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 })});
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 => {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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; });
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user