Enhance FollowUpBoss

Adds functional enhancements to the FollowUpBoss user experience. More info [here](https://github.com/HotQuant/UserScripts).

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Enhance FollowUpBoss
// @namespace    http://haiku-systems.com/
// @version      0.1
// @description  Adds functional enhancements to the FollowUpBoss user experience. More info [here](https://github.com/HotQuant/UserScripts).
// @author       Haiku Systems LLC
// @match        https://*.followupboss.com/2/*
// @grant        none
// @require      http://code.jquery.com/jquery-3.3.1.min.js
// ==/UserScript==

(function () {
    'use strict';

    $(document).on('DOMSubtreeModified', function () {
        // Are we already doing this?
        if ($(this).data('hsLock')) return;

        // Lock the process.
        $(this).data('hsLock', true);

        // For each displayed task...
        $('div.Checkbox-content > a').not('.hsMoreInfo').each(function () {
            // Remove task type tags from the title.
            $(this).text($(this).text().replace(/\s?{{.*}}/g, ''));

            // Does the task title contain a url?
            var url = $(this).text().match(/\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})(.*)/);
            if (!url) return;

            // If so, remove any sibling elements...
            $(this).siblings().remove();

            // ... remove the URL from the task title...
            $(this).text($(this).text().replace(/\s?\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})(.*)/, ''));

            // ... and then create a new link to the URL.
            $(this).after(' <a class="hsMoreInfo" href="' + url[0] + '" target="_blank">More Info...</a>');
        });

        // Unlock the process.
        $(this).data('hsLock', false);
    });
})();