diff --git a/public/src/forum/topic.js b/public/src/forum/topic.js index 8f07b2cac3..3aa8ba5f68 100644 --- a/public/src/forum/topic.js +++ b/public/src/forum/topic.js @@ -383,6 +383,18 @@ this.innerHTML = data.content; $(this).fadeIn(250); }); + + if(data.uploadedImages && data.uploadedImages.length) { + $('#images_'+data.pid).html(''); + for(var i=0; i< data.uploadedImages.length; ++i) { + var img = $(' '+data.uploadedImages[i].name+'
'); + $('#images_' + data.pid).append(img); + } + } else { + $('#images_'+data.pid).html(''); + } + + console.log('time to recreate images', data); }); socket.on('api:posts.favourite', function(data) { diff --git a/public/src/modules/composer.js b/public/src/modules/composer.js index 1e9e46a885..d93b63f3da 100644 --- a/public/src/modules/composer.js +++ b/public/src/modules/composer.js @@ -8,7 +8,8 @@ define(['taskbar'], function(taskbar) { }; function createImageLabel(img, postImages) { - var imageLabel = $('
'+ img.name +'
'); +// var imageLabel = $('
'+ img.name +'
'); + var imageLabel = $('' + img.name +''); var closeButton = $(''); closeButton.on('click', function(e) { diff --git a/src/postTools.js b/src/postTools.js index edef132e4c..8f0aaaf6d5 100644 --- a/src/postTools.js +++ b/src/postTools.js @@ -55,7 +55,7 @@ var RDB = require('./redis.js'), }); } - PostTools.edit = function(uid, pid, title, content) { + PostTools.edit = function(uid, pid, title, content, images) { var success = function() { posts.setPostField(pid, 'content', content); posts.setPostField(pid, 'edited', Date.now()); @@ -66,6 +66,11 @@ var RDB = require('./redis.js'), }); async.parallel([ + function(next) { + posts.uploadPostImages(pid, images, function(err, uploadedImages) { + next(err, uploadedImages); + }); + }, function(next) { posts.getPostField(pid, 'tid', function(tid) { PostTools.isMain(pid, tid, function(isMainPost) { @@ -76,7 +81,7 @@ var RDB = require('./redis.js'), }); } - next(null, tid); + next(null, {tid:tid, isMainPost:isMainPost}); }); }); }, @@ -84,10 +89,12 @@ var RDB = require('./redis.js'), PostTools.toHTML(content, next); } ], function(err, results) { - io.sockets.in('topic_' + results[0]).emit('event:post_edited', { + io.sockets.in('topic_' + results[1].tid).emit('event:post_edited', { pid: pid, title: title, - content: results[1] + isMainPost: results[1].isMainPost, + content: results[2], + uploadedImages:results[0] }); }); }; diff --git a/src/posts.js b/src/posts.js index d292f86523..ccced14a70 100644 --- a/src/posts.js +++ b/src/posts.js @@ -332,7 +332,7 @@ var RDB = require('./redis.js'), async.parallel({ uploadedImages: function(next) { - uploadPostImages(postData, images, function(err, uploadedImages) { + Posts.uploadPostImages(postData.pid, images, function(err, uploadedImages) { if(err) { winston.error('Uploading images failed!', err.stack); next(null, []); @@ -350,7 +350,6 @@ var RDB = require('./redis.js'), } }, function(err, results) { postData.uploadedImages = results.uploadedImages; - Posts.setPostField(pid, 'uploadedImages', JSON.stringify(postData.uploadedImages)); postData.content = results.content; callback(postData); }); @@ -366,7 +365,7 @@ var RDB = require('./redis.js'), }); } - function uploadPostImages(postData, images, callback) { + Posts.uploadPostImages = function(pid, images, callback) { var imgur = require('./imgur'); imgur.setClientID(meta.config.imgurClientID); @@ -394,6 +393,7 @@ var RDB = require('./redis.js'), } else { async.each(images, uploadImage, function(err) { if(!err) { + Posts.setPostField(pid, 'uploadedImages', JSON.stringify(uploadedImages)); callback(null, uploadedImages); } else { console.log(err); diff --git a/src/websockets.js b/src/websockets.js index 39f47ffa4d..f007ec127d 100644 --- a/src/websockets.js +++ b/src/websockets.js @@ -476,7 +476,7 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }), posts.emitContentTooShortAlert(socket); return; } - postTools.edit(uid, data.pid, data.title, data.content); + postTools.edit(uid, data.pid, data.title, data.content, data.images); }); socket.on('api:posts.delete', function(data) {