X-Git-Url: https://src.twobees.de/?p=tampermonkeyscripts.git;a=blobdiff_plain;f=AzureDevOpsCommentEnhancer.user.js;h=b42e8bec2a74c500f46c308e55514cb6f66595ea;hp=053be6c6d93e096b12527b5cdbd61221b43e00ba;hb=HEAD;hpb=a14bcf6ae3e9dfec31ec396ae57677f848edebf9 diff --git a/AzureDevOpsCommentEnhancer.user.js b/AzureDevOpsCommentEnhancer.user.js old mode 100755 new mode 100644 index 053be6c..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.11 +// @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 = () => {