您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Auxiliar Testes e Debugs
- // ==UserScript==
- // @name Cobmais - Util
- // @namespace http://app.cobmais.com.br/
- // @version 1.0.14
- // @description Auxiliar Testes e Debugs
- // @author Rodrigo Mescua
- // @match http*://*.cobmais.com.br/*/telecobranca*
- // @match http*://localhost:*/telecobranca*
- // @match http*://172.36.1.4/*/telecobranca*
- // @match http*://192.36.1.4/*/telecobranca*
- // @match http*://app-hml-cobmais.brazilsouth.cloudapp.azure.com/*/telecobranca*
- // @icon https://raw.githubusercontent.com/romesc/cobmais-utils/master/favicon.ico
- // @require http://code.jquery.com/jquery-3.4.1.min.js
- // @require https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js
- // @grant GM_addStyle
- // @grant GM_setClipboard
- // ==/UserScript==
- this.$ = this.jQuery = jQuery.noConflict(true) // eslint-disable-line no-undef
- waitForKeyElements ("div.ev-item-inclusao", evcFunction);
- waitForKeyElements ("div.ct-item", conFunction);
- waitForKeyElements (".ct-sel-neg", negFunction);
- waitForKeyElements ("span.btneventofinal", testeCopy);
- waitForKeyElements ("span.btncontratofinal", testeConCopy);
- waitForKeyElements ("span.btnnegociacaofinal", testeNegCopy);
- function evcFunction (jNode) {
- var eventos = document.querySelectorAll('div.ev-item-inclusao');
- var teste = '';
- for ( var i = 0; i < eventos.length; i++ ) {
- if (eventos[i].style.display === "none") {
- continue;
- }
- var idEvento = eventos[i].parentElement.parentElement.id.replace('ev-item-','');
- teste = ' <span id="btnEv' + idEvento + '" title="Clique para Copiar o ID Evento" class="btn btnevento badge badge-primary" style="cursor: pointer;" data-clipboard-text="' + idEvento + '">' + idEvento + '</span>';
- if (i == eventos.length - 1) {
- teste = ' <span id="btnEv' + idEvento + '" title="Clique para Copiar o ID Evento" class="btn btnevento btneventofinal badge badge-primary" style="cursor: pointer;" data-clipboard-text="' + idEvento + '">' + idEvento + '</span>';
- }
- if (eventos[i].innerHTML.indexOf(teste) == -1){
- eventos[i].insertAdjacentHTML('beforeEnd',teste);
- }
- }
- }
- function conFunction (jNode) {
- var contratos = document.querySelectorAll('span.ct-item-clique');
- var teste = '';
- for ( var j = 0; j < contratos.length; j++ ) {
- var idContrato = contratos[j].parentElement.dataset.ctt;
- teste = '\t<span id="btnCt' + idContrato + '" title="Clique para Copiar o ID Contrato" class="btn btncontrato badge badge-primary" style="cursor: pointer;" data-clipboard-text="' + idContrato + '">' + idContrato + '</span>';
- if (j == contratos.length - 1) {
- teste = '\t<span id="btnCt' + idContrato + '" title="Clique para Copiar o ID Contrato" class="btn btncontrato btncontratofinal badge badge-primary" style="cursor: pointer;" data-clipboard-text="' + idContrato + '">' + idContrato + '</span>';
- }
- if (contratos[j].innerHTML.indexOf(teste) == -1){
- contratos[j].innerHTML = contratos[j].innerHTML.concat(teste);
- }
- }
- }
- function testeCopy (teste) {
- var btns1 = document.querySelectorAll('span.btnevento');
- var clipboard = new ClipboardJS(btns1);
- clipboard.on('success', function(e) {
- toastr.success('ID Evento copiado para a Área de Transferência');
- });
- }
- function testeConCopy (teste) {
- var btns2 = document.querySelectorAll('span.btncontrato');
- var clipboard = new ClipboardJS(btns2);
- clipboard.on('success', function(e) {
- toastr.success('ID Contrato copiado para a Área de Transferência');
- });
- }
- function negFunction (jNode) {
- var negs = document.querySelectorAll('.ct-neg');
- var teste = '';
- for (var j = 0; j < negs.length; j++ ) {
- if (negs[j].lastElementChild.classList.contains("btnnegociacao")){
- negs[j].lastElementChild.remove();
- }
- var idNeg = negs[j].lastElementChild.firstElementChild.id.replace('ppvNegociacao', '');
- teste = '\t<span id="btnCopiarNeg' + idNeg + '" title="Clique para copiar o ID da Negociação selecionada" class="btn btnnegociacao badge badge-primary" style="cursor: pointer;">Copiar ID Neg</span>';
- if (negs[j].innerHTML.indexOf(teste) == -1){
- negs[j].insertAdjacentHTML('beforeEnd', teste);
- }
- document.getElementById("btnCopiarNeg" + idNeg).addEventListener (
- "click", testeNegCopy, false
- );
- }
- }
- function testeNegCopy (teste) {
- var $combo = document.getElementById("selNegociacao" + teste.target.id.replace('btnCopiarNeg',''));
- GM_setClipboard($combo.value);
- toastr.success('ID Negociação copiado para a Área de Transferência');
- }
- /*--- waitForKeyElements(): A utility function, for Greasemonkey scripts,
- that detects and handles AJAXed content.
- Usage example:
- waitForKeyElements (
- "div.comments"
- , commentCallbackFunction
- );
- //--- Page-specific function to do what we want when the node is found.
- function commentCallbackFunction (jNode) {
- jNode.text ("This comment changed by waitForKeyElements().");
- }
- IMPORTANT: This function requires your script to have loaded jQuery.
- */
- function waitForKeyElements (selectorTxt, actionFunction, bWaitOnce, iframeSelector) {
- var targetNodes, btargetsFound;
- if (typeof iframeSelector == "undefined") {
- targetNodes = $(selectorTxt);
- }
- else {
- targetNodes = $(iframeSelector).contents().find(selectorTxt);
- }
- if (targetNodes && targetNodes.length > 0) {
- btargetsFound = true;
- /*--- Found target node(s). Go through each and act if they
- are new.
- */
- targetNodes.each ( function () {
- var jThis = $(this);
- var alreadyFound = jThis.data ('alreadyFound') || false;
- if (!alreadyFound) {
- //--- Call the payload function.
- var cancelFound = actionFunction (jThis);
- if (cancelFound)
- btargetsFound = false;
- else
- jThis.data ('alreadyFound', true);
- }
- } );
- }
- else {
- btargetsFound = false;
- }
- //--- Get the timer-control variable for this selector.
- var controlObj = waitForKeyElements.controlObj || {};
- var controlKey = selectorTxt.replace (/[^\w]/g, "_");
- var timeControl = controlObj [controlKey];
- //--- Now set or clear the timer as appropriate.
- if (btargetsFound && bWaitOnce && timeControl) {
- //--- The only condition where we need to clear the timer.
- clearInterval (timeControl);
- delete controlObj [controlKey]
- }
- else {
- //--- Set a timer, if needed.
- if ( ! timeControl) {
- timeControl = setInterval ( function () {
- waitForKeyElements ( selectorTxt,
- actionFunction,
- bWaitOnce,
- iframeSelector
- );
- },
- 300
- );
- controlObj [controlKey] = timeControl;
- }
- }
- waitForKeyElements.controlObj = controlObj;
- }