Skip to content

Commit 325f40e

Browse files
committed
Updated Dependencies & Bugfixes
1 parent 63ed795 commit 325f40e

File tree

3 files changed

+819
-246
lines changed

3 files changed

+819
-246
lines changed

js/components/FloatingLibrary.vue

100644100755
Lines changed: 49 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
</div>
3232
<p class="medium-filename" v-text="medium.name"></p>
3333
</div>
34-
<FloatingLibraryUploadCard v-if="medium.id == undefined && medium.name" :file="medium" :key="i"/>
34+
<FloatingLibraryUploadCard v-if="(medium.id == undefined) && medium.name && (medium.uploadComplete == false)" :file="medium" :key="i"/>
3535
</li>
3636
</ul>
3737
<div v-else class="has-text-centered pt-xxl pb-x xl pr-md pl-md" v-text="trans.get('foundation::general.no_results_found')"></div>
@@ -184,13 +184,20 @@ export default {
184184
return this.isOpen ? 'modal is-active' : 'modal'
185185
},
186186
concatMedia() {
187-
if(this.payload.multiple && Array.isArray(this.initialSelected)) {
188-
return this.initialSelected.concat(this.uploading.concat(this.media))
189-
} else if(!this.payload.multiple && !Array.isArray(this.initialSelected) && typeof this.initialSelected === 'object') {
190-
return [this.initialSelected].concat(this.uploading.concat(this.media))
187+
let concat = []
188+
189+
if (this.payload.multiple && Array.isArray(this.initialSelected)) {
190+
concat = this.initialSelected.concat(this.uploading, this.media)
191+
} else if (!this.payload.multiple && this.initialSelected && typeof this.initialSelected === 'object' && !Array.isArray(this.initialSelected)) {
192+
concat = [this.initialSelected, ...this.uploading, ...this.media]
193+
} else {
194+
concat = [...this.uploading, ...this.media]
191195
}
192196
193-
return this.uploading.concat(this.media)
197+
return concat.filter((item, index, self) =>
198+
item.id === undefined ||
199+
self.findIndex(i => i.id === item.id) === index
200+
)
194201
},
195202
selectedCount() {
196203
return this.payload.multiple ? this.payload.selected.length : (this.payload.selected ? 1 : 0)
@@ -228,25 +235,29 @@ export default {
228235
}
229236
230237
const k = self.media.findIndex(function(m) { return m.id == data.id })
231-
self.$set(self.media, k, data)
238+
if (k >= 0) self.$set(self.media, k, data)
232239
})
233240
234241
Event.$on('upload-complete', function(data) {
235-
self.media.unshift(data.payload)
242+
let medium = data.payload
243+
medium.comesWithPayload = true
244+
245+
self.media.unshift(medium)
246+
self.uploading.push(medium)
236247
237248
// Self upload, so select
238249
if(data.name == 'undefined') {
239250
const i = self.uploading.findIndex(function(f) { return f.name == data.file.name })
240-
self.uploading.splice(i, 1)
251+
if(i >= 0) self.uploading[i].uploadComplete = true
241252
242253
if(self.payload.multiple) {
243-
self.checked.unshift(data.payload.id)
254+
self.checked.unshift(medium.id)
244255
} else {
245-
self.checked = [data.payload.id]
256+
self.checked = [medium.id]
246257
}
247258
248-
self.toggleSelect(data.payload)
249-
self.highlight(data.payload)
259+
self.toggleSelect(medium)
260+
self.highlight(medium)
250261
}
251262
})
252263
@@ -258,9 +269,7 @@ export default {
258269
259270
self.isOpen = true
260271
261-
// This was to keep changes made but if we do this
262-
// new uploads are shown twice
263-
//if(self.payload.name == payload.name) return
272+
if(self.payload.name == payload.name) return
264273
265274
// To break the reactivity
266275
payload = JSON.parse(JSON.stringify(payload))
@@ -271,11 +280,19 @@ export default {
271280
if(self.$refs.sideColumn) self.$refs.sideColumn.scrollTop = 0
272281
273282
if(payload.multiple && Array.isArray(payload.selected)) {
274-
self.checked = self.initialSelectedIds = payload.selected.map(function(medium) { return medium.id })
275-
self.initialSelected = JSON.parse(JSON.stringify(payload.selected))
283+
self.checked = self.initialSelectedIds = payload.selected.map(function(medium) { return parseInt(medium.id, 10) })
284+
let selected = JSON.parse(JSON.stringify(payload.selected))
285+
selected.forEach(medium => {
286+
medium.comesWithPayload = true
287+
})
288+
self.initialSelected = selected
276289
} else if(!payload.multiple && payload.selected) {
277-
self.checked = self.initialSelectedIds = [payload.selected.id]
278-
self.initialSelected = JSON.parse(JSON.stringify(payload.selected))
290+
self.checked = self.initialSelectedIds = [parseInt(payload.selected.id, 10)]
291+
let selected = JSON.parse(JSON.stringify(payload.selected))
292+
selected.forEach(medium => {
293+
medium.comesWithPayload = true
294+
})
295+
self.initialSelected = selected
279296
self.highlight(payload.selected)
280297
} else {
281298
self.checked = self.initialSelectedIds = []
@@ -361,8 +378,15 @@ export default {
361378
return 'fas fa-' + (type == 'document' ? 'file' : 'file-' + type)
362379
},
363380
isShown(medium, i) {
364-
return true
365-
//return (medium.id == undefined && medium.name) || (!this.initialSelectedIds.includes(medium.id) || (this.initialSelectedIds.includes(medium.id) && i < this.initialSelectedIds.length)) && (!this.payload.filters || (this.payload.filters && this.payload.filters.includes(medium.type)))
381+
return (medium.id == undefined && medium.uploadComplete == false) ||
382+
(
383+
medium.id != undefined &&
384+
(!this.payload.filters || (this.payload.filters && this.payload.filters.includes(medium.type))) &&
385+
(
386+
!this.initialSelectedIds.includes(parseInt(medium.id, 10)) ||
387+
(this.initialSelectedIds.includes(parseInt(medium.id, 10)) && medium.comesWithPayload == true)
388+
)
389+
)
366390
},
367391
startUpload(e) {
368392
this.dragging = false
@@ -374,14 +398,14 @@ export default {
374398
375399
for(let f in [...files]) {
376400
let fl = files[f]
377-
if(this.validateFile(fl)) {
401+
if(this.validateFile(fl) == true) {
402+
fl.uploadComplete = false
378403
this.uploading.push(fl)
379404
}
380405
}
381406
},
382407
validateFile(file) {
383-
return this.$root.shared.allowed_size
384-
//return this.$root.shared.allowed_size >= file.size && this.$root.shared.allowed_mimetypes.includes(file.type)
408+
return (this.$root.shared.allowed_size >= file.size) && (this.$root.shared.allowed_mimetypes.includes(file.type))
385409
},
386410
clearError(field) {
387411
if(this.translatableFields.includes(field)) {

0 commit comments

Comments
 (0)