From c4d0f38a671c878cb96fc5fc52155c3ede6af0de Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Tue, 14 Jul 2015 22:34:55 +0100 Subject: [PATCH] Integrated tinymce --- .bowerrc | 3 ++ bower.json | 20 +++++++++++ public/js/image-manager.js | 74 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 .bowerrc create mode 100644 bower.json create mode 100644 public/js/image-manager.js diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 000000000..0d5b26454 --- /dev/null +++ b/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "public/bower/" +} \ No newline at end of file diff --git a/bower.json b/bower.json new file mode 100644 index 000000000..c1831df7d --- /dev/null +++ b/bower.json @@ -0,0 +1,20 @@ +{ + "name": "oxbow", + "version": "0.0.0", + "authors": [ + "Dan Brown " + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "public/bower/", + "test", + "tests" + ], + "dependencies": { + "dropzone": "~4.0.1", + "tinymce-dist": "~4.2.1" + } +} diff --git a/public/js/image-manager.js b/public/js/image-manager.js new file mode 100644 index 000000000..27a0cadda --- /dev/null +++ b/public/js/image-manager.js @@ -0,0 +1,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 = $('').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; +})(); \ No newline at end of file