Showing
3 changed files
with
97 additions
and
0 deletions
.bowerrc
0 → 100644
bower.json
0 → 100644
| 1 | +{ | ||
| 2 | + "name": "oxbow", | ||
| 3 | + "version": "0.0.0", | ||
| 4 | + "authors": [ | ||
| 5 | + "Dan Brown <ssddanbrown@googlemail.com>" | ||
| 6 | + ], | ||
| 7 | + "license": "MIT", | ||
| 8 | + "ignore": [ | ||
| 9 | + "**/.*", | ||
| 10 | + "node_modules", | ||
| 11 | + "bower_components", | ||
| 12 | + "public/bower/", | ||
| 13 | + "test", | ||
| 14 | + "tests" | ||
| 15 | + ], | ||
| 16 | + "dependencies": { | ||
| 17 | + "dropzone": "~4.0.1", | ||
| 18 | + "tinymce-dist": "~4.2.1" | ||
| 19 | + } | ||
| 20 | +} |
public/js/image-manager.js
0 → 100644
| 1 | + | ||
| 2 | +(function() { | ||
| 3 | + | ||
| 4 | + var isInit = false; | ||
| 5 | + var elem; | ||
| 6 | + var overlay; | ||
| 7 | + var display; | ||
| 8 | + var imageIndexUrl = '/images/all'; | ||
| 9 | + | ||
| 10 | + var ImageManager = {}; | ||
| 11 | + var action = false; | ||
| 12 | + | ||
| 13 | + ImageManager.show = function(selector, callback) { | ||
| 14 | + if(isInit) { | ||
| 15 | + showWindow(); | ||
| 16 | + } else { | ||
| 17 | + this.init(selector) | ||
| 18 | + showWindow(); | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + action = (typeof callback !== 'undefined') ? callback : false; | ||
| 22 | + }; | ||
| 23 | + | ||
| 24 | + ImageManager.init = function(selector) { | ||
| 25 | + console.log('cat'); | ||
| 26 | + elem = $(selector); | ||
| 27 | + overlay = elem.closest('.overlay'); | ||
| 28 | + display = elem.find('.image-manager-display').first() | ||
| 29 | + | ||
| 30 | + // Get recent images and show | ||
| 31 | + $.getJSON(imageIndexUrl, showImages); | ||
| 32 | + function showImages(images) { | ||
| 33 | + for(var i = 0; i < images.length; i++) { | ||
| 34 | + var image = images[i]; | ||
| 35 | + var newImage = $('<img />').attr('data-image-id', image.id); | ||
| 36 | + newImage.attr('title', image.name).attr('src', image.thumbnail); | ||
| 37 | + display.append(newImage); | ||
| 38 | + newImage.data('imageData', image); | ||
| 39 | + } | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + elem.on('dblclick', '.image-manager-display img', function() { | ||
| 43 | + var imageElem = $(this); | ||
| 44 | + var imageData = imageElem.data('imageData'); | ||
| 45 | + closeWindow(); | ||
| 46 | + if(action) { | ||
| 47 | + action(imageData); | ||
| 48 | + } | ||
| 49 | + }); | ||
| 50 | + | ||
| 51 | + elem.find('button[data-action="close"]').click(function() { | ||
| 52 | + closeWindow(); | ||
| 53 | + }); | ||
| 54 | + | ||
| 55 | + // Set up dropzone | ||
| 56 | + elem.find('.image-manager-dropzone').first().dropzone({ | ||
| 57 | + uploadMultiple: false | ||
| 58 | + }) | ||
| 59 | + | ||
| 60 | + isInit = true; | ||
| 61 | + }; | ||
| 62 | + | ||
| 63 | + function showWindow() { | ||
| 64 | + overlay.closest('body').css('overflow', 'hidden'); | ||
| 65 | + overlay.show(); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + function closeWindow() { | ||
| 69 | + overlay.hide(); | ||
| 70 | + overlay.closest('body').css('overflow', 'auto'); | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + window.ImageManager = ImageManager; | ||
| 74 | +})(); | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or sign in to post a comment