• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
895
On Slideshare
0
From Embeds
0
Number of Embeds
12

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. News R9 develop e XPages Tips Daniele Grillo GRYDAN SAS
  • 2. Chi sono Creatore Dominopoint.it Grydan SAS 13 anni su Notes/Domino (dalla R 4.6) Sviluppatore, Amministratore, Docente Email d.grillo@grydan.it Mobile +39 392.2945549
  • 3. NOVITA’ R9 DEVELOP Slide tratte da: http://bit.ly/1aY4dJp
  • 4. Novità R9 Social  Extensions Library UP1 integrate  SSJS Debug  Xpages developer productivity  New JAR Design  XSP Proprierties Editor  Bug fix «hight traffic» area  Dojo 1.8  CKEditor 3.6.3  Redirection Control  Xpages Social Integration Point  XPiNC
  • 5. Novità R9 - DDE
  • 6. Upgrade Pack 1 nei controlli  Su OpenNTF.org il codice ExtLib evolve più velocemente ma nella R9 è nativo UP1 con 100+ controlli  XSP proprierties editor nella GUI del designer
  • 7. Extensions Library  Scaricale da qui http://extlib.openntf.org/  Deploy su Domino seguendo con UpdateSite http://ibm.co/1drFGNS  Deploy su Domino Designer ricordati di attivare File  PreferencesDomino Designer Enalbe Eclipse N.B. nella R9 e nella UP1/UP2 8.5.3 ci sono le extlib supportate da IBM –I rilasci più recenti sono su OpenNTF.org
  • 8. SSJS Debug  Basato su Eclipse «Remote Java Connection» protocol ed utilizzo JPDA/JDI  Breakpoint nel code SSJS  Il server deve avere nel NOTES.INI – JavaEnableDebug=1 – JavascriptEnableDebug=1 – JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
  • 9. SSJS Debug
  • 10. Client JS/Dojo Debug Option  Codice JS non compresso per un miglior Debug (Dojo è deployed con OSGi)
  • 11. XPages Productivity  Content assist XSP Source code  Hyperlink navigation nel source code (CTRL+click sulle risorse per aprirle direttamente)  Help sul mouse over nel Source code  Palette State Saving  Jar Design Element  Working set migliorato (si vedono tutti)
  • 12. Bug Fix e criticità risolte Errore 500 usando Java Design Element Problemi nel Source Control quando importi databases con molti scipt Fixata un problema di tool riportato nella UP1 Migliorate le Performance/memoria nell’Xpages Editor Fixato il builder e LS Editor (La problem View riporta il numero corretto di linea andato in errore per i LS)
  • 13. Dojo 1.8 – CKEditor 3.6.3  Dojo 1.8 – Dojo è attualmente alla 1.9 (poca distanza) – Migliorato il supporto Mobile e diverse bug-fix  CKEditor 3.6.3 – CKEditor più istanze per Xpages – Inline Images – Gestione Allegati – Resize Image – Spell Checker – Migliore iOS gestione
  • 14. Controllo Redirect Imposta il «Form Display» ad una XPages che contiene il redirect control Ad esempio riscrive un URL per un rendering Mobile
  • 15. Xpages Social Integration –Send Mail Drag & Drop per invio mail Embedded Exprience: richiesto JSON
  • 16. XPiNC – XSP.executeCommand()  XSP.executeCommand(commandId, commandParams) – commandId identifies the requested function – commandParams is an object containing arbitary arg values  Provides secure access to: – Notes front-end functionality via NotesUIWorkspace classes – Eclipse framework – Custom Java code
  • 17. XPiNC in Remote Execution Mode
  • 18. TIPS & TRICKS XPAGES
  • 19. Tips & Tricks – Demo APP Demo onlineusername: demo pwd: dominopoint
  • 20. Metodo ExecuteOnServer I dettagli a questo URL http://bit.ly/15kPwM7 Invoca un evento SSJS da client JS executeOnServer(idHandler,refreshID,options) idHandler = nome dell’event Handler refreshId = id client da refreshare dopo l’esecuizione dell’handler Options = parametri opzionali dell’event handler
  • 21. executeOnServer code & Demo Demo online
  • 22. Dojo Toaster Widget Dojo: dojox.widget.Toaster Notifiche web 2.0 (duration, messaggio, posizione) In ascolto su un determinato canale Scrittura messaggio con dojo.publish("canale", ["messaggio"]) Demo online
  • 23. CKEditor 3.6.3  Free, attualmente release 4.2.1  Cross Browsder  API pubbliche http://bit.ly/19wzmAk  Editor RichText  Diverse plugin  Personalizzabile  Esiste da 10 anni  Usato dai più grandi vendor: http://ckeditor.com/about/who- is-using-ckeditor  Iphone ha un buon supporto, e stanno lavorando su Android
  • 24. CKEditor – custom inside Control Demo online
  • 25. CKEditor -XSnippets  OpenNTF.org http://bit.ly/17WzcV5  Focus:  Get Object CSJS  Add content SSJS  Add content JS
  • 26. AutoSave Custom Control  Apro una XPages che effettua il binding ad un NotesDocument  Ogni X secondi al variare del contenuto di un campo scatena Saving JS Client sfruttando ExecuteOnServer  Come Gmail quando crei un nuovo messaggio e lo salva automaticamente in Bozza  Bottone per attivare e disattivare e notifiche Toaster Demo online
  • 27. AutoSave –eventHandler Articolo su DP http://bit.ly/18OFlWi Presente un EventHandler che effettua il saving del documento ad esempio: <xp:eventHandler event="autoSaveEvent" id="autoSaveDoc" submit="false"> <xp:this.action> <xp:saveDocument /> </xp:this.action> </xp:eventHandler>
  • 28. AutoSave – CKEditor è cambiato? function CKEDITOResubmit(idCKEDITOR){ var rte=dijit.byId(idCKEDITOR); var txta=XSP.getElementById(idCKEDITOR+'_h'); if(!rte || !txta) return; txta.value = rte.getValue(); var mod=XSP.getElementById(idCKEDITOR+'_mod'); mod.value=rte.isModified(txta.value); return true; }
  • 29. AutoSave JS function AutoSave(){ executeOnServer('autoSaveDoc',null, {'valmode': 1, onStart:function() { for(var instanceName in CKEDITOR.instances) { CKEDITOResubmit(instanceName) } console.log("autosave start"); }, onComplete:function() { console.log("autosave complete") }, onError: function() { console.log("autosave error") } }) }
  • 30. AutoSave- timer var interval2 = setInterval(AutoSave, 10000); clearInterval(interval2); Dominopoint Demo
  • 31. JSON - RPC Un controllo presente nelle ExtLib Molto potente per invocare codice SSJS da client JS Esempio: var deferred = userinfo.getUserName() deferred.addCallback(function(result) { alert(result) });
  • 32. DocLock nativo Proprietà concurrencyMode=Fail Vedere la WIKI IBM http://ibm.co/15lqe0n Solo quando due utenti concorrenziali sono in editing e salvano appare…non prima
  • 33. DocLock CC Controlla che non ci sia un altro utente in editing sul documento in fase di apertura Disabilita il bottone di Modifica nel caso sia aperto da un altro utente Appare un messaggio Toaster quando l’utente blocca/sblocca il documento Funziona in cluster mode Demo online
  • 34. DocLock CC - elementi  DB SEMAFORO: contiene le UNID lockate, autore e ultimo aggiornamento di lock  JSON RPC – infoLock (UNID) boolean: controlla se il documento UNID è aperto in editing da un altro utente, se sono passati X secondi dall’ultimo lock..  Function UpdateLock l’utente in editing ogni 3 secondi invoca un update del documento nel DB semaforo utililizzando executeOnServer  CC Toaster per le notifiche di lock/unlock
  • 35. DocLock CC ?OpenDocument Islock? (JSON-RPC) è presnete nel DB Semaforo o sono passati 15 sec dall’ultimo Update? (SSJS Routine) si Controlla ogni 3 secondi Messaggio di lock solo la prima volta o al cambio stato (lock, unlock) Modifica disabilitato no Modifica abilitato
  • 36. ?EditDocument Write/Update (ExecuteOnServer) si ogni 3 secondi Aggiorna il DB Semaforo con la nuova Ora di Editing
  • 37. XPages Debug ToolBar • Toolbar di Debug quasi come FireBug solo che SSJS • Custom Control FREE da OpenNTF.org • Utile per lo sviluppo e Debug variabili e messaggio di errore • Inspector • Output di qualunque oggetto dBar.dump( anyObject ); dBar.info( "my message"); dBar.debug( "a debug message"); dBar.info( message:String, context:String); dBar.warn( message:String, context:String); dBar.debug( message:String, context:String); dBar.error(message:String, context:String); Demo online
  • 38. Ajax FileUpload Di controllo nativo Ajax non c’è nulla, è necessario Full Refresh della XPages OpenNTF.org Async Multi File Upload http://bit.ly/1eBJsHq Demo online
  • 39. Ajax FileUpload – come funziona? Usa il controllo Flash www.uploadify.com Usa JQuery POST dei file nella xspupload temp folder Anonymous con accesso Depositor e WritePulic Document Intercetta con XAgent http://bit.ly/18RmiEE la POST del file e lo embedda al RichText
  • 40. Ajax Processing FileUpload var con = facesContext.getExternalContext(); var request:com.sun.faces.context.MyHttpServletRequestWrapper = con.getRequest(); var map:java.util.Map = request.getParameterMap(); var fileDataName = "file"; //il nome della POST var fileData:com.ibm.xsp.http.UploadedFile = map.get( fileDataName ); print ("processing upload: " + fileData.getClientFileName() ); var tempFile:java.io.File = fileData.getServerFile(); // la variabile tempFile contiene il PATH del file uploadato e può essere embeddato al RichText…il nome temporaneo generato deve essere rinominato prima del’embedded
  • 41. Ajax Processing FileUpload var correctedFile = new java.io.File( tempFile.getParentFile().getAbsolutePath() + java.io.File.separator + fileData.getClientFileName() ); var success = tempFile.renameTo(correctedFile); rtFiles.embedObject(lotus.domino.local.EmbeddedObject.EMBED_ATTACH MENT, "", correctedFile.getAbsolutePath(), null); correctedFile.renameTo(tempFile);
  • 42. Ajax File Upload - altri • http://hasselba.ch/blog/?p=1286 (HTML5) • http://bit.ly/15lHzvm (Wiki Julian Buss) • http://bit.ly/15OUN2f (OpenNTF.org – multiple file Upload)
  • 43. OneUI  Ultima versione oneui è la 3.0.3 (nella R9 c’è la 3.0.2)  http://infolib.lotus.com/resources/oneui/3.0/docPu blic/index.htm  Per usare oneui 3.0.2 nella R9 basta inserire «oneuiv3.0.2» in Application Theme
  • 44. Da OneUI a bootstrap  http://bootstrap4xpages.com/  Uscito qualche giorno fa su OpenNTF.org  Se avete usato il control Application Layout delle extension library la conversione è automatica  Usate UpdateSite ed importate l’XML  Aggiornare il Designer con il nuovo componente  «bootstraov2.3.1» o «boostrapv2.3.1r» nell’application theme
  • 45. Da OneUI a bootstrap
  • 46. Da OneUI a bootstrap Demo online
  • 47. Cambio del tema live http://openntf.org/XSnippets.nsf/snippet.xsp?id=one ui-on-the-fly-theme-changer var f = "/"+@RightBack(context.getUrl().getAddress(),"/"); context.setSessionProperty('xsp.theme', ‘oneuiv.3.0.2’); context.redirectToPage(f)
  • 48. Risorse utili  www.openNTF.org  http://stackoverflow.com/questions/tagged/xpages  http://planetlotus.org/  http://hasselba.ch/blog/  http://xpageswiki.com/  http://xpages.info/XPagesHome.nsf/Resources.xsp
  • 49. Domande?
  • 50. Grazie agli sponsor per aver reso possibile i Dominopoint Days 2013! Main Sponsor Vad sponsor Platinum sponsor Gold sponsor