virtualmanager.com - Employee show stars and role

Shows stars and role on employeesearch

// ==UserScript==
// @name         virtualmanager.com - Employee show stars and role
// @namespace    https://greasyfork.org/en/users/884999-l%C3%A6ge-manden
// @version      0.6
// @description  Shows stars and role on employeesearch
// @author       VeryDoc
// @match        https://www.virtualmanager.com/employees/search?*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=virtualmanager.com
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';
    window.addEventListener('load', () => {
        setInterval(function () {
            loadPlugin();
        }, 500);
    });

    window.addEventListener('popstate', function (event) {
        loadPlugin();
    });

    function loadPlugin() {
        let myTable = document.getElementsByTagName("table")[0].getElementsByTagName('tbody')[0];
        let foundOne = false;
        let rows = myTable.rows;

        for (let row of rows) {
            if (row.classList.contains('toprow') === true) {
                if (row.classList.contains('changed') === true) {
                    return;
                }

                addSearch();
                getValuesFromLocalStorage();

                let youth = document.getElementById('custom-youth').value;
                let goalkeeper = document.getElementById('custom-goalkeeper').value;
                let field = document.getElementById('custom-field').value;
                let disiplin = document.getElementById('custom-disiplin').value;
                let motivation = document.getElementById('custom-motivation').value;

                if (youth === '' && goalkeeper === '' && field === '' && disiplin === '' && motivation === '') {
                    let newCell = row.insertCell();
                    newCell.colSpan = 2;
                    let newText = document.createTextNode('Please select one or more attributes to start search..');
                    newCell.appendChild(newText);
                } else {
                    let newCell = row.insertCell();
                    let newText = document.createTextNode('Ability');
                    newCell.appendChild(newText);

                    newCell = row.insertCell();
                    newText = document.createTextNode('Should buy!');
                    newCell.appendChild(newText);
                }

                row.classList.add('changed');
            } else {
                let a = row.cells[7];
                let skillstable = a.getElementsByTagName("table")[0].getElementsByTagName('tbody')[0];
                let skills = skillstable.children;
                let youthSkills = parseInt(skills[0].innerText.trim().replace('                                ', '').replace('\n', ':').split(':')[1]);
                let goalkeepingSkills = parseInt(skills[1].innerText.trim().replace('                                ', '').replace('\n', ':').split(':')[1]);
                let fieldplayerSkills = parseInt(skills[2].innerText.trim().replace('                                ', '').replace('\n', ':').split(':')[1]);
                let disiplinSkills = parseInt(skills[3].innerText.trim().replace('                                ', '').replace('\n', ':').split(':')[1]);
                let scountPotential = parseInt(skills[4].innerText.trim().replace('                                ', '').replace('\n', ':').split(':')[1]);
                let motivationSkills = parseInt(skills[7].innerText.trim().replace('                                ', '').replace('\n', ':').split(':')[1]);

                let totalSkills = youthSkills + goalkeepingSkills + fieldplayerSkills + disiplinSkills + motivationSkills;
                let newCell = row.insertCell();

                let newText = document.createTextNode('⭐');

                switch (true) {
                    case (totalSkills > 80):
                        newText = document.createTextNode('⭐⭐⭐⭐⭐');
                        break;
                    case (totalSkills > 60 && totalSkills < 80):
                        newText = document.createTextNode('⭐⭐⭐⭐');
                        break;
                    case (totalSkills > 40 && totalSkills < 60):
                        newText = document.createTextNode('⭐⭐⭐');
                        break;
                    case (totalSkills > 20 && totalSkills < 40):
                        newText = document.createTextNode('⭐⭐');
                        break;
                }

                let youth = parseInt(document.getElementById('custom-youth').value);;
                let goalkeeper = parseInt(document.getElementById('custom-goalkeeper').value);
                let field = parseInt(document.getElementById('custom-field').value);
                let disiplin = parseInt(document.getElementById('custom-disiplin').value);
                let motivation = parseInt(document.getElementById('custom-motivation').value);
                let scout = parseInt(document.getElementById('custom-scouting').value);

                newCell.appendChild(newText);
                if (youth === '' && goalkeeper === '' && field === '' && disiplin === '' && motivation === '') {
                } else {
                    if (youthSkills >= youth && fieldplayerSkills >= field && goalkeepingSkills >= goalkeeper && disiplinSkills >= disiplin && motivationSkills >= motivation && scountPotential >= scout) {
                        newCell = row.insertCell();
                        newCell.style.fontSize = "9px";
                        newText = document.createTextNode("Yes");
                        newCell.appendChild(newText);
                        newCell.style.backgroundColor = "green";
                        foundOne = true;
                    }
                    else {
                        newCell = row.insertCell();
                        newCell.style.fontSize = "9px";
                        newText = document.createTextNode("No");
                        newCell.appendChild(newText);
                        newCell.style.backgroundColor = "red";
                    }
                }
            }
        }

        // if (foundOne === false) {
        //     let time = 1000 + Math.random() * 1000;
        //     setTimeout(function () {
        //         let a = document.getElementsByClassName('next_page');
        //         window.location = a[0].href;
        //     }, time);
        // } else {
        //     alert('Found one!!!');
        // }
    };

    function addSearch() {
        let box = document.createElement('div');
        box.className = 'box';
        box.id = 'custom-search-box';

        let header = document.createElement('h2');
        header.innerText = 'Søgning';

        box.appendChild(header);

        let table = document.createElement('table');
        table.className = 'stretch';
        table.id = 'custom-search-table';
        let row = table.insertRow(0);
        addRowWithTextbox(table, 'Ungdomstræning', 'custom-youth');
        addRowWithTextbox(table, 'Målmandstræning', 'custom-goalkeeper');
        addRowWithTextbox(table, 'Markspillertræning', 'custom-field');
        addRowWithTextbox(table, 'Scouting potentiale', 'custom-scouting');
        addRowWithTextbox(table, 'Disiplin', 'custom-disiplin');
        addRowWithTextbox(table, 'Motivation', 'custom-motivation');

        row = table.insertRow(-1);
        let cell1 = row.insertCell(0);
        let cell2 = row.insertCell(1);

        cell1.innerText = 'Auto next';
        cell1.style.width = '40%';

        let autoNext = document.createElement('INPUT');
        autoNext.setAttribute("type", "checkbox");
        autoNext.id = 'custom-autonext';

        cell2.appendChild(autoNext);

        box.appendChild(table);

        let buttonDiv = document.createElement('div');
        buttonDiv.className = 'right'

        let SaveButton = document.createElement('button');
        SaveButton.className = 'btn';
        SaveButton.innerText = 'Gem';
        SaveButton.onclick = function () { saveValuesToLocalStoarage(); window.location.reload(); };
        buttonDiv.appendChild(SaveButton);

        box.appendChild(buttonDiv);

        let attachBox = document.getElementsByClassName('employees_search')[0];
        attachBox.appendChild(box);
    }

    function addRowWithTextbox(table, text, id) {
        let row = table.insertRow(-1);
        let cell1 = row.insertCell(0);
        let cell2 = row.insertCell(1);

        cell1.innerText = text;
        cell1.style.width = '40%';

        let inputElement = document.createElement('INPUT');
        inputElement.setAttribute("type", "text");
        inputElement.setAttribute("size", "1");
        inputElement.setAttribute("maxlength", "2");
        inputElement.id = id;

        inputElement.className = 'center';
        inputElement.style.width = '20px';

        cell2.appendChild(inputElement);
    }

    function saveValuesToLocalStoarage() {
        localStorage.setItem('custom-search-youth', document.getElementById('custom-youth').value);
        localStorage.setItem('custom-search-goalkeeper', document.getElementById('custom-goalkeeper').value);
        localStorage.setItem('custom-search-field', document.getElementById('custom-field').value);
        localStorage.setItem('custom-search-disiplin', document.getElementById('custom-disiplin').value);
        localStorage.setItem('custom-search-motivation', document.getElementById('custom-motivation').value);
        localStorage.setItem('custom-search-scouting', document.getElementById('custom-scouting').value);
    }

    function getValuesFromLocalStorage() {
        document.getElementById('custom-youth').value = localStorage.getItem('custom-search-youth');
        document.getElementById('custom-goalkeeper').value = localStorage.getItem('custom-search-goalkeeper');
        document.getElementById('custom-field').value = localStorage.getItem('custom-search-field');
        document.getElementById('custom-disiplin').value = localStorage.getItem('custom-search-disiplin');
        document.getElementById('custom-motivation').value = localStorage.getItem('custom-search-motivation');
        document.getElementById('custom-scouting').value = localStorage.getItem('custom-search-scouting');
    }
})();