Update style to (almost) conform to ndn-cxx style using clang-format
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;
+ }
});
-
-
-
-