Distribution Inovation 2

Make distribution inovation better

// ==UserScript==
// @name         Distribution Inovation 2
// @namespace    http://theanykey.se
// @version      0.2
// @description  Make distribution inovation better
// @author       Andreas Mustola
// @match        https://app.di.no/app/ExportStatus.do?action=statusList*
// @match        https://app.di.no/app/RouteMessage.do?action=createRouteMessageForm
// @match        https://app.di.no/app/RouteMessage.do
// @grant        none
// ==/UserScript==
/* jshint -W097 */
'use strict';

// Set text size
if (readCookie("CurrentFontSize")==null)
{
    var TextSize = "100";
}
else
{
    var TextSize = readCookie("CurrentFontSize");
}

if (document.URL.indexOf("app.di.no/app/ExportStatus.do?action=statusList")!=-1)
{
    // Remove old new message cookie (if corupted)
    eraseCookie("CreateNewMessage");
    
    // Give ids to duplicates
    GiveClassId("rs_est_start",1);
    GiveClassId("rs_acknowledge",1);
    GiveTextId("th","Meddelande",1);

    // Give ids to special notification elements
    GiveClassId("rs_start");
    
    // Set page as mobile friendly size
    AddAttributeInTag("div","id","pagebar","style","width:100%");
    addGlobalStyle('#rs_header {white-space: normal ! important}');
    
    // Get if active
    var StillActive=Toggle_Cookie("ShowActive",false);

    // Buttons
    Create_Button("[Create new Message]").onclick=CreateMessage;
    Create_Button("[-=Active=-]","ShowActive").onclick=Toggle_Active;
    Create_Button("[Font Size +]").onclick=AddFontSize;
    Create_Button("[Font Size -]").onclick=DrawFontSize;
    Create_Button("[Top Menu]").onclick=Toggle_TopMenu;
    Create_Element("BR");
    Create_Element("BR");
    if (StillActive==true)
    {
        Create_Button("[HS]").onclick=Toggle_HS;
        Create_Button("[Distrikt]").onclick=Toggle_Distrikt;
        Create_Button("[Nedl.]").onclick=Toggle_Nedl;
        Create_Button("[Beräknad start]").onclick=Toggle_BeraknadStart;
        Create_Button("[Sluttid]").onclick=Toggle_Sluttid;
        Create_Button("[Bud]").onclick=Toggle_Bud;
        Create_Button("[Starta]").onclick=Toggle_Starta;
        Create_Button("[Färd.]").onclick=Toggle_Fard;
        Create_Button("[Meddelande]").onclick=Toggle_Meddelande;
        Create_Button("[Kvitt. klagomål]").onclick=Toggle_KvittKlagomal;
        Create_Button("[Kvittera produkt]").onclick=Toggle_KvittProdukt;
        Create_Button("[Meddelande 2]").onclick=Toggle_Meddelande2;
        Create_Button("[Betjänas]").onclick=Toggle_Betjanas;
        Create_Button("[Frånvaro]").onclick=Toggle_Franvaro;
        Create_Button("[Distriktsavvik]").onclick=Toggle_Distriksavvik;
        Create_Button("[Avvik färdig]").onclick=Toggle_Avvikfardig;
        Create_Button("[Avvikelser]").onclick=Toggle_Avvikelser;
        Create_Button("[Historik]").onclick=Toggle_Historik;
        Create_Button("[Fritext]").onclick=Toggle_Fritext;
    }
}

// Font size buttons
function AddFontSize() {TextSize=String(parseInt(TextSize)+25); createCookie("CurrentFontSize",TextSize,900); SetDefaultValues();}
function DrawFontSize() {TextSize=String(parseInt(TextSize)-25); createCookie("CurrentFontSize",TextSize,900); SetDefaultValues();}

