-// User\r
-var userB64 = null;\r
-var sessionStarted = false;\r
-var editComment = 0;\r
-\r
/*\r
* JQuery Case Insensitive :icontains selector\r
*/\r
$.expr[':'].icontains = function(obj, index, meta, stack){\r
return (obj.textContent.replace(/\[[0-9]+\]/g, "") || obj.innerText.replace(/\[[0-9]+\]/g, "") || jQuery(obj).text().replace(/\[[0-9]+\]/g, "") || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;\r
};\r
-\r
/*\r
* Quick Search global vars\r
*/\r
//Hightlighted index in search result preview table\r
var currentIndex = -1;\r
\r
-\r
/*\r
* Add folding and filtering facilities to class description page.\r
*/\r
$(document).ready(function() {\r
\r
- // Hide edit tags\r
- $('textarea').hide();\r
- $('a[id=commitBtn]').hide();\r
- $('a[id=cancelBtn]').hide();\r
- // Hide Authenfication form\r
- $(".popover").hide();\r
- // Update display\r
- updateDisplaying();\r
- \r
/*\r
* Highlight the spoted element\r
*/\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
\r
//Preload filter fields with query string\r
preloadFilters();\r
- // Hide Authenfication form\r
- $(".popover").hide();\r
- // Display Login modal\r
- $("#logGitHub").click(function(){ displayLogginModal(); }); \r
- // Update display\r
- updateDisplaying();\r
- // If cookie existing the session is opened\r
- if(sessionStarted){ userB64 = "Basic " + getUserPass("logginNitdoc"); }\r
-\r
- // Sign In an github user or Log out him\r
- $("#signIn").click(function(){\r
- if(!sessionStarted){\r
- if($('#loginGit').val() == "" || $('#passwordGit').val() == ""){ displayMessage('The comment field is empty!', 40, 45); }\r
- else\r
- {\r
- userName = $('#loginGit').val();\r
- password = $('#passwordGit').val();\r
- repoName = $('#repositoryGit').val();\r
- branchName = $('#branchGit').val();\r
- userB64 = "Basic " + base64.encode(userName+':'+password);\r
- setCookie("logginNitdoc", base64.encode(userName+':'+password+':'+repoName+':'+branchName), 1);\r
- $('#loginGit').val("");\r
- $('#passwordGit').val("");\r
- }\r
- } \r
- else\r
- {\r
- // Delete cookie and reset settings\r
- del_cookie("logginNitdoc");\r
- } \r
- displayLogginModal();\r
- });\r
-\r
- // Open edit file\r
- $('pre[class=text_label]').click(function(){\r
- // the customer is loggued ?\r
- if(!sessionStarted || userName == ""){\r
- // No => nothing happen\r
- return;\r
- }\r
- else{\r
- var arrayNew = $(this).text().split('\n');\r
- var lNew = arrayNew.length - 1;\r
- var adapt = "";\r
\r
- for (var i = 0; i < lNew; i++) {\r
- adapt += arrayNew[i];\r
- if(i < lNew-1){ adapt += "\n"; }\r
- }\r
- editComment += 1;\r
- // hide comment\r
- $(this).hide();\r
- // Show edit box \r
- $(this).next().show();\r
- // Show cancel button\r
- $(this).next().next().show();\r
- // Show commit button\r
- $(this).next().next().next().show();\r
- // Add text in edit box\r
- if($(this).next().val() == ""){ $(this).next().val(adapt); }\r
- // Resize edit box \r
- $(this).next().height($(this).next().prop("scrollHeight"));\r
- // Select it\r
- $(this).next().select();\r
- preElement = $(this);\r
- }\r
+ //Copy to clipboard utility on signatures\r
+ $(".signature").each(function(){\r
+ $(this).append(\r
+ $("<button class='copyButton' data-clipboard-text='" + $(this).attr("data-untyped-signature") + "'></button>")\r
+ .append($("<img src='./resources/icons/copy.png' />"))\r
+ )\r
});\r
\r
- $('a[id=cancelBtn]').click(function(){\r
- if(editComment > 0){ editComment -= 1; }\r
- // Hide itself\r
- $(this).hide();\r
- // Hide commitBtn\r
- $(this).next().hide();\r
- // Hide Textarea\r
- $(this).prev().hide();\r
- // Show comment\r
- $(this).prev().prev().show();\r
- });\r
-\r
+ var clip = new ZeroClipboard($(".copyButton"), {\r
+ moviePath: "./ZeroClipboard.swf"\r
+ } );\r
});\r
\r
/* Parse current URL and return anchor name */\r
target.addClass("highlighted");\r
target.show();\r
}\r
-\r
-function displayLogginModal(){\r
- if ($('.popover').is(':hidden')) { $('.popover').show(); }\r
- else { $('.popover').hide(); } \r
- updateDisplaying();\r
-}\r
-\r
-function updateDisplaying(){\r
- if (checkCookie())\r
- {\r
- $('#loginGit').hide();\r
- $('#passwordGit').hide();\r
- $('#lbpasswordGit').hide(); \r
- $('#lbloginGit').hide(); \r
- $('#repositoryGit').hide();\r
- $('#lbrepositoryGit').hide();\r
- $('#lbbranchGit').hide(); \r
- $('#branchGit').hide();\r
- $("#liGitHub").attr("class", "current");\r
- $("#imgGitHub").attr("src", "resources/icons/github-icon-w.png");\r
- $('#nickName').text(userName); \r
- $('#githubAccount').attr("href", "https://github.com/"+userName);\r
- $('#logginMessage').css({'display' : 'block'});\r
- $('#logginMessage').css({'text-align' : 'center'});\r
- $('.popover').css({'height' : '80px'}); \r
- $('#signIn').text("Sign out"); \r
- sessionStarted = true;\r
- }\r
- else\r
- {\r
- sessionStarted = false;\r
- $('#logginMessage').css({'display' : 'none'});\r
- $("#liGitHub").attr("class", "");\r
- $("#imgGitHub").attr("src", "resources/icons/github-icon.png");\r
- $('#loginGit').val("");\r
- $('#passwordGit').val("");\r
- $('#nickName').text("");\r
- $('.popover').css({'height' : '280px'}); \r
- $('#logginMessage').css({'display' : 'none'});\r
- $('#repositoryGit').val($('#repoName').attr('name'));\r
- $('#branchGit').val('wikidoc'); \r
- $('#signIn').text("Sign In");\r
- $('#loginGit').show();\r
- $('#passwordGit').show();\r
- $('#lbpasswordGit').show();\r
- $('#lbloginGit').show(); \r
- $('#repositoryGit').show();\r
- $('#lbrepositoryGit').show();\r
- $('#lbbranchGit').show(); \r
- $('#branchGit').show(); \r
- }\r
-}\r
-\r
-function setCookie(c_name, value, exdays)\r
-{\r
- var exdate=new Date();\r
- exdate.setDate(exdate.getDate() + exdays);\r
- var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());\r
- document.cookie=c_name + "=" + c_value;\r
-}\r
-\r
-function del_cookie(c_name)\r
-{\r
- document.cookie = c_name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r
-}\r
-\r
-function getCookie(c_name)\r
-{\r
- var c_value = document.cookie;\r
- var c_start = c_value.indexOf(" " + c_name + "=");\r
- if (c_start == -1) { c_start = c_value.indexOf(c_name + "="); }\r
- if (c_start == -1) { c_value = null; }\r
- else\r
- {\r
- c_start = c_value.indexOf("=", c_start) + 1;\r
- var c_end = c_value.indexOf(";", c_start);\r
- if (c_end == -1) { c_end = c_value.length; }\r
- c_value = unescape(c_value.substring(c_start,c_end));\r
- }\r
- return c_value;\r
-}\r
-\r
-function getUserPass(c_name){\r
- var cookie = base64.decode(getCookie(c_name));\r
- return base64.encode(cookie.split(':')[0] + ':' + cookie.split(':')[1]);\r
-}\r
-\r
-function checkCookie()\r
-{\r
- var cookie=getCookie("logginNitdoc");\r
- if (cookie!=null && cookie!="")\r
- {\r
- cookie = base64.decode(cookie);\r
- userName = cookie.split(':')[0];\r
- repoName = cookie.split(':')[2]; \r
- branchName = cookie.split(':')[3];\r
- return true;\r
- }\r
- else { return false; }\r
-}\r
-\r
-\r
-/*\r
-* Base64\r
-*/\r
-base64 = {};\r
-base64.PADCHAR = '=';\r
-base64.ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r
-base64.getbyte64 = function(s,i) {\r
- // This is oddly fast, except on Chrome/V8.\r
- // Minimal or no improvement in performance by using a\r
- // object with properties mapping chars to value (eg. 'A': 0)\r
- var idx = base64.ALPHA.indexOf(s.charAt(i));\r
- if (idx == -1) {\r
- throw "Cannot decode base64";\r
- }\r
- return idx;\r
-}\r
-\r
-base64.decode = function(s) {\r
- // convert to string\r
- s = "" + s;\r
- var getbyte64 = base64.getbyte64;\r
- var pads, i, b10;\r
- var imax = s.length\r
- if (imax == 0) {\r
- return s;\r
- }\r
-\r
- if (imax % 4 != 0) {\r
- throw "Cannot decode base64";\r
- }\r
-\r
- pads = 0\r
- if (s.charAt(imax -1) == base64.PADCHAR) {\r
- pads = 1;\r
- if (s.charAt(imax -2) == base64.PADCHAR) {\r
- pads = 2;\r
- }\r
- // either way, we want to ignore this last block\r
- imax -= 4;\r
- }\r
-\r
- var x = [];\r
- for (i = 0; i < imax; i += 4) {\r
- b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12) |\r
- (getbyte64(s,i+2) << 6) | getbyte64(s,i+3);\r
- x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 0xff, b10 & 0xff));\r
- }\r
-\r
- switch (pads) {\r
- case 1:\r
- b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12) | (getbyte64(s,i+2) << 6)\r
- x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 0xff));\r
- break;\r
- case 2:\r
- b10 = (getbyte64(s,i) << 18) | (getbyte64(s,i+1) << 12);\r
- x.push(String.fromCharCode(b10 >> 16));\r
- break;\r
- }\r
- return x.join('');\r
-}\r
-\r
-base64.getbyte = function(s,i) {\r
- var x = s.charCodeAt(i);\r
- if (x > 255) {\r
- throw "INVALID_CHARACTER_ERR: DOM Exception 5";\r
- }\r
- return x;\r
-}\r
-\r
-\r
-base64.encode = function(s) {\r
- if (arguments.length != 1) {\r
- throw "SyntaxError: Not enough arguments";\r
- }\r
- var padchar = base64.PADCHAR;\r
- var alpha = base64.ALPHA;\r
- var getbyte = base64.getbyte;\r
-\r
- var i, b10;\r
- var x = [];\r
-\r
- // convert to string\r
- s = "" + s;\r
-\r
- var imax = s.length - s.length % 3;\r
-\r
- if (s.length == 0) {\r
- return s;\r
- }\r
- for (i = 0; i < imax; i += 3) {\r
- b10 = (getbyte(s,i) << 16) | (getbyte(s,i+1) << 8) | getbyte(s,i+2);\r
- x.push(alpha.charAt(b10 >> 18));\r
- x.push(alpha.charAt((b10 >> 12) & 0x3F));\r
- x.push(alpha.charAt((b10 >> 6) & 0x3f));\r
- x.push(alpha.charAt(b10 & 0x3f));\r
- }\r
- switch (s.length - imax) {\r
- case 1:\r
- b10 = getbyte(s,i) << 16;\r
- x.push(alpha.charAt(b10 >> 18) + alpha.charAt((b10 >> 12) & 0x3F) +\r
- padchar + padchar);\r
- break;\r
- case 2:\r
- b10 = (getbyte(s,i) << 16) | (getbyte(s,i+1) << 8);\r
- x.push(alpha.charAt(b10 >> 18) + alpha.charAt((b10 >> 12) & 0x3F) +\r
- alpha.charAt((b10 >> 6) & 0x3f) + padchar);\r
- break;\r
- }\r
- return x.join('');\r
-}\r
-\r
-$.fn.spin = function(opts) {\r
- this.each(function() {\r
- var $this = $(this),\r
- data = $this.data();\r
-\r
- if (data.spinner) {\r
- data.spinner.stop();\r
- delete data.spinner;\r
- }\r
- if (opts !== false) {\r
- data.spinner = new Spinner($.extend({color: $this.css('color')}, opts)).spin(this);\r
- }\r
- });\r
- return this;\r
-};\r