masonry-ppt/js/main.coffee

63 lines
1.7 KiB
CoffeeScript
Raw Normal View History

2017-11-24 12:59:48 +02:00
jQuery(document).ready(() ->
2017-11-24 21:55:29 +02:00
jQuery("#masonryslide-container").hide()
)
jQuery(document).on('click', '#pack', () ->
2017-11-25 20:05:52 +02:00
container = jQuery("#masonryslide-container")
container.show()
jQuery("#masonryslide").width(container.width() - 100)
jQuery("#masonryslide").height(container.height() - 300)
2017-11-24 12:59:48 +02:00
2017-11-25 20:05:52 +02:00
slide = document.getElementById('masonryslide')
2017-11-26 15:02:41 +02:00
slide.innerHTML = ""
grid = jQuery(slide).packery({
itemSelector: ".grid-item"
columnWidth: 400
2017-11-25 20:05:52 +02:00
})
2017-11-24 21:55:29 +02:00
for file in document.getElementById('masonryslide-files').files
2017-11-25 20:05:52 +02:00
img = document.createElement("img")
img.classList.add("obj")
img.file = file
2017-11-24 12:59:48 +02:00
2017-11-25 20:05:52 +02:00
fr = new FileReader()
fr.onload = ((aImg) ->
(e) ->
aImg.src = e.target.result
2017-11-26 15:02:41 +02:00
d = jQuery("<div class='grid-item'></div>")
d.append(aImg)
grid.append(d)
grid.packery('layout')
jQuery(document).trigger("masonryloadedImg")
2017-11-25 20:05:52 +02:00
)(img)
fr.readAsDataURL(file)
2017-11-24 12:59:48 +02:00
2017-11-26 15:02:41 +02:00
jQuery(document).on("masonryloadedImg", () ->
items = jQuery('#masonryslide .grid-item')
if items.length == document.getElementById('masonryslide-files').files.length
items.draggable()
jQuery("#masonryslide").packery('bindUIDraggableEvents', items).packery('layout')
2017-11-24 21:55:29 +02:00
)
2017-11-24 13:41:58 +02:00
)
2017-11-24 12:59:48 +02:00
2017-11-26 18:13:37 +02:00
getFileData = () ->
data = []
jQuery("#masonryslide .grid-item").each(() ->
file = {}
file.data = $(this).find("img").attr("src") # base64 string
file.relx = $(this).css("left")
file.rely = $(this).css("top")
file.height = $(this).css("height")
file.width = $(this).css("width")
file.x = x
file.x = y
data.push(file)
)
return data
2017-11-24 13:41:58 +02:00
jQuery("#pngdownload").click(() ->
2017-11-26 18:13:37 +02:00
data = getFileData()
jQuery.post(ajaxurl, data, (response) ->
window.location.href = response.redirect
)
2017-11-24 12:59:48 +02:00
)