|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
define(['taskbar'], function(taskbar) {
|
|
|
|
|
var composer = {
|
|
|
|
|
initialized: false,
|
|
|
|
|
active: 0,
|
|
|
|
|
active: undefined,
|
|
|
|
|
taskbar: taskbar,
|
|
|
|
|
posts: {},
|
|
|
|
|
postContainer: undefined,
|
|
|
|
@ -222,6 +222,9 @@ define(['taskbar'], function(taskbar) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
window.addEventListener('resize', function() {
|
|
|
|
|
if (composer.active !== undefined) composer.reposition(composer.active);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
composer.initialized = true;
|
|
|
|
|
}
|
|
|
|
@ -240,23 +243,15 @@ define(['taskbar'], function(taskbar) {
|
|
|
|
|
var post_data = composer.posts[post_uuid],
|
|
|
|
|
titleEl = composer.postContainer.querySelector('input'),
|
|
|
|
|
bodyEl = composer.postContainer.querySelector('textarea'),
|
|
|
|
|
postWindowEl = composer.postContainer.querySelector('.span5'),
|
|
|
|
|
taskbarBtn = document.querySelector('#taskbar [data-uuid="' + post_uuid + '"]'),
|
|
|
|
|
btnRect = taskbarBtn.getBoundingClientRect(),
|
|
|
|
|
taskbarRect = document.getElementById('taskbar').getBoundingClientRect(),
|
|
|
|
|
dropDiv = $(composer.postContainer).find('#imagedrop'),
|
|
|
|
|
imagelist = $(composer.postContainer).find('#imagelist'),
|
|
|
|
|
windowRect, leftPos;
|
|
|
|
|
imagelist = $(composer.postContainer).find('#imagelist');
|
|
|
|
|
|
|
|
|
|
dropDiv.hide();
|
|
|
|
|
imagelist.empty();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
composer.postContainer.style.display = 'block';
|
|
|
|
|
windowRect = postWindowEl.getBoundingClientRect();
|
|
|
|
|
leftPos = btnRect.left + btnRect.width - windowRect.width;
|
|
|
|
|
postWindowEl.style.left = (leftPos > 0 ? leftPos : 0) + 'px';
|
|
|
|
|
composer.postContainer.style.bottom = taskbarRect.height + "px";
|
|
|
|
|
composer.reposition(post_uuid);
|
|
|
|
|
composer.active = post_uuid;
|
|
|
|
|
|
|
|
|
|
composer.postContainer.setAttribute('data-uuid', post_uuid);
|
|
|
|
|
if (parseInt(post_data.tid) > 0) {
|
|
|
|
|
titleEl.value = 'Replying to: ' + post_data.title;
|
|
|
|
@ -271,8 +266,6 @@ define(['taskbar'], function(taskbar) {
|
|
|
|
|
}
|
|
|
|
|
bodyEl.value = post_data.body
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Direct user focus to the correct element
|
|
|
|
|
if ((parseInt(post_data.tid) || parseInt(post_data.pid)) > 0) {
|
|
|
|
|
bodyEl.focus();
|
|
|
|
@ -283,6 +276,20 @@ define(['taskbar'], function(taskbar) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
composer.reposition = function(post_uuid) {
|
|
|
|
|
var postWindowEl = composer.postContainer.querySelector('.span5'),
|
|
|
|
|
taskbarBtn = document.querySelector('#taskbar [data-uuid="' + post_uuid + '"]'),
|
|
|
|
|
btnRect = taskbarBtn.getBoundingClientRect(),
|
|
|
|
|
taskbarRect = document.getElementById('taskbar').getBoundingClientRect(),
|
|
|
|
|
windowRect, leftPos;
|
|
|
|
|
|
|
|
|
|
composer.postContainer.style.display = 'block';
|
|
|
|
|
windowRect = postWindowEl.getBoundingClientRect();
|
|
|
|
|
leftPos = btnRect.left + btnRect.width - windowRect.width;
|
|
|
|
|
postWindowEl.style.left = (leftPos > 0 ? leftPos : 0) + 'px';
|
|
|
|
|
composer.postContainer.style.bottom = taskbarRect.height + "px";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
composer.post = function(post_uuid) {
|
|
|
|
|
// Check title and post length
|
|
|
|
|
var postData = composer.posts[post_uuid],
|
|
|
|
@ -349,6 +356,7 @@ define(['taskbar'], function(taskbar) {
|
|
|
|
|
|
|
|
|
|
composer.minimize = function(uuid) {
|
|
|
|
|
composer.postContainer.style.display = 'none';
|
|
|
|
|
composer.active = undefined;
|
|
|
|
|
taskbar.minimize('composer', uuid);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|