Dan Brown

Integrated tinymce

1 +{
2 + "directory": "public/bower/"
3 +}
...\ No newline at end of file ...\ No newline at end of file
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 +}
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