• No results found

Problem och val av lösningar

In document Tekniskt lyft av PaperLine (Page 48-53)

Nedan beskrivs några av de problem som uppstått under projektets gång. Problemen diskuteras och lösningarna till dem reflekteras med motiveringar till besluten.

Mousetrap

I vyn existerar funktionalitet där knapptryck är bundna till funktioner . Detta är skapat för att snabbt kunna arbeta med vyn och snabbt kunna navigera sig till andra vyer samt utföra kommandon utan behov av en mus. Dessa snabbkommandon skapades med ramverket JQuery [45], ett JavaScript-bibliotek som används för enklare hantering av händelser, animationer och navigering i dokument. Biblioteket sätter upp händelser i Web Form för att hantera knapptryck från användare och vidarebefordra dessa snabbkommandon till rätt funktion.

Att använda sig av biblioteket JQuery hade varit en alternativ lösning till uppgraderingen då både TypeScript och JQuery bygger på JavaScript. Men denna lösning ansågs inte vara användbar då Aurelia kan utöka sitt ramverk med tredjepartsbibliotek och biblioteket Mousetrap [46] löste alla problem JQuery tidgare löst.

Att sätta upp en konfiguration för Mousetrap sker enligt figur 35 på följande sätt. En mappning för vilka tangenter man vill använda sig av sätts upp med ett namn.

39

Figur 35: Kodexempel: Konfiguration av Mousetrap.

Sedan, representerat i figur 36 , binds detta event till ett objekt i html filen. När sedan användare trycker på knappen som implementerat i mousetrap skapar mousetrap en händelse som simulerar ett knapptryck till från användaren och kallar på rätt funktion.

Figur 36: Kodexempel: Implementation av Mousetrap.

Felmeddelanden

En av den stora funktionaliteterna med webbapplikationen var hur felmeddelande genererades. I den gamla klienten skapades dessa rutor via en så kallad

ModalPopupExtender [47] som visas i figur 37 .Meddelanderutan är en komponent skapad för att låsa bakomvarande komponenter från interaktion från användare samt lägga sig ovanpå det redan existerande fönstret.

40 För att skapa en mer manipulativ komponent kan felmeddelandet i figur 37 ta in en rubrik, ett meddelande, en ikon samt en knappgrupp som parametrar och visa upp det i

ModalPopupExtender. Inparametrarna tas in då meddelandet användaren ser kan variera. Knapparna kan även variera beroende på vad användaren skall göra då felmeddelandet kommer upp.

ModalPopupExtender existerar inte till Aurelia vilket innebar att ett plugin Aurelia-Dialog [48] valdes att användas till uppgraderingen. Aurelia-Dialog fungerar på liknande sätt som ModalPopupExtender där meddelande, rubrik och typ av knapp kan implementeras till dialogrutan, vilket visas i figur 38.

Figur 38: Aurelias representation av meddelanderuta.

View- och Session State

Som tidigare nämnt är Web Forms lösning på problemet, med data som inte sparas vid serveranrop och uppdateringar, att skicka med data i anropet till servern för att sedan skickas tillbaka till klienten.

View- och session state fungerar på samma sätt men har olika långa livscykler där livscykeln för View states bara existerar då sidan utför ett så kallat postback, vilket innebär att då sidan skickar en förfrågan för att spara data i servern, kommer användare tillbaka till samma sida som tidigare. Data servern inte sparar åt användaren kommer då att försvinna om den inte sparats undan i View state.

Session states livscykel varar så länge en cookie existerar för sidan. Fördelen med session state framför View state är att session state kan behålla sina värden över anrop av andra sidor, vilket ger en stor fördel då systemet PaperLine bygger på att användare skall kunna förflytta sig mellan vyer med samma användarinställningar för var och en av vyerna.

41 Användningen av View state och session state är dock begränsad till ASP.NET vilket innebär en stor förändring vid uppgradering till AMP. Lösningen till View states problem, att spara undan data då postback sker, blev simpel. Som tidigare nämnt hämtar AMP enbart data om det behövs vilket innebär att data tillfälligt kan sparas undan i klienten under serveranropet. Problem med session state blev dock svårare att lösa och beskrivs vidare in avsnitt 6.2.

Skriv ut och exportera

Likt felmeddelande existerar det specialbyggda meddelanderutor för utskrifter till Excel-dokument samt utskrifter till skrivare. Dessa meddelanderutor har egenskapen att skriva ut specificerade rutnät med order. Funktionaliteten sträcker sig även till att användaren skall kunna plocka bort kolumner från diagrammet samt ändra textstorlek och orienteringen av sidan.

Problemet uppstår då metoderna för implementationen enbart stöds av webbläsaren Internet Explorer. Att låsa sig till en webbläsare är inte är att föredra då användare i framtiden kan komma att byta plattform eller webbläsare.

Lösningen var att likt “felmeddelanden” bygga upp egna komponenter via Aurelias plugin ‘Aurelia-dialog’ och där utföra samma operationer den gamla meddelanderutan utförde. Figurerna 39 och 40 ger en tydligare bild över skillnaden mellan den uppgraderade versionen och den gamla versionen. Figur 39 skildrar hur funktionaliteten byggdes upp med hjälp metoden enbart Internet explorer stödjer showModelessDialog [49]. Metoden tar in och visar ett HTML-dokument med specifika attribut, vanliga webbapplikationsfönster inte har som standard. Till exempel inaktivt statusfält och möjlighet att inte skala fönstret.

42

Figur 39: Utskriftsfunktion från Web Forms.

I den nya dialogrutan som användare kan bestämma utseendet för rutnätet har förändringar skett i form av Kendo UIs funktionalitet att sortera bland kolumner och rader. Även

funktionen för export till Excel sköts nu av Kendo UI. Figur 40 ger exempel på hur det kan se ut när man använder funktionerna i den nya klienten.

In document Tekniskt lyft av PaperLine (Page 48-53)

Related documents