notes til xpage

15
Notes til XPage Hvordan en standard Notes database kan forvandles til en XPage på 60 minutter … Jakob Majkilde

Upload: draco

Post on 23-Feb-2016

55 views

Category:

Documents


2 download

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

Page 1: Notes til  XPage

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

Jakob Majkilde

Page 2: Notes til  XPage

Indledning

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

Page 3: Notes til  XPage

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)

Page 4: Notes til  XPage

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

Page 5: Notes til  XPage

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.

Page 6: Notes til  XPage

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” )

Page 7: Notes til  XPage

Navigering

Page 8: Notes til  XPage

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

Page 9: Notes til  XPage

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’

Page 10: Notes til  XPage

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>

Page 11: Notes til  XPage

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

Page 12: Notes til  XPage

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));}

Page 13: Notes til  XPage

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); }

});

Page 14: Notes til  XPage

• 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.

Page 15: Notes til  XPage

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.