Skip to content

Commit 557c70f

Browse files
committed
Refactor file list into separate component
1 parent 1419429 commit 557c70f

File tree

1 file changed

+23
-76
lines changed

1 file changed

+23
-76
lines changed

webapp/src/components/FileList.vue

Lines changed: 23 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -3,77 +3,44 @@
33
<label class="mr-2">Files</label>
44
<div class="card">
55
<div id="filearea" class="card-body overflow-auto">
6-
<div v-for="(file, file_id) in stored_files" :key="file_id" class="file-group">
7-
<a @click="deleteFile($event, file_id)">
8-
<font-awesome-icon icon="times" fixed-width class="delete-file-button" />
9-
</a>
10-
<a class="filelink" target="_blank" :href="`${$API_URL}/files/${file_id}/${file.name}`">
11-
{{ file.name }}
12-
</a>
13-
<font-awesome-icon
14-
v-if="file.is_live == true"
15-
v-show="true"
16-
class="link-icon"
17-
:icon="['fa', 'link']"
18-
/>
19-
<font-awesome-icon
20-
v-else-if="file.source_server_name != null"
21-
v-show="true"
22-
class="unlink-icon"
23-
:icon="['fa', 'unlink']"
24-
/>
25-
<span v-if="file.source_server_name != null">
26-
<span class="server-name">
27-
<font-awesome-icon :icon="['fas', 'hdd']" class="toplevel-icon" />
28-
{{ file.source_server_name }}
29-
</span>
30-
<span class="last-updated-text">
31-
(updated
32-
{{
33-
formatDistance(new Date(file.last_modified_remote), new Date(), {
34-
addSuffix: true,
35-
})
36-
}}, last synced
37-
{{
38-
formatDistance(new Date(file.last_modified), new Date(), {
39-
addSuffix: true,
40-
})
41-
}})
42-
</span>
43-
</span>
44-
<span v-else class="last-updated-text">
45-
(uploaded
46-
{{
47-
formatDistance(new Date(file.last_modified), new Date(), {
48-
addSuffix: true,
49-
})
50-
}})
51-
</span>
52-
</div>
6+
<FileListItem
7+
v-for="(file, file_id) in stored_files"
8+
:key="file_id"
9+
:file="file"
10+
:file-id="file_id"
11+
@delete-file-from-sample="deleteFile"
12+
/>
5313
</div>
5414
<div class="row">
55-
<button id="uppy-trigger" class="btn btn-default btn-sm mb-3 ml-4" type="button">
15+
<button
16+
id="uppy-trigger"
17+
class="btn btn-default btn-sm mb-3 ml-4 text-start d-flex align-items-center"
18+
type="button"
19+
>
5620
<font-awesome-icon class="upload-icon" icon="file" fixed-width />
57-
Upload files...</button
58-
><!-- Surrounding divs so that buttons don't become full-width in the card -->
21+
<span class="ms-1">Upload files</span>
22+
</button>
5923
<button
60-
class="btn btn-default btn-sm mb-3 ml-2"
24+
class="btn btn-default btn-sm mb-3 ml-2 text-start d-flex align-items-center"
6125
type="button"
6226
@click="setFileSelectModalOpen"
6327
>
6428
<font-awesome-icon class="remote-upload-icon" icon="cloud-upload-alt" fixed-width />
65-
Add files from server...
29+
<span class="ms-1">Add files from server</span>
6630
</button>
6731
</div>
6832
</div>
6933
</div>
7034
</template>
7135

7236
<script>
37+
import FileListItem from "./FileListItem.vue";
7338
import { deleteFileFromSample } from "@/server_fetch_utils";
74-
import { formatDistance } from "date-fns";
7539
7640
export default {
41+
components: {
42+
FileListItem,
43+
},
7744
props: {
7845
item_id: {
7946
type: String,
@@ -90,8 +57,7 @@ export default {
9057
};
9158
},
9259
methods: {
93-
formatDistance,
94-
deleteFile(event, file_id) {
60+
deleteFile(file_id) {
9561
deleteFileFromSample(this.item_id, file_id);
9662
return false;
9763
},
@@ -120,7 +86,8 @@ export default {
12086
.unlink-icon,
12187
.upload-icon,
12288
.remote-upload-icon {
123-
margin-left: 0.4rem;
89+
margin-left: 0.2rem;
90+
margin-right: 0.2rem;
12491
color: #888;
12592
font-size: small;
12693
}
@@ -132,25 +99,5 @@ export default {
13299
133100
#uppy-trigger {
134101
scroll-anchor: auto;
135-
width: 8rem;
136-
}
137-
138-
.last-updated-text {
139-
font-size: 0.8em;
140-
color: #888;
141-
font-style: italic;
142-
vertical-align: middle;
143-
}
144-
145-
.server-name {
146-
font-family: "Andalé Mono", monospace;
147-
font-weight: 400;
148-
/*font-style: italic;*/
149-
color: teal;
150-
border: solid 1px teal;
151-
padding: 0.1rem 0.25rem;
152-
margin-left: 0.5rem;
153-
border-radius: 0.2rem;
154-
font-size: 0.8em;
155102
}
156103
</style>

0 commit comments

Comments
 (0)