際際滷

際際滷Share a Scribd company logo
News R9 develop e XPages Tips
Daniele Grillo
GRYDAN SAS
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
NOVITA R9 DEVELOP
際際滷 tratte da:
http://bit.ly/1aY4dJp
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
Novit R9 - DDE
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
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
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
SSJS Debug
Client JS/Dojo Debug Option
 Codice JS non compresso per un miglior Debug
(Dojo 竪 deployed con OSGi)
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)
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
nellXpages Editor
Fixato il builder e LS Editor (La problem View
riporta il numero corretto di linea andato in
errore per i LS)
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
Controllo Redirect
Imposta il 束Form Display損 ad una XPages che
contiene il redirect control
Ad esempio riscrive un URL per un rendering
Mobile
Xpages Social Integration Send Mail
Drag & Drop per invio mail
Embedded Exprience: richiesto JSON
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
XPiNC in Remote Execution Mode
TIPS & TRICKS XPAGES
Tips & Tricks  Demo APP
Demo onlineusername: demo
pwd: dominopoint
Metodo ExecuteOnServer
I dettagli a questo URL http://bit.ly/15kPwM7
Invoca un evento SSJS da client JS
executeOnServer(idHandler,refreshID,options)
idHandler = nome dellevent Handler
refreshId = id client da refreshare dopo lesecuizione dellhandler
Options = parametri opzionali dellevent handler
executeOnServer code & Demo
Demo online
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
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
CKEditor  custom inside Control
Demo online
CKEditor -XSnippets
 OpenNTF.org http://bit.ly/17WzcV5
 Focus:
 Get Object CSJS
 Add content SSJS
 Add content JS
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
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>
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;
}
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") }
})
}
AutoSave- timer
var interval2 = setInterval(AutoSave, 10000);
clearInterval(interval2);
Dominopoint Demo
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)
});
DocLock nativo
Propriet concurrencyMode=Fail
Vedere la WIKI IBM http://ibm.co/15lqe0n
Solo quando due utenti concorrenziali sono in
editing e salvano apparenon prima
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 lutente
blocca/sblocca il documento
Funziona in cluster mode
Demo online
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 dallultimo lock..
 Function UpdateLock lutente in editing ogni 3
secondi invoca un update del documento nel DB
semaforo utililizzando executeOnServer
 CC Toaster per le notifiche di lock/unlock
DocLock CC
?OpenDocument
Islock?
(JSON-RPC)
竪 presnete nel DB
Semaforo o sono
passati 15 sec
dallultimo
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
?EditDocument
Write/Update
(ExecuteOnServer)
si
ogni 3 secondi
Aggiorna il DB
Semaforo con la nuova
Ora di Editing
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
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
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
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 RichTextil nome temporaneo generato deve essere
rinominato prima delembedded
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);
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)
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
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 lXML
 Aggiornare il Designer con il nuovo componente
 束bootstraov2.3.1損 o 束boostrapv2.3.1r損 nellapplication theme
Da OneUI a bootstrap
Da OneUI a bootstrap
Demo online
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)
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
Domande?
Grazie agli sponsor per aver reso possibile i
Dominopoint Days 2013!
Main Sponsor
Vad sponsor
Platinum sponsor
Gold sponsor

More Related Content

Viewers also liked (20)

Boletinxuventude 18 11_13-1
Boletinxuventude 18 11_13-1Boletinxuventude 18 11_13-1
Boletinxuventude 18 11_13-1
Charo Garc鱈a
Presentaci坦N Corporativa Iberia Diciembre 2011Presentaci坦N Corporativa Iberia Diciembre 2011
Presentaci坦N Corporativa Iberia Diciembre 2011
EvaUlibarri
 Lisez moi Lisez moi
Lisez moi
Tico Matnik
 A eso A eso
