Update style to (almost) conform to ndn-cxx style using clang-format
diff --git a/gui/html/chronoshare-helpers.js b/gui/html/chronoshare-helpers.js
index b13c767..f1e9aa1 100644
--- a/gui/html/chronoshare-helpers.js
+++ b/gui/html/chronoshare-helpers.js
@@ -1,39 +1,47 @@
-function number_format( number, decimals, dec_point, thousands_sep ) {
- // http://kevin.vanzonneveld.net
- // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
- // + bugfix by: Michael White (http://crestidg.com)
- // + bugfix by: Benjamin Lupton
- // + bugfix by: Allan Jensen (http://www.winternet.no)
- // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
- // * example 1: number_format(1234.5678, 2, '.', '');
- // * returns 1: 1234.57
+function number_format(number, decimals, dec_point, thousands_sep)
+{
+ // http://kevin.vanzonneveld.net
+ // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
+ // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
+ // + bugfix by: Michael White (http://crestidg.com)
+ // + bugfix by: Benjamin Lupton
+ // + bugfix by: Allan Jensen (http://www.winternet.no)
+ // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
+ // * example 1: number_format(1234.5678, 2, '.', '');
+ // * returns 1: 1234.57
- var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
- var d = dec_point == undefined ? "," : dec_point;
- var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
- var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
+ var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
+ var d = dec_point == undefined ? "," : dec_point;
+ var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
+ var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "",
+ j = (j = i.length) > 3 ? j % 3 : 0;
- return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
+ return s + (j ? i.substr(0, j) + t : "") +
+ i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) +
+ (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}
-function SegNumToFileSize (segNum) {
- filesize = segNum * 1024;
+function SegNumToFileSize(segNum)
+{
+ filesize = segNum * 1024;
- if (filesize >= 1073741824) {
- filesize = number_format(filesize / 1073741824, 2, '.', '') + ' Gb';
- } else {
- if (filesize >= 1048576) {
- filesize = number_format(filesize / 1048576, 2, '.', '') + ' Mb';
- } else {
- if (filesize > 1024) {
- filesize = number_format(filesize / 1024, 0) + ' Kb';
- } else {
- filesize = '< 1 Kb';
- };
- };
+ if (filesize >= 1073741824) {
+ filesize = number_format(filesize / 1073741824, 2, '.', '') + ' Gb';
+ }
+ else {
+ if (filesize >= 1048576) {
+ filesize = number_format(filesize / 1048576, 2, '.', '') + ' Mb';
+ }
+ else {
+ if (filesize > 1024) {
+ filesize = number_format(filesize / 1024, 0) + ' Kb';
+ }
+ else {
+ filesize = '< 1 Kb';
+ };
};
- return filesize;
+ };
+ return filesize;
};
/**
@@ -42,107 +50,115 @@
*
* Note that if string length is odd, null will be returned
*/
-StringHashToUint8Array = function (str) {
- if (str.length % 2 != 0) {
- return null;
- }
+StringHashToUint8Array = function(str) {
+ if (str.length % 2 != 0) {
+ return null;
+ }
- var buf = new Uint8Array (str.length / 2);
+ var buf = new Uint8Array(str.length / 2);
- for (var i = 0; i < str.length; i+=2) {
- value = parseInt (str.substring (i, i+2), 16);
- buf[i/2] = value;
- }
+ for (var i = 0; i < str.length; i += 2) {
+ value = parseInt(str.substring(i, i + 2), 16);
+ buf[i / 2] = value;
+ }
- return buf;
+ return buf;
};
-imgFullPath = function (imgName) {
- return "images/" + imgName + ".png";
+imgFullPath =
+ function(imgName) {
+ return "images/" + imgName + ".png";
}
-fileExtension = function (fileName) {
- defaultExtension = "file";
- knownExtensions = ["ai", "aiff", "bib", "bz2", "c", "chm", "conf", "cpp", "css", "csv", "deb", "divx", "doc", "file", "gif", "gz", "hlp", "htm", "html", "iso", "jpeg", "jpg", "js", "mov", "mp3", "mpg", "odc", "odf", "odg", "odi", "odp", "ods", "odt", "ogg", "pdf", "pgp", "php", "pl", "png", "ppt", "pptx", "ps", "py", "ram", "rar", "rb", "rm", "rpm", "rtf", "sql", "swf", "sxc", "sxd", "sxi", "sxw", "tar", "tex", "tgz", "txt", "vcf", "wav", "wma", "wmv", "xls", "xml", "xpi", "xvid", "zip"];
+fileExtension = function(fileName) {
+ defaultExtension = "file";
+ knownExtensions = [
+ "ai", "aiff", "bib", "bz2", "c", "chm", "conf", "cpp", "css", "csv",
+ "deb", "divx", "doc", "file", "gif", "gz", "hlp", "htm", "html", "iso",
+ "jpeg", "jpg", "js", "mov", "mp3", "mpg", "odc", "odf", "odg", "odi",
+ "odp", "ods", "odt", "ogg", "pdf", "pgp", "php", "pl", "png", "ppt",
+ "pptx", "ps", "py", "ram", "rar", "rb", "rm", "rpm", "rtf", "sql",
+ "swf", "sxc", "sxd", "sxi", "sxw", "tar", "tex", "tgz", "txt", "vcf",
+ "wav", "wma", "wmv", "xls", "xml", "xpi", "xvid", "zip"
+ ];
- extStart = fileName.lastIndexOf('.');
- if (extStart < 0) {
- return imgFullPath (defaultExtension);
- }
+ extStart = fileName.lastIndexOf('.');
+ if (extStart < 0) {
+ return imgFullPath(defaultExtension);
+ }
- extension = fileName.substr (extStart+1);
- // return imgFullPath (extension);
- if ($.inArray(extension, knownExtensions) >= 0) {
- return extension;
- }
- else {
- return defaultExtension;
- }
+ extension = fileName.substr(extStart + 1);
+ // return imgFullPath (extension);
+ if ($.inArray(extension, knownExtensions) >= 0) {
+ return extension;
+ }
+ else {
+ return defaultExtension;
+ }
};
-openHistoryForItem = function (fileName) {
- url = new HistoryClosure (null).base_no_item_url ("fileHistory")
- url += "&item=" + encodeURIComponent (encodeURIComponent (fileName));
- document.location = url;
+openHistoryForItem = function(fileName) {
+ url = new HistoryClosure(null).base_no_item_url("fileHistory")
+ url += "&item=" + encodeURIComponent(encodeURIComponent(fileName));
+ document.location = url;
};
-displayContent = function (newcontent, more, baseUrl) {
+displayContent = function(newcontent, more, baseUrl) {
- $("#content").fadeOut ("fast", function () {
- $(this).replaceWith (newcontent);
- $("#content").fadeIn ("fast");
- });
+ $("#content").fadeOut("fast", function() {
+ $(this).replaceWith(newcontent);
+ $("#content").fadeIn("fast");
+ });
- $("#content-nav").fadeOut ("fast", function () {
- $("#content-nav a").hide ();
+ $("#content-nav").fadeOut("fast", function() {
+ $("#content-nav a").hide();
- if (PARAMS.offset !== undefined || more !== undefined) {
- $("#content-nav").fadeIn ("fast");
+ if (PARAMS.offset !== undefined || more !== undefined) {
+ $("#content-nav").fadeIn("fast");
- if (more !== undefined) {
- $("#get-more").show ();
+ if (more !== undefined) {
+ $("#get-more").show();
- $("#get-more").unbind ('click').click (function () {
- url = baseUrl;
- url += "&offset="+more;
+ $("#get-more").unbind('click').click(function() {
+ url = baseUrl;
+ url += "&offset=" + more;
- document.location = url;
- });
- }
- if (PARAMS.offset > 0) {
- $("#get-less").show ();
+ document.location = url;
+ });
+ }
+ if (PARAMS.offset > 0) {
+ $("#get-less").show();
- $("#get-less").unbind ('click').click (function () {
- url = baseUrl;
- if (PARAMS.offset > 5) {
- url += "&offset="+(PARAMS.offset - 5);
- }
+ $("#get-less").unbind('click').click(function() {
+ url = baseUrl;
+ if (PARAMS.offset > 5) {
+ url += "&offset=" + (PARAMS.offset - 5);
+ }
- document.location = url;
- });
- }
- }
- });
+ document.location = url;
+ });
+ }
+ }
+ });
};
-function custom_alert (output_msg, title_msg)
+function custom_alert(output_msg, title_msg)
{
- if (!title_msg)
- title_msg = 'Alert';
+ if (!title_msg)
+ title_msg = 'Alert';
- if (!output_msg)
- output_msg = 'No Message to Display';
+ if (!output_msg)
+ output_msg = 'No Message to Display';
- $("<div></div>").html(output_msg).dialog({
- title: title_msg,
- resizable: false,
- modal: true,
- buttons: {
- "Ok": function()
- {
- $( this ).dialog( "close" );
- }
- }
- });
+ $("<div></div>").html(output_msg).dialog({
+ title: title_msg,
+ resizable: false,
+ modal: true,
+ buttons: {
+ "Ok": function() {
+ $(this).dialog("close");
+ }
+ }
+ });
}
\ No newline at end of file
diff --git a/gui/html/chronoshare-navigation.js b/gui/html/chronoshare-navigation.js
index 8856ec0..8fdd12b 100644
--- a/gui/html/chronoshare-navigation.js
+++ b/gui/html/chronoshare-navigation.js
@@ -1,83 +1,81 @@
var CHRONOSHARE;
var PAGE; // no default page anymore (no reason to have)
-var PARAMS = [ ];
+var PARAMS = [];
var URIPARAMS = "";
-function nav_anchor (aurl) {
- aurl = aurl.split('#');
- if (aurl[1])
- {
- aurl_split = aurl[1].split ('&');
- page = aurl_split[0];
+function nav_anchor(aurl)
+{
+ aurl = aurl.split('#');
+ if (aurl[1]) {
+ aurl_split = aurl[1].split('&');
+ page = aurl_split[0];
- vars = [ ];
- for (var i = 1; i < aurl_split.length; i++)
- {
- hash = aurl_split[i].split('=');
- vars.push(hash[0]);
- // there is strange double-encoding problem...
- vars[hash[0]] = decodeURIComponent (decodeURIComponent (hash[1]));
- }
-
- // if (page != PAGE)
- // {
- // PAGE = page;
- // PARAMS = vars;
- // URIPARAMS = aurl[1];
-
- // if (CHRONOSHARE) {
- // CHRONOSHARE.run ();
- // }
- // }
- // else if (aurl[1] != URIPARAMS)
- // {
- // PARAMS = vars;
- // URIPARAMS = aurl[1];
-
- // if (CHRONOSHARE) {
- // CHRONOSHARE.run ();
- // }
- // }
-
- // this way we can reload by just clicking on the same link
- PAGE = page;
- PARAMS = vars;
- URIPARAMS = aurl[1];
-
- if (CHRONOSHARE) {
- CHRONOSHARE.run ();
- }
+ vars = [];
+ for (var i = 1; i < aurl_split.length; i++) {
+ hash = aurl_split[i].split('=');
+ vars.push(hash[0]);
+ // there is strange double-encoding problem...
+ vars[hash[0]] = decodeURIComponent(decodeURIComponent(hash[1]));
}
+
+ // if (page != PAGE)
+ // {
+ // PAGE = page;
+ // PARAMS = vars;
+ // URIPARAMS = aurl[1];
+
+ // if (CHRONOSHARE) {
+ // CHRONOSHARE.run ();
+ // }
+ // }
+ // else if (aurl[1] != URIPARAMS)
+ // {
+ // PARAMS = vars;
+ // URIPARAMS = aurl[1];
+
+ // if (CHRONOSHARE) {
+ // CHRONOSHARE.run ();
+ // }
+ // }
+
+ // this way we can reload by just clicking on the same link
+ PAGE = page;
+ PARAMS = vars;
+ URIPARAMS = aurl[1];
+
+ if (CHRONOSHARE) {
+ CHRONOSHARE.run();
+ }
+ }
}
-$(document).ready (function () {
- nav_anchor (window.location.href);
+$(document).ready(function() {
+ nav_anchor(window.location.href);
- if (!PARAMS.user || !PARAMS.folder)
- {
- $("#error").html ("user and folder must be be specified in the URL");
- $("#error").removeClass ("hidden");
- return;
- }
- else {
- // update in-page URLs
- $(".needs-get-url").each (function (index,element) {
- this.href += "&user="+encodeURIComponent (encodeURIComponent (PARAMS.user))
- + "&folder="+encodeURIComponent (encodeURIComponent (PARAMS.folder));
- });
- $(".needs-get-url").removeClass ("needs-get-url");
- }
-
- CHRONOSHARE = new ChronoShare (PARAMS.user, PARAMS.folder);
- CHRONOSHARE.run ();
-
- $(window).on('hashchange', function() {
- nav_anchor (window.location.href);
+ if (!PARAMS.user || !PARAMS.folder) {
+ $("#error").html("user and folder must be be specified in the URL");
+ $("#error").removeClass("hidden");
+ return;
+ }
+ else {
+ // update in-page URLs
+ $(".needs-get-url").each(function(index, element) {
+ this.href +=
+ "&user=" + encodeURIComponent(encodeURIComponent(PARAMS.user)) +
+ "&folder=" + encodeURIComponent(encodeURIComponent(PARAMS.folder));
});
+ $(".needs-get-url").removeClass("needs-get-url");
+ }
- $("#reload-button").click (function() {
- nav_anchor (window.location.href);
- });
+ CHRONOSHARE = new ChronoShare(PARAMS.user, PARAMS.folder);
+ CHRONOSHARE.run();
+
+ $(window).on('hashchange', function() {
+ nav_anchor(window.location.href);
+ });
+
+ $("#reload-button").click(function() {
+ nav_anchor(window.location.href);
+ });
});
-
diff --git a/gui/html/chronoshare.js b/gui/html/chronoshare.js
index 1c91c84..38743ad 100644
--- a/gui/html/chronoshare.js
+++ b/gui/html/chronoshare.js
@@ -1,476 +1,570 @@
-$.Class ("ChronoShare", { },
- {
- init: function (username, foldername) {
- $("#folder-name").text (foldername);
- $("#user-name").text (username);
+$.Class("ChronoShare", {}, {
+ init: function(username, foldername) {
+ $("#folder-name").text(foldername);
+ $("#user-name").text(username);
- this.username = new Name (username);
- this.files = new Name ("/localhost").add (this.username).add ("chronoshare").add (foldername).add ("info").add ("files").add ("folder");
+ this.username = new Name(username);
+ this.files = new Name("/localhost")
+ .add(this.username)
+ .add("chronoshare")
+ .add(foldername)
+ .add("info")
+ .add("files")
+ .add("folder");
- this.actions = new Name ("/localhost").add (this.username).add ("chronoshare").add (foldername).add ("info").add ("actions");
+ this.actions = new Name("/localhost")
+ .add(this.username)
+ .add("chronoshare")
+ .add(foldername)
+ .add("info")
+ .add("actions");
- this.restore = new Name ("/localhost").add (this.username).add ("chronoshare").add (foldername).add ("cmd").add ("restore").add ("file");
+ this.restore = new Name("/localhost")
+ .add(this.username)
+ .add("chronoshare")
+ .add(foldername)
+ .add("cmd")
+ .add("restore")
+ .add("file");
- this.ndn = new NDN ({host:"127.0.0.1"});
- this.ndn.verify = false; //disable content verification, works WAAAAY faster
- },
+ this.ndn = new NDN({host: "127.0.0.1"});
+ this.ndn.verify = false; // disable content verification, works WAAAAY faster
+ },
- run: function () {
- console.log ("RUN page: " + PAGE);
- $("#loader").fadeIn (500);
- $("#error").addClass ("hidden");
+ run: function() {
+ console.log("RUN page: " + PAGE);
+ $("#loader").fadeIn(500);
+ $("#error").addClass("hidden");
- cmd = {};
- if (PAGE == "fileList") {
- cmd = this.info_files (PARAMS.item);
- }
- else if (PAGE == "folderHistory") {
- cmd = this.info_actions ("folder", PARAMS.item);
- }
- else if (PAGE == "fileHistory") {
- cmd = this.info_actions ("file", PARAMS.item);
- }
+ cmd = {};
+ if (PAGE == "fileList") {
+ cmd = this.info_files(PARAMS.item);
+ }
+ else if (PAGE == "folderHistory") {
+ cmd = this.info_actions("folder", PARAMS.item);
+ }
+ else if (PAGE == "fileHistory") {
+ cmd = this.info_actions("file", PARAMS.item);
+ }
- if (cmd.request && cmd.callback) {
- console.log (cmd.request.to_uri ());
- this.ndn.expressInterest (cmd.request, cmd.callback);
- }
- else {
- $("#loader").fadeOut (500); // ("hidden");
- $("#content").empty ();
- if (cmd.error) {
- $("#error").html (cmd.error);
- }
- else {
- $("#error").html ("Unknown error with " + PAGE);
- }
- $("#error").removeClass ("hidden");
- }
- },
+ if (cmd.request && cmd.callback) {
+ console.log(cmd.request.to_uri());
+ this.ndn.expressInterest(cmd.request, cmd.callback);
+ }
+ else {
+ $("#loader").fadeOut(500); // ("hidden");
+ $("#content").empty();
+ if (cmd.error) {
+ $("#error").html(cmd.error);
+ }
+ else {
+ $("#error").html("Unknown error with " + PAGE);
+ }
+ $("#error").removeClass("hidden");
+ }
+ },
- info_files: function(folder) {
- request = new Name ().add (this.files)./*add (folder_in_question).*/addSegment (PARAMS.offset?PARAMS.offset:0);
- return { request:request, callback: new FilesClosure (this) };
- },
+ info_files: function(folder) {
+ request = new Name()
+ .add(this.files)
+ ./*add (folder_in_question).*/ addSegment(
+ PARAMS.offset ? PARAMS.offset : 0);
+ return {request: request, callback: new FilesClosure(this)};
+ },
- info_actions: function (type/*"file" or "folder"*/, fileOrFolder /*file or folder name*/) {
- if (type=="file" && !fileOrFolder) {
- return { error: "info_actions: fileOrFolder parameter is missing" };
- }
+ info_actions: function(type /*"file" or "folder"*/,
+ fileOrFolder /*file or folder name*/) {
+ if (type == "file" && !fileOrFolder) {
+ return {error: "info_actions: fileOrFolder parameter is missing"};
+ }
- request = new Name ().add (this.actions).add (type);
- if (fileOrFolder) {
- request.add (fileOrFolder);
- }
- request.addSegment (PARAMS.offset?PARAMS.offset:0);
- return { request: request, callback: new HistoryClosure (this) };
- },
+ request = new Name().add(this.actions).add(type);
+ if (fileOrFolder) {
+ request.add(fileOrFolder);
+ }
+ request.addSegment(PARAMS.offset ? PARAMS.offset : 0);
+ return {request: request, callback: new HistoryClosure(this)};
+ },
- cmd_restore_file: function (filename, version, hash, callback/*function (bool <- data received, status <- returned status)*/) {
- request = new Name ().add (this.restore)
- .add (filename)
- .addSegment (version)
- .add (hash);
- console.log (request.to_uri ());
- this.ndn.expressInterest (request, new CmdRestoreFileClosure (this, callback));
- },
-
- get_file: function (modifiedBy, hash, segments, callback/*function (bool <- data received, data <- returned data)*/) {
- baseName = new Name (modifiedBy)
- .add ("chronoshare").add ("file")
- .add (hash);
-
- new FileGetter (this.ndn, baseName, segments, callback)
- .start ();
- }
- });
-
-$.Class ("CmdRestoreFileClosure", {}, {
- init: function (chronoshare, callback) {
- this.chronoshare = chronoshare;
- this.callback = callback;
+ cmd_restore_file:
+ function(filename, version, hash,
+ callback /*function (bool <- data received, status <- returned status)*/) {
+ request =
+ new Name().add(this.restore).add(filename).addSegment(version).add(hash);
+ console.log(request.to_uri());
+ this.ndn.expressInterest(request,
+ new CmdRestoreFileClosure(this, callback));
},
- upcall: function(kind, upcallInfo) {
- if (kind == Closure.UPCALL_CONTENT || kind == Closure.UPCALL_CONTENT_UNVERIFIED) { //disable content verification
- convertedData = DataUtils.toString (upcallInfo.contentObject.content);
- this.callback (true, convertedData);
- }
- else if (kind == Closure.UPCALL_INTEREST_TIMED_OUT) {
- this.callback (false, "Interest timed out");
- }
- else {
- this.callback (false, "Unknown error happened");
- }
+
+ get_file:
+ function(modifiedBy, hash, segments,
+ callback /*function (bool <- data received, data <- returned data)*/) {
+ baseName = new Name(modifiedBy).add("chronoshare").add("file").add(hash);
+
+ new FileGetter(this.ndn, baseName, segments, callback).start();
}
});
-$.Class ("FileGetter", {}, {
- init: function (ndn, baseName, segments, callback) {
- this.ndn = ndn;
- this.callback = callback;
- this.baseName = baseName;
- this.segments = segments;
- this.lastSegmentRequested = -1;
-
- this.data = "";
- },
-
- start: function () {
- this.lastSegmentRequested ++;
-
- request = new Name ()
- .add (this.baseName)
- .addSegment (this.lastSegmentRequested);
-
- console.log (request.to_uri ());
- this.ndn.expressInterest (request, this);
- },
-
- upcall: function(kind, upcallInfo) {
- if (kind == Closure.UPCALL_CONTENT || kind == Closure.UPCALL_CONTENT_UNVERIFIED) { //disable content verification
- convertedData = DataUtils.toString (upcallInfo.contentObject.content);
-
- this.data += convertedData;
-
- if (this.lastSegmentRequested+1 == this.segments) {
- this.callback (true, this.data);
- }
- else {
- this.start ();
- }
- }
- else {
- this.callback (false, "Interest timed out");
- }
+$.Class("CmdRestoreFileClosure", {}, {
+ init: function(chronoshare, callback) {
+ this.chronoshare = chronoshare;
+ this.callback = callback;
+ },
+ upcall: function(kind, upcallInfo) {
+ if (kind == Closure.UPCALL_CONTENT ||
+ kind == Closure.UPCALL_CONTENT_UNVERIFIED) { // disable content verification
+ convertedData = DataUtils.toString(upcallInfo.contentObject.content);
+ this.callback(true, convertedData);
}
+ else if (kind == Closure.UPCALL_INTEREST_TIMED_OUT) {
+ this.callback(false, "Interest timed out");
+ }
+ else {
+ this.callback(false, "Unknown error happened");
+ }
+ }
});
-$.Class ("RestPipelineClosure", {}, {
- init: function (collectionName, moreName) {
- this.collectionName = collectionName;
- this.moreName = moreName;
- $("#json").empty ();
+$.Class("FileGetter", {}, {
+ init: function(ndn, baseName, segments, callback) {
+ this.ndn = ndn;
+ this.callback = callback;
+ this.baseName = baseName;
+ this.segments = segments;
+ this.lastSegmentRequested = -1;
- this.collection = [];
- this.counter = 0;
- },
+ this.data = "";
+ },
- upcall: function(kind, upcallInfo) {
- if (kind == Closure.UPCALL_CONTENT || kind == Closure.UPCALL_CONTENT_UNVERIFIED) { //disable content verification
+ start: function() {
+ this.lastSegmentRequested++;
- convertedData = DataUtils.toString (upcallInfo.contentObject.content);
- if (PARAMS.debug) {
- $("#json").append ($(document.createTextNode(convertedData)));
- $("#json").removeClass ("hidden");
- }
- data = JSON.parse (convertedData);
+ request =
+ new Name().add(this.baseName).addSegment(this.lastSegmentRequested);
- this.collection = this.collection.concat (data[this.collectionName]);
- if (data[this.moreName] !== undefined) {
- nextSegment = upcallInfo.interest.name.cut (1).addSegment (data[this.moreName]);
- this.counter ++;
+ console.log(request.to_uri());
+ this.ndn.expressInterest(request, this);
+ },
- if (this.counter < 5) {
- console.log ("MORE: " +nextSegment.to_uri ());
- CHRONOSHARE.ndn.expressInterest (nextSegment, this);
- }
- else {
- $("#loader").fadeOut (500); // ("hidden");
- this.onData (this.collection, data[this.moreName]);
- }
- }
- else {
- $("#loader").fadeOut (500); // ("hidden");
- this.onData (this.collection, undefined);
- }
- }
- else if (kind == Closure.UPCALL_INTEREST_TIMED_OUT) {
- $("#loader").fadeOut (500); // ("hidden");
- this.onTimeout (upcallInfo.interest);
+ upcall: function(kind, upcallInfo) {
+ if (kind == Closure.UPCALL_CONTENT ||
+ kind == Closure.UPCALL_CONTENT_UNVERIFIED) { // disable content verification
+ convertedData = DataUtils.toString(upcallInfo.contentObject.content);
+
+ this.data += convertedData;
+
+ if (this.lastSegmentRequested + 1 == this.segments) {
+ this.callback(true, this.data);
+ }
+ else {
+ this.start();
+ }
+ }
+ else {
+ this.callback(false, "Interest timed out");
+ }
+ }
+});
+
+$.Class("RestPipelineClosure", {}, {
+ init: function(collectionName, moreName) {
+ this.collectionName = collectionName;
+ this.moreName = moreName;
+ $("#json").empty();
+
+ this.collection = [];
+ this.counter = 0;
+ },
+
+ upcall: function(kind, upcallInfo) {
+ if (kind == Closure.UPCALL_CONTENT ||
+ kind == Closure.UPCALL_CONTENT_UNVERIFIED) { // disable content verification
+
+ convertedData = DataUtils.toString(upcallInfo.contentObject.content);
+ if (PARAMS.debug) {
+ $("#json").append($(document.createTextNode(convertedData)));
+ $("#json").removeClass("hidden");
+ }
+ data = JSON.parse(convertedData);
+
+ this.collection = this.collection.concat(data[this.collectionName]);
+ if (data[this.moreName] !== undefined) {
+ nextSegment =
+ upcallInfo.interest.name.cut(1).addSegment(data[this.moreName]);
+ this.counter++;
+
+ if (this.counter < 5) {
+ console.log("MORE: " + nextSegment.to_uri());
+ CHRONOSHARE.ndn.expressInterest(nextSegment, this);
}
else {
- $("#loader").fadeOut (500); // ("hidden");
- this.onUnknownError (upcallInfo.interest);
+ $("#loader").fadeOut(500); // ("hidden");
+ this.onData(this.collection, data[this.moreName]);
}
-
- return Closure.RESULT_OK; // make sure we never re-express the interest
- },
-
- onData: function(data, more) {
- },
-
- onTimeout: function () {
- $("#error").html ("Interest timed out");
- $("#error").removeClass ("hidden");
- },
-
- onUnknownError: function () {
- $("#error").html ("Unknown error happened");
- $("#error").removeClass ("hidden");
+ }
+ else {
+ $("#loader").fadeOut(500); // ("hidden");
+ this.onData(this.collection, undefined);
+ }
}
+ else if (kind == Closure.UPCALL_INTEREST_TIMED_OUT) {
+ $("#loader").fadeOut(500); // ("hidden");
+ this.onTimeout(upcallInfo.interest);
+ }
+ else {
+ $("#loader").fadeOut(500); // ("hidden");
+ this.onUnknownError(upcallInfo.interest);
+ }
+
+ return Closure.RESULT_OK; // make sure we never re-express the interest
+ },
+
+ onData: function(data, more) {},
+
+ onTimeout: function() {
+ $("#error").html("Interest timed out");
+ $("#error").removeClass("hidden");
+ },
+
+ onUnknownError: function() {
+ $("#error").html("Unknown error happened");
+ $("#error").removeClass("hidden");
+ }
});
// $.Class ("FilesClosure", {}, {
-RestPipelineClosure ("FilesClosure", {}, {
- init: function (chronoshare) {
- this._super("files", "more");
- this.chronoshare = chronoshare;
- },
+RestPipelineClosure("FilesClosure", {}, {
+ init: function(chronoshare) {
+ this._super("files", "more");
+ this.chronoshare = chronoshare;
+ },
- onData: function(data, more) {
- tbody = $("<tbody />", { "id": "file-list-files" });
+ onData: function(data, more) {
+ tbody = $("<tbody />", {"id": "file-list-files"});
- /// @todo Eventually set title for other pages
- $("title").text ("ChronoShare - List of files" + (PARAMS.item?" - "+PARAMS.item:""));
+ /// @todo Eventually set title for other pages
+ $("title").text("ChronoShare - List of files" +
+ (PARAMS.item ? " - " + PARAMS.item : ""));
- // error handling?
- newcontent = $("<div />", { "id": "content" }).append (
- $("<h2 />").append ($(document.createTextNode("List of files ")), $("<green />").text (PARAMS.item)),
- $("<table />", { "class": "item-list" })
- .append ($("<thead />")
- .append ($("<tr />")
- .append ($("<th />", { "class": "filename border-left", "scope": "col" }).text ("Filename"))
- .append ($("<th />", { "class": "version", "scope": "col" }).text ("Version"))
- .append ($("<th />", { "class": "size", "scope": "col" }).text ("Size"))
- .append ($("<th />", { "class": "modified", "scope": "col" }).text ("Modified"))
- .append ($("<th />", { "class": "modified-by border-right", "scope": "col" }).text ("Modified By"))))
- .append (tbody)
- .append ($("<tfoot />")
- .append ($("<tr />")
- .append ($("<td />", { "colspan": "5", "class": "border-right border-left" })))));
- newcontent.hide ();
+ // error handling?
+ newcontent =
+ $("<div />", {"id": "content"})
+ .append($("<h2 />").append($(document.createTextNode("List of files ")),
+ $("<green />").text(PARAMS.item)),
+ $("<table />", {"class": "item-list"})
+ .append(
+ $("<thead />")
+ .append($("<tr />")
+ .append($("<th />", {
+ "class": "filename border-left",
+ "scope": "col"
+ }).text("Filename"))
+ .append($("<th />",
+ {"class": "version", "scope": "col"})
+ .text("Version"))
+ .append($("<th />",
+ {"class": "size", "scope": "col"})
+ .text("Size"))
+ .append($("<th />", {
+ "class": "modified",
+ "scope": "col"
+ }).text("Modified"))
+ .append($("<th />", {
+ "class": "modified-by border-right",
+ "scope": "col"
+ }).text("Modified By"))))
+ .append(tbody)
+ .append($("<tfoot />").append($("<tr />").append($("<td />", {
+ "colspan": "5",
+ "class": "border-right border-left"
+ })))));
+ newcontent.hide();
- for (var i = 0; i < data.length; i++) {
- file = data[i];
+ for (var i = 0; i < data.length; i++) {
+ file = data[i];
- row = $("<tr />", { "class": "with-context-menu" } );
- if (i%2) { row.addClass ("odd"); }
+ row = $("<tr />", {"class": "with-context-menu"});
+ if (i % 2) {
+ row.addClass("odd");
+ }
- row.bind('mouseenter mouseleave', function() {
- $(this).toggleClass('highlighted');
- });
+ row.bind('mouseenter mouseleave', function() {
+ $(this).toggleClass('highlighted');
+ });
- row.attr ("filename", file.filename); //encodeURIComponent(encodeURIComponent(file.filename)));
- row.bind('click', function (e) { openHistoryForItem ($(this).attr ("filename")) });
+ row.attr("filename",
+ file.filename); // encodeURIComponent(encodeURIComponent(file.filename)));
+ row.bind('click', function(e) {
+ openHistoryForItem($(this).attr("filename"))
+ });
- row.append ($("<td />", { "class": "filename border-left" })
- .text (file.filename)
- .prepend ($("<img />", { "src": imgFullPath(fileExtension(file.filename)) })));
- row.append ($("<td />", { "class": "version" }).text (file.version));
- row.append ($("<td />", { "class": "size" }).text (SegNumToFileSize (file.segNum)));
- row.append ($("<td />", { "class": "modified" }).text (new Date (file.timestamp+"+00:00"))); // convert from UTC
- row.append ($("<td />", { "class": "modified-by border-right"})
- .append ($("<userName />").text (file.owner.userName))
- .append ($("<seqNo> /").text (file.owner.seqNo)));
+ row.append(
+ $("<td />", {"class": "filename border-left"})
+ .text(file.filename)
+ .prepend(
+ $("<img />", {"src": imgFullPath(fileExtension(file.filename))})));
+ row.append($("<td />", {"class": "version"}).text(file.version));
+ row.append(
+ $("<td />", {"class": "size"}).text(SegNumToFileSize(file.segNum)));
+ row.append($("<td />", {
+ "class": "modified"
+ }).text(new Date(file.timestamp + "+00:00"))); // convert from UTC
+ row.append($("<td />", {"class": "modified-by border-right"})
+ .append($("<userName />").text(file.owner.userName))
+ .append($("<seqNo> /").text(file.owner.seqNo)));
- tbody = tbody.append (row);
- }
-
- displayContent (newcontent, more, this.base_url ());
-
- $.contextMenu( 'destroy', ".with-context-menu" ); // cleanup
- $.contextMenu({
- selector: ".with-context-menu",
- items: {
- "info": {name: "x", type: "html", html: "<b>File operations</b>"},
- "sep1": "---------",
- history: {name: "View file history",
- icon: "quit", // need a better icon
- callback: function(key, opt) {
- openHistoryForItem (opt.$trigger.attr ("filename"));
- }},
- }
- });
- },
-
- base_url: function () {
- url = "#fileList"+
- "&user="+encodeURIComponent (encodeURIComponent (PARAMS.user)) +
- "&folder="+encodeURIComponent (encodeURIComponent (PARAMS.folder));
- if (PARAMS.item !== undefined) {
- url += "&item="+encodeURIComponent (encodeURIComponent (PARAMS.item));
- }
- return url;
+ tbody = tbody.append(row);
}
+
+ displayContent(newcontent, more, this.base_url());
+
+ $.contextMenu('destroy', ".with-context-menu"); // cleanup
+ $.contextMenu({
+ selector: ".with-context-menu",
+ items: {
+ "info": {name: "x", type: "html", html: "<b>File operations</b>"},
+ "sep1": "---------",
+ history: {
+ name: "View file history",
+ icon: "quit", // need a better icon
+ callback: function(key, opt) {
+ openHistoryForItem(opt.$trigger.attr("filename"));
+ }
+ },
+ }
+ });
+ },
+
+ base_url: function() {
+ url = "#fileList" +
+ "&user=" + encodeURIComponent(encodeURIComponent(PARAMS.user)) +
+ "&folder=" + encodeURIComponent(encodeURIComponent(PARAMS.folder));
+ if (PARAMS.item !== undefined) {
+ url += "&item=" + encodeURIComponent(encodeURIComponent(PARAMS.item));
+ }
+ return url;
+ }
});
+RestPipelineClosure("HistoryClosure", {}, {
+ init: function(chronoshare) {
+ this._super("actions", "more");
+ this.chronoshare = chronoshare;
+ },
-RestPipelineClosure ("HistoryClosure", {}, {
- init: function (chronoshare) {
- this._super("actions", "more");
- this.chronoshare = chronoshare;
- },
-
- previewFile: function (file) {
- if (fileExtension(file.attr ("filename")) == "txt") {
- CHRONOSHARE.get_file (file.attr ("file_modified_by"),
- DataUtils.toNumbers (file.attr ("file_hash")),
- file.attr ("file_seg_num"),
- function (status, data) {
- $("<div />", { "title": "Preview of " + file.attr ("filename") + " version " + file.attr ("file_version") })
- .append ($("<pre />").text (data))
- .dialog ({
- resizable: true,
- width: $(window).width() * 0.8,
- maxHeight: $(window).height() * 0.8,
- show: "blind",
- hide: "fold",
- modal: true,
- });
- });
- }
- else {
- custom_alert ("Preview is not support for this type of file");
- }
- },
-
- onData: function(data, more) {
- tbody = $("<tbody />", { "id": "history-list-actions" });
-
- /// @todo Eventually set title for other pages
- $("title").text ("ChronoShare - Recent actions" + (PARAMS.item?" - "+PARAMS.item:""));
-
- newcontent = $("<div />", { "id": "content" }).append (
- $("<h2 />").append ($(document.createTextNode("Recent actions ")), $("<green />").text (PARAMS.item)),
- $("<table />", { "class": "item-list" })
- .append ($("<thead />")
- .append ($("<tr />")
- .append ($("<th />", { "class": "filename border-left", "scope": "col" }).text ("Filename"))
- .append ($("<th />", { "class": "version", "scope": "col" }).text ("Version"))
- .append ($("<th />", { "class": "size", "scope": "col" }).text ("Size"))
- .append ($("<th />", { "class": "modified", "scope": "col" }).text ("Modified"))
- .append ($("<th />", { "class": "modified-by border-right", "scope": "col" }).text ("Modified By"))))
- .append (tbody)
- .append ($("<tfoot />")
- .append ($("<tr />")
- .append ($("<td />", { "colspan": "5", "class": "border-right border-left" })))));
-
- for (var i = 0; i < data.length; i++) {
- action = data[i];
-
- row = $("<tr />");
- if (i%2) { row.addClass ("odd"); }
- if (action.action=="DELETE") {
- row.addClass ("delete");
- }
- else {
- row.addClass ("with-context-menu");
- row.attr ("file_version", action.version);
- row.attr ("file_hash", action.update.hash);
- row.attr ("file_seg_num", action.update.segNum);
- row.attr ("file_modified_by", action.id.userName);
- }
-
- row.attr ("filename", action.filename);
-
- self = this;
- if (PARAMS.item != action.filename) {
- row.bind('click', function (e) { openHistoryForItem ($(this).attr ("filename")) });
- }
- else {
- row.bind('click', function (e) {
- self.previewFile ($(this));
- });
- }
-
- row.bind('mouseenter mouseleave', function() {
- $(this).toggleClass('highlighted');
- });
-
- row.append ($("<td />", { "class": "filename border-left" })
- .text (action.filename)
- .prepend ($("<img />", { "src": imgFullPath(fileExtension(action.filename)) })));
- row.append ($("<td />", { "class": "version" }).text (action.version));
- row.append ($("<td />", { "class": "size" }).text (action.update?SegNumToFileSize (action.update.segNum):""));
- row.append ($("<td />", { "class": "timestamp" }).text (new Date (action.timestamp+"+00:00"))); // conversion from UTC timezone (we store action time in UTC)
- row.append ($("<td />", { "class": "modified-by border-right" })
- .append ($("<userName />").text (action.id.userName))
- .append ($("<seqNo> /").text (action.id.seqNo)));
-
- tbody = tbody.append (row);
- }
-
- displayContent (newcontent, more, this.base_url (PAGE));
-
- self = this;
- $.contextMenu( 'destroy', ".with-context-menu" ); // cleanup
- $.contextMenu({
- selector: ".with-context-menu",
- items: {
- "sep1": "---------",
- preview: {name: "Preview revision",
- icon: "edit", // ned a better icon
- callback: function(key, opt) {
- self.previewFile (opt.$trigger);
- }},
- "sep3": "---------",
- restore: {name: "Restore this revision",
- icon: "cut", // need a better icon
- callback: function(key, opt) {
- filename = opt.$trigger.attr ("filename");
- version = opt.$trigger.attr ("file_version");
- hash = DataUtils.toNumbers (opt.$trigger.attr ("file_hash"));
- console.log (hash);
- modified_by = opt.$trigger.attr ("file_modified_by");
-
- $("<div />", { "title": "Restore version " + version + "?" })
- .append ($("<p />")
- .append ($("<span />", { "class": "ui-icon ui-icon-alert",
- "style": "float: left; margin: 0 7px 50px 0;" }),
- $(document.createTextNode ("Are you sure you want restore version ")),
- $("<green/>").text (version),
- $(document.createTextNode (" by ")),
- $("<green/>").text (modified_by)))
- .dialog ({
- resizable: true,
- height:200,
- width:300,
- modal: true,
- show: "blind",
- hide: "fold",
- buttons: {
- "Restore": function() {
- self = $(this);
- CHRONOSHARE.cmd_restore_file (filename, version, hash, function(didGetData, response) {
- if (!didGetData || response != "OK") {
- custom_alert (response);
- }
- console.log (response);
- self.dialog ("close");
-
- $.timer (function() {CHRONOSHARE.run ();}).once (1000);
- });
- },
- Cancel: function() {
- $(this).dialog ("close");
- }
- }
- });
- // openHistoryForItem (opt.$trigger.attr ("filename"));
- }},
- "sep2": "---------",
- }
- });
- },
-
- base_no_item_url: function (page) {
- url = "#"+page+
- "&user="+encodeURIComponent (encodeURIComponent (PARAMS.user)) +
- "&folder="+encodeURIComponent (encodeURIComponent (PARAMS.folder));
- return url;
- },
-
- base_url: function (page) {
- url = "#"+page+
- "&user="+encodeURIComponent (encodeURIComponent (PARAMS.user)) +
- "&folder="+encodeURIComponent (encodeURIComponent (PARAMS.folder));
- if (PARAMS.item !== undefined) {
- url += "&item="+encodeURIComponent (encodeURIComponent (PARAMS.item));
- }
- return url;
+ previewFile: function(file) {
+ if (fileExtension(file.attr("filename")) == "txt") {
+ CHRONOSHARE.get_file(file.attr("file_modified_by"),
+ DataUtils.toNumbers(file.attr("file_hash")),
+ file.attr("file_seg_num"), function(status, data) {
+ $("<div />", {
+ "title": "Preview of " + file.attr("filename") +
+ " version " + file.attr("file_version")
+ })
+ .append($("<pre />").text(data))
+ .dialog({
+ resizable: true,
+ width: $(window).width() * 0.8,
+ maxHeight: $(window).height() * 0.8,
+ show: "blind",
+ hide: "fold",
+ modal: true,
+ });
+ });
}
+ else {
+ custom_alert("Preview is not support for this type of file");
+ }
+ },
+
+ onData: function(data, more) {
+ tbody = $("<tbody />", {"id": "history-list-actions"});
+
+ /// @todo Eventually set title for other pages
+ $("title").text("ChronoShare - Recent actions" +
+ (PARAMS.item ? " - " + PARAMS.item : ""));
+
+ newcontent =
+ $("<div />", {"id": "content"})
+ .append($("<h2 />").append($(document.createTextNode("Recent actions ")),
+ $("<green />").text(PARAMS.item)),
+ $("<table />", {"class": "item-list"})
+ .append(
+ $("<thead />")
+ .append($("<tr />")
+ .append($("<th />", {
+ "class": "filename border-left",
+ "scope": "col"
+ }).text("Filename"))
+ .append($("<th />",
+ {"class": "version", "scope": "col"})
+ .text("Version"))
+ .append($("<th />",
+ {"class": "size", "scope": "col"})
+ .text("Size"))
+ .append($("<th />", {
+ "class": "modified",
+ "scope": "col"
+ }).text("Modified"))
+ .append($("<th />", {
+ "class": "modified-by border-right",
+ "scope": "col"
+ }).text("Modified By"))))
+ .append(tbody)
+ .append($("<tfoot />").append($("<tr />").append($("<td />", {
+ "colspan": "5",
+ "class": "border-right border-left"
+ })))));
+
+ for (var i = 0; i < data.length; i++) {
+ action = data[i];
+
+ row = $("<tr />");
+ if (i % 2) {
+ row.addClass("odd");
+ }
+ if (action.action == "DELETE") {
+ row.addClass("delete");
+ }
+ else {
+ row.addClass("with-context-menu");
+ row.attr("file_version", action.version);
+ row.attr("file_hash", action.update.hash);
+ row.attr("file_seg_num", action.update.segNum);
+ row.attr("file_modified_by", action.id.userName);
+ }
+
+ row.attr("filename", action.filename);
+
+ self = this;
+ if (PARAMS.item != action.filename) {
+ row.bind('click', function(e) {
+ openHistoryForItem($(this).attr("filename"))
+ });
+ }
+ else {
+ row.bind('click', function(e) {
+ self.previewFile($(this));
+ });
+ }
+
+ row.bind('mouseenter mouseleave', function() {
+ $(this).toggleClass('highlighted');
+ });
+
+ row.append(
+ $("<td />", {"class": "filename border-left"})
+ .text(action.filename)
+ .prepend($("<img />",
+ {"src": imgFullPath(fileExtension(action.filename))})));
+ row.append($("<td />", {"class": "version"}).text(action.version));
+ row.append(
+ $("<td />", {
+ "class": "size"
+ }).text(action.update ? SegNumToFileSize(action.update.segNum) : ""));
+ row.append($("<td />", {
+ "class": "timestamp"
+ }).text(new Date(action.timestamp + "+00:00"))); // conversion
+ // from UTC
+ // timezone (we
+ // store action
+ // time in UTC)
+ row.append($("<td />", {"class": "modified-by border-right"})
+ .append($("<userName />").text(action.id.userName))
+ .append($("<seqNo> /").text(action.id.seqNo)));
+
+ tbody = tbody.append(row);
+ }
+
+ displayContent(newcontent, more, this.base_url(PAGE));
+
+ self = this;
+ $.contextMenu('destroy', ".with-context-menu"); // cleanup
+ $.contextMenu({
+ selector: ".with-context-menu",
+ items: {
+ "sep1": "---------",
+ preview: {
+ name: "Preview revision",
+ icon: "edit", // ned a better icon
+ callback: function(key, opt) {
+ self.previewFile(opt.$trigger);
+ }
+ },
+ "sep3": "---------",
+ restore: {
+ name: "Restore this revision",
+ icon: "cut", // need a better icon
+ callback: function(key, opt) {
+ filename = opt.$trigger.attr("filename");
+ version = opt.$trigger.attr("file_version");
+ hash = DataUtils.toNumbers(opt.$trigger.attr("file_hash"));
+ console.log(hash);
+ modified_by = opt.$trigger.attr("file_modified_by");
+
+ $("<div />", {"title": "Restore version " + version + "?"})
+ .append(
+ $("<p />").append($("<span />", {
+ "class": "ui-icon ui-icon-alert",
+ "style": "float: left; margin: 0 7px 50px 0;"
+ }),
+ $(document.createTextNode(
+ "Are you sure you want restore version ")),
+ $("<green/>").text(version),
+ $(document.createTextNode(" by ")),
+ $("<green/>").text(modified_by)))
+ .dialog({
+ resizable: true,
+ height: 200,
+ width: 300,
+ modal: true,
+ show: "blind",
+ hide: "fold",
+ buttons: {
+ "Restore": function() {
+ self = $(this);
+ CHRONOSHARE.cmd_restore_file(filename, version, hash,
+ function(didGetData, response) {
+ if (!didGetData ||
+ response != "OK") {
+ custom_alert(response);
+ }
+ console.log(response);
+ self.dialog("close");
+
+ $.timer(function() {
+ CHRONOSHARE.run();
+ })
+ .once(1000);
+ });
+ },
+ Cancel: function() {
+ $(this).dialog("close");
+ }
+ }
+ });
+ // openHistoryForItem (opt.$trigger.attr ("filename"));
+ }
+ },
+ "sep2": "---------",
+ }
+ });
+ },
+
+ base_no_item_url: function(page) {
+ url = "#" + page + "&user=" +
+ encodeURIComponent(encodeURIComponent(PARAMS.user)) + "&folder=" +
+ encodeURIComponent(encodeURIComponent(PARAMS.folder));
+ return url;
+ },
+
+ base_url: function(page) {
+ url = "#" + page + "&user=" +
+ encodeURIComponent(encodeURIComponent(PARAMS.user)) + "&folder=" +
+ encodeURIComponent(encodeURIComponent(PARAMS.folder));
+ if (PARAMS.item !== undefined) {
+ url += "&item=" + encodeURIComponent(encodeURIComponent(PARAMS.item));
+ }
+ return url;
+ }
});
-
-
-
-
diff --git a/gui/html/content.js b/gui/html/content.js
index 5042478..9a98648 100644
--- a/gui/html/content.js
+++ b/gui/html/content.js
@@ -1,77 +1,87 @@
-function prefix() {
- var tmp = document.getElementById("prefixcontent").innerHTML;
- var data = tmp.split("END");
- var odd = "odd";
+function prefix()
+{
+ var tmp = document.getElementById("prefixcontent").innerHTML;
+ var data = tmp.split("END");
+ var odd = "odd";
- for (var i in data) {
- // Parse the JSON data.
- var obj = jQuery.parseJSON(data[i]);
+ for (var i in data) {
+ // Parse the JSON data.
+ var obj = jQuery.parseJSON(data[i]);
- if (i % 2 == 0) {
- odd = "";
- } else {
- odd = "odd";
- }
+ if (i % 2 == 0) {
+ odd = "";
+ }
+ else {
+ odd = "odd";
+ }
- // Create the HTML for each prefix.
- var output = '<tr class="' + odd + '">\n';
+ // Create the HTML for each prefix.
+ var output = '<tr class="' + odd + '">\n';
- output += '<td rowspan="' + obj.prefixes.length + '">' + obj.router + '</td>';
+ output +=
+ '<td rowspan="' + obj.prefixes.length + '">' + obj.router + '</td>';
- for (var i in obj.prefixes) {
- output += '<td class="' + odd + '">' + obj.prefixes[i].timestamp + '</td>';
- output += '<td class="' + odd + '">' + obj.prefixes[i].prefix + '</td>';
-
- if (obj.prefixes[i].status == "notintopology") {
- output += '<td id="' + obj.prefixes[i].status + '">NPT</td>';
- } else {
- output += '<td id="' + obj.prefixes[i].status + '">' + obj.prefixes[i].status + '</td>';
- }
-
- output += '</tr>';
- }
+ for (var i in obj.prefixes) {
+ output += '<td class="' + odd + '">' + obj.prefixes[i].timestamp + '</td>';
+ output += '<td class="' + odd + '">' + obj.prefixes[i].prefix + '</td>';
- // Append the data to the prefix table.
- $('.one > tbody:last').append(output);
- }
+ if (obj.prefixes[i].status == "notintopology") {
+ output += '<td id="' + obj.prefixes[i].status + '">NPT</td>';
+ }
+ else {
+ output += '<td id="' + obj.prefixes[i].status + '">' +
+ obj.prefixes[i].status + '</td>';
+ }
+
+ output += '</tr>';
+ }
+
+ // Append the data to the prefix table.
+ $('.one > tbody:last').append(output);
+ }
}
-function link() {
- var tmp = document.getElementById("linkcontent").innerHTML;
- var data = tmp.split("END");
- var odd = "odd";
+function link()
+{
+ var tmp = document.getElementById("linkcontent").innerHTML;
+ var data = tmp.split("END");
+ var odd = "odd";
- for (var i in data) {
- // Parse the JSON data.
- var obj = jQuery.parseJSON(data[i]);
+ for (var i in data) {
+ // Parse the JSON data.
+ var obj = jQuery.parseJSON(data[i]);
- if (i % 2 == 0) {
- odd = "";
- } else {
- odd = "odd";
- }
-
- // Create the HTML for each prefix.
- var output = '<tr class="' + odd + '">\n';
+ if (i % 2 == 0) {
+ odd = "";
+ }
+ else {
+ odd = "odd";
+ }
- output += '<td rowspan="' + obj.links.length + '">' + obj.router + '</td>';
- output += '<td rowspan="' + obj.links.length + '">' + obj.timestamp + '</td>';
+ // Create the HTML for each prefix.
+ var output = '<tr class="' + odd + '">\n';
- for (var i in obj.links) {
- output += '<td id="' + obj.links[i].status + '">' + obj.links[i].link + '</td>';
+ output += '<td rowspan="' + obj.links.length + '">' + obj.router + '</td>';
+ output +=
+ '<td rowspan="' + obj.links.length + '">' + obj.timestamp + '</td>';
- if (obj.links[i].status == "notintopology") {
- output += '<td id="' + obj.links[i].status + '">NPT</td>';
- } else {
- output += '<td id="' + obj.links[i].status + '">' + obj.links[i].status + '</td>';
- }
+ for (var i in obj.links) {
+ output +=
+ '<td id="' + obj.links[i].status + '">' + obj.links[i].link + '</td>';
- output += '</tr>';
- }
+ if (obj.links[i].status == "notintopology") {
+ output += '<td id="' + obj.links[i].status + '">NPT</td>';
+ }
+ else {
+ output += '<td id="' + obj.links[i].status + '">' +
+ obj.links[i].status + '</td>';
+ }
- // Append the data to the prefix table.
- $('.two > tbody:last').append(output);
- }
+ output += '</tr>';
+ }
+
+ // Append the data to the prefix table.
+ $('.two > tbody:last').append(output);
+ }
}
-
diff --git a/gui/html/detect.js b/gui/html/detect.js
index f5f0f64..48a15fc 100644
--- a/gui/html/detect.js
+++ b/gui/html/detect.js
@@ -1,60 +1,66 @@
-function detect() {
+function detect()
+{
+ var nVer = navigator.appVersion;
+ var nAgt = navigator.userAgent;
+ var browserName = navigator.appName;
+ var fullVersion = '' + parseFloat(navigator.appVersion);
+ var majorVersion = parseInt(navigator.appVersion, 10);
+ var nameOffset, verOffset, ix;
- var nVer = navigator.appVersion;
- var nAgt = navigator.userAgent;
- var browserName = navigator.appName;
- var fullVersion = '' + parseFloat(navigator.appVersion);
- var majorVersion = parseInt(navigator.appVersion, 10);
- var nameOffset, verOffset, ix;
+ // In Opera, the true version is after "Opera" or after "Version"
+ if ((verOffset = nAgt.indexOf("Opera")) != -1) {
+ browserName = "Opera";
+ fullVersion = nAgt.substring(verOffset + 6);
+ if ((verOffset = nAgt.indexOf("Version")) != -1)
+ fullVersion = nAgt.substring(verOffset + 8);
+ }
+ // In MSIE, the true version is after "MSIE" in userAgent
+ else if ((verOffset = nAgt.indexOf("MSIE")) != -1) {
+ browserName = "Microsoft Internet Explorer";
+ fullVersion = nAgt.substring(verOffset + 5);
+ }
+ // In Chrome, the true version is after "Chrome"
+ else if ((verOffset = nAgt.indexOf("Chrome")) != -1) {
+ browserName = "Chrome";
+ fullVersion = nAgt.substring(verOffset + 7);
+ }
+ // In Safari, the true version is after "Safari" or after "Version"
+ else if ((verOffset = nAgt.indexOf("Safari")) != -1) {
+ browserName = "Safari";
+ fullVersion = nAgt.substring(verOffset + 7);
+ if ((verOffset = nAgt.indexOf("Version")) != -1)
+ fullVersion = nAgt.substring(verOffset + 8);
+ }
+ // In Firefox, the true version is after "Firefox"
+ else if ((verOffset = nAgt.indexOf("Firefox")) != -1) {
+ browserName = "Firefox";
+ fullVersion = nAgt.substring(verOffset + 8);
+ }
+ // In most other browsers, "name/version" is at the end of userAgent
+ else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) <
+ (verOffset = nAgt.lastIndexOf('/'))) {
+ browserName = nAgt.substring(nameOffset, verOffset);
+ fullVersion = nAgt.substring(verOffset + 1);
+ if (browserName.toLowerCase() == browserName.toUpperCase()) {
+ browserName = navigator.appName;
+ }
+ }
+ // trim the fullVersion string at semicolon/space if present
+ if ((ix = fullVersion.indexOf(";")) != -1)
+ fullVersion = fullVersion.substring(0, ix);
+ if ((ix = fullVersion.indexOf(" ")) != -1)
+ fullVersion = fullVersion.substring(0, ix);
- // In Opera, the true version is after "Opera" or after "Version"
- if ((verOffset = nAgt.indexOf("Opera")) != -1) {
- browserName = "Opera";
- fullVersion = nAgt.substring(verOffset + 6);
- if ((verOffset = nAgt.indexOf("Version")) != -1) fullVersion = nAgt.substring(verOffset + 8);
- }
- // In MSIE, the true version is after "MSIE" in userAgent
- else if ((verOffset = nAgt.indexOf("MSIE")) != -1) {
- browserName = "Microsoft Internet Explorer";
- fullVersion = nAgt.substring(verOffset + 5);
- }
- // In Chrome, the true version is after "Chrome"
- else if ((verOffset = nAgt.indexOf("Chrome")) != -1) {
- browserName = "Chrome";
- fullVersion = nAgt.substring(verOffset + 7);
- }
- // In Safari, the true version is after "Safari" or after "Version"
- else if ((verOffset = nAgt.indexOf("Safari")) != -1) {
- browserName = "Safari";
- fullVersion = nAgt.substring(verOffset + 7);
- if ((verOffset = nAgt.indexOf("Version")) != -1) fullVersion = nAgt.substring(verOffset + 8);
- }
- // In Firefox, the true version is after "Firefox"
- else if ((verOffset = nAgt.indexOf("Firefox")) != -1) {
- browserName = "Firefox";
- fullVersion = nAgt.substring(verOffset + 8);
- }
- // In most other browsers, "name/version" is at the end of userAgent
- else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
- browserName = nAgt.substring(nameOffset, verOffset);
- fullVersion = nAgt.substring(verOffset + 1);
- if (browserName.toLowerCase() == browserName.toUpperCase()) {
- browserName = navigator.appName;
- }
- }
- // trim the fullVersion string at semicolon/space if present
- if ((ix = fullVersion.indexOf(";")) != -1) fullVersion = fullVersion.substring(0, ix);
- if ((ix = fullVersion.indexOf(" ")) != -1) fullVersion = fullVersion.substring(0, ix);
+ majorVersion = parseInt('' + fullVersion, 10);
+ if (isNaN(majorVersion)) {
+ fullVersion = '' + parseFloat(navigator.appVersion);
+ majorVersion = parseInt(navigator.appVersion, 10);
+ }
- majorVersion = parseInt('' + fullVersion, 10);
- if (isNaN(majorVersion)) {
- fullVersion = '' + parseFloat(navigator.appVersion);
- majorVersion = parseInt(navigator.appVersion, 10);
- }
-
- if (browserName == "Safari" && fullVersion == "5.1.7") {
- return false;
- } else {
- return true;
- }
+ if (browserName == "Safari" && fullVersion == "5.1.7") {
+ return false;
+ }
+ else {
+ return true;
+ }
}