Avanza fix o trix

Lite Avanza site uppdateringar för att underlätta trading dagen

// ==UserScript==
// @name           Avanza fiddler
// @name:sv        Avanza fix o trix
// @description	   Some Avanza site tweaks to ease the trading day
// @description:sv Lite Avanza site uppdateringar för att underlätta trading dagen
// @author         pegr69
// @include        https://www.avanza.se/*
// @version        0.9.1
// @namespace      https://greasyfork.org/users/593500
// @copyright      2020, Peter Grape
// @license        CDDL-1.0
// @run-at         document-end
// @grant          none

// ==/UserScript==

window.addEventListener("load", init, false);
window.addEventListener("keydown", keytrap, true);

function keytrap (e) {

   // let prevButton = document.getElementsByClassName('fa fa-angle-left')[0];
   // let nextButton = document.getElementsByClassName('fa fa-angle-right')[0];

    try {
     //  let isFirstPage = prevButton.parentElement.parentElement.className == "disabled";
     //  let isLastPage = nextButton.parentElement.parentElement.className == "disabled";

    if (window.name === "orderWindow") {
        // console.info("Avanza Orderwindow");
        if (e.keyCode == 37) { // Left arrow press
           console.log("Adding shares count...");
        }
        else if (e.keyCode == 39) { // Right arrow press
            console.log("Deleting shares count...");
        }
    }
    }
    catch(error) {
        // No navigation present.
    }

}

// Adds a simple external tweak to the Avanza links.
// Minor fixes for order window

function init()
{
  console.info("Init Avanza Fiddler, version 0.9.1");
  // Tweak all links to external target.
  tweaklinks(document);
  // Fix order window
  fixordervindow(document);
}

// Resize and remove unnecessary crap
function fixordervindow(doc)
{
    if (window.name === "orderWindow") {
        console.info("Avanza Orderwindow");
        window.resizeTo(858,774);
        let azaheader=doc.getElementsByTagName("aza-header")[0];
        let azamenu=doc.getElementsByTagName("aza-menu")[0];
        let azapmenu=doc.getElementsByTagName("aza-personal-menu")[0];
        let azafooter=doc.getElementsByTagName("aza-footer")[0];

        azaheader.style.display="none";
        azamenu.style.display="none";
        azapmenu.style.display="none";
        azafooter.style.display="none";
    }
}

// Add an external target to all valid title links

function tweaklinks(doc)
{
    // Do not touch these link titles
  let ignoreTitles=["Lägg till","Ta Bort"];
  let mapfixedlinks = [
      { href: 'https://www.avanza.se/hall-koll/min-borsskarm.html', name: 'borsskarm' },
      { href: 'https://www.avanza.se/min-ekonomi/oversikt.html', name: 'oversikt' },
      { href: 'https://www.avanza.se/hem/senaste.html', name: 'senaste' },
      { href: 'https://www.avanza.se/min-profil/installningar.html', name: 'installningar' }
  ];
    // find all links, add external attribute if not set.
  for (let a,i=0; a=doc.getElementsByTagName("a")[i]; ++i) {
    if (a.target === "") {
      if (a.title === "") {
          // console.log("AH:" + a.href);

          let ml = mapfixedlinks.find(function(element) {
              return a.href == element.href;
          });

          if ( ml != null ){
              a.target = ml.name;
              }

      }else {
          let ignore = false;
          ignoreTitles.forEach(function(value){
              let t = a.title.search(value);
              if (t != -1) {
                  console.info("Ignoring:" + value + " for title:" + a.title);
                  ignore = true;
              }
           });
          if ( ! ignore ) {
              a.target = a.title;
          }
      }
    }
  }
}