FIX: Final tweaks to typescript refactor.

* added type checking
 * fixed display of multi chapter passages
 * limited display to 900 pxof width for easier reading
 * converted vars to lets
 * removed unused traverse function
 * simplified whats gets passed around with passages and results
This commit is contained in:
jason.wall 2016-04-26 10:24:12 -04:00
parent a388860e9c
commit 1f2383d2f8
10 changed files with 125 additions and 195 deletions

View File

@ -71,7 +71,7 @@ a:hover {
#resultwrap {
float: left;
font: 18px georgia;
width: 100%;
}
#resultwrap h3 {
@ -122,6 +122,7 @@ a:hover {
{
display: block;
padding-left: 55px;
max-width: 900px;
}
#main .block {

View File

@ -1,24 +1,24 @@
var Bible = (function () {
function Bible() {
}
Bible.DisplayPassage = function (cs, ref, testament) {
Bible.DisplayPassage = function (result, ref) {
try {
var r = "";
for (var j = 0; j < cs.length; j++) {
if (Number(ref.startchapter) < Number(ref.endchapter)) {
r += "<b>Chapter: " + cs[j].ch + "</b><br />";
for (var j = 0; j < result.cs.length; j++) {
if (Number(ref.Section.start.chapter) < Number(ref.Section.end.chapter)) {
r += "<b>Chapter: " + result.cs[j].ch + "</b><br />";
}
var vss = cs[j].vss;
var vss = result.cs[j].vss;
for (var m = 0; m < vss.length; m++) {
var v = vss[m];
r += "<b>" + v.v + ".</b> ";
for (var w = 0; w < v.w.length; w++) {
if (v.w[w].s != undefined) {
var strongs_pre = "";
if (testament == "old") {
if (result.testament == "old") {
strongs_pre = "H";
}
if (testament == "new") {
if (result.testament == "new") {
strongs_pre = "G";
}
var sp = "";
@ -44,61 +44,61 @@ var Bible = (function () {
Util.HandleError(err);
}
};
Bible.GetPassage = function (b, sch, ech, sv, ev) {
Bible.GetPassage = function (section) {
try {
var chapters = []; // the verses from the chapter.
var chapters_1 = []; // the verses from the chapter.
var r = {
cs: [],
testament: ""
};
for (var i = sch; i <= ech; i++) {
var url = "data/bibles/kjv_strongs/" + b + "-" + i + ".json";
for (var i = Number(section.start.chapter); i <= Number(section.end.chapter); i++) {
var url = "data/bibles/kjv_strongs/" + section.start.book + "-" + i + ".json";
$.ajax({
async: false,
type: "GET",
url: url,
dataType: "json",
success: function (d, t, x) {
chapters.push(d);
chapters_1.push(d);
},
error: function (request, status, error) {
Util.HandleError(error);
}
});
}
for (var j = 0; j < chapters.length; j++) {
for (var j = 0; j < chapters_1.length; j++) {
var vss = [];
var start;
var end;
var start_1 = void 0;
var end = void 0;
// figure out the start verse.
if (j == 0) {
start = sv;
start_1 = section.start.verse;
}
else {
start = 1;
start_1 = 1;
}
// figure out the end verse
if ((j + 1) == chapters.length) {
end = ev;
if ((j + 1) == chapters_1.length) {
end = section.end.verse;
}
else {
end = "*";
}
// get the verses requested.
var tvs = chapters[j].vss.length;
var tvs = chapters_1[j].vss.length;
if (end == "*" || end > tvs) {
end = tvs;
}
for (i = start; i <= end; i++) {
for (var i = start_1; i <= end; i++) {
// we're using c based indexes here, so the index is 1 less than the verse #.
vss.push(chapters[j].vss[i - 1]);
vss.push(chapters_1[j].vss[i - 1]);
}
r.cs.push({
"ch": chapters[j].ch,
"ch": chapters_1[j].ch,
"vss": vss
});
}
if (b >= 40) {
if (section.start.book >= 40) {
r.testament = "new";
}
else {

File diff suppressed because one or more lines are too long

View File

@ -5,49 +5,6 @@ var CurrentReferences = {};
function SortNumeric(x, y) {
return x - y;
}
function Traverse(node, testament) {
try {
var treeText = "";
if (node != null) {
if (node.hasChildNodes()) {
if (node.nodeName == "s") {
// you need to test if this is the OT or NT and set the attribute accordingly.
var t = "";
if (testament == "old") {
t = "H";
}
if (testament == "new") {
t = "G";
}
treeText += "<a href='javascript:void(0)' class='hiddenlink' title='Strongs #: " + node.getAttribute("n") + "'><span class='searchvalue' style='display:none'>" + t + node.getAttribute("n") + "</span>" + Traverse(node.childNodes.item(0), testament) + "</a>";
}
else {
treeText += '<' + node.nodeName + '>';
for (var i = 0; i < node.childNodes.length; i++) {
treeText += Traverse(node.childNodes.item(i), testament);
}
treeText += '</' + node.nodeName + '>';
}
}
else {
if (node.nodeValue != null) {
if (node.nodeValue.search(/^(\,|\.|\:|\?|\;|\!)/) != -1) {
treeText += node.nodeValue;
}
else {
treeText += " " + node.nodeValue;
}
}
}
}
return treeText;
}
catch (err) {
Util.HandleError(err);
}
return null;
}
;
function Search(sv) {
try {
var qs = sv.split(";");
@ -82,10 +39,6 @@ function Search(sv) {
results.push(Strongs.GetStrongs(Ss[s], dict));
}
for (var result in results) {
// display results.
//if ($("#display-strongs-as-dialog")[0].checked) {
// Strongs.DisplayStrongsDialog(results[result]);
//} else {
Strongs.DisplayStrongs(results[result]);
}
if (store)
@ -95,8 +48,8 @@ function Search(sv) {
// its a verse reference.
if (q.trim() != "") {
var myref = new Reference(q.trim());
var r = Bible.GetPassage(myref.Section.start.book, myref.Section.start.chapter, myref.Section.end.chapter, myref.Section.start.verse, myref.Section.end.verse);
Bible.DisplayPassage(r.cs, myref, r.testament);
var r = Bible.GetPassage(myref.Section);
Bible.DisplayPassage(r, myref);
CurrentReferences[myref.toString().toLowerCase()] = true;
}
}

View File

@ -1 +1 @@
{"version":3,"file":"Globals.js","sourceRoot":"","sources":["../ts/Globals.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"Globals.js","sourceRoot":"","sources":["../ts/Globals.ts"],"names":[],"mappings":"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"}

View File

@ -17,12 +17,12 @@ var Strongs = (function () {
if (dict == "grk") {
results_1.prefix = "G";
if (sn > 5624)
return false;
return;
}
else {
results_1.prefix = "H";
if (sn > 8674)
return false;
return;
}
results_1.sn = sn;
$.ajax({
@ -136,9 +136,9 @@ var Strongs = (function () {
var ref = k.r.split(";");
crtxt += "<a href='javascript:void(0)' class='link'>" + Reference.bookName(parseInt(ref[0])) + " " + ref[1] + ":" + ref[2] + "</a>, ";
}
crtxt = crtxt.substr(0, crtxt.length - 2);
crtxt += "<br />";
}
crtxt = crtxt.substr(0, crtxt.length - 2);
crtxt += "<br />";
}
crtxt += "</span></div>";
}
@ -147,8 +147,12 @@ var Strongs = (function () {
rtxt += "<div class='rmac'><b>Robinsons Morphological Analysis Code: " + r.rmaccode + "</b> <a href='javascript:void()' class='showhide'>Show</a><br /><span class='contents'>";
for (var _e = 0, _f = r.rmac; _e < _f.length; _e++) {
var el = _f[_e];
if (el.id.toUpperCase() == r.rmaccode.toUpperCase())
rtxt += el.d + "<br />";
if (el.id.toUpperCase() == r.rmaccode.toUpperCase()) {
for (var _g = 0, _h = el.d; _g < _h.length; _g++) {
var rd = _h[_g];
rtxt += rd + "<br />";
}
}
}
rtxt += "</span></div>";
}
@ -176,7 +180,6 @@ var Strongs = (function () {
try {
var t = Strongs.BuildStrongs(r);
$("#result").prepend(t);
return false;
}
catch (err) {
Util.HandleError(err);
@ -199,7 +202,6 @@ var Strongs = (function () {
}
}
});
return false;
}
catch (err) {
Util.HandleError(err);

File diff suppressed because one or more lines are too long

View File

@ -1,28 +1,47 @@
class Bible {
public static DisplayPassage(cs, ref, testament) {
type BiblePassage = {
ch: number,
vss: BibleVerse[]
}
type BibleVerse = {
v: number,
w: [
{
t: string, s: string
}
]
}
type BiblePassageResult = {
cs: BiblePassage[],
testament: string
}
class Bible {
public static DisplayPassage(result: BiblePassageResult, ref: Reference): void {
try {
var r = "";
for (var j = 0; j < cs.length; j++) {
if (Number(ref.startchapter) < Number(ref.endchapter)) {
r += "<b>Chapter: " + cs[j].ch + "</b><br />";
for (let j = 0; j < result.cs.length; j++) {
if (Number(ref.Section.start.chapter) < Number(ref.Section.end.chapter)) {
r += "<b>Chapter: " + result.cs[j].ch + "</b><br />";
}
var vss = cs[j].vss;
let vss = result.cs[j].vss;
for (var m = 0; m < vss.length; m++) {
var v = vss[m];
for (let m = 0; m < vss.length; m++) {
let v = vss[m];
r += "<b>" + v.v + ".</b> ";
for (var w = 0; w < v.w.length; w++) {
for (let w = 0; w < v.w.length; w++) {
if (v.w[w].s != undefined) {
var strongs_pre = "";
if (testament == "old") {
let strongs_pre = "";
if (result.testament == "old") {
strongs_pre = "H";
}
if (testament == "new") {
if (result.testament == "new") {
strongs_pre = "G";
}
var sp = "";
let sp = "";
if (v.w[w].t.substr(v.w[w].t.length - 1) == " ") {
sp = " ";
}
@ -36,32 +55,31 @@
}
}
}
var t = $("<div class='passage result'><a href='javascript:void(0)' class='removeresult' style='border: 0;'><img style='border: 0px;' src='images/delete.png' width='48' height='48' /></a><a href='#' class='trigger left'>&nbsp;</a><div class='tags panel left'></div><span class='resultbody'>" + "<h2><a class ='result-heading' href='?r=" + ref.toString() + "'>" + ref.toString() + "</a></h2>" + r + "</span><br clear='all' /></div>");
let t = $("<div class='passage result'><a href='javascript:void(0)' class='removeresult' style='border: 0;'><img style='border: 0px;' src='images/delete.png' width='48' height='48' /></a><a href='#' class='trigger left'>&nbsp;</a><div class='tags panel left'></div><span class='resultbody'>" + "<h2><a class ='result-heading' href='?r=" + ref.toString() + "'>" + ref.toString() + "</a></h2>" + r + "</span><br clear='all' /></div>");
Bible.AttachEvents(t, ref);
$("#result").prepend(t);
}
catch (err) {
Util.HandleError(err);
}
}
public static GetPassage(b, sch, ech, sv, ev) {
public static GetPassage(section: Section): BiblePassageResult {
try {
var chapters = []; // the verses from the chapter.
var r = {
let chapters: BiblePassage[] = []; // the verses from the chapter.
let r: BiblePassageResult = {
cs: [],
testament: ""
};
for (var i = sch; i <= ech; i++) {
var url = "data/bibles/kjv_strongs/" + b + "-" + i + ".json";
for (let i = Number(section.start.chapter); i <= Number(section.end.chapter); i++) {
let url = "data/bibles/kjv_strongs/" + section.start.book + "-" + i + ".json";
$.ajax({
async: false,
type: "GET",
url: url,
dataType: "json",
success: function (d, t, x) {
success: function (d: BiblePassage, t, x) {
chapters.push(d);
},
error: function (request, status, error) {
@ -70,32 +88,32 @@
});
}
for (var j = 0; j < chapters.length; j++) {
var vss = [];
var start;
var end;
for (let j = 0; j < chapters.length; j++) {
let vss: BibleVerse[] = [];
let start;
let end;
// figure out the start verse.
if (j == 0) {
start = sv;
start = section.start.verse;
} else {
start = 1;
}
// figure out the end verse
if ((j + 1) == chapters.length) {
end = ev;
end = section.end.verse;
} else {
end = "*";
}
// get the verses requested.
var tvs = chapters[j].vss.length;
let tvs = chapters[j].vss.length;
if (end == "*" || end > tvs) {
end = tvs;
}
for (i = start; i <= end; i++) {
for (let i = start; i <= end; i++) {
// we're using c based indexes here, so the index is 1 less than the verse #.
vss.push(chapters[j].vss[i - 1]);
}
@ -106,7 +124,7 @@
});
}
if (b >= 40) {
if (section.start.book >= 40) {
r.testament = "new";
} else {
r.testament = "old";

View File

@ -7,50 +7,11 @@ function SortNumeric(x, y) {
return x - y;
}
function Traverse (node, testament?:string) {
try {
var treeText = "";
if (node != null) {
if (node.hasChildNodes()) {
if (node.nodeName == "s") {
// you need to test if this is the OT or NT and set the attribute accordingly.
var t = "";
if (testament == "old") {
t = "H";
}
if (testament == "new") {
t = "G";
}
treeText += "<a href='javascript:void(0)' class='hiddenlink' title='Strongs #: " + node.getAttribute("n") + "'><span class='searchvalue' style='display:none'>" + t + node.getAttribute("n") + "</span>" + Traverse(node.childNodes.item(0), testament) + "</a>";
} else {
treeText += '<' + node.nodeName + '>';
for (var i = 0; i < node.childNodes.length; i++) {
treeText += Traverse(node.childNodes.item(i), testament);
}
treeText += '</' + node.nodeName + '>';
}
} else {
if (node.nodeValue != null) {
if (node.nodeValue.search(/^(\,|\.|\:|\?|\;|\!)/) != -1) {
treeText += node.nodeValue;
} else {
treeText += " " + node.nodeValue;
}
}
}
}
return treeText;
}
catch (err) {
Util.HandleError(err);
}
return null;
};
function Search(sv) {
try {
var qs = sv.split(";");
for (var x in qs) {
var q = qs[x].trim();
let qs = sv.split(";");
for (let x in qs) {
let q = qs[x].trim();
if (q != "") {
// its a search term.
if (q.search(/[0-9]/i) == -1) {
@ -59,10 +20,10 @@ function Search(sv) {
$("#searchpanel").panel("open");
} else if (q.search(/(H|G)[0-9]/i) != -1) {
var original_q = q;
let original_q = q;
// its a strongs lookup
var dict = q.substring(0, 1);
var store = true;
let dict = q.substring(0, 1);
let store = true;
if (dict.search(/h/i) != -1) {
dict = "heb";
@ -72,29 +33,24 @@ function Search(sv) {
if (parseInt(q.substring(1)) > 5624) store = false;
}
q = q.substring(1, q.length);
var Ss = q.split(' ');
let Ss = q.split(' ');
var results = [];
for (var s in Ss) {
let results = [];
for (let s in Ss) {
results.push(Strongs.GetStrongs(Ss[s], dict));
}
for (var result in results) {
// display results.
//if ($("#display-strongs-as-dialog")[0].checked) {
// Strongs.DisplayStrongsDialog(results[result]);
//} else {
for (let result in results) {
Strongs.DisplayStrongs(results[result]);
//}
}
if (store) CurrentReferences[original_q.toString().toLowerCase()] = true;
} else {
// its a verse reference.
if (q.trim() != "") {
var myref = new Reference(q.trim());
var r = Bible.GetPassage(myref.Section.start.book, myref.Section.start.chapter, myref.Section.end.chapter, myref.Section.start.verse, myref.Section.end.verse);
let myref = new Reference(q.trim());
let r = Bible.GetPassage(myref.Section);
Bible.DisplayPassage(r.cs, myref, r.testament);
Bible.DisplayPassage(r, myref);
CurrentReferences[myref.toString().toLowerCase()] = true;
}
}

View File

@ -27,7 +27,7 @@ type StrongsResult =
rmaccode: string,
};
class Strongs {
public static GetStrongs(sn: number, dict): any {
public static GetStrongs(sn: number, dict): StrongsResult {
try {
let self = this;
let results: StrongsResult = {
@ -41,10 +41,10 @@ class Strongs {
var url = dict + Math.ceil(sn / 100) + ".json";
if (dict == "grk") {
results.prefix = "G";
if (sn > 5624) return false;
if (sn > 5624) return;
} else {
results.prefix = "H";
if (sn > 8674) return false;
if (sn > 8674) return;
}
results.sn = sn;
@ -117,7 +117,7 @@ class Strongs {
return null;
}
public static BuildStrongs(r: StrongsResult) {
public static BuildStrongs(r: StrongsResult): JQuery {
try {
let t: JQuery;
// sometimes people search for a number that doesn't exist
@ -128,17 +128,17 @@ class Strongs {
// first deal with strongs data.
let entry = $.grep<StrongsDefinition>(r.strongs, (el, i) => { if (el.i == r.prefix + r.sn) { return true } else { return false } })[0];
let title = entry.lemma;
var trans = entry.tr;
var pron = entry.p;
var desc = entry.de;
let trans = entry.tr;
let pron = entry.p;
let desc = entry.de;
var re = /([hg][0-9]{1,4})/gi;
let re = /([hg][0-9]{1,4})/gi;
desc = desc.replace(re, "<a href='javascript:void(0)' class='link'>$1</a>");
// now deal with cross references.
var cr = $.grep<StrongsCrossReference>(r.crossrefs, (el, i) => { if (el.id == r.prefix + r.sn) { return true } else { return false } });
var crtxt = "";
let cr = $.grep<StrongsCrossReference>(r.crossrefs, (el, i) => { if (el.id == r.prefix + r.sn) { return true } else { return false } });
let crtxt = "";
if (cr.length > 0) {
crtxt = "<div class='scr'><b>Cross References:</b> <a href='javascript:void()' class='showhide'>Show</a><br /><span class='contents'>";
@ -149,20 +149,22 @@ class Strongs {
let ref = k.r.split(";");
crtxt += "<a href='javascript:void(0)' class='link'>" + Reference.bookName(parseInt(ref[0])) + " " + ref[1] + ":" + ref[2] + "</a>, ";
}
crtxt = crtxt.substr(0, crtxt.length - 2);
crtxt += "<br />";
}
crtxt = crtxt.substr(0, crtxt.length - 2);
crtxt += "<br />";
}
crtxt += "</span></div>";
}
var rtxt = "";
let rtxt = "";
if (r.prefix == "G" && r.rmac.length > 0) {
rtxt += "<div class='rmac'><b>Robinsons Morphological Analysis Code: " + r.rmaccode + "</b> <a href='javascript:void()' class='showhide'>Show</a><br /><span class='contents'>";
for (let el of r.rmac) {
if (el.id.toUpperCase() == r.rmaccode.toUpperCase()) rtxt += el.d + "<br />";
if (el.id.toUpperCase() == r.rmaccode.toUpperCase()) {
for (let rd of el.d) rtxt += rd + "<br />";
}
}
rtxt += "</span></div>";
}
@ -190,22 +192,21 @@ class Strongs {
return null;
}
public static DisplayStrongs(r) {
public static DisplayStrongs(r: StrongsResult): void {
try {
var t = Strongs.BuildStrongs(r);
let t = Strongs.BuildStrongs(r);
$("#result").prepend(t);
return false;
} catch (err) {
Util.HandleError(err);
}
return null;
}
public static DisplayStrongsDialog(r) {
public static DisplayStrongsDialog(r: StrongsResult): void {
try {
var t = Strongs.BuildStrongs(r);
var d = $("<div></div>").append(t);
let t = Strongs.BuildStrongs(r);
let d = $("<div></div>").append(t);
d.dialog({
draggable: true,
width: 600,
@ -218,7 +219,6 @@ class Strongs {
}
}
});
return false;
} catch (err) {
Util.HandleError(err);
}
@ -226,8 +226,8 @@ class Strongs {
}
public static ShowHide(e) {
var o = $(e.target);
var c = o.parent().find(".contents");
let o = $(e.target);
let c = o.parent().find(".contents");
if (c.css("display") != "none") {
c.css("display", "none");