Greasy Fork is available in English.

Virtonomica: фильтр по количеству фактически нанятого персонала.

Фильтр по количеству фактически нанятого персонала на странице Управление -> Персонал.

2016-01-30 일자. 최신 버전을 확인하세요.

질문, 리뷰하거나, 이 스크립트를 신고하세요.
// ==UserScript==
// @name           Virtonomica: фильтр по количеству фактически нанятого персонала.
// @namespace      virtonomica
// @version        1.0
// @description    Фильтр по количеству фактически нанятого персонала на странице Управление -> Персонал.
// @include        http://virtonomic*.*/*/main/company/view/*/unit_list/employee
// @include        http://virtonomic*.*/*/main/company/view/*/unit_list/employee/salary
// ==/UserScript==
var run = function() {

	var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window);
	$ = win.$;

	function getRealm(){
		var svHref = window.location.href;
        var matches = svHref.match(/\/(\w+)\/main\/unit\/view\//);
		return matches[1];
	}	
	function getUnitId(){
		var svHref = window.location.href;
        var matches = svHref.match(/\/main\/unit\/view\/(\d+)\//);
		return matches[1];
	}
	function getLast(str){
        var matches = str.match(/\/(\d+)$/);
		return matches[1];
	}
	Object.size = function(obj) {
		var size = 0, key;
		for (key in obj) {
			if (obj.hasOwnProperty(key)) size++;
		}
		return size;
	};
	function isObject(item) {
		//console.log("item = " + (typeof item === "object" && Object.size(item) == 1 && item !== null));
		return (typeof item === "object" && Object.size(item) == 1 && item !== null);
	}
	function showHide(sel){
	}
	var panel = $('table.list > tbody > tr:nth-child(3) > th:nth-child(2) > div > table > tbody > tr > td.title-ordertool');
	var ops = '';
	var vals = []
	$('table.list > tbody > tr > td > input[name^="qnt["]').each(function() {
		var link = $(this);
		//console.log("link = " + link.val());
		if($.inArray(link.val(), vals) == -1){
			vals.push(link.val());
		}
	});
	vals.sort(function(a, b) {
		return parseFloat(a) - parseFloat(b);
	});
	var valsLength = vals.length;
	for (var i = 0; i < valsLength; i++) {
		ops += '<option value="'+vals[i]+'">'+vals[i]+'</option>';
	}
	var select = $('<select>').change(function() {
		var selVal = $(this).val()
		console.log("selVal = " + selVal);
		$('table.list > tbody > tr > td > input[name^="qnt["]').each(function() {
			var link = $(this);
			//console.log("link = " + link.val());
			if(selVal === '' || parseFloat(selVal) === parseFloat(link.val())){
				link.parent().parent().show();
			} else {
				link.parent().parent().hide();
			}
		});
	}).append('<option value=""></option>' + ops);
	panel.append(select);
}

if(window.top == window) {
	var script = document.createElement("script");
	script.textContent = '(' + run.toString() + ')();';
	document.documentElement.appendChild(script);
}