// Buttons Scripts
function Toggle_Active() {Toggle_Cookie("ShowActive",true);}
function Toggle_HS() {Toggle_Info("Show_HS",true,"th","HS",null,"rs_manual_order",null,null,"[HS]");}
function Toggle_Distrikt() {Toggle_Info("Show_Distrikt",true,"th","Distrikt",null,"rs_route",null,null,"[Distrikt]");}
function Toggle_Nedl() {Toggle_Info("Show_Nedl",true,"th","Nedl.",null,"rs_downloaded",null,null,"[Nedl.]");}
function Toggle_BeraknadStart() {Toggle_Info("Show_BeraknadStart",true,"th","Beräknad start",null,"rs_est_start","TD0",null,"[Beräknad start]");}
function Toggle_Sluttid() {Toggle_Info("Show_Sluttid",true,"th","Sluttid",null,"rs_est_start","TD1",null,"[Sluttid]");}
function Toggle_Bud() {Toggle_Info("Show_Bud",true,"th","Sluttid",null,"rs_est_start","TD1",1,"[Bud]");}
function Toggle_Starta() {Toggle_Info("Show_Starta",true,"th","Starta",null,"rs_start",null,null,"[Starta]");}
function Toggle_Fard() {Toggle_Info("Show_Fard",true,"th","Färd.",null,"rs_end",null,null,"[Färd.]");}
function Toggle_Meddelande() {Toggle_Info("Show_Meddelande",true,"th","Meddelande","TH0","rs_msg",null,null,"[Meddelande]");}
function Toggle_KvittKlagomal() {Toggle_Info("Show_KvittKlagomal",true,"th","Kvitt. klagomål",null,"rs_acknowledge","TD0",null,"[Kvitt. klagomål]");}
function Toggle_KvittProdukt() {Toggle_Info("Show_KvittProdukt",true,"th","Kvittera produkt",null,"rs_acknowledge","TD1",null,"[Kvittera produkt]");}
function Toggle_Meddelande2() {Toggle_Info("Show_Meddelande2",true,"th","Meddelande","TH1","messageIconWrapper",null,null,"[Meddelande 2]");}
function Toggle_Betjanas() {Toggle_Info("Show_Betjanas",true,"th","Betjänas",null,"rs_service",null,null,"[Betjänas]");}
function Toggle_Franvaro() {Toggle_Info("Show_Franvaro",true,"th","Frånvaro",null,"rs_absence",null,null,"[Frånvaro]");}
function Toggle_Distriksavvik() {Toggle_Info("Show_Distriksavvik",true,"th","Distriksavvik",null,"rs_dev",null,null,"[Distriktsavvik]");}
function Toggle_Avvikfardig() {Toggle_Info("Show_Avvikfardig",true,"th","Avvik fardig",null,"rs_dev_end",null,null,"[Avvik färdig]");}
function Toggle_Avvikelser() {Toggle_Info("Show_Avvikelser",true,"th","Avvikelser",null,"rs_dev_search",null,null,"[Avvikelser]");}
function Toggle_Historik() {Toggle_Info("Show_Historik",true,"th","Historik",null,"rs_history",null,null,"[Historik]");}
function Toggle_Fritext() {Toggle_Info("Show_Fritext",true,"th","Fritext",null,"rs_comment",null,null,"[Fritext]");}

// Special button scripts
function Toggle_TopMenu(buttonCall) 
{ 
    var cookieName="ShowTopMenu";
    var buttonText="[Top Menu]";

    var showThis=readCookie(cookieName);
    if (showThis==null)
    {
        createCookie(cookieName,"True",900);
        showThis="True";
    }
    else
    {    
        //console.log("Check if swap");
        if (buttonCall!=false)
        {        
            //console.log("Swap");
            // Swap it
            if (showThis=="True")
            {
                createCookie(cookieName,"False",900);
                showThis="False";
            }
            else
            {
                createCookie(cookieName,"True",900);
                showThis="True";
            }
            // Reload now
            //location.reload();
        }
    }
    
    // Change button
    var AllLinks = document.getElementsByTagName("input");
    for (var i=AllLinks.length; --i>=0;) 
    {
        var n = AllLinks[i];
        if (n.value==buttonText)
        {
            if (showThis=="False")
            {
                n.setAttribute("style", "float:left;color: #888888");
            }
            else
            {
                n.setAttribute("style", "float:left;font-weight: bold;");
            }
        }
    }    
    
    if (showThis=="True")
    {
        AddAttributeInTag("div","id","hd","style","");
        AddAttributeInTag("form","id","exportStatusForm","style","");
    }
    else
    {
        AddAttributeInTag("div","id","hd","style","display: none ! important;");
        AddAttributeInTag("form","id","exportStatusForm","style","display: none ! important;");
    }
}

