您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Дополнительный фильтр на страницах подразделений
// ==UserScript== // @name Virtonomica: фильтр по индикаторам // @namespace virtonomica // @version 1.5 // @description Дополнительный фильтр на страницах подразделений // @include http*://*virtonomic*.ru/*/main/company/view/*/unit_list // @include http*://igra.aup.ru/*/main/company/view/*/unit_list // @include http*://virtonomic*.*/*/main/company/view/* // ==/UserScript== var run = function() { var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window); $ = win.$; function showAll() { $('table > tbody > tr > td.alerts').each(function() { $(this).parent().show(); var nextRow = $(this).parent().next('tr'); if(nextRow.attr("class") == 'unit_comment'){ nextRow.show(); } }); } function containsWord(haystack, needle) { return (" " + haystack + " ").indexOf(" " + needle + " ") !== -1; } function hideByCell(cell, imgSrc){ var notFound = true; var row = cell.parent(); var nextRow = row.next('tr'); var childs = cell.children('img'); if(childs.length > 0){ childs.each(function() { if(notFound){ if($(this).attr('src') !== imgSrc){ row.hide(); if(containsWord(nextRow.attr("class"), 'unit_comment')){ nextRow.hide(); } } else { notFound = false; row.show(); if(containsWord(nextRow.attr("class"), 'unit_comment')){ nextRow.show(); } } } }); } else { row.hide(); if(containsWord(nextRow.attr("class"), 'unit_comment')){ nextRow.hide(); } } return notFound; } function showByImgSrc(imgSrc) { var notFound = true; $('table > tbody > tr > td.alerts').each(function() { var cell = $(this); notFound = hideByCell(cell, imgSrc); if(notFound){ hideByCell(cell.parent().children('td.prod').eq(0), imgSrc); } }); } //var container = $('#mainContent tr:first > td:first'); var container = $("td.u-l").parent().parent(); var panel = $("#indicator_filter"); // добавить панель, если её еще нет var ext_panel = "<div style='padding: 2px; border: 1px solid #0184D0; border-radius: 4px 4px 4px 4px; float:left; white-space:nowrap; color:#0184D0; display:none;' id=indicator_filter></div>"; container.append( "<tr><td>" +ext_panel +"</td></tr>"); var alerts = {}; function addAlert(img) { var imgSrc = img.attr('src'); var imgTitle = img.attr('title'); if (typeof alerts[imgSrc] !== 'undefined'){ alerts[imgSrc].cnt = alerts[imgSrc].cnt + 1; }else{ alerts[imgSrc] = { cnt: 1, src: imgSrc, title: imgTitle } } } $('table > tbody > tr > td.alerts > img').each(function() { var img = $(this); addAlert(img); }); $('table > tbody > tr > td.prod > img').each(function() { var img = $(this); addAlert(img); }); var alertsExists = 0; $.each(alerts, function() { alertsExists = 1; var alertObj = this; var imgText = $('<i>',{ title: alertObj.title, text: alertObj.cnt, click: function(){ showByImgSrc(alertObj.src);return false;}, }); var img = $('<img>',{ title: alertObj.title, src: alertObj.src }); var input = imgText.append(img); $("#indicator_filter").append(input); $("#indicator_filter").append(' '); }); if(alertsExists == 1){ var showAllLink = $('<i>',{ text: 'Сбросить фильтр', click: function(){ showAll();return false;} }); $("#indicator_filter").append(showAllLink); $("#indicator_filter").show(); } } if(window.top == window) { var script = document.createElement("script"); script.textContent = '(' + run.toString() + ')();'; document.documentElement.appendChild(script); }