image-manager.js
1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
(function() {
var isInit = false;
var elem;
var overlay;
var display;
var imageIndexUrl = '/images/all';
var ImageManager = {};
var action = false;
ImageManager.show = function(selector, callback) {
if(isInit) {
showWindow();
} else {
this.init(selector)
showWindow();
}
action = (typeof callback !== 'undefined') ? callback : false;
};
ImageManager.init = function(selector) {
console.log('cat');
elem = $(selector);
overlay = elem.closest('.overlay');
display = elem.find('.image-manager-display').first()
// Get recent images and show
$.getJSON(imageIndexUrl, showImages);
function showImages(images) {
for(var i = 0; i < images.length; i++) {
var image = images[i];
var newImage = $('<img />').attr('data-image-id', image.id);
newImage.attr('title', image.name).attr('src', image.thumbnail);
display.append(newImage);
newImage.data('imageData', image);
}
}
elem.on('dblclick', '.image-manager-display img', function() {
var imageElem = $(this);
var imageData = imageElem.data('imageData');
closeWindow();
if(action) {
action(imageData);
}
});
elem.find('button[data-action="close"]').click(function() {
closeWindow();
});
// Set up dropzone
elem.find('.image-manager-dropzone').first().dropzone({
uploadMultiple: false
})
isInit = true;
};
function showWindow() {
overlay.closest('body').css('overflow', 'hidden');
overlay.show();
}
function closeWindow() {
overlay.hide();
overlay.closest('body').css('overflow', 'auto');
}
window.ImageManager = ImageManager;
})();