more fixes for relative paths

v1.18.x
Baris Soner Usakli 12 years ago
parent d3c5afd94c
commit de55a35684

@ -152,10 +152,14 @@ fs.readFile(path.join(__dirname, 'config.json'), function(err, data) {
if (!secret) secret = utils.generateUUID();
if (!bcrypt_rounds) bcrypt_rounds = 10;
var urlObject = url.parse(base_url);
var relative_path = urlObject.pathname;
var host = urlObject.host;
var protocol = urlObject.protocol;
var urlObject = url.parse(base_url),
relative_path = urlObject.pathname,
host = urlObject.host,
protocol = urlObject.protocol;
if(relative_path.length === 1) {
relative_path = '';
}
var fs = require('fs'),
path = require('path'),

@ -6,83 +6,105 @@ var socket,
// todo: cleanup,etc
(function() {
$.ajax({
url: '/forum/config.json?v=' + new Date().getTime(),
success: function(data) {
API_URL = data.api_url;
RELATIVE_PATH = data.relative_path;
config = data;
socket = io.connect(config.socket.address + (config.socket.port ? ':' + config.socket.port : ''));
var reconnecting = false;
var reconnectTries = 0;
socket.on('event:connect', function(data) {
console.log('connected to nodebb socket: ', data);
});
socket.on('event:alert', function(data) {
app.alert(data);
});
socket.on('event:consolelog', function(data) {
console.log(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;
socket.emit('api:updateHeader', { fields: ['username', 'picture', 'userslug'] });
}
});
socket.on('disconnect', function(data){
RELATIVE_PATH = $('#relative_path').val();
function loadConfig(callback) {
$.ajax({
url: RELATIVE_PATH + '/config.json?v=' + new Date().getTime(),
success: function(data) {
API_URL = data.api_url;
config = data;
socket = io.connect(config.socket.address + (config.socket.port ? ':' + config.socket.port : ''));
var reconnecting = false;
var reconnectTries = 0;
socket.on('event:connect', function(data) {
console.log('connected to nodebb socket: ', data);
});
socket.on('event:alert', function(data) {
app.alert(data);
});
});
socket.on('reconnecting', function(data) {
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: 'notify',
timeout: 5000
socket.on('event:consolelog', function(data) {
console.log(data);
});
});
function showDisconnectModal() {
$('#disconnect-modal').modal({
backdrop:'static',
show:true
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;
socket.emit('api:updateHeader', { fields: ['username', 'picture', 'userslug'] });
}
});
$('#reload-button').on('click',function(){
$('#disconnect-modal').modal('hide');
window.location.reload();
socket.on('disconnect', function(data){
});
}
},
async: false
});
socket.on('reconnecting', function(data) {
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: 'notify',
timeout: 5000
});
});
socket.on('api:user.get_online_users', function(users) {
jQuery('.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.prepend('<i class="icon-circle"></i>&nbsp;');
} else {
el.prepend('<i class="icon-circle-blank"></i>&nbsp;');
}
el.processed = true;
});
});
function showDisconnectModal() {
$('#disconnect-modal').modal({
backdrop:'static',
show:true
});
$('#reload-button').on('click',function(){
$('#disconnect-modal').modal('hide');
window.location.reload();
});
}
callback();
},
async: false
});
}
// takes a string like 1000 and returns 1,000
app.addCommas = function(text) {
return text.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
@ -209,24 +231,16 @@ var socket,
}, 100);
}
socket.on('api:user.get_online_users', function(users) {
jQuery('.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.prepend('<i class="icon-circle"></i>&nbsp;');
} else {
el.prepend('<i class="icon-circle-blank"></i>&nbsp;');
}
el.processed = true;
});
});
jQuery('document').ready(function() {
loadConfig(function () {});
app.enter_room('global');

@ -179,8 +179,12 @@
function parse_template() {
if (!templates[tpl_url] || !template_data) return;
template_data['relative_path'] = RELATIVE_PATH || global.config.relative_path;
if(typeof global !== "undefined")
template_data['relative_path'] = global.config.relative_path;
else
template_data['relative_path'] = RELATIVE_PATH;
document.getElementById('content').innerHTML = templates[tpl_url].parse(template_data);
jQuery('#content [template-variable]').each(function(index, element) {

@ -8,6 +8,9 @@
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<input id="relative_path" type="hidden" template-variable="relative_path" value="{relative_path}" />
<link href="{cssSrc}" rel="stylesheet" media="screen">
<link href="{relative_path}/vendor/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" href="{relative_path}/vendor/fontawesome/css/font-awesome.min.css">
@ -30,6 +33,8 @@
<script type="text/javascript" src="{relative_path}/src/utils.js"></script>
<link rel="stylesheet" type="text/css" href="{relative_path}/css/nodebb.css" />
</head>
<body>
@ -74,5 +79,6 @@
<input id="csrf_token" type="hidden" template-variable="csrf" value="{csrf}" />
<div class="container" id="content">

Loading…
Cancel
Save