reparation drag and drop zip
This commit is contained in:
		
							
								
								
									
										42957
									
								
								js/main.js
									
									
									
									
									
								
							
							
						
						
									
										42957
									
								
								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
											
										
									
								
							@@ -4,7 +4,7 @@
 | 
				
			|||||||
            <div class="w-4/6 px-4 py-2 text-gray-500 font-semibold border-r border-gray-300">Nom</div>
 | 
					            <div class="w-4/6 px-4 py-2 text-gray-500 font-semibold border-r border-gray-300">Nom</div>
 | 
				
			||||||
            <div class="w-2/6 px-4 py-2 text-gray-500 font-semibold">Taille</div>
 | 
					            <div class="w-2/6 px-4 py-2 text-gray-500 font-semibold">Taille</div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="overflow-y-auto">
 | 
					        <div v-if="!isLoading && zipContent.length !== 0" class="overflow-y-auto">
 | 
				
			||||||
            <div v-for="(file, index) in sortedFiles" :key="file.fullPath" class="flex flex-col">
 | 
					            <div v-for="(file, index) in sortedFiles" :key="file.fullPath" class="flex flex-col">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <div
 | 
					                <div
 | 
				
			||||||
@@ -66,6 +66,12 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div v-if="isLoading" class="flex h-full items-center justify-center">
 | 
				
			||||||
 | 
					            <component :is="Loading" class="text-white w-24 h-24 animate-spin" size="48" />
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div v-if="!isLoading && zipContent.length === 0" class="flex h-full items-center justify-center">
 | 
				
			||||||
 | 
					            <span class="text-gray-500">Aucun contenu à afficher</span>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -73,6 +79,8 @@
 | 
				
			|||||||
import JSZip from 'jszip';
 | 
					import JSZip from 'jszip';
 | 
				
			||||||
import ChevronRightIcon from 'vue-material-design-icons/ChevronRight.vue';
 | 
					import ChevronRightIcon from 'vue-material-design-icons/ChevronRight.vue';
 | 
				
			||||||
import ChevronDownIcon from 'vue-material-design-icons/ChevronDown.vue';
 | 
					import ChevronDownIcon from 'vue-material-design-icons/ChevronDown.vue';
 | 
				
			||||||
 | 
					import Loading from 'vue-material-design-icons/Loading.vue';
 | 
				
			||||||
 | 
					import { ref } from 'vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
    name: 'WebContentViewer',
 | 
					    name: 'WebContentViewer',
 | 
				
			||||||
@@ -83,7 +91,9 @@ export default {
 | 
				
			|||||||
            archiveUrl: '',
 | 
					            archiveUrl: '',
 | 
				
			||||||
            token: '',
 | 
					            token: '',
 | 
				
			||||||
            ChevronRightIcon,
 | 
					            ChevronRightIcon,
 | 
				
			||||||
            ChevronDownIcon
 | 
					            ChevronDownIcon,
 | 
				
			||||||
 | 
					            isLoading: ref(false),
 | 
				
			||||||
 | 
					            Loading,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    props: {
 | 
					    props: {
 | 
				
			||||||
@@ -120,6 +130,7 @@ export default {
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    async mounted() {
 | 
					    async mounted() {
 | 
				
			||||||
 | 
					        this.isLoading = true;
 | 
				
			||||||
        await this.loadZipContent();
 | 
					        await this.loadZipContent();
 | 
				
			||||||
        const webTransferDiv = document.getElementById('archiveInfos');
 | 
					        const webTransferDiv = document.getElementById('archiveInfos');
 | 
				
			||||||
        if (webTransferDiv) {
 | 
					        if (webTransferDiv) {
 | 
				
			||||||
@@ -128,6 +139,7 @@ export default {
 | 
				
			|||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            console.error('Pas d\'informations pour recuperer l\'archive');
 | 
					            console.error('Pas d\'informations pour recuperer l\'archive');
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        this.isLoading = false;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    methods: {
 | 
					    methods: {
 | 
				
			||||||
        async loadZipContent() {
 | 
					        async loadZipContent() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -639,6 +639,10 @@ video {
 | 
				
			|||||||
  height: 100%;
 | 
					  height: 100%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.h-24 {
 | 
				
			||||||
 | 
					  height: 6rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.max-h-8 {
 | 
					.max-h-8 {
 | 
				
			||||||
  max-height: 2rem;
 | 
					  max-height: 2rem;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -675,12 +679,12 @@ video {
 | 
				
			|||||||
  width: 100%;
 | 
					  width: 100%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.max-w-32 {
 | 
					.w-16 {
 | 
				
			||||||
  max-width: 8rem;
 | 
					  width: 4rem;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.max-w-48 {
 | 
					.w-24 {
 | 
				
			||||||
  max-width: 12rem;
 | 
					  width: 6rem;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.max-w-64 {
 | 
					.max-w-64 {
 | 
				
			||||||
@@ -691,6 +695,16 @@ video {
 | 
				
			|||||||
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
 | 
					  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@keyframes spin {
 | 
				
			||||||
 | 
					  to {
 | 
				
			||||||
 | 
					    transform: rotate(360deg);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.animate-spin {
 | 
				
			||||||
 | 
					  animation: spin 1s linear infinite;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.cursor-pointer {
 | 
					.cursor-pointer {
 | 
				
			||||||
  cursor: pointer;
 | 
					  cursor: pointer;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user