From 964fbfe2bb24d26c74cd25dad1119aa7bb9f5e85 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 24 Sep 2013 13:30:54 -0400 Subject: [PATCH] fixes to get nodebb to at least load on IE --- public/src/ajaxify.js | 2 +- public/src/templates.js | 76 ++++++++++++++++++------------------ public/templates/config.json | 46 +++++++++++----------- 3 files changed, 62 insertions(+), 62 deletions(-) diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 20198d7151..aca3e9405a 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -158,7 +158,7 @@ var ajaxify = {}; var scripts = [], script, - children_nodes = body_el.childNodes, + children_nodes = $(body_el).children(), child, i; diff --git a/public/src/templates.js b/public/src/templates.js index af6918935e..41c5bbd4d7 100644 --- a/public/src/templates.js +++ b/public/src/templates.js @@ -1,4 +1,4 @@ -(function(module) { +(function (module) { var config = {}, templates, @@ -12,11 +12,11 @@ fs = require('fs'); } catch (e) {} - templates.force_refresh = function(tpl) { + templates.force_refresh = function (tpl) { return !!config.force_refresh[tpl]; } - templates.get_custom_map = function(tpl) { + templates.get_custom_map = function (tpl) { if (config['custom_mapping'] && tpl) { for (var pattern in config['custom_mapping']) { if (tpl.match(pattern)) { @@ -28,11 +28,11 @@ return false; } - templates.is_available = function(tpl) { + templates.is_available = function (tpl) { return jQuery.inArray(tpl, available_templates) !== -1; }; - templates.ready = function(callback) { + templates.ready = function (callback) { if (callback == null) { if (this.ready_callback) { this.ready_callback(); @@ -48,7 +48,7 @@ } }; - templates.prepare = function(raw_tpl, data) { + templates.prepare = function (raw_tpl, data) { var template = {}; template.html = raw_tpl; template.parse = parse; @@ -62,10 +62,10 @@ var loaded = templatesToLoad.length; for (var t in templatesToLoad) { - (function(file) { - fs.readFile(__dirname + '/../templates/' + file + '.tpl', function(err, html) { - var template = function() { - this.toString = function() { + (function (file) { + fs.readFile(__dirname + '/../templates/' + file + '.tpl', function (err, html) { + var template = function () { + this.toString = function () { return this.html; }; } @@ -84,7 +84,7 @@ } function loadClient() { - jQuery.when(jQuery.getJSON(RELATIVE_PATH + '/templates/config.json'), jQuery.getJSON(RELATIVE_PATH + '/api/get_templates_listing')).done(function(config_data, templates_data) { + jQuery.when(jQuery.getJSON(RELATIVE_PATH + '/templates/config.json'), jQuery.getJSON(RELATIVE_PATH + '/api/get_templates_listing')).done(function (config_data, templates_data) { config = config_data[0]; available_templates = templates_data[0]; templates.ready(); @@ -96,11 +96,11 @@ } - templates.init = function(templates_to_load) { + templates.init = function (templates_to_load) { loadTemplates(templates_to_load || []); } - templates.getTemplateNameFromUrl = function(url) { + templates.getTemplateNameFromUrl = function (url) { var parts = url.split('?')[0].split('/'); for (var i = 0; i < parts.length; ++i) { @@ -112,7 +112,7 @@ } - templates.load_template = function(callback, url, template) { + templates.load_template = function (callback, url, template) { var location = document.location || window.location, rootUrl = location.protocol + '//' + (location.hostname || location.host) + (location.port ? ':' + location.port : ''); @@ -129,13 +129,13 @@ var template_data = null; - (function() { + (function () { var timestamp = new Date().getTime(); //debug if (!templates[tpl_url]) { - jQuery.get(RELATIVE_PATH + '/templates/' + tpl_url + '.tpl?v=' + timestamp, function(html) { - var template = function() { - this.toString = function() { + jQuery.get(RELATIVE_PATH + '/templates/' + tpl_url + '.tpl?v=' + timestamp, function (html) { + var template = function () { + this.toString = function () { return this.html; }; } @@ -154,9 +154,9 @@ }()); - (function() { + (function () { - jQuery.get(API_URL + api_url, function(data) { + jQuery.get(API_URL + api_url, function (data) { if (!data) { ajaxify.go('404'); @@ -165,7 +165,7 @@ template_data = data; parse_template(); - }).fail(function(data) { + }).fail(function (data) { template_data = {}; parse_template(); }); @@ -182,20 +182,20 @@ document.getElementById('content').innerHTML = templates[tpl_url].parse(template_data); - jQuery('#content [template-variable]').each(function(index, element) { + jQuery('#content [template-variable]').each(function (index, element) { var value = null; switch (element.getAttribute('template-type')) { - case 'boolean': - value = (element.value === 'true' || element.value === '1') ? true : false; - break; - case 'int': // Intentional fall-through - case 'integer': - value = parseInt(element.value); - break; - default: - value = element.value; - break; + case 'boolean': + value = (element.value === 'true' || element.value === '1') ? true : false; + break; + case 'int': // Intentional fall-through + case 'integer': + value = parseInt(element.value); + break; + default: + value = element.value; + break; } templates.set(element.getAttribute('template-variable'), value); @@ -208,20 +208,20 @@ } - templates.flush = function() { + templates.flush = function () { parsed_variables = {}; } - templates.get = function(key) { + templates.get = function (key) { return parsed_variables[key]; } - templates.set = function(key, value) { + templates.set = function (key, value) { parsed_variables[key] = value; } //modified from https://github.com/psychobunny/dcp.templates - var parse = function(data) { + var parse = function (data) { var self = this; function replace(key, value, template) { @@ -230,7 +230,7 @@ } function makeRegex(block) { - return new RegExp("[^]*", 'g'); + return new RegExp("[\\s\\S]*", 'g'); } function getBlock(regex, block, template) { @@ -299,7 +299,7 @@ } if (namespace) { - var regex = new RegExp("{" + namespace + "[^]*?}", 'g'); + var regex = new RegExp("{" + namespace + "[\\s\\S]*?}", 'g'); template = template.replace(regex, ''); } diff --git a/public/templates/config.json b/public/templates/config.json index c478149352..f97cd5ce26 100644 --- a/public/templates/config.json +++ b/public/templates/config.json @@ -1,40 +1,40 @@ { "custom_mapping": { - "admin/testing/categories[^]*": "admin/testing/categories", - "admin/topics[^]*": "admin/topics", - "admin/categories[^]*": "admin/categories", - "admin/users[^]*": "admin/users", - "admin/redis[^]*": "admin/redis", - "admin/index[^]*": "admin/index", - "admin/themes[^]*": "admin/themes", - "admin/plugins[^]*": "admin/plugins", - "^admin/settings[^]*": "admin/settings", - "admin/twitter[^]*": "admin/twitter", - "admin/facebook[^]*": "admin/facebook", - "admin/gplus[^]*": "admin/gplus", + "admin/testing/categories.*": "admin/testing/categories", + "admin/topics.*": "admin/topics", + "admin/categories.*": "admin/categories", + "admin/users.*": "admin/users", + "admin/redis.*": "admin/redis", + "admin/index.*": "admin/index", + "admin/themes.*": "admin/themes", + "admin/plugins.*": "admin/plugins", + "^admin/settings.*": "admin/settings", + "admin/twitter.*": "admin/twitter", + "admin/facebook.*": "admin/facebook", + "admin/gplus.*": "admin/gplus", "admin/motd/?$": "admin/motd", "admin/groups/?$": "admin/groups", "install/?$": "install/mail", "install/mail/?": "install/mail", "install/social/?": "install/social", "install/privileges/?": "install/privileges", - "users/sort-posts": "users", - "users/latest": "users", - "users/sort-reputation": "users", - "users/search": "users", - "user[^]*edit": "accountedit", - "user[^]*following": "following", - "user[^]*followers": "followers", - "user[^]*settings": "accountsettings", - "user[^]*favourites": "favourites", - "user/[^]*": "account", + "users/sort-posts": "users", + "users/latest": "users", + "users/sort-reputation": "users", + "users/search": "users", + "user.*edit": "accountedit", + "user.*following": "following", + "user.*followers": "followers", + "user.*settings": "accountsettings", + "user.*favourites": "favourites", + "user/.*": "account", "recent": "recent", "unread": "unread", "popular": "category", "active": "category", "search": "search", - "reset/[^]*": "reset_code", + "reset/.*": "reset_code", "reset": "reset" },