Last active
June 20, 2024 02:09
-
-
Save shameemreza/5a5d8ba93f13551e5d647886b071ad7b to your computer and use it in GitHub Desktop.
Woo Forum Highlighter for .org
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Woo Forum Highlighter for .org | |
// @namespace https://woocommerce.com/ | |
// @version 1.0.28 | |
// @description Highlight threads where an a11n was the last to reply. | |
// @match https://wordpress.org/support/plugin/* | |
// @match https://wordpress.org/support/theme/* | |
// @match https://wordpress.org/support/users/* | |
// @match https://*.wordpress.org/plugins/* | |
// @downloadURL https://github.com/Automattic/support-helper-tools/raw/main/woocommerce-tools/wcforumattic.user.js | |
// @updateURL https://github.com/Automattic/support-helper-tools/raw/main/woocommerce-tools/wcforumattic.user.js | |
// @grant none | |
// @require https://gist.githubusercontent.com/klimeryk/6eca2fff0120104a733e6e98ee1026a8/raw/172aeeff7565c933d27165f4781a4f7e7d186c1a/trackUsage | |
// ==/UserScript== | |
trackUsage( 'wcforumattic' ); | |
/* | |
This little userscript is useful when working in the WordPress.org support forums. | |
It restyles the main archive views in all the forums, like here: https://wordpress.org/support/plugin/woocommerce | |
The view will show threads as highlighted where other team members were the last people to reply. | |
The view will also show which topics have been set to resolved by a forum user or a team member | |
It's useful when trying to skim through threads and quickly find out where you need to reply or what can be checked and possibly resolved. | |
The format is this: | |
'.bbp-author-name:contains("how your name appears on WordPress.org")', // your first name - your @handle | |
e.g | |
'.bbp-author-name:contains("ABC - a11n")', // Abc - @abc123 | |
*/ | |
(function() { | |
'use strict'; | |
var atari = new Array( // Atari | |
'.bbp-author-name:contains("wpnomad")', // Ashish - @wpnomad | |
'.bbp-author-name:contains("B C. a11n")', // Battouly - @battouly | |
'.bbp-author-name:contains("Grigorij S. a11n")', // Grigorij - @grigaswp | |
'.bbp-author-name:contains("Niall")', // Niall - @wpniall | |
'.bbp-author-name:contains("RK")', // Riaan - @riaanknoetze | |
'.bbp-author-name:contains("Rynald0s")', // Rynaldo - @rynald0s | |
'.bbp-author-name:contains("thup90")', // Thu - @thup90 | |
'.bbp-author-name:contains("Tseten D a11n")', // Tseten - @tibetanitech | |
'.bbp-author-name:contains("Paulo P - a11n")', // Paulo P. (HC) - @paulostp | |
); | |
var aurora = new Array( // Aurora | |
'.bbp-author-name:contains("bernattorras")', // Bernat - @bernattorras | |
'.bbp-author-name:contains("Ena P (a11n)")', // Damianne - @drwpcom | |
'.bbp-author-name:contains("EtienneP")', // Etienne - @etiennep | |
'.bbp-author-name:contains("mother.of.code")', // Ines - @iMazed | |
'.bbp-author-name:contains("Laura S")', // Laura - @kgumiho | |
'.bbp-author-name:contains("Luminus")', // Luminus - @luminus | |
'.bbp-author-name:contains("Sunday Ukafia")', // Sunday - @sukafia | |
'.bbp-author-name:contains("Victoria")', // Victoria - @fylgjur | |
'.bbp-author-name:contains("Felipe")', // Felipe - @felipea8c | |
'.bbp-author-name:contains("martynmjones")', // Martyn - @martynmjones | |
'.bbp-author-name:contains("neilmccreadie a11n")', // Neil - @neilmccreadie | |
'.bbp-author-name:contains("Rashed Ripon")', // Rashed Ripon - @rashedripon165 | |
); | |
var cosmos = new Array( // Cosmos | |
'.bbp-author-name:contains("Three Sons")', // Bill - @3sonsdevelopment | |
'.bbp-author-name:contains("D Smith")', // Damien - @dsmithweb | |
'.bbp-author-name:contains("guicmazeredo")', // Gui - @guicmazeredo | |
'.bbp-author-name:contains("crazywickedawesome")', // Ian - @crazywickedawesome | |
'.bbp-author-name:contains("Jesse Pearson")', // Jesse - @jessepearson | |
'.bbp-author-name:contains("Jessica")', // Jessica - @jesscga | |
'.bbp-author-name:contains("John Coy a11n")', // John - @johndcoy | |
'.bbp-author-name:contains("Kateryna K. a11n")', // Kateryna - @katinthehatsite | |
'.bbp-author-name:contains("Linda")', // Linda - @lindamork | |
'.bbp-author-name:contains("Melinda a11n")', // Melinda - @melindahelt | |
'.bbp-author-name:contains(" Mike W ")', // Mike - @nixiack | |
'.bbp-author-name:contains("Missy a11n")', // Missy - @m155y5 | |
'.bbp-author-name:contains("nathvi V. a11n")', // Nathalya - @nathalyamvides | |
'.bbp-author-name:contains("Phillip C.")', // Phillip - @phillipcornwell | |
'.bbp-author-name:contains("Ross")', // Ross - @rossviviano | |
'.bbp-author-name:contains("Summer M.a11n")', // Shruti - @shrutwpcom | |
); | |
var spacenoodle = new Array( // Space Noodle | |
'.bbp-author-name:contains("Amanda")', // Amanda - @amandasjackson | |
'.bbp-author-name:contains("Con Schneider")', // Con - @conschneider | |
'.bbp-author-name:contains("Erica Kuschel")', // Erica - @piratepenpen | |
'.bbp-author-name:contains("Fernando")', // Fernando - @fhaps | |
'.bbp-author-name:contains("tijosh")', // Josh - @tijosh | |
'.bbp-author-name:contains("laceyrod")', // Lacey - @laceyrod | |
'.bbp-author-name:contains("mcampal")', // Miguel - @mcampal | |
'.bbp-author-name:contains("ryanr14")', // Ryan - @ryanr14 | |
'.bbp-author-name:contains("Senff - a11n")', // Senff - @senff | |
'.bbp-author-name:contains("Zach W")', // Zach - @dynamiczach | |
'.bbp-author-name:contains("Kwesi a11n")', // Kwesi - @kvvsi | |
'.bbp-author-name:contains("Brad P. a11n")', // Brad - @snaacks | |
'.bbp-author-name:contains("Janine - a11n")', // Janine - @janinebajnauth | |
); | |
var supernova = new Array( // Supernova | |
'.bbp-author-name:contains(“Abhi”)', // Abhi - @theabhig | |
'.bbp-author-name:contains("abwaita")', // Abraham Waita (HC) - @Abraham Waita | |
'.bbp-author-name:contains(“Cara”)', // Des - @dcka | |
'.bbp-author-name:contains("Hannah S. a11n")', // Hannah - @fernashes | |
'.bbp-author-name:contains("Remi Corson")', // Rémi - @corsonr | |
'.bbp-author-name:contains(“rahul020691”)', // Rahul (Wootation) - @rahul020691 | |
'.bbp-author-name:contains(“Saru”)', // Saru - @simplysaru | |
'.bbp-author-name:contains("Shohan Hossain Nabil")', // Shohan - @sohanhossain | |
'.bbp-author-name:contains("Stuart Duff")', // Stu - @stuartduff | |
'.bbp-author-name:contains("EastOfWest")', // Yaku - @eastofwest | |
); | |
var sojourner = new Array( // Sojourner | |
'.bbp-author-name:contains("Aashik P. a11n")', // Aashik - @aashik | |
'.bbp-author-name:contains("Abhinav")', // Abhinav - @abhinava11n | |
'.bbp-author-name:contains(“Sol”)', // Sol - @solstudioim | |
); | |
var synchrony = new Array( // Synchrony | |
'.bbp-author-name:contains("Adam a11n")', // Adam - @adamkheckler | |
'.bbp-author-name:contains("Austin M")', // Austin - @apmwebdev | |
'.bbp-author-name:contains("Dustin Hartzler")', // Dustin - @dustinhartzler | |
'.bbp-author-name:contains("Ed Thomas - a11n")', // Ed (Wootation) - @edequalsawesome (@edthomas on WP.org) | |
'.bbp-author-name:contains("Jess L")', // Jess - @jlundie | |
'.bbp-author-name:contains("Joey - a11n")', // Joey - @joeyrr90 | |
'.bbp-author-name:contains("rwaynick")', // Richard - @rwaynick | |
'.bbp-author-name:contains("fevered")', // Sarah - @sarahrennick | |
'.bbp-author-name:contains("Shaun Kuschel")', // Shaun - @s10l | |
'.bbp-author-name:contains("stephjacq")', // Stephanie - @stephjacq | |
); | |
var tatooine = new Array( // Tatooine | |
'.bbp-author-name:contains("AW a11n")', // Andrew - @slash1andy | |
'.bbp-author-name:contains("ameliabriscoe")', // Amelia - @ameliabriscoe | |
'.bbp-author-name:contains("ash1eygrace")', // Ashley - @ash1eygrace | |
'.bbp-author-name:contains("brianmitchtay")', // Brian - @Brianmitchtay | |
'.bbp-author-name:contains("kellymetal")', // Kelly - @kellymetal | |
'.bbp-author-name:contains("Mike M. a11n")', // Mike - @mikedmoore | |
'.bbp-author-name:contains("mouli.a11n")', // Mouli - @mouli | |
'.bbp-author-name:contains("Orry Fernandes")', // Orhan - @orhanf | |
'.bbp-author-name:contains("Praveen")', // Praveen - @spraveenitpro | |
'.bbp-author-name:contains("woosteve")', // Steve - @woosteve | |
'.bbp-author-name:contains("wbrubaker")', // Will - @wbrubaker | |
'.bbp-author-name:contains("Yuki K. a11n")', // Yuki - @yukikatayama | |
'.bbp-author-name:contains("danielinhou")', // Danielinhou - @danielinhou | |
'.bbp-author-name:contains("lionel.a11n")', // Lionel - @lioneldaniel | |
'.bbp-author-name:contains("nicw.a11n")', // Nic - @nicdwilson | |
'.bbp-author-name:contains("selectedselections")', // Maddie - @selectedselections | |
'.bbp-author-name:contains("darcie - a11n")', // Darcie - @darciemg | |
); | |
var divlead = new Array ( // Div lead | |
'.bbp-author-name:contains("Job")', // Job - @jobthomas | |
); | |
var other = new Array( // Not Woo HEs - devs, rotators, MailPoet, etc | |
'.bbp-author-name:contains("a11n")', // general check for a11n in the name, this should catch any user with a11n in their screenname | |
'.bbp-author-name:contains("Jeff Stieler")', // Jeff - @ | |
'.bbp-author-name:contains("royho")', // Roy - @ | |
'.bbp-author-name:contains("Mike Jolley")', // Mike - @ | |
'.bbp-author-name:contains("Claudiu Lodromanean")', // Claudiu - @ | |
'.bbp-author-name:contains("Claudio Sanches")', // Claudio - @ | |
'.bbp-author-name:contains("Matty Cohen")', // Matty - @ | |
'.bbp-author-name:contains("Boro Sitnikovski")', // Boro - @ | |
'.bbp-author-name:contains("Akeda Bagus")', // Akeda - @ | |
'.bbp-author-name:contains("Rodrigo Primo")', // Rodrigo - @ | |
'.bbp-author-name:contains("James Koster")', // Jay - @ | |
'.bbp-author-name:contains("Tiago Noronha")', // Tiago - @ | |
'.bbp-author-name:contains("Gerhard Potgieter")', // Gerhard - @ | |
'.bbp-author-name:contains("Marcin")', // Marcin - @ | |
'.bbp-author-name:contains("Paul Dechov")', // Paul - @ | |
'.bbp-author-name:contains("peterfabian1000")', // Peter - @peterfabian1000 | |
'.bbp-author-name:contains("Albert Juhé Lluveras")', // Albert - @ | |
'.bbp-author-name:contains("Justin Shreve")', // Justin - @ | |
'.bbp-author-name:contains("psealock")', // Paul - @ | |
'.bbp-author-name:contains("Kelly Dwan")', // Kelly - @ | |
'.bbp-author-name:contains("warrenholmes")', // Warren - @ | |
'.bbp-author-name:contains("jamosova")', // Julia - @ | |
'.bbp-author-name:contains("Ron Rennick")', // Ron - @ | |
'.bbp-author-name:contains("Michael")', // Mik Kamp - @mikkamp | |
'.bbp-author-name:contains("Thomas Shellberg")', // Thomas - @shellbeezy | |
'.bbp-author-name:contains("thenbrent")', // Brent - @thenbrent | |
'.bbp-author-name:contains("mattdallan")', // Matt - @mattdallan | |
'.bbp-author-name:contains("harriswong")', // Harris @harriswong | |
'.bbp-author-name:contains("frosso1")', // Francesco @frosso1 | |
'.bbp-author-name:contains("lorro")', // Long-time forum volunteer @lorro | |
'.bbp-author-name:contains("Stef")', // Long-time forum volunteer @serafinnyc | |
'.bbp-author-name:contains("dromero")', // WordPress.com HE on MailPoet rotation @dromero20 | |
'.bbp-author-name:contains("Bruna")', // MailPoet HE @bruberries | |
'.bbp-author-name:contains("MailPoet")', // MailPoet WordPress.org account | |
'.bbp-author-name:contains("Niels Lange")', // Niels - @nielslange | |
'.bbp-author-name:contains("danieldanilov")', // Daniel - @danieldanilov | |
'.bbp-author-name:contains("Kyle M")', // Kyle - @kylemcpheron | |
'.bbp-author-name:contains("Siew")', // Siew - @kosiew | |
'.bbp-author-name:contains("zdenys")', // Denys - @zdenys | |
'.bbp-author-name:contains("Siobhan")', // Siobhan - @siobhyb | |
'.bbp-author-name:contains("Rob C.")', // Roberto - @robertocyrino | |
'.bbp-author-name:contains("Kenin")', // Kenin / Millie - @kbassart | |
'.bbp-author-name:contains("Phil")', // Phil - @fullysupportedphil | |
'.bbp-author-name:contains("Mike Straw")', // Mike - @mikestraw | |
'.bbp-author-name:contains("Ojoma E")', // MailPoet HE Ojoma - @geraltrivia | |
'.bbp-author-name:contains("Elvira K")', // MailPoet HE Elvira - @treibalen | |
); | |
var hcs = new Array( // Happiness Contractors, format is WordPress.org username, real name, WordPress.org display name | |
'.bbp-author-name:contains("woo-hc")', // General check for woo-hc in the name, this should catch any Woo Contractor with woo-hc in their screenname | |
'.bbp-author-name:contains("gabrielfuentes")', // Gabriel Fuentes (HC) - @Gabriel Fuentes | |
'.bbp-author-name:contains("Anastasio (woo-hc)")', // Anastasios Manoloudis (HC) - @Anastasio | |
'.bbp-author-name:contains("Shameem R. (woo-hc)")', // Shameem Reza - @shameemreza | |
'.bbp-author-name:contains("ckadenge (woo-hc)")', // Charles Kadenge (HC) - @Charles_Kadenge | |
'.bbp-author-name:contains("carolm29 (woo-hc)")', // Carol Menezes (HC) - @Carol_Menezes | |
'.bbp-author-name:contains("doublezed2 (woo-hc)")', // Zaubair Zaid (HC) - @Zubair_Zahid | |
'.bbp-author-name:contains("omarfpg (woo-hc)")', // Omar Paz (HC) - @OmarFPG | |
); | |
var teams = new Array(atari, aurora, cosmos, spacenoodle, supernova, sojourner, synchrony, tatooine, divlead, other, hcs); | |
var users = [].concat.apply([], teams); | |
// Set background color if a team member was the last to reply. | |
jQuery(users).each(function() { | |
jQuery(this).closest('.topic').addClass('topic-replied-by-support').css({ | |
'background-color': '#d3f0ff' | |
}); | |
}); | |
// Styling for if a topic has been set as resolved by forum user or team member. | |
jQuery('.bbp-topic-title span.resolved').closest('.topic').addClass('topic-resolved').css({ | |
'background-color': '#d3ffce' | |
}); | |
jQuery('.bbp-topic-title span.resolved').text('Resolved').css({ | |
'background-color': '#1fad60', | |
'border-radius': '3px', | |
'color': '#fff', | |
'margin-right': '5px', | |
'padding-right': '5px' | |
}); | |
jQuery('head').append('<style type="text/css">.bbp-topic-title span.resolved::before{color:#fff}</style>'); | |
// Styling for if a topic has been closed by a moderator. | |
jQuery('ul.status-closed').css({ | |
'background-color': '#ffcece' | |
}); | |
jQuery('head').append('<style type="text/css">#bbpress-forums ul.status-closed:not(.sticky) li.bbp-topic-title a.bbp-topic-permalink::before{color:#ad1f1f}</style>'); | |
// Get plugin support forum stats counter details and convert to a percentage resolved result. | |
if (jQuery('.plugin-support .counter-count').length) { | |
var firstnum = jQuery('.plugin-support .counter-count').html().replace('out of', '').replace(/ [0-9]+/, ''); | |
var lastnum = jQuery('.plugin-support .counter-count').html().replace('out of', '').replace(/[0-9]+/, ''); | |
var percentage = (firstnum / lastnum) * 100; | |
// Output html and styling for the forum stats percentage indicator. | |
jQuery('.plugin-support .counter-count').append('<span class="resolved-percentage"></span>').find('span.resolved-percentage').text(Math.round(percentage) || 0); | |
jQuery('.plugin-support .counter-count').append('<style type="text/css">.resolved-percentage::after{content: "% Resolved"}</style>'); | |
jQuery('.plugin-support .counter-count .resolved-percentage').css({ | |
'background-color': '#1fad60', | |
'color': '#fff', | |
'display': 'block', | |
'font-size': '12px', | |
'float': 'right', | |
'padding': '6px 10px', | |
'position': 'relative', | |
'top': '-5px' | |
}); | |
} | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
To install it, follow the steps from HC University, and that should do the trick.