Ghost/ghost/admin/lib/koenig-editor/addon/templates/components/koenig-card-gallery.hbs
Kevin Ansfield a565abf5bb Fixed drop indicator not showing if placed directly between images (#1082)
no issue
- when dragging an image, if you dragged out of the gallery then back in directly over the space between images then no indicator was shown
- switch to using padding around images rather than margin so that the mouse can be detected over the gap. Added classes to the image overlays to account for the change in sizing
2018-12-11 12:13:15 +00:00

110 lines
5.0 KiB
Handlebars

{{#koenig-card
tagName="figure"
class=(concat (kg-style "media-card") " " (kg-style "breakout" size="wide") " 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
onSelect=(action "didSelect")
onDeselect=(action "didDeselect")
as |card|
}}
{{#gh-uploader
files=files
accept=imageMimeTypes
extensions=imageExtensions
onUploadStart=(action "addImage")
onUploadSuccess=(action "setImageSrc")
onUploadFailure=(action "uploadFailed")
onFailed=(action "handleErrors")
as |uploader|
}}
<div class="relative{{unless images " bg-whitegrey-l2"}}">
{{#if imageRows}}
<div class="flex flex-column" data-gallery>
{{#each imageRows as |row index|}}
<div class="flex flex-row justify-center" data-row="{{index}}">
{{#each row as |image|}}
<div
style={{image.style}}
class="relative hide-child {{image.classes}}"
data-image
>
<img
src={{or image.previewSrc image.src}}
width={{image.width}}
height={{image.height}}
class="w-100 h-100 db pe-none"
>
{{#unless koenigDragDropHandler.isDragging}}
<div class="bg-image-overlay-top child pe-none {{image.overlayClasses}}">
<div class="flex flex-row-reverse">
<button class="bg-white-90 pl3 pr3 br3 pe-auto" {{action "deleteImage" image}}>
{{svg-jar "koenig/kg-trash" class="fill-darkgrey w4 h4"}}
</button>
</div>
</div>
{{/unless}}
</div>
{{/each}}
</div>
{{/each}}
</div>
{{/if}}
{{#if (or uploader.isUploading (is-empty imageRows))}}
<div class="relative miw-100 flex items-center {{if (is-empty imageRows) "kg-media-placeholder ba b--whitegrey" "absolute absolute--fill bg-white-50"}}">
{{#if isDraggedOver}}
<span class="db center sans-serif fw7 f7 middarkgrey">
Drop 'em like it's hot 🔥
</span>
{{else if uploader.isUploading}}
{{uploader.progressBar}}
{{else if (is-empty imageRows)}}
<button class="flex flex-column items-center center sans-serif fw4 f7 middarkgrey pa8 pt6 pb6 kg-image-button" onclick={{action "triggerFileDialog"}}>
{{svg-jar "gallery-placeholder" class="kg-placeholder-gallery nudge-bottom--10"}}
<span class="mt2 midgrey">Click to select up to 9 images</span>
</button>
{{/if}}
</div>
{{else 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 add up to 9 images
</span>
</div>
{{/if}}
{{#if (and errorMessage (not isDraggedOver))}}
<div class="absolute absolute--fill flex items-center bg-black-60">
<span class="db center sans-serif fw7 f7 pl2 pr2 bg-red white">
{{errorMessage}}.
<button onclick={{action "clearErrorMessage"}} style="text-decoration: underline !important">
Dismiss
</button>
</span>
</div>
{{/if}}
</div>
<div style="display:none">
{{gh-file-input multiple=true action=(action "setFiles") accept=imageMimeTypes}}
</div>
{{/gh-uploader}}
{{#if (or isSelected (clean-basic-html payload.caption))}}
{{card.captionInput
caption=payload.caption
update=(action "updateCaption")
placeholder="Type caption for gallery (optional)"
}}
{{/if}}
{{/koenig-card}}