var sessionStarted = false;\r
var editComment = 0;\r
var currentfileContent = '';\r
+var originalFileContent = '';\r
var addNewComment = false;\r
var commentLineStart;\r
var commentLineEnd;\r
var signedOff = '';\r
var userEmail = '';\r
var commitMessage = '';\r
+var numComment = '';\r
+var showcomment = false;\r
\r
// Spinner vars\r
var opts = {\r
return;\r
}\r
else{\r
+ numComment = $(this).attr('title');\r
var arrayNew = $(this).text().split('\n');\r
var lNew = arrayNew.length - 1;\r
var adapt = "";\r
if(i < lNew-1){ adapt += "\n"; }\r
}\r
editComment += 1;\r
+ getCommentOfFunction($(this));\r
// hide comment\r
$(this).hide();\r
// Show edit box \r
\r
// Disable the edit mode\r
$('a[id=cancelBtn]').click(function(){\r
+ $(this).parent().prev().children('#lblDiffCommit').text("");\r
+ showcomment = false;\r
closeEditing($(this));\r
});\r
\r
// Display commit form\r
$('a[id=commitBtn]').click(function(){\r
- $(this).parent().prev().children('#lblDiffCommit').text("");\r
- showcomment = false;\r
updateComment = $(this).prev().prev().val();\r
commentType = $(this).prev().prev().prev().attr('type');\r
\r
});\r
$('a[id=cancelBtn]').hide();\r
$('a[id=commitBtn]').hide();\r
+ $('a[id=lblDiffCommit]').text("");\r
+ showcomment = false;\r
// Re-load all comment\r
reloadComment();\r
}\r
if($(this).is(':checked')){ addSignedOff(); }\r
else{ removeSignedOff(); }\r
})\r
+\r
+ $('a[id=lblDiffCommit]').click(function(){\r
+ showComment($(this));\r
+ });\r
});\r
\r
/* Parse current URL and return anchor name */\r
}\r
}\r
\r
-function getCommentLastCommit(path){\r
+function getCommentLastCommit(path, origin){\r
var urlRaw;\r
+ var bkBranch = '';\r
+ if(origin){// We want to get the original file\r
+ bkBranch = branchName;\r
+ branchName = "master";\r
+ }\r
getLastCommit();\r
if(shaLastCommit != ""){\r
if (checkCookie()) {\r
async: false,\r
success: function(success)\r
{\r
- currentfileContent = success;\r
+ if(origin){ originalFileContent = success; }\r
+ else{ currentfileContent = success; }\r
}\r
});\r
}\r
}\r
+ if(origin){ branchName = bkBranch; }\r
}\r
\r
function displayMessage(msg, widthDiv, margModal){\r
};\r
\r
function reloadComment(){\r
- $.when(getCommentLastCommit($('pre[class=text_label]').attr('tag'))).done(function(){\r
+ var path = $('pre[class=text_label]').attr('tag');\r
+ $.when(getCommentLastCommit(path, false)).done(function(){\r
+ if(sessionStarted){ getCommentLastCommit(path, true); }\r
$('pre[class=text_label]').each(function(){ getCommentOfFunction($(this)); });\r
});\r
}\r
var textC = ""; \r
var numL = element.attr("title");\r
if(numL != null){ \r
- commentLineStart = numL.split('-')[0] - 1;\r
- commentLineEnd = (commentLineStart + element.text().split('\n').length) - 1;\r
+ commentLineStart = numL-1; \r
+ commentLineEnd = element.attr('name').split(numL)[1].split('-')[1]-1; \r
var lines = currentfileContent.split("\n");\r
for (var i = 0; i < lines.length; i++) {\r
- if(i >= commentLineStart-1 && i <= commentLineEnd){\r
+ if(i >= commentLineStart-1 && i <= commentLineEnd+1){\r
if (lines[i].substr(1,1) == "#"){ textC += lines[i].substr(3,lines[i].length) + "\n";}\r
else if(lines[i].substr(0,1) == '#'){ textC += lines[i].substr(2,lines[i].length) + "\n"; }\r
}\r
}\r
- if (textC != ""){ element.text(textC); }\r
+ if(textC != element.text){element.text(textC);}\r
+ if (textC != "" && editComment > 0){\r
+ var originContent = originalFileContent.split("\n");\r
+ var origin = '';\r
+ var lblDiff = element.parent().prev().children('#lblDiffCommit');\r
+ var preSave = element.parent().children('#preSave');\r
+ for (var i = 0; i < originContent.length; i++) {\r
+ if(i >= commentLineStart-1 && i <= commentLineEnd+1){\r
+ if (originContent[i].substr(1,1) == "#"){ origin += originContent[i].substr(3,originContent[i].length) + "\n";}\r
+ else if(originContent[i].substr(0,1) == '#'){ origin += originContent[i].substr(2,originContent[i].length) + "\n"; }\r
+ }\r
+ }\r
+ if(textC != origin && numL == numComment){\r
+ // The comment is different compare to the original\r
+ if(showcomment == false){ lblDiff.text("Show original comment"); }\r
+ preSave.text(origin);\r
+ }\r
+ else if (numL == numComment){ lblDiff.text(""); }\r
+ }\r
}\r
}\r
\r
var nLines = element.val().split('\n').length + 1;\r
element.attr('rows', nLines);\r
}\r
+\r
+function showComment(element){\r
+ // Display the original comment\r
+ if (showcomment == true){ \r
+ showcomment = false;\r
+ element.text("Show original comment");\r
+ }\r
+ else{\r
+ // Show the comment updated in user's repo\r
+ showcomment = true;\r
+ element.text("Comment changed in "+githubRepo+" / "+branchName);\r
+ }\r
+ var parent = element.parent().next(".description"); \r
+ var textarea = parent.children('#fileContent');\r
+ var text = textarea.val(); \r
+ var preSave = parent.children('#preSave'); \r
+ textarea.val(preSave.text());\r
+ preSave.text(text);\r
+ // Resize edit box\r
+ textarea.height(textarea.prop("scrollHeight"));\r
+ resizeTextarea(textarea);\r
+}\r
dctx.add("{m.html_link(dctx)}::")
end
dctx.add("{self.name}</div>\n")
-
+ dctx.add("<div style=\"float: right;\"><a id=\"lblDiffCommit\"></a></div>")
dctx.add("<section class='description'>\n")
var doc = doc
dctx.add("<pre class=\"text_label\">{doc.to_html}</pre>\n")
dctx.add("<textarea rows=\"1\" cols=\"76\" id=\"fileContent\" class=\"edit\"></textarea>\n")
dctx.add("<a id=\"cancelBtn\">Cancel</a><a id=\"commitBtn\">Commit</a>")
+ dctx.add("<pre id=\"preSave\" type=\"2\" class=\"text_label\" ></pre>")
dctx.add("</div>\n")
end
dctx.add("::{html_name}")
end
dctx.add("</div>")
-
+ dctx.add("<div style=\"float: right;\"><a id=\"lblDiffCommit\"></a></div>")
dctx.add("<div class=\"description\">")
# Collect all refinement of the global property in the same global property
dctx.add("<pre class=\"text_label\" name=\"{html_name}\" >{global.intro.doc.to_html}</pre>")
dctx.add("<textarea rows=\"1\" cols=\"76\" id=\"fileContent\" class=\"edit\"></textarea>")
dctx.add("<a id=\"cancelBtn\">Cancel</a><a id=\"commitBtn\">Commit</a>")
+ dctx.add("<pre id=\"preSave\" type=\"2\" class=\"text_label\" ></pre>")
end
var tlmods = new Array[MMModule]
end
dctx.add("<textarea rows=\"1\" cols=\"76\" id=\"fileContent\" class=\"edit\"></textarea>")
dctx.add("<a id=\"cancelBtn\">Cancel</a><a id=\"commitBtn\">Commit</a>")
+ dctx.add("<pre id=\"preSave\" type=\"2\" class=\"text_label\" ></pre>")
dctx.add("<p>")
if tlp.local_class.global != lc.global then
dctx.add("inherited from {tlp.local_class.html_link(dctx)} ")
dctx.add("(unexported) ")
end
dctx.add("{kind} {global.intro.mmmodule.toplevel_owner.html_link(dctx)}::{name}</div>")
-
+ dctx.add("<div style=\"float: right;\"><a id=\"lblDiffCommit\"></a></div>")
dctx.add("<section class=\"description\">\n")
var doc = doc
if doc != null then
dctx.add("<pre type=\"2\" class=\"text_label\" tag=\"{l.file.filename}\" name=\"{dctx.get_source(l)}\" title=\"{l.line_start.to_s}\">{doc.to_html}</pre>\n")
dctx.add("<textarea rows=\"1\" cols=\"76\" id=\"fileContent\" class=\"edit\"></textarea>")
dctx.add("<a id=\"cancelBtn\">Cancel</a><a id=\"commitBtn\">Commit</a>")
+ dctx.add("<pre id=\"preSave\" type=\"2\" class=\"text_label\" ></pre>")
end
var cla = new HashSet[MMLocalClass]