function SetDefaultValues()
{
    Toggle_TopMenu(false);
    Toggle_Info("Show_HS",false,"th","HS",null,"rs_manual_order",null,null,"[HS]");
    Toggle_Info("Show_Distrikt",false,"th","Distrikt",null,"rs_route",null,null,"[Distrikt]");
    Toggle_Info("Show_Nedl",false,"th","Nedl.",null,"rs_downloaded",null,null,"[Nedl.]");
    Toggle_Info("Show_BeraknadStart",false,"th","Beräknad start",null,"rs_est_start","TD0",null,"[Beräknad start]");
    Toggle_Info("Show_Sluttid",false,"th","Sluttid",null,"rs_est_start","TD1",null,"[Sluttid]");
    Toggle_Info("Show_Bud",false,"th","Sluttid",null,"rs_est_start","TD1",1,"[Bud]");
    Toggle_Info("Show_Starta",false,"th","Starta",null,"rs_start",null,null,"[Starta]");
    Toggle_Info("Show_Fard",false,"th","Färd.",null,"rs_end",null,null,"[Färd.]");
    Toggle_Info("Show_Meddelande",false,"th","Meddelande","TH0","rs_msg",null,null,"[Meddelande]");
    Toggle_Info("Show_KvittKlagomal",false,"th","Kvitt. klagomål",null,"rs_acknowledge","TD0",null,"[Kvitt. klagomål]");
    Toggle_Info("Show_KvittProdukt",false,"th","Kvittera produkt",null,"rs_acknowledge","TD1",null,"[Kvittera produkt]");
    Toggle_Info("Show_Meddelande2",false,"th","Meddelande","TH1","messageIconWrapper",null,null,"[Meddelande 2]");
    Toggle_Info("Show_Betjanas",false,"th","Betjänas",null,"rs_service",null,null,"[Betjänas]");
    Toggle_Info("Show_Franvaro",false,"th","Frånvaro",null,"rs_absence",null,null,"[Frånvaro]");
    Toggle_Info("Show_Distriksavvik",false,"th","Distriksavvik",null,"rs_dev",null,null,"[Distriktsavvik]");
    Toggle_Info("Show_Avvikfardig",false,"th","Avvik fardig",null,"rs_dev_end",null,null,"[Avvik färdig]");
    Toggle_Info("Show_Avvikelser",false,"th","Avvikelser",null,"rs_dev_search",null,null,"[Avvikelser]");
    Toggle_Info("Show_Historik",false,"th","Historik",null,"rs_history",null,null,"[Historik]");
    Toggle_Info("Show_Fritext",false,"th","Fritext",null,"rs_comment",null,null,"[Fritext]");
}

if (document.URL.indexOf("app.di.no/app/ExportStatus.do?action=statusList")!=-1)
{
    // Load all saved info
    if (StillActive==true)
    {
        SetDefaultValues();
    }
}

// Check if continue create message
CreateMessage();

function CreateMessage(StartCreate)
{
    if (StartCreate!=null)
    {
        createCookie("CreateNewMessage","True",900);
        window.location.href="https://app.di.no/app/RouteMessage.do?action=createRouteMessageForm";
    }
    else
    {
        if (readCookie("CreateNewMessage")!=null)
        {         
            if (document.URL=="https://app.di.no/app/RouteMessage.do?action=createRouteMessageForm")
            {                  
                ClickButton("Sök område");
                //console.log("1");
            }
            if (document.URL=="https://app.di.no/app/RouteMessage.do")
            {
                if (readCookie("CreateNewMessage")=="True")
                {
                    //console.log("2");
                    AddAttributeInTag("input","name","searchArea.name","value","nc Kumla");
                    createCookie("CreateNewMessage","Step2",900);
                    ClickButton("Sök");
                }
                else if (readCookie("CreateNewMessage")=="Step2")
                {
                    //console.log("3");
                    AddAttributeInTag("input","name","area[0].chosen","checked","true");
                    createCookie("CreateNewMessage","Step3",900);
                    ClickButton("Lagra");
                }
                else if (readCookie("CreateNewMessage")=="Step3")
                {
                    AddAttributeInTag("input","name","copyText","checked","true");
                    eraseCookie("CreateNewMessage");  
                }                    
            }        
        }
    }    
}

function ClickButton(TextOnButton,TagToClick)
{
    if (TagToClick==null) TagToClick="input";
  
    var AllLinks = document.getElementsByTagName(TagToClick);
    
    for (var i=AllLinks.length; --i>=0;) 
    {
        var n = AllLinks[i];
        if (n.value)
        {
            if (n.value==TextOnButton) 
            {
                n.click();
            }
        }
    }
}
 
