Baris Usakli 12 years ago
commit 3100bfcfd3

@ -1,5 +1,5 @@
{
"name": "NodeBB",
"name": "nodebb",
"license": "GPLv3 or later",
"description": "NodeBB Forum",
"version": "0.0.3",
@ -31,7 +31,8 @@
"gravatar": "1.0.6",
"nconf": "~0.6.7",
"sitemap": "~0.6.0",
"cheerio": "~0.12.0"
"cheerio": "~0.12.0",
"request": "~2.25.0"
},
"bugs": {
"url": "https://github.com/designcreateplay/NodeBB/issues"

@ -536,13 +536,14 @@ body .navbar .nodebb-inline-block {
}
input {
width: 100%;
width: 98%;
text-align: center;
border: none;
padding: 0.5em 0;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
border-radius: 0px;
margin: 1% 1% 2% 1%;
}
textarea {
@ -551,10 +552,10 @@ body .navbar .nodebb-inline-block {
padding: 0.5em;
display: block;
width: 90%;
margin: 1em auto;
margin: 0.5em auto;
resize: none;
color: white;
height: 230px;
height: 200px;
}
#imagedrop {

@ -1,7 +1,7 @@
define(['taskbar'], function(taskbar) {
var composer = {
initialized: false,
active: 0,
active: undefined,
taskbar: taskbar,
posts: {},
postContainer: undefined,
@ -95,17 +95,19 @@ define(['taskbar'], function(taskbar) {
'<span class="btn btn-link" tabindex="-1"><i class="icon-list"></i></span>' +
'<span class="btn btn-link" tabindex="-1"><i class="icon-link"></i></span>' +
'</div>' +
'<div class="btn-group action-bar" style="float: right; margin-right: -12px">' +
'<button data-action="post" class="btn" tabIndex="3"><i class="icon-ok"></i> Submit</button>' +
'<button data-action="minimize" class="btn hidden-phone" tabIndex="4"><i class="icon-download-alt"></i> Minimize</button>' +
'<button class="btn" data-action="discard" tabIndex="5"><i class="icon-remove"></i> Discard</button>' +
'</div>' +
'</div>' +
'<div style="position:relative;">'+
'<div id="imagedrop" class=""><div>Drag and Drop Images Here</div></div>'+
'<textarea tabIndex="2"></textarea>' +
'<div id="imagelist"></div>'+
'</div>'+
'<div class="btn-toolbar">' +
'<div class="btn-group action-bar" style="float: right; margin-right: -8px">' +
'<button data-action="minimize" class="btn hidden-phone" tabIndex="4"><i class="icon-download-alt"></i> Minimize</button>' +
'<button class="btn" data-action="discard" tabIndex="5"><i class="icon-remove"></i> Discard</button>' +
'<button data-action="post" class="btn" tabIndex="3"><i class="icon-ok"></i> Submit</button>' +
'</div>' +
'</div>' +
'</div>';
document.body.insertBefore(composer.postContainer, taskbar);
@ -220,6 +222,9 @@ define(['taskbar'], function(taskbar) {
break;
}
});
window.addEventListener('resize', function() {
if (composer.active !== undefined) composer.reposition(composer.active);
});
composer.initialized = true;
}
@ -238,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;
@ -269,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();
@ -281,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],
@ -347,6 +356,7 @@ define(['taskbar'], function(taskbar) {
composer.minimize = function(uuid) {
composer.postContainer.style.display = 'none';
composer.active = undefined;
taskbar.minimize('composer', uuid);
}

@ -84,13 +84,15 @@
Auth.create_routes = function(app) {
app.get('/logout', function(req, res) {
console.log('info: [Auth] Session ' + req.sessionID + ' logout (uid: ' + global.uid + ')');
login_module.logout(req.sessionID, function(logout) {
req.logout();
app.build_header({ req: req, res: res }, function(header) {
res.send(header + templates['logout'] + templates['footer']);
if (req.user && req.user.uid > 0) {
console.log('info: [Auth] Session ' + req.sessionID + ' logout (uid: ' + req.user.uid + ')');
login_module.logout(req.sessionID, function(logout) {
req.logout();
app.build_header({ req: req, res: res }, function(err, header) {
res.send(header + templates['logout'] + templates['footer']);
});
});
});
} else res.redirect('/');
});
if (login_strategies.indexOf('twitter') !== -1) {
@ -123,13 +125,14 @@
app.get('/reset/:code', function(req, res) {
app.build_header({ req: req, res: res }, function(header) {
app.build_header({ req: req, res: res }, function(err, header) {
res.send(header + templates['reset_code'].parse({ reset_code: req.params.code }) + templates['footer']);
});
});
app.get('/reset', function(req, res) {
app.build_header({ req: req, res: res }, function(header) {
app.build_header({ req: req, res: res }, function(err, header) {
console.log(header);
res.send(header + templates['reset'] + templates['footer']);
});
});

Loading…
Cancel
Save