A eso
Luis Martin Barajas
Manual corporativo DOMECO por Marta DoradoManual corporativo DOMECO por Marta Dorado
Manual corporativo DOMECO por Marta Dorado
Marta Dorado
Eurofinsa Entrevista a Hendrik Meima. El economista Suplemento CatarEurofinsa Entrevista a Hendrik Meima. El economista Suplemento Catar
Eurofinsa Entrevista a Hendrik Meima. El economista Suplemento Catar
Eurofinsa
Presentaci坦n Asivega - Marketing Inmobiliario OnlinePresentaci坦n Asivega - Marketing Inmobiliario Online
Presentaci坦n Asivega - Marketing Inmobiliario Online
cesar villasante
Ecosistemas digitales - c坦mo son y c坦mo los trabajamosEcosistemas digitales - c坦mo son y c坦mo los trabajamos
Ecosistemas digitales - c坦mo son y c坦mo los trabajamos
carlavalenciac
Uni6ininUni6inin
Uni6inin
Humberto Kareaga Urizar
Metricsftw 1-120319102146-phpapp02
Metricsftw 1-120319102146-phpapp02Metricsftw 1-120319102146-phpapp02
Metricsftw 1-120319102146-phpapp02
Refugio Reg
INFOVA Presentaci坦nINFOVA Presentaci坦n
INFOVA Presentaci坦n
felipeynzenga
M叩ster en direcci坦n y gesti坦n de empresas tur鱈sticasM叩ster en direcci坦n y gesti坦n de empresas tur鱈sticas
M叩ster en direcci坦n y gesti坦n de empresas tur鱈sticas
Compa単鱈a de Formaci坦n Empresarial
Las ventajas del telefono infuse 4 gLas ventajas del telefono infuse 4 g
Las ventajas del telefono infuse 4 g
amneris1990
Torreon juny 2013Torreon juny 2013
Torreon juny 2013
Atab Sindicato
ERFA 2015: Pr辿sentation de Martial Bujard, Directeur, Agence Swissolar romand...ERFA 2015: Pr辿sentation de Martial Bujard, Directeur, Agence Swissolar romand...
ERFA 2015: Pr辿sentation de Martial Bujard, Directeur, Agence Swissolar romand...
swissolar-romande
Medicina tropicaaaaalMedicina tropicaaaaal
Medicina tropicaaaaal
Julio C辿sar Ceballos Trujeque
Capitulo 2 excelCapitulo 2 excel
Capitulo 2 excel
Fes-Zaragoza
Triptico o la desolacion de rafael 2012, dossier de la obra de teatro.Triptico o la desolacion de rafael 2012, dossier de la obra de teatro.
Triptico o la desolacion de rafael 2012, dossier de la obra de teatro.
Bombin Teatro grupo iberoamericano de creaci坦n teatral
Flicker y blogFlicker y blog
Flicker y blog
DAVID ANDRES
Aladdin cargo - Steven Alejandro Su叩rez CastroAladdin cargo - Steven Alejandro Su叩rez Castro
Aladdin cargo - Steven Alejandro Su叩rez Castro
Steven Alejandro Su叩rez Castro
Boletinxuventude 18 11_13-1
Boletinxuventude 18 11_13-1Boletinxuventude 18 11_13-1
Boletinxuventude 18 11_13-1
Charo Garc鱈a
Presentaci坦N Corporativa Iberia Diciembre 2011Presentaci坦N Corporativa Iberia Diciembre 2011
Presentaci坦N Corporativa Iberia Diciembre 2011
EvaUlibarri
 Lisez moi Lisez moi
Lisez moi
Tico Matnik
Manual corporativo DOMECO por Marta DoradoManual corporativo DOMECO por Marta Dorado
Manual corporativo DOMECO por Marta Dorado
Marta Dorado
Eurofinsa Entrevista a Hendrik Meima. El economista Suplemento CatarEurofinsa Entrevista a Hendrik Meima. El economista Suplemento Catar
Eurofinsa Entrevista a Hendrik Meima. El economista Suplemento Catar
Eurofinsa
Presentaci坦n Asivega - Marketing Inmobiliario OnlinePresentaci坦n Asivega - Marketing Inmobiliario Online
Presentaci坦n Asivega - Marketing Inmobiliario Online
cesar villasante
Ecosistemas digitales - c坦mo son y c坦mo los trabajamosEcosistemas digitales - c坦mo son y c坦mo los trabajamos
Ecosistemas digitales - c坦mo son y c坦mo los trabajamos
carlavalenciac
Metricsftw 1-120319102146-phpapp02
Metricsftw 1-120319102146-phpapp02Metricsftw 1-120319102146-phpapp02
Metricsftw 1-120319102146-phpapp02
Refugio Reg
INFOVA Presentaci坦nINFOVA Presentaci坦n
INFOVA Presentaci坦n
felipeynzenga
M叩ster en direcci坦n y gesti坦n de empresas tur鱈sticasM叩ster en direcci坦n y gesti坦n de empresas tur鱈sticas
M叩ster en direcci坦n y gesti坦n de empresas tur鱈sticas
Compa単鱈a de Formaci坦n Empresarial
Las ventajas del telefono infuse 4 gLas ventajas del telefono infuse 4 g
Las ventajas del telefono infuse 4 g
amneris1990
Torreon juny 2013Torreon juny 2013
Torreon juny 2013
Atab Sindicato
ERFA 2015: Pr辿sentation de Martial Bujard, Directeur, Agence Swissolar romand...ERFA 2015: Pr辿sentation de Martial Bujard, Directeur, Agence Swissolar romand...
ERFA 2015: Pr辿sentation de Martial Bujard, Directeur, Agence Swissolar romand...
swissolar-romande
Medicina tropicaaaaalMedicina tropicaaaaal
Medicina tropicaaaaal
Julio C辿sar Ceballos Trujeque
Capitulo 2 excelCapitulo 2 excel
Capitulo 2 excel
Fes-Zaragoza
Triptico o la desolacion de rafael 2012, dossier de la obra de teatro.Triptico o la desolacion de rafael 2012, dossier de la obra de teatro.
Triptico o la desolacion de rafael 2012, dossier de la obra de teatro.
Bombin Teatro grupo iberoamericano de creaci坦n teatral
Flicker y blogFlicker y blog
Flicker y blog
DAVID ANDRES
Aladdin cargo - Steven Alejandro Su叩rez CastroAladdin cargo - Steven Alejandro Su叩rez Castro
Aladdin cargo - Steven Alejandro Su叩rez Castro
Steven Alejandro Su叩rez Castro

