navigation
This commit is contained in:
parent
9aec836b45
commit
ec0afbb28c
30
js/main.js
30
js/main.js
@ -903,7 +903,9 @@ __webpack_require__.r(__webpack_exports__);
|
|||||||
name: 'FileTable',
|
name: 'FileTable',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
files: [] // Liste des fichiers et dossiers récupérés
|
files: [],
|
||||||
|
// Liste des fichiers et dossiers récupérés
|
||||||
|
current_dir: '/'
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
@ -916,7 +918,7 @@ __webpack_require__.r(__webpack_exports__);
|
|||||||
const client = (0,_nextcloud_files_dav__WEBPACK_IMPORTED_MODULE_0__.getClient)();
|
const client = (0,_nextcloud_files_dav__WEBPACK_IMPORTED_MODULE_0__.getClient)();
|
||||||
|
|
||||||
// Récupération des fichiers et dossiers à la racine
|
// Récupération des fichiers et dossiers à la racine
|
||||||
const directoryItems = await client.getDirectoryContents('/files/admin'); //changer admin par le nom de l'utilisateur courant
|
const directoryItems = await client.getDirectoryContents('/files/admin' + this.current_dir); //changer admin par le nom de l'utilisateur courant
|
||||||
|
|
||||||
// Mise à jour de la liste des fichiers et dossiers
|
// Mise à jour de la liste des fichiers et dossiers
|
||||||
this.files = directoryItems.map(file => ({
|
this.files = directoryItems.map(file => ({
|
||||||
@ -935,6 +937,16 @@ __webpack_require__.r(__webpack_exports__);
|
|||||||
if (size < 1024 * 1024) return `${(size / 1024).toFixed(2)} KB`;
|
if (size < 1024 * 1024) return `${(size / 1024).toFixed(2)} KB`;
|
||||||
if (size < 1024 * 1024 * 1024) return `${(size / 1024 / 1024).toFixed(2)} MB`;
|
if (size < 1024 * 1024 * 1024) return `${(size / 1024 / 1024).toFixed(2)} MB`;
|
||||||
return `${(size / 1024 / 1024 / 1024).toFixed(2)} GB`;
|
return `${(size / 1024 / 1024 / 1024).toFixed(2)} GB`;
|
||||||
|
},
|
||||||
|
async handleClick(file) {
|
||||||
|
if (file.type === 'directory') {
|
||||||
|
// Si c'est un dossier, on change le répertoire courant et on fetch son contenu
|
||||||
|
this.current_dir = this.current_dir === '/' ? '/' + file.basename : this.current_dir + '/' + file.basename;
|
||||||
|
await this.fetchFiles();
|
||||||
|
} else {
|
||||||
|
// Si c'est un fichier, on ouvre le lien de téléchargement
|
||||||
|
window.open(file.href, '_blank');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -986,10 +998,11 @@ var render = function render() {
|
|||||||
return _c("table", [_vm._m(0), _vm._v(" "), _c("tbody", _vm._l(_vm.files, function (file) {
|
return _c("table", [_vm._m(0), _vm._v(" "), _c("tbody", _vm._l(_vm.files, function (file) {
|
||||||
return _c("tr", {
|
return _c("tr", {
|
||||||
key: file.filename
|
key: file.filename
|
||||||
}, [_c("td", [_c("a", {
|
}, [_c("td", [_c("div", {
|
||||||
attrs: {
|
on: {
|
||||||
href: file.href,
|
click: function ($event) {
|
||||||
target: "_blank"
|
return _vm.handleClick(file);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, [_vm._v(_vm._s(file.basename))])]), _vm._v(" "), _c("td", [_vm._v(_vm._s(file.type === "directory" ? "Dossier" : "Fichier"))]), _vm._v(" "), _c("td", [_vm._v(_vm._s(file.type === "directory" ? "-" : _vm.formatFileSize(file.size)))])]);
|
}, [_vm._v(_vm._s(file.basename))])]), _vm._v(" "), _c("td", [_vm._v(_vm._s(file.type === "directory" ? "Dossier" : "Fichier"))]), _vm._v(" "), _c("td", [_vm._v(_vm._s(file.type === "directory" ? "-" : _vm.formatFileSize(file.size)))])]);
|
||||||
}), 0)]);
|
}), 0)]);
|
||||||
@ -1346,6 +1359,11 @@ td a[data-v-36ad32b2] {
|
|||||||
color: #4CAF50;
|
color: #4CAF50;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Ajout du style pour le hover */
|
||||||
|
td div[data-v-36ad32b2] {
|
||||||
|
cursor: pointer; /* Change le curseur en main lors du survol */
|
||||||
|
}
|
||||||
`, ""]);
|
`, ""]);
|
||||||
// Exports
|
// Exports
|
||||||
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
||||||
|
File diff suppressed because one or more lines are too long
@ -12,7 +12,7 @@
|
|||||||
<tr v-for="file in files" :key="file.filename">
|
<tr v-for="file in files" :key="file.filename">
|
||||||
<td>
|
<td>
|
||||||
<!-- Affiche un lien cliquable vers le fichier ou le dossier -->
|
<!-- Affiche un lien cliquable vers le fichier ou le dossier -->
|
||||||
<a :href="file.href" target="_blank">{{ file.basename }}</a>
|
<div @click='handleClick(file)'>{{ file.basename }}</div>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ file.type === 'directory' ? 'Dossier' : 'Fichier' }}</td>
|
<td>{{ file.type === 'directory' ? 'Dossier' : 'Fichier' }}</td>
|
||||||
<td>{{ file.type === 'directory' ? '-' : formatFileSize(file.size) }}</td>
|
<td>{{ file.type === 'directory' ? '-' : formatFileSize(file.size) }}</td>
|
||||||
@ -28,7 +28,8 @@ export default {
|
|||||||
name: 'FileTable',
|
name: 'FileTable',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
files: [] // Liste des fichiers et dossiers récupérés
|
files: [], // Liste des fichiers et dossiers récupérés
|
||||||
|
current_dir : '/'
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
@ -41,7 +42,7 @@ export default {
|
|||||||
const client = getClient();
|
const client = getClient();
|
||||||
|
|
||||||
// Récupération des fichiers et dossiers à la racine
|
// Récupération des fichiers et dossiers à la racine
|
||||||
const directoryItems = await client.getDirectoryContents('/files/admin'); //changer admin par le nom de l'utilisateur courant
|
const directoryItems = await client.getDirectoryContents('/files/admin' + this.current_dir); //changer admin par le nom de l'utilisateur courant
|
||||||
|
|
||||||
// Mise à jour de la liste des fichiers et dossiers
|
// Mise à jour de la liste des fichiers et dossiers
|
||||||
this.files = directoryItems.map(file => ({
|
this.files = directoryItems.map(file => ({
|
||||||
@ -60,8 +61,18 @@ export default {
|
|||||||
if (size < 1024 * 1024) return `${(size / 1024).toFixed(2)} KB`;
|
if (size < 1024 * 1024) return `${(size / 1024).toFixed(2)} KB`;
|
||||||
if (size < 1024 * 1024 * 1024) return `${(size / 1024 / 1024).toFixed(2)} MB`;
|
if (size < 1024 * 1024 * 1024) return `${(size / 1024 / 1024).toFixed(2)} MB`;
|
||||||
return `${(size / 1024 / 1024 / 1024).toFixed(2)} GB`;
|
return `${(size / 1024 / 1024 / 1024).toFixed(2)} GB`;
|
||||||
|
},
|
||||||
|
async handleClick(file) {
|
||||||
|
if (file.type === 'directory') {
|
||||||
|
// Si c'est un dossier, on change le répertoire courant et on fetch son contenu
|
||||||
|
this.current_dir = this.current_dir === '/' ? '/' + file.basename : this.current_dir + '/' + file.basename;
|
||||||
|
await this.fetchFiles();
|
||||||
|
} else {
|
||||||
|
// Si c'est un fichier, on ouvre le lien de téléchargement
|
||||||
|
window.open(file.href, '_blank');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -91,4 +102,10 @@ export default {
|
|||||||
color: #4CAF50;
|
color: #4CAF50;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Ajout du style pour le hover */
|
||||||
|
td div {
|
||||||
|
cursor: pointer; /* Change le curseur en main lors du survol */
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user