X-Git-Url: https://src.twobees.de/?p=tampermonkeyscripts.git;a=blobdiff_plain;f=AzureDevOpsCommentEnhancer.user.js;h=0588d1674824ecca3e9af1ec57c56c1e806580da;hp=c7f60453493c3a5d0db5b9ec39c9f6a1138ba50a;hb=HEAD;hpb=63e6bac9581fb9ff0cb598ca588e709b29599add
diff --git a/AzureDevOpsCommentEnhancer.user.js b/AzureDevOpsCommentEnhancer.user.js
old mode 100755
new mode 100644
index c7f6045..b42e8be
--- a/AzureDevOpsCommentEnhancer.user.js
+++ b/AzureDevOpsCommentEnhancer.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name Fix ADS checkin comments in discussion and history of workitems
-// @version 0.10
+// @version 0.18
// @author Tobias Sachs
// ... in @match replace "ads" with the url of you Azure DevOps Server
// @match https://ads/*
@@ -10,11 +10,19 @@
// @description
// ==/UserScript==
-// 0.11: #fix comments in Bugs opened via mention email notification
+// 0.18: make '@@DEPENDENCIES' blue
+// 0.17: search caseless for '@@CUST'
+// 0.16: do not modify a comment more than once
+// 0.15: fix links to work items found in commitmessages (e.g. #1235)
+// 0.14: also check html property of comments
+// 0.13: Allow to manually insert changeset comments, which where not associated with the item during checking.
+// Just copy changecomment into the commentsection and prefix with "Associated with changeset CHANGESET_NUMBER:"
+// 0.12: also fix "Resolved with changeset" comments
+// 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.09: updateq download/update URLs
+// 0.08: fix typregexp for later changesets attachedos/formatting
+// 0.07: fix work itlsem tampering
// 0.06: Add link to Changeset in diff view
/* jshint esversion:6 */
@@ -23,37 +31,39 @@
let timerId;
let fixWorkitems = () => {
- console.debug("fixWorkitems...");
let found = document.getElementsByClassName("comment-content");
- if (fixCommentContents(found)) return;
+ fixCommentContents(found);
found = document.getElementsByClassName("history-item-comment");
- if (fixCommentContents(found)) return;
+ fixCommentContents(found);
- found = document.getElementsByClassName("comments-section");
- if (fixCommentContents(found)) return;
-
- console.debug("... notihing found to fix..");
+ console.debug("observe...");
};
+ let checkRegex = /^.*(Associated|Resolved).*[:.]/;
let fixCommentContents = (items) => {
if (items === null || items === undefined || items.length === 0) {
- return false;
+ return;
}
console.info("fixing '" + items.length +"' comments.");
for (var i = 0; i < items.length; i++) {
let el = items[i];
+ if(el.wasTampered) { continue; }
+
let html = el.innerHTML;
- if (html.startsWith("Associated")) {
- html = html.replace(/(Associated with changeset )(\d*):/,
- "$1$2:
");
- html = html.replace(/#(\d+)/g, "#$1");
+ if ( checkRegex.test(html)
+ || (el.textContext && checkRegex.test(el.textContext))
+ ) {
+ html = html.replace(/((Associated|Resolved) with changeset )(\d*)([:.])/,
+ "$1$3$4
");
+ html = html.replace(/#(\d+)/g, "#$1");
html = html.replace(/\n/gi, "
");
- html = html.replace(/(@@CUST.*)/s, "
$1");
+ html = html.replace(/(@@CUST.*)/is, "
$1");
+ html = html.replace(/(@@Dependencies.*)/is, "$1");
el.innerHTML = html;
+ el.wasTampered = "ð";
}
}
- reurn true;
};
let fixVersionControl = () => {