Safetydance is not browser compat
This commit is contained in:
@@ -11,11 +11,13 @@ export default {
|
||||
components: { ConfirmDialog },
|
||||
data() {
|
||||
return {
|
||||
accessToken: localStorage.token || ''
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
if (!this.accessToken) window.location.href = '/';
|
||||
if (!localStorage.token) {
|
||||
if (import.meta.env.BASE_URL !== '/') window.location.href = '/';
|
||||
else console.error('Set localStorage.token')
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
|
||||
import superagent from 'superagent';
|
||||
import safe from 'safetydance';
|
||||
import { sanitize } from 'pankow/utils';
|
||||
|
||||
export function createDirectoryModel(origin, accessToken, api) {
|
||||
@@ -8,9 +7,15 @@ export function createDirectoryModel(origin, accessToken, api) {
|
||||
return {
|
||||
name: 'DirectoryModel',
|
||||
async listFiles(path) {
|
||||
const [error, result] = await safe(superagent.get(`${origin}/api/v1/${api}/files/${path}`).query({ access_token: accessToken }));
|
||||
if (error) {
|
||||
console.error('Failed to list files', error);
|
||||
let error, result;
|
||||
try {
|
||||
result = await superagent.get(`${origin}/api/v1/${api}/files/${path}`).query({ access_token: accessToken });
|
||||
} catch (e) {
|
||||
error = e;
|
||||
}
|
||||
|
||||
if (error || result.statusCode !== 200) {
|
||||
console.error('Failed to list files', error || result.statusCode);
|
||||
return [];
|
||||
}
|
||||
|
||||
@@ -18,7 +23,7 @@ export function createDirectoryModel(origin, accessToken, api) {
|
||||
result.body.entries.forEach(item => {
|
||||
// if we have an image, attach previewUrl
|
||||
if (item.mimeType.indexOf('image/') === 0) {
|
||||
item.previewUrl = `${origin}/api/v1/${api}/files/${encodeURIComponent(path + '/' + item.fileName)}?access_token=${accessToken}`
|
||||
item.previewUrl = `${origin}/api/v1/${api}/files/${encodeURIComponent(path + '/' + item.fileName)}?access_token=${accessToken}`;
|
||||
}
|
||||
|
||||
item.folderPath = path;
|
||||
@@ -59,8 +64,10 @@ export function createDirectoryModel(origin, accessToken, api) {
|
||||
.field('overwrite', 'true');
|
||||
},
|
||||
async getFile(path) {
|
||||
const [error, result] = await safe(fetch(`${origin}/api/v1/${api}/files/${path}?access_token=${accessToken}`));
|
||||
if (error) {
|
||||
let result;
|
||||
try {
|
||||
result = await fetch(`${origin}/api/v1/${api}/files/${path}?access_token=${accessToken}`);
|
||||
} catch (error) {
|
||||
console.error('Failed to get file', error);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -72,7 +72,6 @@
|
||||
|
||||
<script>
|
||||
|
||||
import safe from 'safetydance';
|
||||
import superagent from 'superagent';
|
||||
|
||||
import Button from 'primevue/button';
|
||||
@@ -291,9 +290,15 @@ export default {
|
||||
useConfirm();
|
||||
|
||||
// load all apps
|
||||
let [error, result] = await safe(superagent.get(`${this.apiOrigin}/api/v1/apps`).query({ access_token: this.accessToken }));
|
||||
if (error) {
|
||||
console.error('Failed to list apps', error);
|
||||
let error, result;
|
||||
try {
|
||||
result = await superagent.get(`${this.apiOrigin}/api/v1/apps`).query({ access_token: this.accessToken });
|
||||
} catch (e) {
|
||||
error = e;
|
||||
}
|
||||
|
||||
if (error || result.statusCode !== 200) {
|
||||
console.error('Failed to list apps', error || result.statusCode);
|
||||
this.apps = [];
|
||||
} else {
|
||||
this.apps = result.body ? result.body.apps.filter(a => !!a.manifest.addons.localstorage) : [];
|
||||
@@ -301,9 +306,14 @@ export default {
|
||||
this.apps.forEach(function (a) { a.type = 'app'; a.label = a.fqdn; });
|
||||
|
||||
// load all volumes
|
||||
[error, result] = await safe(superagent.get(`${this.apiOrigin}/api/v1/volumes`).query({ access_token: this.accessToken }));
|
||||
if (error) {
|
||||
console.error('Failed to list volumes', error);
|
||||
try {
|
||||
result = await superagent.get(`${this.apiOrigin}/api/v1/volumes`).query({ access_token: this.accessToken });
|
||||
} catch (e) {
|
||||
error = e;
|
||||
}
|
||||
|
||||
if (error || result.statusCode !== 200) {
|
||||
console.error('Failed to list volumes', error || result.statusCode);
|
||||
this.volumes = [];
|
||||
} else {
|
||||
this.volumes = result.body ? result.body.volumes : [];
|
||||
@@ -335,6 +345,11 @@ export default {
|
||||
this.activeResource = this.apps[0];
|
||||
}
|
||||
|
||||
if (!this.activeResource) {
|
||||
console.error('Not able to load apps or volumes. Cannot continue');
|
||||
return;
|
||||
}
|
||||
|
||||
this.cwd = sanitize('/' + (this.$route.params.cwd ? this.$route.params.cwd.join('/') : '/'));
|
||||
|
||||
this.loadResource(this.activeResource);
|
||||
|
||||
Reference in New Issue
Block a user