diff --git a/zero.Core/Api/UserApi.cs b/zero.Core/Api/UserApi.cs index 51998805..c892aa8b 100644 --- a/zero.Core/Api/UserApi.cs +++ b/zero.Core/Api/UserApi.cs @@ -68,7 +68,7 @@ namespace zero.Core.Api /// public async Task> Save(User model) { - return await Save(model); //, new UserValidator()); + return await SaveModel(model); //, new UserValidator()); } diff --git a/zero.Core/Entities/ListQuery.cs b/zero.Core/Entities/ListQuery.cs index cb566c48..814f2c3a 100644 --- a/zero.Core/Entities/ListQuery.cs +++ b/zero.Core/Entities/ListQuery.cs @@ -22,7 +22,7 @@ namespace zero.Core.Entities public ListQueryOrderType OrderType { get; set; } = ListQueryOrderType.String; - public bool OrderIsDescending { get; set; } = false; + public bool OrderIsDescending { get; set; } = true; public int Page { get; set; } = 1; diff --git a/zero.Web.UI/App/components/overlays/overlay-holder.vue b/zero.Web.UI/App/components/overlays/overlay-holder.vue index 1dc57494..ba9a511f 100644 --- a/zero.Web.UI/App/components/overlays/overlay-holder.vue +++ b/zero.Web.UI/App/components/overlays/overlay-holder.vue @@ -50,7 +50,6 @@ z-index: 5; justify-content: center; align-items: center; - will-change: opacity; & + .app-overlay-outer .app-overlay { @@ -67,7 +66,6 @@ bottom: 0; background: var(--color-overlay-shade); z-index: 2; - will-change: opacity; opacity: 1; } @@ -83,7 +81,6 @@ // max-width: 460px; text-align: center; position: relative; - will-change: transform, opacity; -webkit-backface-visibility: hidden; z-index: 3; color: var(--color-fg); diff --git a/zero.Web.UI/App/components/pickers/mediaPicker/mediapicker.vue b/zero.Web.UI/App/components/pickers/mediaPicker/mediapicker.vue index cca18194..c5502b42 100644 --- a/zero.Web.UI/App/components/pickers/mediaPicker/mediapicker.vue +++ b/zero.Web.UI/App/components/pickers/mediaPicker/mediapicker.vue @@ -110,6 +110,10 @@ computed: { + multiple() + { + return this.configuration.limit > 1; + }, canAdd() { return !this.disabled && this.configuration.limit - this.previews.length > 0; @@ -230,8 +234,22 @@ return Overlay.open(options).then(value => { - //this.onChange(value); - //this.$refs.input.value = value; + let newValue = this.value; + + if (this.multiple) + { + if (!newValue) + { + newValue = []; + } + newValue.push(value.id); + } + else + { + newValue = value.id; + } + + this.onChange(newValue); }); } diff --git a/zero.Web.UI/App/components/pickers/mediaPicker/overlay.vue b/zero.Web.UI/App/components/pickers/mediaPicker/overlay.vue index 738adc6c..f4fc8687 100644 --- a/zero.Web.UI/App/components/pickers/mediaPicker/overlay.vue +++ b/zero.Web.UI/App/components/pickers/mediaPicker/overlay.vue @@ -11,12 +11,13 @@ - + + Upload media - + @@ -40,6 +41,7 @@ import MediaApi from 'zero/resources/media.js' import Overlay from 'zero/services/overlay.js' import AddFolderOverlay from 'zero/pages/media/folder' + import UploadStatusOverlay from 'zero/pages/media/upload-status' import { debounce as _debounce, filter as _filter } from 'underscore' export default { @@ -177,19 +179,36 @@ component: AddFolderOverlay, model: { parentId: this.folderId }, theme: 'dark' - }).then(item => + }).then(() => { }, () => { setTimeout(() => { this.selectFolder(item.model.id); }, 1000); - }, () => { }); + }); }, // uploads a new media item within the current parent - upload() + onUpload(event) { - console.info('upload'); + let options = { + title: 'Upload status', + closeLabel: '@ui.close', + component: UploadStatusOverlay, + isCreate: true, + model: event.target.files, + folderId: this.folderId, + theme: 'dark', + width: 520 + }; + + return Overlay.open(options).then(value => + { + setTimeout(() => + { + this.getItems(); + }, 500); + }, () => { }); }, // select an item, this can either be a folder or a media item @@ -199,6 +218,10 @@ { return this.selectFolder(item.id); } + else + { + this.config.confirm(item, this.config); + } } } } @@ -278,6 +301,11 @@ color: var(--color-primary-fg); }*/ + &.is-upload + { + position: relative; + } + .-extension { font-size: 12px; @@ -299,4 +327,17 @@ text-overflow: ellipsis; margin: 0; } + + input[type="file"].ui-mediapicker-overlay-upload + { + position: absolute; + height: 100%; + top: 0; + left: 0; + width: 100%; + z-index: 1; + bottom: 0; + opacity: 0.001; + cursor: pointer; + } \ No newline at end of file diff --git a/zero.Web.UI/App/navigation.vue b/zero.Web.UI/App/navigation.vue index 3fab0bbc..74b82ed2 100644 --- a/zero.Web.UI/App/navigation.vue +++ b/zero.Web.UI/App/navigation.vue @@ -31,8 +31,8 @@ - - + + {{user.name}}{{user.email}} @@ -48,6 +48,7 @@
Upload media
{{user.name}}{{user.email}}