nitdoc: Added Signed-Off management
authorStefan Lage <lagestfan@gmail.com>
Tue, 28 May 2013 22:12:01 +0000 (18:12 -0400)
committerStefan Lage <lagestfan@gmail.com>
Tue, 28 May 2013 22:12:33 +0000 (18:12 -0400)
Adding a Signed-Off field in the 'Sign In' form which allow to
'generate' its own signed-off for commits.
Addign a checkbox in commit form to obliged the customer to sign his
commit

Signed-off-by: Stefan Lage <lagestfan@gmail.com>

share/nitdoc/scripts/js-facilities.js
share/nitdoc/styles/main.css
src/nitdoc.nit

index 9170a4d..87e760a 100644 (file)
@@ -20,6 +20,9 @@ var repoExist = false;
 var branchExist = false;\r
 var githubRepo;\r
 var loginProcess = false; \r
+var signedOff = '';\r
+var userEmail = '';\r
+var commitMessage = '';\r
 \r
 // Spinner vars\r
 var opts = {\r
@@ -498,6 +501,8 @@ $(document).ready(function() {
 \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
@@ -510,9 +515,10 @@ $(document).ready(function() {
                        }\r
                        \r
                        // Create the commit message\r
-                       var commitMessage = 'Wikidoc: modified comment in ' + $(this).parent().prev().html().split(' ')[1];\r
-                       $('#commitMessage').val(commitMessage);\r
-                       pathFile = $(this).prev().prev().prev().attr('tag');\r
+                       commitMessage = 'Wikidoc: modified comment in ' + $(this).parent().prev().html().split(' ')[1];\r
+                       $('#commitMessage').text(commitMessage);\r
+                       $('#commitMessage').css({'display': 'block'});\r
+                       pathFile = $(this).prev().prev().prev().attr('tag');\r
                        $('#modal').show().prepend('<a class="close"><img src="resources/icons/close.png" class="btn_close" title="Close" alt="Close" /></a>');\r
                        $('body').append('<div id="fade"></div>');\r
                        $('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn();\r
@@ -524,6 +530,7 @@ $(document).ready(function() {
                $(this).hide();                 \r
                $(this).next().hide();                  \r
                if(editComment > 0){ editComment -= 1; }\r
+               $('#chkSignedOff').attr('checked', false);\r
         });\r
 \r
        //Close Popups and Fade Layer\r
@@ -533,6 +540,7 @@ $(document).ready(function() {
                        $('#fade, a.close').remove();  \r
                });             \r
                $('#modalQuestion').hide();\r
+               $('#chkSignedOff').attr('checked', false);\r
        });\r
 \r
        $('#loginAction').click(function(){\r
@@ -552,13 +560,13 @@ $(document).ready(function() {
                        isBranchExisting();\r
                        if(branchExist){\r
                                editComment -= 1;\r
-                               commitMessage = $('#commitMessage').val();\r
+                               commitMessage = $('#commitMessage').val().replace(/\r?\n/g, '\\n').replace(/\t/g, '\\t').replace(/\"/g,'\\"');\r
                                if(commitMessage == ""){ commitMessage = "New commit";}\r
                                if(sessionStarted){\r
                                        if ($.trim(updateComment) == ''){ this.value = (this.defaultValue ? this.defaultValue : ''); }\r
                                        else{ \r
                                                displaySpinner();\r
-                                                       startCommitProcess();\r
+                                               startCommitProcess();\r
                                        }\r
                                }\r
                                $('#modal, #modalQuestion').fadeOut(function() {\r
@@ -574,6 +582,7 @@ $(document).ready(function() {
                        }\r
                }\r
                else{ editComment -= 1; }\r
+               $('#chkSignedOff').attr('checked', false);\r
        });\r
        \r
        // Cancel creating branch\r
@@ -590,7 +599,7 @@ $(document).ready(function() {
                if($('#btnCreateBranch').text() != 'Ok'){\r
                        // Create the branch\r
                        createBranch();\r
-                       commitMessage = $('#commitMessage').val();\r
+                       commitMessage = $('#commitMessage').val().replace(/\r?\n/g, '\\n').replace(/\t/g, '\\t').replace(/\"/g,'\\"');\r
                        if(commitMessage == ""){ commitMessage = "New commit"; }\r
                        if(userB64 != ""){                      \r
                        if(loginProcess){\r
@@ -660,6 +669,11 @@ $(document).ready(function() {
                        }\r
                }\r
        );\r
+\r
+       $('#chkSignedOff').click(function(){\r
+               if($(this).is(':checked')){ addSignedOff(); }\r
+               else{ removeSignedOff(); }\r
+       })\r
 });\r
 \r
 /* Parse current URL and return anchor name */\r
@@ -711,16 +725,21 @@ function highlightBlock(a) {
 \r
 // Init process to commit the new comment\r
 function startCommitProcess()\r
-{\r
-       var numL = preElement.attr("title");\r
-       commentLineStart = numL.split('-')[0] - 1;      \r
-       if(addNewComment) { commentLineStart++; }\r
-       commentLineEnd = (commentLineStart + preElement.text().split('\n').length) - 1;\r
-       state = true;   \r
-       replaceComment(updateComment, currentfileContent);\r
-       getLastCommit();        \r
-       getBaseTree();  \r
-       editComment = false;\r
+{      \r
+       if($('#chkSignedOff').is(':checked')){\r
+               var numL = preElement.attr("title");\r
+               commentLineStart = numL.split('-')[0] - 1;      \r
+               if(addNewComment) { commentLineStart++; }\r
+               commentLineEnd = (commentLineStart + preElement.text().split('\n').length) - 1;\r
+               state = true;   \r
+               replaceComment(updateComment, currentfileContent);\r
+               getLastCommit();        \r
+               getBaseTree();  \r
+               editComment = false;\r
+       }\r
+       else{\r
+               displayMessage('Please sign this commit', 40, 40); \r
+       }\r
 }\r
 \r
 function displayLogginModal(){\r
@@ -765,9 +784,9 @@ function updateDisplaying(){
                $("#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' : '325px'});        \r
+               $('#passwordGit').val("");\r
+               $('#nickName').text("");\r
+               $('.popover').css({'height' : '325px'});\r
                $('#logginMessage').css({'display' : 'none'});\r
                $('#repositoryGit').val($('#repoName').attr('name'));\r
                $('#branchGit').val('wikidoc');  \r
@@ -1030,6 +1049,7 @@ function setNewTree()
 \r
 function setNewCommit()\r
 {\r
+    addSignedOff();\r
     $.ajax({ \r
         beforeSend: function (xhr) { xhr.setRequestHeader ("Authorization", userB64); },\r
         type: "POST",\r
@@ -1364,8 +1384,9 @@ function checkSignIn(){
         dataType:'json',\r
         success: function(success)\r
         {\r
-               displayMessage('You are now logged in');\r
+               getUserInfo();\r
                response = true;\r
+               displayMessage('You are now logged in');\r
         },\r
         error: function()\r
         {\r
@@ -1375,3 +1396,47 @@ function checkSignIn(){
     });\r
     return response;\r
 }\r
+\r
+function getUserInfo(){\r
+       $.ajax({\r
+        beforeSend: function (xhr) {\r
+            if ($("#login").val() != ""){ xhr.setRequestHeader ("Authorization", userB64); }\r
+        },\r
+        type: "GET",\r
+        url: "https://api.github.com/user/emails",\r
+        async:false,\r
+        dataType:'json',\r
+        success: function(success)\r
+        {        \r
+               userEmail = success;\r
+        }\r
+    });\r
+}\r
+\r
+function getSignedOff(){\r
+       $.ajax({\r
+        beforeSend: function (xhr) {\r
+            if ($("#login").val() != ""){ xhr.setRequestHeader ("Authorization", userB64); }\r
+        },\r
+        type: "GET",\r
+        url: "https://api.github.com/users/"+userName,\r
+        async:false,\r
+        dataType:'json',\r
+        success: function(success)\r
+        {\r
+               signedOff = success.name;\r
+        }\r
+    });\r
+}\r
+\r
+function addSignedOff(){\r
+       $.when(getUserInfo()).done(function(){\r
+               $.when(getSignedOff()).done(function(){\r
+                       $('#commitMessage').val($('#commitMessage').val() + "\n\nSigned-off-by: "+signedOff+" <"+userEmail+">");\r
+               });\r
+       });\r
+}\r
+\r
+function removeSignedOff(){\r
+       $('#commitMessage').val(commitMessage); \r
+}\r
index 53b0132..d876514 100644 (file)
@@ -769,7 +769,7 @@ fieldset {
        border: 1px solid #CCC;\r
 }\r
 \r
-#lbloginGit, #lbpasswordGit, #lbrepositoryGit, #lbbranchGit{\r
+#lbloginGit, #lbpasswordGit, #lbrepositoryGit, #lbbranchGit, #lblSignedOff{\r
        color: black;\r
        font-style: normal;\r
        margin-left: 10px;\r
@@ -816,7 +816,7 @@ fieldset {
        text-align: center;\r
 }\r
 \r
-#passwordGit, #loginGit, #repositoryGit, #branchGit {\r
+#passwordGit, #loginGit, #repositoryGit, #branchGit, #signedOff{\r
        height:30px; \r
        width: 200px;\r
 }\r
index 52db95c..6e685b6 100644 (file)
@@ -262,7 +262,7 @@ class DocContext
                end
 
                self.filename = "fullindex"
-               action_bar = "<header><nav class='main'><ul>{custom_items}<li><a href='./index.html'>Overview</a></li><li class=\"current\">Full Index</li><li><a href=\"help.html\">Help</a></li><li id=\"liGitHub\" class=\"\"><a id=\"logGitHub\" class=\"btn\" ><img id=\"imgGitHub\" src=\"resources/icons/github-icon.png\" /></a><div class=\"popover bottom\"><div class=\"arrow\"></div><div class=\"githubTitle\"><h3>Github Sign In</h3></div><div><label id=\"lbloginGit\" for=\"login\">Username</label><input id=\"loginGit\" type=\"text\" name=\"login\"><label id=\"logginMessage\" >Hello <a id=\"githubAccount\" ><strong id=\"nickName\"></strong></a></label></div><div><label id=\"lbpasswordGit\" for=\"password\">Password</label><input id=\"passwordGit\" type=\"password\" name=\"password\"><div id=\"divGitHubRepoDisplay\"><label id=\"lbRepoDisplay\">Repository: </label><strong><label id=\"githubRepoDisplay\"></label></strong></div></div><div><label id=\"lbrepositoryGit\" for=\"repository\">Repository</label><input id=\"repositoryGit\" type=\"text\" name=\"repository\"><div id=\"listBranches\"><label id=\"lbBranches\">Branch </label><select id=\"dropBranches\" name=\"dropBranches\" tabindex=\"1\" class=\"dropdown\"></select></div></div><div><label id=\"lbbranchGit\" for=\"branch\">Branch</label><input id=\"branchGit\" type=\"text\" name=\"branch\"></div><div id=\"divlogIn\"><a id=\"signIn\" >Sign In</a></div></div></li></ul></nav></header>\n"
+               action_bar = "<header><nav class='main'><ul>{custom_items}<li><a href='./index.html'>Overview</a></li><li class=\"current\">Full Index</li><li><a href=\"help.html\">Help</a></li><li id=\"liGitHub\" class=\"\"><a id=\"logGitHub\" class=\"btn\" ><img id=\"imgGitHub\" src=\"resources/icons/github-icon.png\" /></a><div class=\"popover bottom\"><div class=\"arrow\"></div><div class=\"githubTitle\"><h3>Github Sign In</h3></div><div><label id=\"lbloginGit\" for=\"login\">Username</label><input id=\"loginGit\" type=\"text\" name=\"login\"><label id=\"logginMessage\" >Hello <a id=\"githubAccount\" ><strong id=\"nickName\"></strong></a></label></div><div><label id=\"lbpasswordGit\" for=\"password\">Password</label><input id=\"passwordGit\" type=\"password\" name=\"password\"><div id=\"divGitHubRepoDisplay\"><label id=\"lbRepoDisplay\">Repository: </label><strong><label id=\"githubRepoDisplay\"></label></strong></div></div><div><label id=\"lbrepositoryGit\" for=\"repository\">Repository</label><input id=\"repositoryGit\" type=\"text\" name=\"repository\"><div id=\"listBranches\"><label id=\"lbBranches\">Branch </label><select id=\"dropBranches\" name=\"dropBranches\" tabindex=\"1\" class=\"dropdown\"></select></div></div><div><label id=\"lbbranchGit\" for=\"branch\">Branch</label><input id=\"branchGit\" type=\"text\" name=\"branch\"></div></div> <div id=\"divlogIn\"><a id=\"signIn\" >Sign In</a></div></div></li></ul></nav></header>\n"
                clear
                addGithubInformation
                addCommitForm
@@ -291,7 +291,7 @@ class DocContext
 
        # Add all tags for the commit form
        fun addCommitForm do    
-               add("<div id=\"modal\"><form class=\"clearfix\"><div><label for=\"commitMessage\">Commit message</label><input id=\"commitMessage\" type=\"text\" name=\"commitMessage\"></div><div class=\"social-signup login\"><form ></form></div><form id=\"github-connect-form\" class=\"connect-button\" name=\"login\"><a id=\"loginAction\" title=\"Commit on GitHub\"><img src=\"resources/icons/github-icon.png\"><span id=\"btnGitHub\"><strong>Commit</strong></span></a></form></form></div><div id=\"modalQuestion\"><label id=\"txtQuestion\"></label><br><a id=\"btnCreateBranch\">Yes</a><a id=\"btnCancelBranch\">No</a></div><div id=\"waitCommit\"></div>\n\n")
+               add("<div id=\"modal\"><form class=\"clearfix\"><div><label for=\"commitMessage\">Commit message</label><textarea id=\"commitMessage\" rows=\"1\" cols=\"76\" name=\"commitMessage\" ></textarea><input id=\"chkSignedOff\" type=\"checkbox\" name=\"chkSignedOff\">Signed-Off </div><div class=\"social-signup login\"><form ></form></div><form id=\"github-connect-form\" class=\"connect-button\" name=\"login\"><a id=\"loginAction\" title=\"Commit on GitHub\"><img src=\"resources/icons/github-icon.png\"><span id=\"btnGitHub\"><strong>Commit</strong></span></a></form></form></div><div id=\"modalQuestion\"><label id=\"txtQuestion\"></label><br><a id=\"btnCreateBranch\">Yes</a><a id=\"btnCancelBranch\">No</a></div><div id=\"waitCommit\"></div>\n\n")
        end
 
        # Add a (source) link fo a given location