]> src.twobees.de Git - tampermonkeyscripts.git/blobdiff - AzureDevOpsCommentEnhancer.user.js
fix regexp for later attached changesetst
[tampermonkeyscripts.git] / AzureDevOpsCommentEnhancer.user.js
index 95b4094c253d6c040f85ca188cb458203ca40402..d0967d4b9b7805b0a53616a625615280613a06a9 100755 (executable)
@@ -1,22 +1,26 @@
 // ==UserScript==
 // @name         Fix ADS checkin comments in discussion and history of workitems
-// @version      0.8
+// @version      0.11
 // @author       Tobias Sachs
 //  ... in @match replace "ads" with the url of you Azure DevOps Server
 // @match        https://ads/*
-// @updateURL    https://github.com/tsheba/tampermonkeyscripts/raw/master/AzureDevOpsCommentEnhancer.user.js
-// @downloadURL  https://github.com/tsheba/tampermonkeyscripts/raw/master/AzureDevOpsCommentEnhancer.user.js
+// @updateURL    https://src.twobees.de/?p=tampermonkeyscripts.git;a=blob_plain;f=AzureDevOpsCommentEnhancer.user.js;hb=HEAD
+// @downloadURL  https://src.twobees.de/?p=tampermonkeyscripts.git;a=blob_plain;f=AzureDevOpsCommentEnhancer.user.js;hb=HEAD
 // @grant        none
 // @description
 // ==/UserScript==
 
-// 0.8: fix typos/formatting
-// 0.7: fix work item tampering
-// 0.6: Add link to Changeset in diff view
+// 0.11: fix regexp for later changesets attached.
+// 0.10: #Bugnumber to links, highlight comments for customors in checkins
+// 0.09: update download/update URLs
+// 0.08: fix typos/formatting
+// 0.07: fix work item tampering
+// 0.06: Add link to Changeset in diff view
 
+/* jshint esversion:6 */
 (function() {
     'use strict';
-    let timerId = undefined;
+    let timerId;
 
     let fixWorkitems = () => {
         let found = document.getElementsByClassName("comment-content");
@@ -27,7 +31,7 @@
 
         console.debug("observe...");
     };
-    
+
     let fixCommentContents = (items) => {
         if (items === null || items === undefined || items.length === 0) {
             return;
             let el = items[i];
             let html = el.innerHTML;
             if (html.startsWith("Associated")) {
-                html = html.replace(/(Associated with changeset )(\d*):/, "<b>$1<a href='/HeBa/Entwicklung/_versionControl/changeset/$2'>$2</a></b>:<br />");
-                el.innerHTML = html.replace(/\n/gi, "<br />");
+                html = html.replace(/(Associated with changeset )(\d*)([:.])/,
+                    "<b>$1<a href='/HeBa/Entwicklung/_versionControl/changeset/$2'>$2</a></b>$3<br />");
+                html = html.replace(/#(\d+)/g, "<a href='/HeBa/Entwicklung/_versionControl/changeset/$1'>#$1</a>");
+                html = html.replace(/\n/gi, "<br />");
+                html = html.replace(/(@@CUST.*)/s, "<br><span style=\"color: green; font-style:italic;\">$1</span>");
+                el.innerHTML = html;
             }
         }
     };
         if (!found) {
             return;
         }
-        
+
         // if opened from email notification, it is the first span in div "changeset-version"
         elToFix = found.querySelector("span");
-    
+
         if (!elToFix) {
             return;
         }
 
-        elToFix.innerHTML = elToFix.innerHTML.replace(/(Changeset )(\d+)/, "$1<a href='/HeBa/Entwicklung/_versionControl/changeset/$2'>$2</a>");
-    }
+        elToFix.innerHTML = elToFix.innerHTML
+            .replace(/(Changeset )(\d+)/,
+                "$1<a href='/HeBa/Entwicklung/_versionControl/changeset/$2'>$2</a>");
+    };
 
     let fixit = () => {
         if (timerId) {
@@ -78,7 +88,7 @@
             }
             else {
                 // if (url.includes("/_workitems")){
-                // does not work since workitems are often shown in 
+                // does not work since workitems are often shown in
                 // dialogs on random pages
                 fixWorkitems();
             }
     fixit();
 
 })();
+