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

Notes til XPage på 1 time

Nov 28, 2014

Download

Technology

Jakob Majkilde

Præsentation givet på Dannotes.dk seminar den 5. maj 2012
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Notes til XPage på 1 time

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

Jakob Majkilde

Page 2: Notes til XPage på 1 time

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 på 1 time

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 på 1 time

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 på 1 time

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 på 1 time

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 på 1 time

Navigering

Page 8: Notes til XPage på 1 time

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://frostill

ic.us/f.nsf/posts/2

74

Page 9: Notes til XPage på 1 time

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 på 1 time

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 på 1 time

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 på 1 time

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 på 1 time

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 på 1 time

• 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 på 1 time

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.