Notes til XPage på 1 time

1,574 views

Published on

Præsentation givet på Dannotes.dk seminar den 5. maj 2012

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,574
On SlideShare
0
From Embeds
0
Number of Embeds
873
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Notes til XPage på 1 time

  1. 1. Notes til XPageHvordan en standard Notes database kanforvandles til en XPage på 60 minutter … Jakob Majkilde
  2. 2. • Standard Notes database • Få forms • Felter: Names, Dates, RichText etc. samt validering • Mange views • Lotus Script • Full text søgningIndledning
  3. 3. • 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)Beslutninger
  4. 4. • 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 XSnippetsKom godt i gang
  5. 5. • 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.Layout
  6. 6. • 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
  7. 7. Navigering
  8. 8. • É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 • PagerDynamic View
  9. 9. • 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’Dynamic Form
  10. 10. • 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.getUrlPara meter("query")}]]></xp:this.search>Søgning
  11. 11. • 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=231Lotus Script
  12. 12. • Kald en Lotus Script agent fra QuerySaveDocument eller PostOpenDocument event var agentName:String = ”My Agent Name"; var agent:NotesAgent = database.getAgent(agentName); if (agent != null) { agent.runWithDocumentContext(currentDocument.getDocument(true)); }• Fra Lotus Script agenten: • Set doc = session.DocumentContextLotus Script Agenter
  13. 13. • Ajax kald med Dojo, f.eks. fra en knap 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); } });• http://dojotoolkit.org/reference-guide/1.6/dojo/xhrGet.htmlLotus Script via AJAX
  14. 14. • 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.
  15. 15. • 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.Spørgsmål?

×