Similar to XPages Tips & Tricks, #dd13 (20)

Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
Dominopoint - Italian Lotus User Group
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Giorgio Cefaro
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
Dominopoint - Italian Lotus User Group
Sviluppo e deployment cross-platform: Dal mobile alla Tv
Sviluppo e deployment cross-platform: Dal mobile alla Tv Sviluppo e deployment cross-platform: Dal mobile alla Tv
Sviluppo e deployment cross-platform: Dal mobile alla Tv
Codemotion
Dominare il codice legacy
Dominare il codice legacyDominare il codice legacy
Dominare il codice legacy
Tommaso Torti
#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)
Dominopoint - Italian Lotus User Group
TYPO3 7.0 - Le novit
TYPO3 7.0 - Le novitTYPO3 7.0 - Le novit
TYPO3 7.0 - Le novit
Roberto Torresani
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte
Introduzione a node.js
Introduzione a node.jsIntroduzione a node.js
Introduzione a node.js
Luciano Colosio
Introduzione a Node.js
Introduzione a Node.jsIntroduzione a Node.js
Introduzione a Node.js
Michele Capra
TYPO3 CMS 8.1 - Le novit
TYPO3 CMS 8.1 - Le novitTYPO3 CMS 8.1 - Le novit
TYPO3 CMS 8.1 - Le novit
Roberto Torresani
Novit di Asp.Net 4.0
Novit di Asp.Net 4.0Novit di Asp.Net 4.0
Novit di Asp.Net 4.0
Gian Maria Ricci
Novita TYPO3 CMS 7.2
Novita TYPO3 CMS 7.2Novita TYPO3 CMS 7.2
Novita TYPO3 CMS 7.2
Roberto Torresani
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloud
Gabriele Baldoni
Build Automation Tips
Build Automation TipsBuild Automation Tips
Build Automation Tips
Carlo Bonamico
TYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novitaTYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novita
Roberto Torresani
jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesigner
Matteo Magni
Html5 e PHP
Html5 e PHPHtml5 e PHP
Html5 e PHP
Mariano Fiorentino
jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesigner
Matteo Magni
Adobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best PracticesAdobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best Practices
marcocasario
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Giorgio Cefaro
Sviluppo e deployment cross-platform: Dal mobile alla Tv
Sviluppo e deployment cross-platform: Dal mobile alla Tv Sviluppo e deployment cross-platform: Dal mobile alla Tv
Sviluppo e deployment cross-platform: Dal mobile alla Tv
Codemotion
Dominare il codice legacy
Dominare il codice legacyDominare il codice legacy
Dominare il codice legacy
Tommaso Torti
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte
Introduzione a node.js
Introduzione a node.jsIntroduzione a node.js
Introduzione a node.js
Luciano Colosio
Introduzione a Node.js
Introduzione a Node.jsIntroduzione a Node.js
Introduzione a Node.js
Michele Capra
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloud
Gabriele Baldoni
Build Automation Tips
Build Automation TipsBuild Automation Tips
Build Automation Tips
Carlo Bonamico
TYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novitaTYPO3 CMS 7.3 - le novita
TYPO3 CMS 7.3 - le novita
Roberto Torresani
jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesigner
Matteo Magni
jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesigner
Matteo Magni
Adobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best PracticesAdobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best Practices
marcocasario

