mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 19:46:01 +01:00
can add and remove images from posts
This commit is contained in:
@@ -152,7 +152,7 @@ define(['taskbar'], function(taskbar) {
|
|||||||
pid: threadData.pid,
|
pid: threadData.pid,
|
||||||
title: threadData.title || '',
|
title: threadData.title || '',
|
||||||
body: threadData.body || '',
|
body: threadData.body || '',
|
||||||
images: []
|
images: threadData.uploadedImages
|
||||||
};
|
};
|
||||||
composer.load(uuid);
|
composer.load(uuid);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
38
src/posts.js
38
src/posts.js
@@ -369,38 +369,40 @@ var RDB = require('./redis.js'),
|
|||||||
var imgur = require('./imgur');
|
var imgur = require('./imgur');
|
||||||
imgur.setClientID(meta.config.imgurClientID);
|
imgur.setClientID(meta.config.imgurClientID);
|
||||||
|
|
||||||
var uploadedImages = [];
|
if(!images)
|
||||||
|
return callback(null, []);
|
||||||
|
|
||||||
|
var uploadedImages = images.filter(function(image) { return !!image.url; });
|
||||||
|
|
||||||
|
function uploadImage(image, next) {
|
||||||
|
if(!image.data)
|
||||||
|
return next(null);
|
||||||
|
|
||||||
function uploadImage(image, callback) {
|
|
||||||
imgur.upload(image.data, 'base64', function(err, data) {
|
imgur.upload(image.data, 'base64', function(err, data) {
|
||||||
if(err) {
|
if(err) {
|
||||||
callback(err);
|
next(err);
|
||||||
} else {
|
} else {
|
||||||
if(data.success) {
|
if(data.success) {
|
||||||
var img= {url:data.data.link, name:image.name};
|
var img= {url:data.data.link, name:image.name};
|
||||||
uploadedImages.push(img);
|
uploadedImages.push(img);
|
||||||
callback(null);
|
next(null);
|
||||||
} else {
|
} else {
|
||||||
winston.error('Can\'t upload image, did you set imgurClientID?');
|
winston.error('Can\'t upload image, did you set imgurClientID?');
|
||||||
callback(data);
|
next(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!images) {
|
async.each(images, uploadImage, function(err) {
|
||||||
callback(null, uploadedImages);
|
if(!err) {
|
||||||
} else {
|
Posts.setPostField(pid, 'uploadedImages', JSON.stringify(uploadedImages));
|
||||||
async.each(images, uploadImage, function(err) {
|
callback(null, uploadedImages);
|
||||||
if(!err) {
|
} else {
|
||||||
Posts.setPostField(pid, 'uploadedImages', JSON.stringify(uploadedImages));
|
console.log(err);
|
||||||
callback(null, uploadedImages);
|
callback(err, null);
|
||||||
} else {
|
}
|
||||||
console.log(err);
|
});
|
||||||
callback(err, null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Posts.getPostsByUid = function(uid, start, end, callback) {
|
Posts.getPostsByUid = function(uid, start, end, callback) {
|
||||||
|
|||||||
@@ -583,7 +583,6 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
|
|||||||
if (uid > 0) {
|
if (uid > 0) {
|
||||||
if (parseInt(data.tid) > 0) {
|
if (parseInt(data.tid) > 0) {
|
||||||
topics.getTopicData(data.tid, function(topicData) {
|
topics.getTopicData(data.tid, function(topicData) {
|
||||||
|
|
||||||
if (data.body)
|
if (data.body)
|
||||||
topicData.body = data.body;
|
topicData.body = data.body;
|
||||||
|
|
||||||
@@ -606,9 +605,17 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (parseInt(data.pid) > 0) {
|
} else if (parseInt(data.pid) > 0) {
|
||||||
|
|
||||||
async.parallel([
|
async.parallel([
|
||||||
function(next) {
|
function(next) {
|
||||||
posts.getPostField(data.pid, 'content', function(raw) {
|
posts.getPostFields(data.pid, ['content', 'uploadedImages'], function(raw) {
|
||||||
|
try {
|
||||||
|
raw.uploadedImages = JSON.parse(raw.uploadedImages);
|
||||||
|
} catch(e) {
|
||||||
|
winston.err(e);
|
||||||
|
raw.uploadedImages = [];
|
||||||
|
}
|
||||||
|
|
||||||
next(null, raw);
|
next(null, raw);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -621,7 +628,8 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
|
|||||||
socket.emit('api:composer.push', {
|
socket.emit('api:composer.push', {
|
||||||
title: results[1],
|
title: results[1],
|
||||||
pid: data.pid,
|
pid: data.pid,
|
||||||
body: results[0]
|
body: results[0].content,
|
||||||
|
uploadedImages: results[0].uploadedImages
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user