notes til xpage

Post on 23-Feb-2016

59 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Notes til XPage. Hvordan en standard Notes database kan forvandles til en XPage på 60 minutter …. Jakob Majkilde. Standard Notes database Få forms Felter: Names , Dates, RichText etc. samt validering Mange views Lotus Script Full text søgning. Indledning. OneUI - PowerPoint PPT Presentation

TRANSCRIPT

Notes til XPageHvordan en standard Notes database kan forvandles til en XPage på 60 minutter …

Jakob Majkilde

Indledning

• Standard Notes database• Få forms• Felter: Names, Dates, RichText etc. samt validering• Mange views• Lotus Script• Full text søgning

Beslutninger

• OneUI• Giver hurtigt et pænt layout• Mulighed for genbrug af OpenNTF komponenter

• Extension Library• Fordi det er nemmere end at gøre det selv

• Upgrade pack 1• Supporteret af IBM• Nemmere at installere (end OpenNTF versionen)

Kom godt i gang

• Køb bogen: XPages Extension Library: A Step-by-Step Guide to the Next Generation of XPages Components

• Xpage Debug Toolbar fra OpenNTF installeres• Flyt til bunden med css: div.debugToolbar {position:relative

!important;}• Fra OpenNTF versionen af Extensions Library hentes

demo basen: XPagesExt.nsf• Chrome eller Firebug er et must• OpenNTF XSnippets

Layout

• Lav et theme og aktivér på Application Properties• <theme extends="oneuiv2.1_blue”

• Lav en ‘Layout’ Custom Control og indsæt en ‘Application Layout’• Enable Drop Target på Middle Column Content Area

• Text på Title Bar beregnes: @DbTitle()• Brug CSS – lad være med at ‘hardcode’ logo m.v.

Navigering

• Indsæt en Navigator• Alle links åbner samme XPage• queryString parameter angiver hvilket view der skal vises• Selection er ‘navnet’ på menu punktet – hvis dette matcher

Navigation Path, så bliver menupunktet vist som ‘selected’• På Application Layout • Navigation Path = content.getUrlParameter( ”view” )

Navigering

Dynamic View

• Ét Dynamic View kan vise alle views i basen,• CustomizerBean retter ‘fejl’ i dynamic view control:• Åben docs i read mode i stedet for edit mode

• View name beregnes dynamisk• Collapse all: expandLevel=1• Pager

Cool Customizer Bean Sample:

http://frostilli

c.us/f.nsf/posts/2

74

Dynamic Form

• Dynamic View: Open document using XPage associated with documents forms• Der skal laves én XPage per form• Launch properties på eksisterende forms skal ændres

• Alternativ: Open document using ‘form.xsp’• På ‘form.xsp’ indsættes en ‘Computet Subform’

Søgning

• Basen skal være Full Text Indexeret• Aktiver ‘Search’ på Application Layout• Page name: siden med vores Dynamic View• Query parameter name for url:• view=viewname&query (viewname kan være et ‘all documents

view’ eller evt. beregnes til current view)• På Dynamic View Data sættes et search filter• <xp:this.search><!

[CDATA[#{javascript:context.getUrlParameter("query")}]]></xp:this.search>

Lotus Script

• Lotus Script kan fint genbruges i en Xpage• Script kode lægges i agenter• Kaldes ved Open/Save• Eller via Ajax kald

• Kun backend Lotus Script. UI funktioner skal kodes om i Java Script (Dojo), f.eks. prompt eller dialogbokse

• Bedre performance fås dog med Server Side JavaScript eller Managed Beans (Java)

• http://xpages.dk/?p=231

Lotus Script Agenter

• Kald en Lotus Script agent fra QuerySaveDocument eller PostOpenDocument event

• Fra Lotus Script agenten:• Set doc = session.DocumentContext

var agentName:String = ”My Agent Name";var agent:NotesAgent = database.getAgent(agentName);if (agent != null) { agent.runWithDocumentContext(currentDocument.getDocument(true));}

Lotus Script via AJAX

• Ajax kald med Dojo, f.eks. fra en knap

• http://dojotoolkit.org/reference-guide/1.6/dojo/xhrGet.html

dojo.xhrGet({ url: ”My Agent Name?openagent", preventCache: true, handleAs: "text", load: function(data) {

var targetNode = dojo.byId("#{id:My Return Id}"); targetNode.value = data;

}, error: function(data) {

alert("There has been an error: " + data); }

});

• Default opsætning giver Full Admin Access til alle Notes developers via SS JavaScript:

sessionAsSignerWithFullAccess.getDatabase

• Derfor bør XPage access begrænses via Server Dokumentet – og alt kode signes inden produktion.

Spørgsmål?

• Du får altid svar på Notesnet.dk• Præsentation, links, download af sample applikation på

XPages.dk• Du er altid velkommen til at kontakte mig – se hvordan

på Majkilde.dk, hvor du også finder Lotus Script tips.

top related