AO3: [Wrangling] Edit Tag page cleanup

Removes descriptions and some fields from Edit Tag pages to avoid wrangling accidents

Versão de: 23/06/2022. Veja: a última versão.

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

// ==UserScript==
// @name         AO3: [Wrangling] Edit Tag page cleanup
// @namespace    https://greatest.deepsurf.us/en/users/906106-escctrl
// @description  Removes descriptions and some fields from Edit Tag pages to avoid wrangling accidents
// @author       escctrl
// @version      3.0
// @match        *://*.archiveofourown.org/tags/*/edit
// @require      https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js
// @license      MIT
// ==/UserScript==

(function($) {
    'use strict';

    // remove all descriptions to save space. experienced wranglers know them by heart
    $('form#edit_tag dl dd p').not('.actions').hide();

    // what's the status of my tag?
    const canonical = ($('input#tag_canonical').attr("checked") == "checked") ? true : false;
    const unwrangleable = ($('input#tag_unwrangleable').attr("checked") == "checked") ? true : false;
    const synonym = ($('input#tag_syn_string_autocomplete').parent().prev("li.added").length == 1) ? true : false;

    // if the tag is two things at once, something was already incorrect, and we'd rather display all fields again to allow fixing it
    if (canonical && unwrangleable || canonical && synonym || synonym && unwrangleable) { return false; }

    // if the tag is not canonical, remove the metatag field
    if (!canonical) {
        $('dd[title="MetaTags"]').hide();
        $('dd[title="MetaTags"]').prev().hide();
    }

    // if the tag is a canonical or synonym, remove the unwrangleable button
    if (canonical || synonym) {
        $('input#tag_unwrangleable').parent().hide();
        $('input#tag_unwrangleable').parent().prev().hide();

        // and also push up the Edit Canonical button so it uses less space
        $('input#tag_syn_string').siblings('p.actions').css('margin-top', '-3em');
    }

    // if the tag is a synonym or unwrangleable, remove the canonical button
    if (synonym || unwrangleable) {
        $('input#tag_canonical').parent().hide();
        $('input#tag_canonical').parent().prev().hide();
    }

    // if the tag is unwrangleable, also remove the synonym field
    if (unwrangleable) {
        $('input#tag_syn_string').parent().hide();
        $('input#tag_syn_string').parent().prev().hide();
    }

    // remove the Add Subtags and Add Synonyms fields (only shown on canonicals)
    if (canonical) {
        var add_sub = $('dt').filter(function() {
            return $(this).text() == "SubTags";
        });
        if (add_sub.next().children('#child_SubTag_associations_to_remove_checkboxes').length == 0) {
            add_sub.hide();
            add_sub.next().hide();
        }
        else {
            add_sub.next().children('div[title="add tags"],h5.heading').hide();
        }

        var add_syn = $('dt').filter(function() {
            return $(this).text() == "Synonyms";
        });
        if (add_syn.next().children('#child_Merger_associations_to_remove_checkboxes').length == 0) {
            add_syn.hide();
            add_syn.next().hide();
        }
        else {
            add_syn.next().children('div[title="add tags"],h5.heading').hide();
        }

        // also disable the canonical checkbox if there is a metatag (to avoid the filter bug)
        if ($('#parent_MetaTag_associations_to_remove_checkboxes').length == 1) {
            $('input#tag_canonical').attr("disabled", "disabled");
            $('input[name="tag[canonical]"]').attr("disabled", "disabled");
        }
    }

})(jQuery);