mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-14 01:45:47 +01:00
@@ -263,8 +263,14 @@ define('composer', dependencies, function(taskbar, controls, uploads, formatting
|
|||||||
preview.render(postContainer);
|
preview.render(postContainer);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
bodyEl.on('scroll', function() {
|
||||||
|
preview.matchScroll(postContainer);
|
||||||
|
})
|
||||||
|
|
||||||
bodyEl.val(draft ? draft : postData.body);
|
bodyEl.val(draft ? draft : postData.body);
|
||||||
preview.render(postContainer);
|
preview.render(postContainer, function() {
|
||||||
|
preview.matchScroll(postContainer);
|
||||||
|
});
|
||||||
drafts.init(postContainer, postData);
|
drafts.init(postContainer, postData);
|
||||||
|
|
||||||
handleResize(postContainer);
|
handleResize(postContainer);
|
||||||
|
|||||||
@@ -5,17 +5,42 @@
|
|||||||
define('composer/preview', function() {
|
define('composer/preview', function() {
|
||||||
var preview = {};
|
var preview = {};
|
||||||
|
|
||||||
preview.render = function(postContainer) {
|
var timeoutId = 0;
|
||||||
|
|
||||||
|
preview.render = function(postContainer, callback) {
|
||||||
|
callback = callback || function() {};
|
||||||
|
if (timeoutId) {
|
||||||
|
clearTimeout(timeoutId);
|
||||||
|
timeoutId = 0;
|
||||||
|
}
|
||||||
var textarea = postContainer.find('textarea');
|
var textarea = postContainer.find('textarea');
|
||||||
|
|
||||||
|
timeoutId = setTimeout(function() {
|
||||||
socket.emit('modules.composer.renderPreview', textarea.val(), function(err, preview) {
|
socket.emit('modules.composer.renderPreview', textarea.val(), function(err, preview) {
|
||||||
|
timeoutId = 0;
|
||||||
if (err) {
|
if (err) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
preview = $(preview);
|
preview = $(preview);
|
||||||
preview.find('img').addClass('img-responsive');
|
preview.find('img').addClass('img-responsive');
|
||||||
postContainer.find('.preview').html(preview);
|
postContainer.find('.preview').html(preview);
|
||||||
|
callback();
|
||||||
});
|
});
|
||||||
|
}, 250);
|
||||||
|
};
|
||||||
|
|
||||||
|
preview.matchScroll = function(postContainer) {
|
||||||
|
var textarea = postContainer.find('textarea');
|
||||||
|
var preview = postContainer.find('.preview');
|
||||||
|
var diff = textarea[0].scrollHeight - textarea.height();
|
||||||
|
|
||||||
|
if (diff === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var scrollPercent = textarea.scrollTop() / diff;
|
||||||
|
|
||||||
|
preview.scrollTop(Math.max(preview[0].scrollHeight - preview.height(), 0) * scrollPercent);
|
||||||
};
|
};
|
||||||
|
|
||||||
return preview;
|
return preview;
|
||||||
|
|||||||
Reference in New Issue
Block a user