Systemmeddelande i Polopolys redaktörsgränssnitt

2009-04-01 11:31 av Niklas Olsson

En länge efterlängtad funktion från informationsavdelningen och systemdriften som underhåller installationen på KTH har varit att man ska kunna lägga upp ett systemmeddelande i Polopolys redaktörsgränssnitt som alla som loggar in eller redan är inloggade ska kunna se tydligt. Detta för att man snabbt och enkelt ska kunna informera alla inloggade redaktörer om man till exempel ska göra ändringar eller ska ta ner back end-servern för en uppgradering, så att de i god tid kan spara sitt pågående arbete och logga ut.

Systemmeddelande

Funktionen bygger på följande komponenter:

  • Polopolys indatamall p.UserSessionTemplate överlagras och får fältet:
    <field="systemMessage" input-template="it.field.systemMessage" label="" />
  • Mallen it.field.systemMessage definierar enbart policyn och en widget för editor och viewer.
  • Policyn är en extendad SingeValuePolicy som för tillfället inte innehåller någon extra funktionalitet.
  • Widgeten rendrerar en stylad div och hämtar systemmeddelandet (första gången) om det finns något. Till denna policywidget finns också en jQuerybaserad javascriptfil som till uppgift har att hämta systemmeddelandet via ett ajaxanrop var 3:e minut från en specificerd url, detta så att det ständigt uppdateras även om redaktören inte refreshar sidan.
  • I den mall (valfri) som sytemmeddelandet ska matas in läggs ett fält av typen p.TextArea in som senare innehåller själva meddelandet.
  • På den ovannämnda specificerade url:en ligger en servlet som hämtar systemmeddelandet och skriver ut det i en divtagg med ett id som ajaxanropet känner till. I responset så var vi tvugna att sätt headen så att den aldrig cachar sidan. response.setHeader(”Cache-Control”, ”no-cache”); Annars fanns det risk att IE inte fick ett uppdaterat meddelande.

Om det är någon som vill veta mer om denna mall, ta en titt på tråden i forumet med namnet ”Systemmeddelande” under kategorin ”Mallutveckling”. Den innehåller bl.a. delar av källkoden.

Taggar: , , , , ,

Skriv en kommentar