Copy Address Information Buttons

For Pestpac, adds buttons at the bottom of the tables to copy their information on a specific website

Versión del día 11/02/2025. Echa un vistazo a la versión más reciente.

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Necesitará instalar una extensión como Tampermonkey para instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==UserScript==
// @name         Copy Address Information Buttons
// @version      1.94
// @description  For Pestpac, adds buttons at the bottom of the tables to copy their information on a specific website
// @author       Jamie Cruz
// @match        https://app.pestpac.com/location/*
// @grant        none
// @license MIT
// @namespace https://greasyfork.org/users/1433767
// ==/UserScript==

(function() {
    'use strict';

    function addCopyButton(tableId, buttonText, color) {
        var table = document.getElementById(tableId);
        if (table) {
            // Create and style the button
            var button = document.createElement("button");
            button.innerHTML = buttonText;
            button.style.margin = "10px";
            button.style.padding = "10px";
            button.style.backgroundColor = color;
            button.style.color = "white";
            button.style.border = "none";
            button.style.borderRadius = "5px";
            button.style.cursor = "pointer";
            button.style.display = "flex";
            button.style.justifyContent = "center";
            button.style.alignItems = "center";

            // Create a new table row and cell
            var newRow = table.insertRow(-1); // Insert row at the end of the table
            var newCell = newRow.insertCell(0);
            newCell.colSpan = table.rows[0].cells.length; // Make the cell span across all columns

            // Insert the button into the new cell
            newCell.appendChild(button);

            // Function to copy table data
            button.addEventListener("click", function() {
                var textContent = table.innerText;

                // Remove unwanted words and extra line breaks
                var cleanedText = textContent.replace(/EMAIL|Map View|Street View|PHONE|Copy Location Address|/g, "").replace(/\n\s*\n/g, "\n").trim();

                // Copy cleaned text to clipboard
                navigator.clipboard.writeText(cleanedText).then(function() {
                    alert("Address copied to clipboard!");
                }).catch(function(err) {
                    console.error("Failed to copy table data.", err);
                });
            });
        }
    }

    window.onload = function() {
        addCopyButton("location-address-block", "Copy Location Address", "#1565C0");
        addCopyButton("billto-address-block", "Copy Billto Address", "#1565C0");
    };
})();