3 Dropzone.options.imageUploadDropzone = {
5 previewsContainer: '.image-manager-display .uploads',
7 this.on('success', function(event, image) {
8 $('.image-manager-display .uploads').empty();
9 var newImage = $('<img />').attr('data-image-id', image.id);
10 newImage.attr('title', image.name).attr('src', image.thumbnail);
11 newImage.data('imageData', image);
12 $('.image-manager-display .uploads').after(newImage);
23 var imageIndexUrl = '/images/all';
26 var isGettingImages = true;
28 var ImageManager = {};
31 ImageManager.show = function(selector, callback) {
39 action = (typeof callback !== 'undefined') ? callback : false;
42 ImageManager.init = function(selector) {
44 overlay = elem.closest('.overlay');
45 display = elem.find('.image-manager-display').first();
46 var uploads = display.find('.uploads');
47 var images = display.find('images');
48 var loadMore = display.find('.load-more');
49 // Get recent images and show
50 $.getJSON(imageIndexUrl, showImages);
51 function showImages(data) {
52 var images = data.images;
53 hasMore = data.hasMore;
55 isGettingImages = false;
56 for(var i = 0; i < images.length; i++) {
57 var image = images[i];
58 var newImage = $('<img />').attr('data-image-id', image.id);
59 newImage.attr('title', image.name).attr('src', image.thumbnail);
60 loadMore.before(newImage);
61 newImage.data('imageData', image);
63 if(hasMore) loadMore.show();
66 loadMore.click(function() {
68 if(isGettingImages === false) {
69 isGettingImages = true;
70 $.getJSON(imageIndexUrl + '/' + pageIndex, showImages);
74 // Image grabbing on scroll
75 display.on('scroll', function() {
76 var displayBottom = display.scrollTop() + display.height();
77 var elemTop = loadMore.offset().top;
78 if(elemTop < displayBottom && hasMore && isGettingImages === false) {
79 isGettingImages = true;
81 $.getJSON(imageIndexUrl + '/' + pageIndex, showImages);
85 elem.on('dblclick', '.image-manager-display img', function() {
86 var imageElem = $(this);
87 var imageData = imageElem.data('imageData');
94 elem.find('button[data-action="close"]').click(function() {
99 elem.find('.image-manager-dropzone').first().dropzone({
100 uploadMultiple: false
106 function showWindow() {
107 overlay.closest('body').css('overflow', 'hidden');
111 function closeWindow() {
113 overlay.closest('body').css('overflow', 'auto');
116 window.ImageManager = ImageManager;