Fixed passing of most jslint checks

The only checks that fail are the 'insecure regexp' checks (which in
this case are not insecure) as well as a few functions that take unused
parameters.

Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
This commit is contained in:
Collin J. Doering 2015-01-23 14:24:28 -05:00
parent bfa6e42d9f
commit 4db3cb536c
1 changed files with 158 additions and 161 deletions

View File

@ -30,122 +30,10 @@
(function ($, mj) {
"use strict";
var page = (function () {
// var pageId = '#page-content', navId = '#nav';
function loadPageContent(page_href, virt_href, handlerCallback) {
$.ajax({
url: page_href,
type: 'GET',
dataType: 'html',
beforeSend: function (xhr, settings) {
// Remove loading error from page-content and any status message errors
$('#page-content').removeClass('loading-error');
$('#status').slideUp('normal', function () {
$('#status').removeClass('error').removeClass('success');
});
// Add .loading to #page-content and #nav to facilitate a loading animation
$('#page-content, #nav').removeClass('loading-done').addClass('loading');
// Run current handlers onSuccess callback (if it exists)
if (handlerCallback.hasOwnProperty('beforeSend') && typeof handlerCallback.beforeSend === 'function') {
handlerCallback.beforeSend(page_href, virt_href);
}
console.log('beforeSend a.menuitem');
},
success: function (dta) {
// Remove the initial loading gif (if its there)
$('#page-content').removeClass('init');
// Stop animations in the nav and page-content and scroll to the top of the page in a set amount of time
setTimeout(function () {
// Replace old page-content with new page-content
$('#page-content').html(dta);
// Stop page loading
$('#page-content, #nav').removeClass('loading');
// Reload any new maths using MathJax
$('#page-content .math').each(function (math_elem) {
mj.Hub.Queue(["Typeset", mj.Hub, math_elem[0]]);
});
$('#page-content a').each(function (i) {
var page_href = $(this).attr('href'),
external_url_regexp = /https?:\/\/.*/,
mailto_regexp = /mailto:.*/,
files_regexp = /files\/.*/,
images_regexp = /images\/.*/;
if (!(external_url_regexp.test(page_href) || mailto_regexp.test(page_href) || files_regexp.test(page_href) || images_regexp.test(page_href))) {
$(this).attr('href', "/#" + page_href);
}
});
// Run current handles onSuccess callback (if it exists)
if (handlerCallback.hasOwnProperty('onSuccess') && typeof handlerCallback.onSuccess === 'function') {
handlerCallback.onSuccess();
}
// Scroll to top of the page
if ($('body').scrollTop() > $('#nav').offset().top - 15) {
$('html, body').animate({
scrollTop: $('#nav').offset().top - 15
}, 'fast');
}
}, 250);
},
error: function (xhr, status) {
/* Remove .loading from #page-content and #nav to stop the loading
* animation. Then add .loading-error to #page-content if its the sites
* first load (#page-content has class .init). Finally, display an error
* message in #status.
*/
$('#page-content, #nav').removeClass('loading');
if ($('#page-content.init')[0]) {
$('#page-content').addClass('loading-error').html('<p class="container border-box">Error initially loading blog.rekahsoft.ca. Check the url! Given "' + page_href + '"</p>');
} else {
$('#status > p.message').text('Error retrieving page "' + page_href + '": ' + status);
$('#status').addClass('error').slideDown();
}
// Run current handles onError callback (if it exists)
if (handlerCallback.hasOwnProperty('onError') && typeof handlerCallback.onError === 'function') {
handlerCallback.onError();
}
}
});
}
function init (router) {
router.setCallback(loadPageContent);
$(document).ready(function () {
$('#nav-menu a.menuitem').click(function () {
$(this).closest('ul').find('li.active').removeClass('active');
$(this).closest('li').addClass('active');
//$('.navbar-collapse').collapse('hide');
});
$('#status a.close-button').click(function () {
$(this).parent().slideUp();
});
// Callback for when the inital page has completely loaded (including images, etc..)
$.address.change(function (event) {
console.log("Change " + event.value);
router.runRouter(event.value);
});
});
}
var spec = {
init: init
};
return spec;
}());
// The identity function
function idFun(x) {
return x;
}
var router = (function () {
var routes = [
@ -166,17 +54,15 @@
var tag_not_regexp = /(tags\/.*[^\d]+)(\.html)/;
if (tag_not_regexp.test(url)) {
return url.replace(tag_not_regexp, "$11$2");
} else {
return url;
}
return url;
},
rewriteVirtualUrl: function (url) {
var tag_one_regexp = /(tags\/.*)1(\.html)/;
if (tag_one_regexp.test(url)) {
return url.replace(tag_one_regexp, "$1$2");
} else {
return url;
}
return url;
},
ajaxCallbacks: {
beforeSend: function () {
@ -189,7 +75,7 @@
acceptUrls: /blog\d*\.html/,
rewriteGetUrl: function (url) {
if (url === "/blog.html") {
url = "/blog1.html"
url = "/blog1.html";
}
return "pages" + url;
},
@ -229,54 +115,165 @@
}
}
}],
callback = idFun;
callback = idFun,
function setCallback (cb) {
if (typeof cb == 'function') {
callback = cb;
}
}
function idFun (url) {
return url;
}
function runRouter (url) {
function runRouter_help (spec) {
for (var i = 0; i < routes.length; i++) {
if (routes[i].acceptUrls.test(spec.url)) {
var new_virt_url = routes[i].rewriteVirtualUrl(spec.url);
if (new_virt_url === spec.url) {
if (spec.hasRedirect) {
$.address.value(new_virt_url);
} else {
callback(routes[i].rewriteGetUrl(spec.url), spec.url, routes[i].ajaxCallbacks);
spec = {
runRouter: function runRouter(url) {
function runRouter_help(spec) {
var i, new_virt_url;
for (i = 0; i < routes.length; i += 1) {
if (routes[i].acceptUrls.test(spec.url)) {
new_virt_url = routes[i].rewriteVirtualUrl(spec.url);
if (new_virt_url === spec.url) {
if (spec.hasRedirect) {
$.address.value(new_virt_url);
} else {
callback(routes[i].rewriteGetUrl(spec.url), spec.url, routes[i].ajaxCallbacks);
}
} else if (spec.numRecur <= spec.recurDepth) {
runRouter_help({ url: new_virt_url,
hasRedirect: true,
numRecur: spec.numRecur + 1,
recurDepth: spec.recurDepth });
} else {
callback(routes[i].rewriteGetUrl(spec.url), spec.url, routes[i].ajaxCallbacks);
}
break;
}
} else if (spec.numRecur <= spec.recurDepth) {
runRouter_help({ url: new_virt_url,
hasRedirect: true,
numRecur: spec.numRecur + 1,
recurDepth: spec.recurDepth });
} else {
callback(routes[i].rewriteGetUrl(spec.url), spec.url, routes[i].ajaxCallbacks);
}
break;
}
runRouter_help({ url: url,
hasRedirect: false,
numRecur: 1,
recurDepth: 5 });
},
setCallback: function setCallback(cb) {
if (typeof cb === 'function') {
callback = cb;
}
}
};
return spec;
}()),
page = (function () {
// var pageId = '#page-content', navId = '#nav';
function loadPageContent(page_href, virt_href, handlerCallback) {
$.ajax({
url: page_href,
type: 'GET',
dataType: 'html',
beforeSend: function (xhr, settings) {
// Remove loading error from page-content and any status message errors
$('#page-content').removeClass('loading-error');
$('#status').slideUp('normal', function () {
$('#status').removeClass('error').removeClass('success');
});
// Add .loading to #page-content and #nav to facilitate a loading animation
$('#page-content, #nav').removeClass('loading-done').addClass('loading');
// Run current handlers onSuccess callback (if it exists)
if (handlerCallback.hasOwnProperty('beforeSend') && typeof handlerCallback.beforeSend === 'function') {
handlerCallback.beforeSend(page_href, virt_href);
}
console.log('beforeSend a.menuitem');
},
success: function (dta) {
// Remove the initial loading gif (if its there)
$('#page-content').removeClass('init');
// Stop animations in the nav and page-content and scroll to the top of the page in a set amount of time
setTimeout(function () {
// Replace old page-content with new page-content
$('#page-content').html(dta);
// Stop page loading
$('#page-content, #nav').removeClass('loading');
// Reload any new maths using MathJax
$('#page-content .math').each(function (math_elem) {
mj.Hub.Queue(["Typeset", mj.Hub, math_elem[0]]);
});
$('#page-content a').each(function (i) {
var href = $(this).attr('href'),
external_url_regexp = /https?:\/\/.*/,
mailto_regexp = /mailto:.*/,
files_regexp = /files\/.*/,
images_regexp = /images\/.*/;
if (!(external_url_regexp.test(href) || mailto_regexp.test(href) || files_regexp.test(href) || images_regexp.test(href))) {
$(this).attr('href', "/#" + href);
}
});
// Run current handles onSuccess callback (if it exists)
if (handlerCallback.hasOwnProperty('onSuccess') && typeof handlerCallback.onSuccess === 'function') {
handlerCallback.onSuccess();
}
// Scroll to top of the page
if ($('body').scrollTop() > $('#nav').offset().top - 15) {
$('html, body').animate({
scrollTop: $('#nav').offset().top - 15
}, 'fast');
}
}, 250);
},
error: function (xhr, status) {
/* Remove .loading from #page-content and #nav to stop the loading
* animation. Then add .loading-error to #page-content if its the sites
* first load (#page-content has class .init). Finally, display an error
* message in #status.
*/
$('#page-content, #nav').removeClass('loading');
if ($('#page-content.init')[0]) {
$('#page-content').addClass('loading-error').html('<p class="container border-box">Error initially loading blog.rekahsoft.ca. Check the url! Given "' + page_href + '"</p>');
} else {
$('#status > p.message').text('Error retrieving page "' + page_href + '": ' + status);
$('#status').addClass('error').slideDown();
}
// Run current handles onError callback (if it exists)
if (handlerCallback.hasOwnProperty('onError') && typeof handlerCallback.onError === 'function') {
handlerCallback.onError();
}
}
});
}
runRouter_help({ url: url,
hasRedirect: false,
numRecur: 1,
recurDepth: 5 });
}
function init(router) {
router.setCallback(loadPageContent);
var spec = {
runRouter: runRouter,
setCallback: setCallback
};
return spec;
})();
$(document).ready(function () {
$('#nav-menu a.menuitem').click(function () {
$(this).closest('ul').find('li.active').removeClass('active');
$(this).closest('li').addClass('active');
//$('.navbar-collapse').collapse('hide');
});
$('#status a.close-button').click(function () {
$(this).parent().slideUp();
});
// Callback for when the inital page has completely loaded (including images, etc..)
$.address.change(function (event) {
console.log("Change " + event.value);
router.runRouter(event.value);
});
});
}
var spec = {
init: init
};
return spec;
}());
page.init(router);
}(jQuery, MathJax));