More from Dominopoint - Italian Lotus User Group (20)

TOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in DominoTOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in Domino
Dominopoint - Italian Lotus User Group
Domino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo TaskDomino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo Task
Dominopoint - Italian Lotus User Group
Mail Client from Traveler to Verse On-Premises
Mail Client from Traveler to Verse On-PremisesMail Client from Traveler to Verse On-Premises
Mail Client from Traveler to Verse On-Premises
Dominopoint - Italian Lotus User Group
IBM Worspace: Towards a culture of conversations
IBM Worspace: Towards a culture of conversationsIBM Worspace: Towards a culture of conversations
IBM Worspace: Towards a culture of conversations
Dominopoint - Italian Lotus User Group
Microsoft Outlook for Domino (IMSMO)
Microsoft Outlook for Domino (IMSMO)Microsoft Outlook for Domino (IMSMO)
Microsoft Outlook for Domino (IMSMO)
Dominopoint - Italian Lotus User Group
Riding the Enterprise Integration train
Riding the Enterprise Integration trainRiding the Enterprise Integration train
Riding the Enterprise Integration train
Dominopoint - Italian Lotus User Group
Ortocloud l'applicazione per fare orto su Bluemix
Ortocloud l'applicazione per fare orto su BluemixOrtocloud l'applicazione per fare orto su Bluemix
Ortocloud l'applicazione per fare orto su Bluemix
Dominopoint - Italian Lotus User Group
Meetit16 KeyNote di Apertura
Meetit16 KeyNote di AperturaMeetit16 KeyNote di Apertura
Meetit16 KeyNote di Apertura
Dominopoint - Italian Lotus User Group
IBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with AngularjsIBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with Angularjs
Dominopoint - Italian Lotus User Group
IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...
Dominopoint - Italian Lotus User Group
Cloudant e XPages
Cloudant e XPagesCloudant e XPages
Cloudant e XPages
Dominopoint - Italian Lotus User Group
IBM Bluemix
IBM BluemixIBM Bluemix
IBM Bluemix
Dominopoint - Italian Lotus User Group
IBM Connections 10 things every user should know
IBM Connections 10 things every user should knowIBM Connections 10 things every user should know
IBM Connections 10 things every user should know
Dominopoint - Italian Lotus User Group
IBM Verse New Way To Work
IBM Verse New Way To WorkIBM Verse New Way To Work
IBM Verse New Way To Work
Dominopoint - Italian Lotus User Group
Crossware MailSignature
Crossware MailSignatureCrossware MailSignature
Crossware MailSignature
Dominopoint - Italian Lotus User Group
Cooperteam soluzioni
Cooperteam soluzioniCooperteam soluzioni
Cooperteam soluzioni
Dominopoint - Italian Lotus User Group
Notes and Domino Roadmap
Notes and Domino RoadmapNotes and Domino Roadmap
Notes and Domino Roadmap
Dominopoint - Italian Lotus User Group
La Collaborazione Europea
La Collaborazione EuropeaLa Collaborazione Europea
La Collaborazione Europea
Dominopoint - Italian Lotus User Group
the future of work
the future of workthe future of work
the future of work
Dominopoint - Italian Lotus User Group
Dominopoint meet the experts 2015 - XPages
Dominopoint   meet the experts 2015 - XPagesDominopoint   meet the experts 2015 - XPages
Dominopoint meet the experts 2015 - XPages
Dominopoint - Italian Lotus User Group
IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...
Dominopoint - Italian Lotus User Group

XPages Tips & Tricks, #dd13

  • 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 際際滷 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
  • 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 nellXpages 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 dellevent Handler refreshId = id client da refreshare dopo lesecuizione dellhandler Options = parametri opzionali dellevent 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 apparenon 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 lutente 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 dallultimo lock.. Function UpdateLock lutente 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 dallultimo 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 RichTextil nome temporaneo generato deve essere rinominato prima delembedded
  • 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 lXML Aggiornare il Designer con il nuovo componente 束bootstraov2.3.1損 o 束boostrapv2.3.1r損 nellapplication 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
  • 50. Grazie agli sponsor per aver reso possibile i Dominopoint Days 2013! Main Sponsor Vad sponsor Platinum sponsor Gold sponsor