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