UNPKG

paraview-glance

Version:

Web application for Visualizing Scientific and Medical datasets

127 lines (126 loc) 5.08 kB
<v-dialog width="70%" :value="value" :persistent="loading" :fullscreen="$vuetify.breakpoint.smAndDown" @input="onDialogChange" @click:outside="!loading && close()" > <v-card> <v-card-text class="pa-0"> <v-card flat> <v-card-text> <v-container> <v-tabs v-model="active_tab"> <v-tab>Local</v-tab> <v-tab>Girder</v-tab> <v-tab-item transition="fade-transition"> <drag-and-drop enabled @drop="openFiles($event)" > <template v-slot:default="{ dragHover }"> <v-row @click="promptLocal" align="center" class="pa-3" :class="{ [$style.dragBox]: true, [$style.dropTarget]: dragHover, }" > <v-btn>browse</v-btn> <span class="ml-2"> or drop your files here </span> </v-row> </template> </drag-and-drop> </v-tab-item> <v-tab-item transition="fade-transition"> <girder-box /> </v-tab-item> </v-tabs> <v-row class="mt-2"> <v-expansion-panels accordion> <v-expansion-panel v-for="(fileInfo, revIdx) in fileList" :key="revIdx" > <v-expansion-panel-header disable-icon-rotate> <template v-slot:actions> <div class="d-flex flex-row align-center"> <template v-if="fileInfo.state === 'ready'"> <v-icon color="teal">mdi-check</v-icon> </template> <template v-else-if="fileInfo.state === 'error'"> <v-icon color="error">mdi-alert</v-icon> </template> <template v-else-if="fileInfo.state === 'needsInfo'"> <v-icon color="blue">mdi-information</v-icon> </template> <template v-else-if="fileInfo.state === 'loading' || fileInfo.state === 'needsDownload'"> <v-progress-circular indeterminate color="secondary" size="16" width="2" /> </template> <v-btn icon class="ml-3"> <v-icon @click.stop="deleteFileAtRevIndex(revIdx)">mdi-delete</v-icon> </v-btn> </div> </template> <template v-slot:default="{ open }"> <!-- width hack to keep row from pushing out header actions --> <v-row no-gutters style="width: 80%"> <v-col cols="8">{{ fileInfo.name }}</v-col> <v-col cols="4" class="text--secondary pr-3 text-right"> <span v-if="fileInfo.state === 'error'"> Click to see error </span> <span v-else-if="fileInfo.ext === 'raw'"> Click to edit raw file info </span> <span v-else-if="fileInfo.ext === 'glance'"> State file will be loaded first </span> </v-col> </v-row> </template> </v-expansion-panel-header> <v-expansion-panel-content> <template v-if="fileInfo.state === 'error'"> {{ fileInfo.error }} </template> <template v-else-if="fileInfo.ext === 'raw'"> <raw-file-reader :file="fileInfo.files[0]" v-on:change="setRawFileInfoAtRevIndex(revIdx, $event)" /> </template> </v-expansion-panel-content> </v-expansion-panel> </v-expansion-panels> </v-row> </v-container> </v-card-text> <v-card-actions> <v-spacer /> <span v-if="anyErrors" class="red--text mr-3">Only checked files will be loaded.</span> <v-btn text :disabled="loading" @click="close" > Cancel </v-btn> <v-btn color="primary" :disabled="loading || pendingFiles || !hasReadyFiles" @click="loadFiles" > {{ loading ? 'Loading...' : 'Load' }} </v-btn> </v-card-actions> </v-card> </v-card-text> </v-card> </v-dialog>