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
\r
// Escape regexp related characters in query\r
var query = $("#search").val();\r
+ query = query.replace(/\\/gi, "\\\\");\r
query = query.replace(/\[/gi, "\\[");\r
query = query.replace(/\|/gi, "\\|");\r
query = query.replace(/\*/gi, "\\*");\r
query = query.replace(/\+/gi, "\\+");\r
- query = query.replace(/\\/gi, "\\\\");\r
query = query.replace(/\?/gi, "\\?");\r
query = query.replace(/\(/gi, "\\(");\r
query = query.replace(/\)/gi, "\\)");\r
+ query = query.replace(/&/gi, "&&");\r
+ query = query.replace(/>/gi, ">");\r
+ query = query.replace(/</gi, "<");\r
\r
var index = 0;\r
var regexp = new RegExp("^" + query, "i");\r
break;\r
}\r
var result = entry.match(regexp);\r
- if(result != null && result.toString().toUpperCase() == $("#search").val().toUpperCase()) {\r
+ if(result != null) {\r
for(var i = 0; i < entries[entry].length; i++) {\r
if(index > 10) {\r
break;\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
if($(this).next().val() == "" || $(this).next().val() != adapt){ $(this).next().val(adapt); }\r
// Resize edit box \r
$(this).next().height($(this).next().prop("scrollHeight"));\r
+ resizeTextarea($(this).next());\r
// Select it\r
$(this).next().select();\r
preElement = $(this);\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
\r
// Create the commit message\r
- commitMessage = 'Wikidoc: modified comment in ' + $(this).parent().prev().html().split(' ')[1];\r
+ commitMessage = 'Wikidoc: modified comment in ' + $(this).parent().prev().prev().html().split(' ')[1];\r
$('#commitMessage').text(commitMessage);\r
$('#commitMessage').css({'display': 'block'});\r
pathFile = $(this).prev().prev().prev().attr('tag');\r
$(this).next().hide(); \r
if(editComment > 0){ editComment -= 1; }\r
$('#chkSignedOff').attr('checked', false);\r
+ removeSignedOff();\r
});\r
\r
//Close Popups and Fade Layer\r
}); \r
$('#modalQuestion').hide();\r
$('#chkSignedOff').attr('checked', false);\r
+ removeSignedOff();\r
});\r
\r
$('#loginAction').click(function(){\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
$(this).next().next().next().show();\r
// Resize edit box \r
$(this).next().height($(this).next().prop("scrollHeight"));\r
+ resizeTextarea($(this).next());\r
// Select it\r
$(this).next().select();\r
preElement = $(this); \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
$('#commitMessage').val($('#commitMessage').val() + "\n\nSigned-off-by: "+signedOff+" <"+userEmail+">");\r
});\r
});\r
+ resizeTextarea($('#commitMessage'));\r
}\r
\r
function removeSignedOff(){\r
$('#commitMessage').val(commitMessage); \r
+ resizeTextarea($('#commitMessage'));\r
+}\r
+\r
+function resizeTextarea(element){\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