mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-07 14:35:47 +01:00
login redirects back
This commit is contained in:
@@ -7,7 +7,7 @@ var socket,
|
|||||||
(function () {
|
(function () {
|
||||||
var showWelcomeMessage = false;
|
var showWelcomeMessage = false;
|
||||||
|
|
||||||
function loadConfig() {
|
app.loadConfig = function() {
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: RELATIVE_PATH + '/api/config',
|
url: RELATIVE_PATH + '/api/config',
|
||||||
@@ -15,108 +15,114 @@ var socket,
|
|||||||
API_URL = data.api_url;
|
API_URL = data.api_url;
|
||||||
|
|
||||||
config = data;
|
config = data;
|
||||||
socket = io.connect(config.socket.address);
|
if(socket) {
|
||||||
|
socket.disconnect();
|
||||||
|
socket.socket.connect();
|
||||||
|
} else {
|
||||||
|
socket = io.connect(config.socket.address);
|
||||||
|
|
||||||
var reconnecting = false;
|
var reconnecting = false;
|
||||||
var reconnectTries = 0;
|
var reconnectTries = 0;
|
||||||
|
|
||||||
socket.on('event:connect', function (data) {
|
socket.on('event:connect', function (data) {
|
||||||
app.username = data.username;
|
app.username = data.username;
|
||||||
app.showLoginMessage();
|
app.showLoginMessage();
|
||||||
});
|
|
||||||
|
|
||||||
socket.on('event:alert', function (data) {
|
|
||||||
app.alert(data);
|
|
||||||
});
|
|
||||||
|
|
||||||
socket.on('connect', function (data) {
|
|
||||||
if (reconnecting) {
|
|
||||||
setTimeout(function () {
|
|
||||||
app.alert({
|
|
||||||
alert_id: 'connection_alert',
|
|
||||||
title: 'Connected',
|
|
||||||
message: 'Connection successful.',
|
|
||||||
type: 'success',
|
|
||||||
timeout: 5000
|
|
||||||
});
|
|
||||||
}, 1000);
|
|
||||||
reconnecting = false;
|
|
||||||
reconnectTries = 0;
|
|
||||||
socket.emit('api:updateHeader', {
|
socket.emit('api:updateHeader', {
|
||||||
fields: ['username', 'picture', 'userslug']
|
fields: ['username', 'picture', 'userslug']
|
||||||
});
|
});
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
socket.on('reconnecting', function (data) {
|
|
||||||
function showDisconnectModal() {
|
|
||||||
$('#disconnect-modal').modal({
|
|
||||||
backdrop: 'static',
|
|
||||||
show: true
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#reload-button').on('click', function () {
|
|
||||||
$('#disconnect-modal').modal('hide');
|
|
||||||
window.location.reload();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
reconnecting = true;
|
|
||||||
reconnectTries++;
|
|
||||||
|
|
||||||
if (reconnectTries > 4) {
|
|
||||||
showDisconnectModal();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
app.alert({
|
|
||||||
alert_id: 'connection_alert',
|
|
||||||
title: 'Reconnecting',
|
|
||||||
message: 'You have disconnected from NodeBB, we will try to reconnect you. <br/><i class="icon-refresh icon-spin"></i>',
|
|
||||||
type: 'warning',
|
|
||||||
timeout: 5000
|
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
socket.on('api:user.get_online_users', function (users) {
|
socket.on('event:alert', function (data) {
|
||||||
jQuery('a.username-field').each(function () {
|
app.alert(data);
|
||||||
if (this.processed === true)
|
});
|
||||||
return;
|
|
||||||
|
|
||||||
var el = jQuery(this),
|
socket.on('connect', function (data) {
|
||||||
uid = el.parents('li').attr('data-uid');
|
if (reconnecting) {
|
||||||
|
setTimeout(function () {
|
||||||
|
app.alert({
|
||||||
|
alert_id: 'connection_alert',
|
||||||
|
title: 'Connected',
|
||||||
|
message: 'Connection successful.',
|
||||||
|
type: 'success',
|
||||||
|
timeout: 5000
|
||||||
|
});
|
||||||
|
}, 1000);
|
||||||
|
reconnecting = false;
|
||||||
|
reconnectTries = 0;
|
||||||
|
socket.emit('api:updateHeader', {
|
||||||
|
fields: ['username', 'picture', 'userslug']
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (uid && jQuery.inArray(uid, users) !== -1) {
|
socket.on('reconnecting', function (data) {
|
||||||
el.find('i').remove();
|
function showDisconnectModal() {
|
||||||
el.prepend('<i class="icon-circle"></i>');
|
$('#disconnect-modal').modal({
|
||||||
} else {
|
backdrop: 'static',
|
||||||
el.find('i').remove();
|
show: true
|
||||||
el.prepend('<i class="icon-circle-blank"></i>');
|
});
|
||||||
|
|
||||||
|
$('#reload-button').on('click', function () {
|
||||||
|
$('#disconnect-modal').modal('hide');
|
||||||
|
window.location.reload();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
el.processed = true;
|
reconnecting = true;
|
||||||
});
|
reconnectTries++;
|
||||||
jQuery('button .username-field').each(function () {
|
|
||||||
//DRY FAIL
|
if (reconnectTries > 4) {
|
||||||
if (this.processed === true)
|
showDisconnectModal();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var el = jQuery(this),
|
|
||||||
uid = el.parents('li').attr('data-uid');
|
|
||||||
|
|
||||||
if (uid && jQuery.inArray(uid, users) !== -1) {
|
|
||||||
el.parent().addClass('btn-success');
|
|
||||||
} else {
|
|
||||||
el.parent().addClass('btn-danger');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
el.processed = true;
|
app.alert({
|
||||||
|
alert_id: 'connection_alert',
|
||||||
|
title: 'Reconnecting',
|
||||||
|
message: 'You have disconnected from NodeBB, we will try to reconnect you. <br/><i class="icon-refresh icon-spin"></i>',
|
||||||
|
type: 'warning',
|
||||||
|
timeout: 5000
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
app.enter_room('global');
|
socket.on('api:user.get_online_users', function (users) {
|
||||||
|
jQuery('a.username-field').each(function () {
|
||||||
|
if (this.processed === true)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var el = jQuery(this),
|
||||||
|
uid = el.parents('li').attr('data-uid');
|
||||||
|
|
||||||
|
if (uid && jQuery.inArray(uid, users) !== -1) {
|
||||||
|
el.find('i').remove();
|
||||||
|
el.prepend('<i class="icon-circle"></i>');
|
||||||
|
} else {
|
||||||
|
el.find('i').remove();
|
||||||
|
el.prepend('<i class="icon-circle-blank"></i>');
|
||||||
|
}
|
||||||
|
|
||||||
|
el.processed = true;
|
||||||
|
});
|
||||||
|
jQuery('button .username-field').each(function () {
|
||||||
|
//DRY FAIL
|
||||||
|
if (this.processed === true)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var el = jQuery(this),
|
||||||
|
uid = el.parents('li').attr('data-uid');
|
||||||
|
|
||||||
|
if (uid && jQuery.inArray(uid, users) !== -1) {
|
||||||
|
el.parent().addClass('btn-success');
|
||||||
|
} else {
|
||||||
|
el.parent().addClass('btn-danger');
|
||||||
|
}
|
||||||
|
|
||||||
|
el.processed = true;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
app.enter_room('global');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
async: false
|
async: false
|
||||||
});
|
});
|
||||||
@@ -402,7 +408,8 @@ var socket,
|
|||||||
function animateScroll() {
|
function animateScroll() {
|
||||||
$('body,html').animate({
|
$('body,html').animate({
|
||||||
scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop() - $('#header-menu').height()
|
scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop() - $('#header-menu').height()
|
||||||
});
|
}, 400);
|
||||||
|
//$('body,html').scrollTop(scrollTo.offset().top - container.offset().top + container.scrollTop() - $('#header-menu').height());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!scrollTo.length && tid) {
|
if (!scrollTo.length && tid) {
|
||||||
@@ -437,6 +444,6 @@ var socket,
|
|||||||
|
|
||||||
showWelcomeMessage = location.href.indexOf('loggedin') !== -1;
|
showWelcomeMessage = location.href.indexOf('loggedin') !== -1;
|
||||||
|
|
||||||
loadConfig();
|
app.loadConfig();
|
||||||
|
|
||||||
}());
|
}());
|
||||||
@@ -58,6 +58,7 @@
|
|||||||
if (data['username'])
|
if (data['username'])
|
||||||
userLabel.find('span').html(data['username']);
|
userLabel.find('span').html(data['username']);
|
||||||
} else {
|
} else {
|
||||||
|
rightMenu.empty();
|
||||||
var userli = $('<li> \
|
var userli = $('<li> \
|
||||||
<a id="user_label" href="/user/' + data['userslug'] + '"> \
|
<a id="user_label" href="/user/' + data['userslug'] + '"> \
|
||||||
<img src="' + data['picture'] + '"/> \
|
<img src="' + data['picture'] + '"/> \
|
||||||
|
|||||||
@@ -32,7 +32,12 @@
|
|||||||
$('#login-error-notify').show();
|
$('#login-error-notify').show();
|
||||||
} else {
|
} else {
|
||||||
$('#login-error-notify').hide();
|
$('#login-error-notify').hide();
|
||||||
window.location.replace(RELATIVE_PATH + "/?loggedin");
|
//window.location.replace(RELATIVE_PATH + "/?loggedin");
|
||||||
|
history.go(-1);
|
||||||
|
//setTimeout(function(){
|
||||||
|
app.loadConfig();
|
||||||
|
//}, 500);
|
||||||
|
//socket.emit('api:updateHeader');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: function(data, textStatus, jqXHR) {
|
error: function(data, textStatus, jqXHR) {
|
||||||
|
|||||||
@@ -215,21 +215,12 @@
|
|||||||
}, false);
|
}, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
$(window).off('scroll').on('scroll', function() {
|
enableInfiniteLoading();
|
||||||
var bottom = ($(document).height() - $(window).height()) * 0.9;
|
|
||||||
|
|
||||||
if ($(window).scrollTop() > bottom && !app.infiniteLoaderActive && $('#post-container').children().length) {
|
|
||||||
app.loadMorePosts(tid);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var bookmark = localStorage.getItem('topic:' + tid + ':bookmark');
|
var bookmark = localStorage.getItem('topic:' + tid + ':bookmark');
|
||||||
|
|
||||||
if(bookmark) {
|
if(bookmark) {
|
||||||
// need to find out why it doesnt work without setTimeout -baris
|
app.scrollToPost(parseInt(bookmark, 10));
|
||||||
setTimeout(function() {
|
|
||||||
app.scrollToPost(parseInt(bookmark, 10));
|
|
||||||
}, 300);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#post-container').on('click', '.deleted', function(ev) {
|
$('#post-container').on('click', '.deleted', function(ev) {
|
||||||
@@ -237,6 +228,17 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function enableInfiniteLoading() {
|
||||||
|
$(window).off('scroll').on('scroll', function() {
|
||||||
|
var bottom = ($(document).height() - $(window).height()) * 0.9;
|
||||||
|
|
||||||
|
if ($(window).scrollTop() > bottom && !app.infiniteLoaderActive && $('#post-container').children().length) {
|
||||||
|
app.loadMorePosts(tid);
|
||||||
|
console.log('window scrolling');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
var reply_fn = function() {
|
var reply_fn = function() {
|
||||||
var selectionText = '',
|
var selectionText = '',
|
||||||
selection = window.getSelection() || document.getSelection();
|
selection = window.getSelection() || document.getSelection();
|
||||||
|
|||||||
@@ -29,29 +29,35 @@
|
|||||||
<div class="{topic_row_size}">
|
<div class="{topic_row_size}">
|
||||||
<ul id="topics-container">
|
<ul id="topics-container">
|
||||||
<!-- BEGIN topics -->
|
<!-- BEGIN topics -->
|
||||||
<a href="../../topic/{topics.slug}#{topics.teaser_pid}"><li class="category-item {topics.deleted-class}">
|
|
||||||
<div class="row">
|
<li class="category-item {topics.deleted-class}">
|
||||||
<div class="col-md-12 topic-row">
|
<div class="row">
|
||||||
<div class="latest-post visible-lg visible-md">
|
<div class="col-md-12 topic-row">
|
||||||
<div class="pull-right">
|
<div class="latest-post visible-lg visible-md">
|
||||||
<img class="img-rounded" style="width: 48px; height: 48px; /*temporary*/" src="{topics.teaser_userpicture}" />
|
<a href="../../topic/{topics.slug}#{topics.teaser_pid}">
|
||||||
<p>{topics.teaser_text}</p>
|
<div class="pull-right">
|
||||||
<p class="meta">
|
<img class="img-rounded" style="width: 48px; height: 48px; /*temporary*/" src="{topics.teaser_userpicture}" />
|
||||||
<strong>{topics.teaser_username}</strong> posted <span class="timeago" title="{topics.teaser_timestamp}"></span>
|
<p>{topics.teaser_text}</p>
|
||||||
</p>
|
<p class="meta">
|
||||||
|
<strong>{topics.teaser_username}</strong> posted <span class="timeago" title="{topics.teaser_timestamp}"></span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<a href="../../topic/{topics.slug}">
|
||||||
<div>
|
<div>
|
||||||
<h3><span class="topic-title"><span class="badge {topics.badgeclass}">{topics.postcount}</span>{topics.title}</span></h3>
|
<h3><span class="topic-title"><span class="badge {topics.badgeclass}">{topics.postcount}</span>{topics.title}</span></h3>
|
||||||
<small>
|
<small>
|
||||||
<strong><i class="{topics.pin-icon}"></i> <i class="{topics.lock-icon}"></i></strong>
|
<strong><i class="{topics.pin-icon}"></i> <i class="{topics.lock-icon}"></i></strong>
|
||||||
Posted <span class="timeago" title="{topics.relativeTime}"></span> by
|
Posted <span class="timeago" title="{topics.relativeTime}"></span> by
|
||||||
<strong>{topics.username}</strong>.
|
<strong>{topics.username}</strong>.
|
||||||
</small>
|
</small>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</li>
|
||||||
</li></a>
|
|
||||||
<!-- END topics -->
|
<!-- END topics -->
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
padding-right: 30px;
|
padding-right: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
ul {
|
||||||
li {
|
li {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
|
|||||||
Reference in New Issue
Block a user