X-Git-Url: https://src.twobees.de/?a=blobdiff_plain;f=AzureDevOpsCommentEnhancer.user.js;h=155ced469cda49f148cca2ba915d5aa733663fd0;hb=ba605ca19e2d5a1b5380dce30e2b8551c05bd776;hp=8d06776aed9abba744a8b0121f24e1d77fdf1a3b;hpb=df78aa32786a3cc513a179fe136714fe8d5c3d97;p=tampermonkeyscripts.git
diff --git a/AzureDevOpsCommentEnhancer.user.js b/AzureDevOpsCommentEnhancer.user.js
old mode 100755
new mode 100644
index 8d06776..155ced4
--- 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.9
+// @version 0.13
// @author Tobias Sachs
// ... in @match replace "ads" with the url of you Azure DevOps Server
// @match https://ads/*
@@ -10,14 +10,20 @@
// @description
// ==/UserScript==
-// 0.9: update download/update URLs
-// 0.8: fix typos/formatting
-// 0.7: fix work item tampering
-// 0.6: Add link to Changeset in diff view
-
+// 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: 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 */
(function() {
'use strict';
- let timerId = undefined;
+ let timerId;
let fixWorkitems = () => {
let found = document.getElementsByClassName("comment-content");
@@ -29,6 +35,7 @@
console.debug("observe...");
};
+ let checkRegex = /^.*(Associated|Resolved).*[:.]/;
let fixCommentContents = (items) => {
if (items === null || items === undefined || items.length === 0) {
return;
@@ -37,9 +44,15 @@
for (var i = 0; i < items.length; i++) {
let el = items[i];
let html = el.innerHTML;
- if (html.startsWith("Associated")) {
- html = html.replace(/(Associated with changeset )(\d*):/, "$1$2:
");
- el.innerHTML = html.replace(/\n/gi, "
");
+
+
+ if (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");
+ el.innerHTML = html;
}
}
};
@@ -58,8 +71,10 @@
return;
}
- elToFix.innerHTML = elToFix.innerHTML.replace(/(Changeset )(\d+)/, "$1$2");
- }
+ elToFix.innerHTML = elToFix.innerHTML
+ .replace(/(Changeset )(\d+)/,
+ "$1$2");
+ };
let fixit = () => {
if (timerId) {
@@ -79,7 +94,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();
}
@@ -97,3 +112,4 @@
fixit();
})();
+