function AddAttributeInTag(SearchTag,FindAttribute,FindAttributeText,AddAttribute,AddAttributeText)
{
    var AllLinks = document.getElementsByTagName(SearchTag);
    
    var AutoClicked=false;
    for (var i=AllLinks.length; --i>=0;) 
    {
        var n = AllLinks[i];
        if (n.hasAttribute(FindAttribute))
        {
            if (n.getAttribute(FindAttribute).indexOf(FindAttributeText)!=-1)
            {
                n.setAttribute(AddAttribute,AddAttributeText);
            }
        }
    }
}
        
function Toggle_Info(cookieName,buttonCall,tagName,SearchText,extraTagID,className,extraClassID,useNextSibling,buttonText)
{
    // Get cookie info
    var showThis=readCookie(cookieName);
    if (showThis==null)
    {
        createCookie(cookieName,"True",900);
        showThis="True";
    }
    else
    {
        if (buttonCall==true)
        {        
            // Swap it
            if (showThis=="True")
            {
                createCookie(cookieName,"False",900);
                showThis="False";
            }
            else
            {
                createCookie(cookieName,"True",900);
                showThis="True";
            }
            // Reload now
            //location.reload();
        }
    }

    // Change button
    var AllLinks = document.getElementsByTagName("input");
    for (var i=AllLinks.length; --i>=0;) 
    {
        var n = AllLinks[i];
        if (n.value==buttonText)
        {
            if (showThis=="False")
            {
                n.setAttribute("style", "float:left;color: #888888");
            }
            else
            {
                n.setAttribute("style", "float:left;font-weight: bold;");
            }
        }
    }
    
    if (showThis=="False")
    {
        RemoveTagOnPage(tagName,SearchText,extraTagID,useNextSibling);
        RemoveClassOnPage(className,extraClassID,useNextSibling);
    }
    else
    {
        RemoveTagOnPage(tagName,SearchText,extraTagID,useNextSibling,true);
        RemoveClassOnPage(className,extraClassID,useNextSibling,true);
    }        
}

function Create_Element(ElementType)
{
    var input=document.createElement(ElementType);
    document.body.appendChild(input);
}

function Create_Button(buttonText,cookieName)
{
    // Get cookie info
    if (cookieName!=null)
    {
        var showThis=readCookie(cookieName);
        if (showThis==null)
        {
            showThis="True";
        }
    }
    else
    {
        showThis="True";
    }
    
    var input=document.createElement("input");
    input.type="button";
    input.value=buttonText;
    //input.onclick = Toggle_Nedl;
    if (showThis=="True")
    {
        input.setAttribute("style", "float:left;font-weight: bold;");
    }
    else
    {
        input.setAttribute("style", "float:left;color: #888888");
    }
    document.body.appendChild(input);
    return input;
}

function Toggle_Cookie(cookieName,buttonCall)
{
    // Get cookie info
    var showThis=readCookie(cookieName);
    if (showThis==null)
    {
        createCookie(cookieName,"True",900);
        showThis="True";
    }
    else
    {
        if (buttonCall==true)
        {        
            // Swap it
            if (showThis=="True")
            {
                createCookie(cookieName,"False",900);
            }
            else
            {
                createCookie(cookieName,"True",900);
            }
            // Reload now
            location.reload();
        }
    }

    if (showThis=="False")
    {
        return false;
    }
    else
    {
        return true;
    }
}

function RemoveClassOnPage(Classname,extraID,useNextSibling,ShowInstead)
{
    var AllLinks = document.getElementsByClassName(Classname);
    for (var i=AllLinks.length; --i>=0;) 
    {
        var n = AllLinks[i];
        // Check for text
        if (n)
        {
            if (extraID==null)
            {
                if (useNextSibling!=null)
                {
                    // Next sibling
                    for (var j=useNextSibling; --j>=0;) 
                    {       
                        n=n.nextElementSibling;
                    }
                }
                if (ShowInstead==null)
                {
                    n.setAttribute("style", "display: none ! important;");
                    //n.parentNode.removeChild(n);
                }
                else
                {
                    n.setAttribute("style", "font-size: " + TextSize + "%  ! important;");
                }
            }
            else
            {
                if (extraID==n.getAttribute("id"))
                {
                    if (useNextSibling!=null)
                    {
                        // Next sibling
                        for (var j=useNextSibling; --j>=0;) 
                        {       
                            n=n.nextElementSibling;
                        }
                    }
                    if (ShowInstead==null)
                    {
                        n.setAttribute("style", "display: none ! important;");
                        //n.parentNode.removeChild(n);
                    }
                    else
                    {
                        n.setAttribute("style", "font-size: " + TextSize + "%  ! important;");
                    }
                }
            }
        }
    } 
}

