Remove Zone.Identifier
This commit is contained in:
		
							
								
								
									
										0
									
								
								.github/dependabot.ymlZone.Identifier
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										0
									
								
								.github/dependabot.ymlZone.Identifier
									
									
									
									
										vendored
									
									
								
							
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -9,3 +9,4 @@ | ||||
|  | ||||
| /node_modules/ | ||||
|  | ||||
| /**/*Zone.Identifier | ||||
							
								
								
									
										22882
									
								
								js/main.js
									
									
									
									
									
								
							
							
						
						
									
										22882
									
								
								js/main.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										21
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										21
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -10,6 +10,7 @@ | ||||
|       "license": "AGPL-3.0-or-later", | ||||
|       "dependencies": { | ||||
|         "@nextcloud/dialogs": "^3.1.2", | ||||
|         "@nextcloud/files": "^2.1.0", | ||||
|         "@nextcloud/initial-state": "^2.2.0", | ||||
|         "@nextcloud/vue": "^8.11.2", | ||||
|         "vue": "^2.7.16" | ||||
| @@ -1054,6 +1055,26 @@ | ||||
|         "node": ">=10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@nextcloud/files": { | ||||
|       "version": "2.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-2.1.0.tgz", | ||||
|       "integrity": "sha512-i5Q8oNPONwBWLnNjQOC3EmnUhExXpwmO45BonzaovzXdhFzFeT/g85kRNR8LWEjiK9vOMOdozz+z6I0adU0JlQ==", | ||||
|       "license": "GPL-3.0-or-later", | ||||
|       "dependencies": { | ||||
|         "@nextcloud/l10n": "^1.3.0", | ||||
|         "core-js": "^3.6.4" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@nextcloud/files/node_modules/@nextcloud/l10n": { | ||||
|       "version": "1.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/@nextcloud/l10n/-/l10n-1.6.0.tgz", | ||||
|       "integrity": "sha512-aKGlgrwN9OiafN791sYus0shfwNeU3PlrH6Oi9ISma6iJSvN6a8aJM8WGKCJ9pqBaTR5PrDuckuM/WnybBWb6A==", | ||||
|       "license": "GPL-3.0-or-later", | ||||
|       "dependencies": { | ||||
|         "core-js": "^3.6.4", | ||||
|         "node-gettext": "^3.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@nextcloud/initial-state": { | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/@nextcloud/initial-state/-/initial-state-2.2.0.tgz", | ||||
|   | ||||
| @@ -18,6 +18,7 @@ | ||||
|   ], | ||||
|   "dependencies": { | ||||
|     "@nextcloud/dialogs": "^3.1.2", | ||||
|     "@nextcloud/files": "^2.1.0", | ||||
|     "@nextcloud/initial-state": "^2.2.0", | ||||
|     "@nextcloud/vue": "^8.11.2", | ||||
|     "vue": "^2.7.16" | ||||
|   | ||||
							
								
								
									
										21
									
								
								src/App.vue
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								src/App.vue
									
									
									
									
									
								
							| @@ -1,26 +1,21 @@ | ||||
| <template> | ||||
| 	<NcAppContent> | ||||
| 		<div id="webtransfer"> | ||||
| 			<h1>Hello world!</h1> | ||||
| 		</div> | ||||
| 	</NcAppContent> | ||||
| 	<div id="app"> | ||||
| 		<h1>Hello world</h1> | ||||
| 		<FileTable /> | ||||
| 	</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import NcAppContent from '@nextcloud/vue/dist/Components/NcAppContent.js' | ||||
| import FileTable from './views/FileTable.vue' | ||||
|  | ||||
| export default { | ||||
| 	name: 'App', | ||||
| 	components: { | ||||
| 		NcAppContent, | ||||
| 		FileTable, | ||||
| 	}, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| #webtransfer { | ||||
| 	display: flex; | ||||
| 	justify-content: center; | ||||
| 	margin: 16px; | ||||
| } | ||||
| <style> | ||||
|  | ||||
| </style> | ||||
|   | ||||
| @@ -1,4 +0,0 @@ | ||||
| [ZoneTransfer] | ||||
| ZoneId=3 | ||||
| ReferrerUrl=https://apps.nextcloud.com/developer/apps/generate | ||||
| HostUrl=https://apps.nextcloud.com/developer/apps/generate | ||||
							
								
								
									
										94
									
								
								src/views/FileTable.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								src/views/FileTable.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,94 @@ | ||||
| <template> | ||||
| 	<table> | ||||
| 		<thead> | ||||
| 			<tr> | ||||
| 				<th>Nom</th> | ||||
| 				<th>Type</th> | ||||
| 				<th>Taille</th> | ||||
| 			</tr> | ||||
| 		</thead> | ||||
| 		<tbody> | ||||
| 			<!-- Boucle pour afficher les fichiers et dossiers récupérés --> | ||||
| 			<tr v-for="file in files" :key="file.filename"> | ||||
| 				<td> | ||||
| 					<!-- Affiche un lien cliquable vers le fichier ou le dossier --> | ||||
| 					<a :href="file.href" target="_blank">{{ file.basename }}</a> | ||||
| 				</td> | ||||
| 				<td>{{ file.type === 'directory' ? 'Dossier' : 'Fichier' }}</td> | ||||
| 				<td>{{ file.type === 'directory' ? '-' : formatFileSize(file.size) }}</td> | ||||
| 			</tr> | ||||
| 		</tbody> | ||||
| 	</table> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { getClient } from '@nextcloud/files/dav' | ||||
|  | ||||
| export default { | ||||
| 	name: 'FileTable', | ||||
| 	data() { | ||||
| 		return { | ||||
| 			files: [], // Liste des fichiers et dossiers récupérés | ||||
| 		} | ||||
| 	}, | ||||
| 	async mounted() { | ||||
| 		await this.fetchFiles() | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		async fetchFiles() { | ||||
| 			try { | ||||
| 				// Création du client WebDAV | ||||
| 				const client = getClient() | ||||
|  | ||||
| 				// 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 | ||||
|  | ||||
| 				// Mise à jour de la liste des fichiers et dossiers | ||||
| 				this.files = directoryItems.map(file => ({ | ||||
| 					basename: file.basename, | ||||
| 					size: file.size, | ||||
| 					href: client.getFileDownloadLink(file.filename), | ||||
| 					type: file.type, | ||||
| 				})) | ||||
| 			} catch (error) { | ||||
| 				console.error('Erreur lors de la récupération des fichiers et dossiers :', error) | ||||
| 			} | ||||
| 		}, | ||||
| 		// Fonction pour formater la taille des fichiers | ||||
| 		formatFileSize(size) { | ||||
| 			if (size < 1024) return `${size} B` | ||||
| 			if (size < 1024 * 1024) return `${(size / 1024).toFixed(2)} KB` | ||||
| 			if (size < 1024 * 1024 * 1024) return `${(size / 1024 / 1024).toFixed(2)} MB` | ||||
| 			return `${(size / 1024 / 1024 / 1024).toFixed(2)} GB` | ||||
| 		}, | ||||
| 	}, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped> | ||||
|     /* Styles pour le tableau */ | ||||
|     table { | ||||
|         border-collapse: collapse; | ||||
|         width: 80%; | ||||
|         margin: 20px auto; | ||||
|     } | ||||
|  | ||||
|     table, th, td { | ||||
|         border: 1px solid #ddd; | ||||
|         padding: 8px; | ||||
|     } | ||||
|  | ||||
|     th { | ||||
|         background-color: #4CAF50; | ||||
|         color: white; | ||||
|     } | ||||
|  | ||||
|     tr { | ||||
|         background-color: #f2f2f2; | ||||
|     } | ||||
|  | ||||
|     td a { | ||||
|         color: #4CAF50; | ||||
|         text-decoration: none; | ||||
|     } | ||||
| </style> | ||||
		Reference in New Issue
	
	Block a user