diff --git a/backend/Controllers/FileController.php b/backend/Controllers/FileController.php
index 0910a59..d48f380 100644
--- a/backend/Controllers/FileController.php
+++ b/backend/Controllers/FileController.php
@@ -170,4 +170,25 @@ class FileController
return $response->json('Done');
}
+
+ public function saveContent(Request $request, Response $response)
+ {
+ $path = $request->input('dir', $this->session->get(self::SESSION_CWD, $this->separator));
+
+ $name = $request->input('name');
+ $content = $request->input('content');
+
+ $stream = tmpfile();
+ fwrite($stream, $content);
+ rewind($stream);
+
+ $res = $this->storage->deleteFile($path.$this->separator.$name);
+ $res = $this->storage->store($path, $name, $stream);
+
+ if (is_resource($stream)) {
+ fclose($stream);
+ }
+
+ return $response->json('Done');
+ }
}
diff --git a/backend/Controllers/routes.php b/backend/Controllers/routes.php
index 3129b06..b11298d 100644
--- a/backend/Controllers/routes.php
+++ b/backend/Controllers/routes.php
@@ -256,4 +256,15 @@ return [
'permissions' => [
],
],
+ [
+ 'route' => [
+ 'POST', '/savecontent', '\Filegator\Controllers\FileController@saveContent',
+ ],
+ 'roles' => [
+ 'guest', 'user', 'admin',
+ ],
+ 'permissions' => [
+ 'read', 'write',
+ ],
+ ],
];
diff --git a/frontend/api/api.js b/frontend/api/api.js
index 00e7132..a0b85cd 100644
--- a/frontend/api/api.js
+++ b/frontend/api/api.js
@@ -198,6 +198,16 @@ const api = {
.catch(error => reject(error))
})
},
+ saveContent (params) {
+ return new Promise((resolve, reject) => {
+ axios.post('savecontent', {
+ name: params.name,
+ content: params.content,
+ })
+ .then(res => resolve(res.data))
+ .catch(error => reject(error))
+ })
+ },
}
export default api
diff --git a/frontend/translations/bulgarian.js b/frontend/translations/bulgarian.js
index eccf0c4..e9c0d44 100644
--- a/frontend/translations/bulgarian.js
+++ b/frontend/translations/bulgarian.js
@@ -70,6 +70,7 @@ const data = {
'Updated': 'Обновено',
'Deleted': 'изтрити',
'Your file is ready': 'Вашия файл е готов',
+ 'View': 'View',
}
export default data
diff --git a/frontend/translations/chinese.js b/frontend/translations/chinese.js
index b5b6238..7e2dee5 100644
--- a/frontend/translations/chinese.js
+++ b/frontend/translations/chinese.js
@@ -70,6 +70,7 @@ const data = {
'Updated': '已上传',
'Deleted': '已删除',
'Your file is ready': '您的文件已备妥',
+ 'View': 'View',
}
export default data
diff --git a/frontend/translations/dutch.js b/frontend/translations/dutch.js
index 0052413..fba76d6 100644
--- a/frontend/translations/dutch.js
+++ b/frontend/translations/dutch.js
@@ -70,6 +70,7 @@ const data = {
'Updated': 'Aangepast',
'Deleted': 'Verwijderd',
'Your file is ready': 'Uw bestand is verwerkt',
+ 'View': 'View',
}
export default data
diff --git a/frontend/translations/french.js b/frontend/translations/french.js
index a2ce524..423cc57 100644
--- a/frontend/translations/french.js
+++ b/frontend/translations/french.js
@@ -70,6 +70,7 @@ const data = {
'Updated': 'Mis à jour',
'Deleted': 'Supprimé',
'Your file is ready': 'Votre fichier est prêt',
+ 'View': 'View',
}
export default data
diff --git a/frontend/translations/german.js b/frontend/translations/german.js
index c862360..211228e 100644
--- a/frontend/translations/german.js
+++ b/frontend/translations/german.js
@@ -70,6 +70,7 @@ const data = {
'Updated': 'Aktualisiert',
'Deleted': 'Gelöscht',
'Your file is ready': 'Deine Datei ist fertig',
+ 'View': 'View',
}
export default data
diff --git a/frontend/translations/indonesian.js b/frontend/translations/indonesian.js
index d6d8c8c..18ce81c 100644
--- a/frontend/translations/indonesian.js
+++ b/frontend/translations/indonesian.js
@@ -70,6 +70,7 @@ const data = {
'Updated': 'Diperbarui',
'Deleted': 'Dihapus',
'Your file is ready': 'File Anda sudah siap',
+ 'View': 'View',
}
export default data
diff --git a/frontend/translations/lithuanian.js b/frontend/translations/lithuanian.js
index 179ebaa..48d736a 100644
--- a/frontend/translations/lithuanian.js
+++ b/frontend/translations/lithuanian.js
@@ -70,6 +70,7 @@ const data = {
'Updated': 'Atnaujintas',
'Deleted': 'Ištrintas',
'Your file is ready': 'Jūsų failas paruoštas',
+ 'View': 'View',
}
export default data
diff --git a/frontend/translations/portuguese.js b/frontend/translations/portuguese.js
index 0c15f3a..15f99a0 100644
--- a/frontend/translations/portuguese.js
+++ b/frontend/translations/portuguese.js
@@ -70,6 +70,7 @@ const data = {
'Updated': 'Atualizado',
'Deleted': 'Excluido',
'Your file is ready': 'Seu arquivo está pronto',
+ 'View': 'View',
}
export default data
diff --git a/frontend/translations/serbian.js b/frontend/translations/serbian.js
index 5659c0d..c15e3e3 100644
--- a/frontend/translations/serbian.js
+++ b/frontend/translations/serbian.js
@@ -70,6 +70,7 @@ const data = {
'Updated': 'Izmenjeno',
'Deleted': 'Obrisano',
'Your file is ready': 'Vaš fajl je spreman',
+ 'View': 'View',
}
export default data
diff --git a/frontend/translations/spanish.js b/frontend/translations/spanish.js
index 31d8124..6214286 100644
--- a/frontend/translations/spanish.js
+++ b/frontend/translations/spanish.js
@@ -70,6 +70,7 @@ const data = {
'Updated': 'Actualizado',
'Deleted': 'Eliminado',
'Your file is ready': 'Su fichero está listo',
+ 'View': 'View',
}
export default data
diff --git a/frontend/translations/turkish.js b/frontend/translations/turkish.js
index 8516503..edc3ce6 100644
--- a/frontend/translations/turkish.js
+++ b/frontend/translations/turkish.js
@@ -70,6 +70,7 @@ const data = {
'Updated': 'Güncellendi',
'Deleted': 'Silindi',
'Your file is ready': 'Dosyanız Hazır',
+ 'View': 'View',
}
export default data
diff --git a/frontend/views/Browser.vue b/frontend/views/Browser.vue
index 4ea7465..0abd3cf 100644
--- a/frontend/views/Browser.vue
+++ b/frontend/views/Browser.vue
@@ -113,7 +113,7 @@
{{ lang('Download') }}
-
+
{{ lang('View') }}
@@ -252,7 +252,7 @@ export default {
itemClick(item) {
if (item.type == 'dir' || item.type == 'back') {
this.goTo(item.path)
- } else {
+ } else if (this.can(['read', 'download'])) {
this.preview(item)
}
},
diff --git a/frontend/views/partials/Preview.vue b/frontend/views/partials/Preview.vue
index af21841..7c7bd8f 100644
--- a/frontend/views/partials/Preview.vue
+++ b/frontend/views/partials/Preview.vue
@@ -13,6 +13,9 @@