function RemoveTagOnPage(Tagname,SearchText,extraTagID,useNextSibling,ShowInstead)
{
    var AllLinks = document.getElementsByTagName(Tagname);
    for (var i=AllLinks.length; --i>=0;) 
    {
        var n = AllLinks[i];
        // Check for text
        if (n.innerHTML)
        {
            if (extraTagID==null)
            {            
                if (n.innerHTML.indexOf(SearchText)!=-1)
                {
                    if (useNextSibling!=null)
                    {
                        // Next sibling
                        for (var j=useNextSibling; --j>=0;) 
                        {       
                            n=n.nextElementSibling;
                        }
                    }                
                    if (ShowInstead==null)
                    {
                        n.setAttribute("style", "display: none ! important;");
                        //n.parentNode.removeChild(n);
                    }
                    else
                    {
                        n.setAttribute("style", "font-size: " + TextSize + "%  ! important;");
                    }
                }
            }
            else
            {
                if (extraTagID==n.getAttribute("id"))
                {                
                    if (n.innerHTML.indexOf(SearchText)!=-1)
                    {
                        //console.log(n.innerHTML);
                        //console.log("Found id");
                        if (useNextSibling!=null)
                        {
                            // Next sibling
                            for (var j=useNextSibling; --j>=0;) 
                            {       
                                n=n.nextElementSibling;
                            }
                        }                
                        if (ShowInstead==null)
                        {
                            n.setAttribute("style", "display: none ! important;");
                            //console.log("HIDE");
                            //console.log(n.innerHTML);
                            //n.parentNode.removeChild(n);
                        }
                        else
                        {
                            console.log("NORMAL");
                            n.setAttribute("style", "font-size: " + TextSize + "%  ! important;");
                        }
                    }
                }
            }
        }
    } 
}

function GiveTextId(TagName, SearchText, ResetEvery)
{
    var AllLinks = document.getElementsByTagName(TagName);
    var mycounter=0;
    for (var i=AllLinks.length; --i>=0;) 
    {
        var n = AllLinks[i];
        // Check for text
        if (n.innerHTML)
        {
            if (n.innerHTML.indexOf(SearchText)!=-1)
            {
                mycounter+=1;
                if (ResetEvery!=null)
                {
                    if (mycounter>ResetEvery) mycounter=0;
                }
                if (n.getAttribute("id")==null)
                {
                    n.setAttribute("id", n.nodeName + mycounter);
                }
            }
        }
    }  
}

function addGlobalStyle(css) 
{
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}

function GiveClassId(ClassName, ResetEvery)
{
    var AllLinks = document.getElementsByClassName(ClassName);
    var mycounter=0;
    for (var i=AllLinks.length; --i>=0;) 
    {
        var n = AllLinks[i];
        // Check for text
        if (n)
        {
            mycounter+=1;
            if (ResetEvery!=null)
            {
                if (mycounter>ResetEvery) mycounter=0;
            }
            if (n.getAttribute("id")==null)
            {
                n.setAttribute("id", n.nodeName + mycounter);
            }
        }
    }  
}

function GiveGlobalClassId(ClassName, ResetWhenFountTag)
{
    var currentNode,
    ni = document.createNodeIterator(document.documentElement, NodeFilter.SHOW_ELEMENT);
    var mycounter=0;
    while(currentNode = ni.nextNode()) {
        mycounter+=1;
        if (currentNode.getAttribute("tagName")==ResetWhenFountTag) mycounter=0;
        if (currentNode.getAttribute("id")==null)
        {
            if (currentNode.getAttribute("class")!=null)
            {            
                if (currentNode.getAttribute("class")==ClassName)
                {
                    currentNode.setAttribute("id", currentNode.nodeName + mycounter);
                }
            }
        }
    }    
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址