mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-21 18:01:36 +03:00
bd27295ede
refs https://github.com/TryGhost/Ghost/issues/9623 - do not process drop in `{{koenig-editor}}` if the drop happened on a card and the card's `handlesDragDrop` property is true - allow `dragover` events on cards to bubble up to Ember's event handler in `{{koenig-editor}}` - handle drag/drop in `{{koenig-card-image}}` - show different overlays when dragging files over the card to indicate an upload or replace action - start upload when a file is dropped on the card
75 lines
3.0 KiB
Handlebars
75 lines
3.0 KiB
Handlebars
{{#koenig-card
|
|
tagName="figure"
|
|
class=(concat (kg-style "media-card") " flex flex-column")
|
|
isSelected=isSelected
|
|
isEditing=isEditing
|
|
selectCard=(action selectCard)
|
|
deselectCard=(action deselectCard)
|
|
editCard=(action editCard)
|
|
toolbar=toolbar
|
|
hasEditMode=false
|
|
addParagraphAfterCard=addParagraphAfterCard
|
|
moveCursorToPrevSection=moveCursorToPrevSection
|
|
moveCursorToNextSection=moveCursorToNextSection
|
|
editor=editor
|
|
as |card|
|
|
}}
|
|
{{#gh-uploader
|
|
files=files
|
|
accept=imageMimeTypes
|
|
extensions=imageExtensions
|
|
onStart=(action "setPreviewSrc")
|
|
onComplete=(action "updateSrc")
|
|
onFailed=(action "resetSrcs")
|
|
as |uploader|
|
|
}}
|
|
<div class="relative bg-whitegrey-l2">
|
|
{{#if (or previewSrc payload.src)}}
|
|
<img src={{or previewSrc payload.src}} class="{{kg-style kgImgStyle sidebar=ui.hasSideNav}}" alt={{payload.alt}}>
|
|
{{#if isDraggedOver}}
|
|
<div class="absolute absolute--fill flex items-center bg-black-60 pe-none">
|
|
<span class="db center sans-serif fw7 f7 white">
|
|
Drop to replace image
|
|
</span>
|
|
</div>
|
|
{{/if}}
|
|
{{/if}}
|
|
|
|
{{#if (or uploader.errors uploader.isUploading (not payload.src))}}
|
|
<div class="relative miw-100 flex items-center {{if (not previewSrc payload.src) "kg-media-placeholder ba b--whitegrey" "absolute absolute--fill bg-white-50"}}">
|
|
{{#if uploader.errors}}
|
|
<span class="db absolute top-0 right-0 left-0 pl2 pr2 bg-red white sans-serif f7">
|
|
{{uploader.errors.firstObject.message}}
|
|
</span>
|
|
{{/if}}
|
|
|
|
{{#if isDraggedOver}}
|
|
<span class="db center sans-serif fw7 f7 middarkgrey">
|
|
Drop it like it's hot 🔥
|
|
</span>
|
|
{{else if uploader.isUploading}}
|
|
{{uploader.progressBar}}
|
|
{{else if (not previewSrc payload.src)}}
|
|
<button class="flex flex-column items-center center btn-base sans-serif fw4 f7 middarkgrey" onclick={{action "triggerFileDialog"}}>
|
|
{{svg-jar "summer" class="nudge-right--10"}}
|
|
<span class="mt2 midgrey">Click to select an image</span>
|
|
</button>
|
|
{{/if}}
|
|
</div>
|
|
{{/if}}
|
|
</div>
|
|
|
|
<div style="display:none">
|
|
{{gh-file-input multiple=false action=uploader.setFiles accept=imageMimeTypes}}
|
|
</div>
|
|
{{/gh-uploader}}
|
|
|
|
{{#if (or isSelected payload.caption)}}
|
|
{{card.captionInput
|
|
caption=payload.caption
|
|
update=(action "updateCaption")
|
|
placeholder="Type caption for image (optional)"
|
|
}}
|
|
{{/if}}
|
|
{{/koenig-card}}
|