SlideShare a Scribd company logo
1 of 31
Easy as Pie – Developing Widgets
for IBM Connections
   About me
     ─With IntraVision – makers of OnTime®
      Group Calendar for Lotus Domino
     ─We've got stuff for IBM Connections
      too...
     ─An all together nice guy! :-)

   Agenda
     1)What are those widgets?
     2)Widget placement and modes
     3)Building the widget
     4)Server configuration                  1

     5)Breathe...
What are those widgets?
 Widgets in IBM Connections
     You may add widgets in Profiles, Communities and Homepage
     Most functionality in these features is actually widgets
     Widgets are made up of two parts
       ─ Widget configuration on the IBM Connections server
       ─ The actual widget written to the iWidget specification (JavaScript / XML / CSS)




                                                                                           2
Widget Placement
      and
 Widget Modes


   3
Widget modes
   There are a number of modes defined (view, edit, fullpage, search) but not all
    modes are supported in all features (fullpage and search only in Communities)
   Widgets may contribute multiple modes
   Administrator may choose to use some and not all modes contributed




                                                                       4
Widget modes
   There are a number of modes defined (view, edit, fullpage, search) but not all
    modes are supported in all features (fullpage and search only in Communities)
   Widgets may contribute multiple modes
   Administrator may choose to use some and not all modes contributed




                                                                       5
Widget modes
   There are a number of modes defined (view, edit, fullpage, search) but not all
    modes are supported in all features (fullpage and search only in Communities)
   Widgets may contribute multiple modes
   Administrator may choose to use some and not all modes contributed




                                                                       6
Configuration on the server




         7
Widget configuration in widgets-config.xml




                                             (unless using
                                             extreme care)




                                                8
Widget attributes makes the widget configurable
   It doesn't make sense to hard code or at least not supply sensible defaults and
    widget attributes can be used for configuration
   String key/value pairs may be supplied – interpretation of the value is up to the
    widget though
   Some values cannot be specified in widgets-config.xml as they may change
    based on IBM Connections configuration (such as context root i.e. “/dogear” /
    “/bookmarks”) or the ID of the active profile / community
   Special values are enclosed in curly braces – i.e.
     ─ {resourceId} profileKey of current Profiles user or communityUnid if in Communities
     ─ {contextRoot} Context root of the current feature (i.e. “/profiles”)




                                                                                     9
Widget attributes makes the widget configurable




                                                  10
Say hello to iWidgets
   In IBM Connections widgets are iWidgets i.e. written to the iWidget
    specification
      ─ …and then there are OpenSocial gadgets but that's another session
   Widgets are made up of a widget descriptor (referenced in widgets-config.xml)
    and the code the make the widget do stuff (HTML, CSS, JavaScript)
   The widget descriptor describes supported modes, startup mode, “iScope
    class” (more in a bit) and required resources (optional)
   Static widget content for each mode may also be supplied




                                                                    11
Widget Descriptors




    12
Widget descriptor – more in depth




                                    13
Widget descriptor – more in depth




                                    14
Widget descriptor – more in depth




                                    15
Widget descriptor – more in depth




                                    16
Widget descriptor – more in depth




                                    17
Widget descriptor – more in depth




                                    18
Coding the Widget




    19
iScope




●   Access to dojo version 1.4.1 (highly customized for IBM Connections)   20

●   You do not have to use dojo to declare the class...
iContext
   An iContext instance is automatically set into the iScope class
   The iContext provides access to the widget markup (e.g. root element), I/O
    related functions (i.e. URL rewriting), widget attributes etc.
   The iContext is easily accessed from the iScope class using this.iContext
   Important functions include:
     ─ iContext.getRootElement() : DOM Element
     ─ iContext.getElementById(id:string) : DOM Element
     ─ iContext.getiWidgetAttributes() : ItemSet
     ─ iContext.getUserProfile() : ItemSet
     ─ iContext.io.rewriteURI(uri:string) : string
     ─ iContext.iEvents.fireEvent(name:string, type:string, payload:object)


   You retrieve information from an ItemSet using getItemValue(name:string)


                                                                     21
Using iContext




                 22
Using iEvents




                23
Same Origin Policy and the
      AJAX Proxy



        24
What's your origin?
   In browsers JavaScript is governed by the Same Origin Policy
   When JavaScript runs in the browser it may only load resources (XHR's)
    from the server the script itself was loaded from
   Same server means:
      ─ Same hostname / IP
      ─ Same port number
   To work around this we use an
    AJAX proxy to proxy the request
    through the same server we
    loaded the JavaScript from




                                                                     25
Using the AJAX proxy
   Using the AJAX proxy consists of 3 steps
     1)Decide and/or compose the URL to the resource to load
     2)Rewrite the URL so it will go through the proxy
     3)Load the resource using the rewritten URL

   IBM Connections supplies us with a proxy
     ─ But again – beware! The way you use the proxy in code isn't really –
       hmmmm lets say - fully implemented or implemented very well
     ─ You use the iContext.io to rewrite the URL but dojo or plain ol' XHR to
       load the ressource as the iContext.io.request method isn't implemented
       in the IBM Connections iWidget container



                                                                      26
AJAX proxy Example




If running in Profiles the proxy will be http://<host>/profiles/ajaxProxy
                                                                                27
Above request will be http://<host>/profiles/ajaxProxy/http/www.google.com/search?q=Lotusphere
Proxy security
   Access through the proxy is disallowed by default
   You have to allow access on a per hostname and method
    type (GET, POST, DELETE etc.) basis (or open for all
    hostnames / methods although not recommended)
   Do remember to allow access for specific headers / cookies
    (i.e. to reuse LtpaToken)                                    (unless using
                                                                 extreme care)
   Proxy configuration done in proxy-config.tpl on
    the IBM Connections server




                                                                   28
Network latency kills web application performance...
   Cache as such as possible, combine multiple files into one minified version and
    utilize gzip...
   Repeat after me: “Latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency.....
                                                                          29
Summary
   Most functionality in IBM Connections is widgets and you can add your own
   Bringing your applications into IBM Connections and thus providing in-context
    access is very valuable
   Widgets are quite easy to develop using JavaScript and CSS although you must
    know about asynchronous JavaScript
   iWidgets, iScope, iContext, iEvents...
   Start small and build from there

   End-to-end video example on widget development
    on my blog by Monday

   Happy coding!!


    End-to-end video example on widget development                  30


                 on my blog by Monday
Q&A
   But?, How?, Doesn't that mean...
   Give it to me! (or come talk to me
    after the session...)

   T: @lekkim
    E: mh@intravision.dk
    B: http://lekkimworld.com




   http://www.ontimesuite.com
                                         31

More Related Content

What's hot

Introduction To Dojo
Introduction To DojoIntroduction To Dojo
Introduction To Dojoyoavrubin
 
Develop plugin for Mozilla Firefox and structure a JS-based application
Develop plugin for Mozilla Firefox and structure a JS-based applicationDevelop plugin for Mozilla Firefox and structure a JS-based application
Develop plugin for Mozilla Firefox and structure a JS-based applicationAfshin Mehrabani
 
iPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhoneiPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhoneHeiko Behrens
 
GlassFish v3 Lite Admin Console
GlassFish v3 Lite Admin ConsoleGlassFish v3 Lite Admin Console
GlassFish v3 Lite Admin Consoleanissalam
 
Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)njbartlett
 
Wix Application Framework
Wix Application FrameworkWix Application Framework
Wix Application FrameworkRan Mizrahi
 

What's hot (10)

Complete Dojo
Complete DojoComplete Dojo
Complete Dojo
 
Java beans
Java beansJava beans
Java beans
 
Introduction To Dojo
Introduction To DojoIntroduction To Dojo
Introduction To Dojo
 
Chromium vs. Firefox
Chromium vs. FirefoxChromium vs. Firefox
Chromium vs. Firefox
 
Develop plugin for Mozilla Firefox and structure a JS-based application
Develop plugin for Mozilla Firefox and structure a JS-based applicationDevelop plugin for Mozilla Firefox and structure a JS-based application
Develop plugin for Mozilla Firefox and structure a JS-based application
 
iPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhoneiPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhone
 
GlassFish v3 Lite Admin Console
GlassFish v3 Lite Admin ConsoleGlassFish v3 Lite Admin Console
GlassFish v3 Lite Admin Console
 
Javabeans
JavabeansJavabeans
Javabeans
 
Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)
 
Wix Application Framework
Wix Application FrameworkWix Application Framework
Wix Application Framework
 

Viewers also liked

Lotusphere BoF - Working with the Lotus Connections API
Lotusphere BoF - Working with the Lotus Connections APILotusphere BoF - Working with the Lotus Connections API
Lotusphere BoF - Working with the Lotus Connections APISacha Chua
 
BP301 - An introduction to working with the activity stream
BP301 - An introduction to working with the activity streamBP301 - An introduction to working with the activity stream
BP301 - An introduction to working with the activity streamMikkel Flindt Heisterberg
 
IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...
IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...
IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...David Simpson
 
Introduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learnedIntroduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learnedMikkel Flindt Heisterberg
 
BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...Mikkel Flindt Heisterberg
 
La collaborazione europea continua
La collaborazione europea continuaLa collaborazione europea continua
La collaborazione europea continuaBelsoft
 
How to increase social adoption - meetIT 2016, Milano
How to increase social adoption - meetIT 2016, MilanoHow to increase social adoption - meetIT 2016, Milano
How to increase social adoption - meetIT 2016, MilanoHenning Schmidt
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)TIMETOACT GROUP
 
API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...
API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...
API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...TIMETOACT GROUP
 
24 Ways to Enhance IBM Connections with XCC – Web Content & Custom Apps Exte...
24 Ways to Enhance IBM Connections with XCC – Web Content  & Custom Apps Exte...24 Ways to Enhance IBM Connections with XCC – Web Content  & Custom Apps Exte...
24 Ways to Enhance IBM Connections with XCC – Web Content & Custom Apps Exte...TIMETOACT GROUP
 
An Introduction to Working With the Activity Stream
An Introduction to Working With the Activity StreamAn Introduction to Working With the Activity Stream
An Introduction to Working With the Activity StreamMikkel Flindt Heisterberg
 
1309 leveraging social business data visualizing the connections org structure
1309  leveraging social business data visualizing the connections org structure1309  leveraging social business data visualizing the connections org structure
1309 leveraging social business data visualizing the connections org structureMatthew Milza
 
IBM Connections Cloud Application Development Strategy
IBM Connections Cloud Application Development StrategyIBM Connections Cloud Application Development Strategy
IBM Connections Cloud Application Development StrategyLuis Benitez
 
API Connect Presentation
API Connect PresentationAPI Connect Presentation
API Connect Presentationxband
 

Viewers also liked (18)

Lotusphere BoF - Working with the Lotus Connections API
Lotusphere BoF - Working with the Lotus Connections APILotusphere BoF - Working with the Lotus Connections API
Lotusphere BoF - Working with the Lotus Connections API
 
Ignite Timer
Ignite TimerIgnite Timer
Ignite Timer
 
BP301 - An introduction to working with the activity stream
BP301 - An introduction to working with the activity streamBP301 - An introduction to working with the activity stream
BP301 - An introduction to working with the activity stream
 
Bp209
Bp209Bp209
Bp209
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuth
 
IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...
IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...
IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...
 
Introduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learnedIntroduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learned
 
BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...
 
La collaborazione europea continua
La collaborazione europea continuaLa collaborazione europea continua
La collaborazione europea continua
 
How to increase social adoption - meetIT 2016, Milano
How to increase social adoption - meetIT 2016, MilanoHow to increase social adoption - meetIT 2016, Milano
How to increase social adoption - meetIT 2016, Milano
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
 
API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...
API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...
API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...
 
24 Ways to Enhance IBM Connections with XCC – Web Content & Custom Apps Exte...
24 Ways to Enhance IBM Connections with XCC – Web Content  & Custom Apps Exte...24 Ways to Enhance IBM Connections with XCC – Web Content  & Custom Apps Exte...
24 Ways to Enhance IBM Connections with XCC – Web Content & Custom Apps Exte...
 
IBM Connections 5 Gæstemodel
IBM Connections 5 GæstemodelIBM Connections 5 Gæstemodel
IBM Connections 5 Gæstemodel
 
An Introduction to Working With the Activity Stream
An Introduction to Working With the Activity StreamAn Introduction to Working With the Activity Stream
An Introduction to Working With the Activity Stream
 
1309 leveraging social business data visualizing the connections org structure
1309  leveraging social business data visualizing the connections org structure1309  leveraging social business data visualizing the connections org structure
1309 leveraging social business data visualizing the connections org structure
 
IBM Connections Cloud Application Development Strategy
IBM Connections Cloud Application Development StrategyIBM Connections Cloud Application Development Strategy
IBM Connections Cloud Application Development Strategy
 
API Connect Presentation
API Connect PresentationAPI Connect Presentation
API Connect Presentation
 

Similar to Easy as pie creating widgets for ibm connections

BP207 - Easy as pie creating widgets for ibm connections
BP207 - Easy as pie   creating widgets for ibm connectionsBP207 - Easy as pie   creating widgets for ibm connections
BP207 - Easy as pie creating widgets for ibm connectionsMikkel Flindt Heisterberg
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5Vinayak Tavargeri
 
Micro-Frontends JSVidCon
Micro-Frontends JSVidConMicro-Frontends JSVidCon
Micro-Frontends JSVidConAmir Zuker
 
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...Carl Tyler
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
 
ASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in TechnologyASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in TechnologyMałgorzata Borzęcka
 
Diff sand box and farm
Diff sand box and farmDiff sand box and farm
Diff sand box and farmRajkiran Swain
 
Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021WrapPixel
 
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai..."Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...Fwdays
 
DOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersDOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersYoav Avrahami
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf
 
Adopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf EuropeAdopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf EuropeKlausBaumecker
 
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman pluginoVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman pluginOved Ourfali
 
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04Fernando Fernández
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyMark Proctor
 
VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...
VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...
VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...itsatony
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated wayMichaël Perrin
 

Similar to Easy as pie creating widgets for ibm connections (20)

BP207 - Easy as pie creating widgets for ibm connections
BP207 - Easy as pie   creating widgets for ibm connectionsBP207 - Easy as pie   creating widgets for ibm connections
BP207 - Easy as pie creating widgets for ibm connections
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5
 
Micro-Frontends JSVidCon
Micro-Frontends JSVidConMicro-Frontends JSVidCon
Micro-Frontends JSVidCon
 
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
ASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in TechnologyASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in Technology
 
Diff sand box and farm
Diff sand box and farmDiff sand box and farm
Diff sand box and farm
 
Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021
 
Intro lift
Intro liftIntro lift
Intro lift
 
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai..."Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
 
DOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersDOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M users
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
 
Adopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf EuropeAdopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf Europe
 
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman pluginoVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
 
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04
Liferay UG Meetup #8 - Portal 7.3 + portlets com nodeJS - 2020-03-04
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
 
VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...
VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...
VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated way
 

More from LetsConnect

Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6LetsConnect
 
Oh $h@# - How to deal with emotional outbursts and hate in social situations
Oh $h@# - How to deal with emotional outbursts and hate in social situationsOh $h@# - How to deal with emotional outbursts and hate in social situations
Oh $h@# - How to deal with emotional outbursts and hate in social situationsLetsConnect
 
It is not About Connections vs Office 365 - You can have the best of the both...
It is not About Connections vs Office 365 - You can have the best of the both...It is not About Connections vs Office 365 - You can have the best of the both...
It is not About Connections vs Office 365 - You can have the best of the both...LetsConnect
 
Using ibm connections to enhance university courses
Using ibm connections to enhance university coursesUsing ibm connections to enhance university courses
Using ibm connections to enhance university coursesLetsConnect
 
IBM Connections 6 Component Pack
IBM Connections 6 Component PackIBM Connections 6 Component Pack
IBM Connections 6 Component PackLetsConnect
 
IBM Connections 6.0 CR3 New Features
IBM Connections 6.0 CR3 New FeaturesIBM Connections 6.0 CR3 New Features
IBM Connections 6.0 CR3 New FeaturesLetsConnect
 
10 years of IBM Connections
10 years of IBM Connections10 years of IBM Connections
10 years of IBM ConnectionsLetsConnect
 
IBM Collaboration Framework in action: Customer success stories
IBM Collaboration Framework in action: Customer success storiesIBM Collaboration Framework in action: Customer success stories
IBM Collaboration Framework in action: Customer success storiesLetsConnect
 
Design for the Digital Workspace
Design for the Digital WorkspaceDesign for the Digital Workspace
Design for the Digital WorkspaceLetsConnect
 
New Ways to Deliver Business Outcomes with INtelligent Workstream Collaboration
New Ways to Deliver Business Outcomes with INtelligent Workstream CollaborationNew Ways to Deliver Business Outcomes with INtelligent Workstream Collaboration
New Ways to Deliver Business Outcomes with INtelligent Workstream CollaborationLetsConnect
 
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...LetsConnect
 
There is nothing more practical than a good theory
There is nothing more practical than a good theoryThere is nothing more practical than a good theory
There is nothing more practical than a good theoryLetsConnect
 
Kubernetes Basics for Connections Admins
Kubernetes Basics for Connections AdminsKubernetes Basics for Connections Admins
Kubernetes Basics for Connections AdminsLetsConnect
 
Intelligent Collaboration driving Digital Transformation
Intelligent Collaboration driving Digital TransformationIntelligent Collaboration driving Digital Transformation
Intelligent Collaboration driving Digital TransformationLetsConnect
 
Developing IBM Connections Community Apps using Domino
Developing IBM Connections Community Apps using DominoDeveloping IBM Connections Community Apps using Domino
Developing IBM Connections Community Apps using DominoLetsConnect
 
IBM Connections - Have it YOUR Way!
IBM Connections - Have it YOUR Way!IBM Connections - Have it YOUR Way!
IBM Connections - Have it YOUR Way!LetsConnect
 
You Get What You Give
You Get What You GiveYou Get What You Give
You Get What You GiveLetsConnect
 
Building Custom ibm Watson Workspace Templates to make you and your team more...
Building Custom ibm Watson Workspace Templates to make you and your team more...Building Custom ibm Watson Workspace Templates to make you and your team more...
Building Custom ibm Watson Workspace Templates to make you and your team more...LetsConnect
 
ICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open SourceICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open SourceLetsConnect
 
Communities as the fundament of social learning
Communities as the fundament of social learningCommunities as the fundament of social learning
Communities as the fundament of social learningLetsConnect
 

More from LetsConnect (20)

Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6
 
Oh $h@# - How to deal with emotional outbursts and hate in social situations
Oh $h@# - How to deal with emotional outbursts and hate in social situationsOh $h@# - How to deal with emotional outbursts and hate in social situations
Oh $h@# - How to deal with emotional outbursts and hate in social situations
 
It is not About Connections vs Office 365 - You can have the best of the both...
It is not About Connections vs Office 365 - You can have the best of the both...It is not About Connections vs Office 365 - You can have the best of the both...
It is not About Connections vs Office 365 - You can have the best of the both...
 
Using ibm connections to enhance university courses
Using ibm connections to enhance university coursesUsing ibm connections to enhance university courses
Using ibm connections to enhance university courses
 
IBM Connections 6 Component Pack
IBM Connections 6 Component PackIBM Connections 6 Component Pack
IBM Connections 6 Component Pack
 
IBM Connections 6.0 CR3 New Features
IBM Connections 6.0 CR3 New FeaturesIBM Connections 6.0 CR3 New Features
IBM Connections 6.0 CR3 New Features
 
10 years of IBM Connections
10 years of IBM Connections10 years of IBM Connections
10 years of IBM Connections
 
IBM Collaboration Framework in action: Customer success stories
IBM Collaboration Framework in action: Customer success storiesIBM Collaboration Framework in action: Customer success stories
IBM Collaboration Framework in action: Customer success stories
 
Design for the Digital Workspace
Design for the Digital WorkspaceDesign for the Digital Workspace
Design for the Digital Workspace
 
New Ways to Deliver Business Outcomes with INtelligent Workstream Collaboration
New Ways to Deliver Business Outcomes with INtelligent Workstream CollaborationNew Ways to Deliver Business Outcomes with INtelligent Workstream Collaboration
New Ways to Deliver Business Outcomes with INtelligent Workstream Collaboration
 
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...
Power up your Salesforce Opportunities by using IBM Watson Workspace as your ...
 
There is nothing more practical than a good theory
There is nothing more practical than a good theoryThere is nothing more practical than a good theory
There is nothing more practical than a good theory
 
Kubernetes Basics for Connections Admins
Kubernetes Basics for Connections AdminsKubernetes Basics for Connections Admins
Kubernetes Basics for Connections Admins
 
Intelligent Collaboration driving Digital Transformation
Intelligent Collaboration driving Digital TransformationIntelligent Collaboration driving Digital Transformation
Intelligent Collaboration driving Digital Transformation
 
Developing IBM Connections Community Apps using Domino
Developing IBM Connections Community Apps using DominoDeveloping IBM Connections Community Apps using Domino
Developing IBM Connections Community Apps using Domino
 
IBM Connections - Have it YOUR Way!
IBM Connections - Have it YOUR Way!IBM Connections - Have it YOUR Way!
IBM Connections - Have it YOUR Way!
 
You Get What You Give
You Get What You GiveYou Get What You Give
You Get What You Give
 
Building Custom ibm Watson Workspace Templates to make you and your team more...
Building Custom ibm Watson Workspace Templates to make you and your team more...Building Custom ibm Watson Workspace Templates to make you and your team more...
Building Custom ibm Watson Workspace Templates to make you and your team more...
 
ICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open SourceICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open Source
 
Communities as the fundament of social learning
Communities as the fundament of social learningCommunities as the fundament of social learning
Communities as the fundament of social learning
 

Recently uploaded

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Easy as pie creating widgets for ibm connections

  • 1. Easy as Pie – Developing Widgets for IBM Connections  About me ─With IntraVision – makers of OnTime® Group Calendar for Lotus Domino ─We've got stuff for IBM Connections too... ─An all together nice guy! :-)  Agenda 1)What are those widgets? 2)Widget placement and modes 3)Building the widget 4)Server configuration 1 5)Breathe...
  • 2. What are those widgets? Widgets in IBM Connections  You may add widgets in Profiles, Communities and Homepage  Most functionality in these features is actually widgets  Widgets are made up of two parts ─ Widget configuration on the IBM Connections server ─ The actual widget written to the iWidget specification (JavaScript / XML / CSS) 2
  • 3. Widget Placement and Widget Modes 3
  • 4. Widget modes  There are a number of modes defined (view, edit, fullpage, search) but not all modes are supported in all features (fullpage and search only in Communities)  Widgets may contribute multiple modes  Administrator may choose to use some and not all modes contributed 4
  • 5. Widget modes  There are a number of modes defined (view, edit, fullpage, search) but not all modes are supported in all features (fullpage and search only in Communities)  Widgets may contribute multiple modes  Administrator may choose to use some and not all modes contributed 5
  • 6. Widget modes  There are a number of modes defined (view, edit, fullpage, search) but not all modes are supported in all features (fullpage and search only in Communities)  Widgets may contribute multiple modes  Administrator may choose to use some and not all modes contributed 6
  • 8. Widget configuration in widgets-config.xml (unless using extreme care) 8
  • 9. Widget attributes makes the widget configurable  It doesn't make sense to hard code or at least not supply sensible defaults and widget attributes can be used for configuration  String key/value pairs may be supplied – interpretation of the value is up to the widget though  Some values cannot be specified in widgets-config.xml as they may change based on IBM Connections configuration (such as context root i.e. “/dogear” / “/bookmarks”) or the ID of the active profile / community  Special values are enclosed in curly braces – i.e. ─ {resourceId} profileKey of current Profiles user or communityUnid if in Communities ─ {contextRoot} Context root of the current feature (i.e. “/profiles”) 9
  • 10. Widget attributes makes the widget configurable 10
  • 11. Say hello to iWidgets  In IBM Connections widgets are iWidgets i.e. written to the iWidget specification ─ …and then there are OpenSocial gadgets but that's another session  Widgets are made up of a widget descriptor (referenced in widgets-config.xml) and the code the make the widget do stuff (HTML, CSS, JavaScript)  The widget descriptor describes supported modes, startup mode, “iScope class” (more in a bit) and required resources (optional)  Static widget content for each mode may also be supplied 11
  • 13. Widget descriptor – more in depth 13
  • 14. Widget descriptor – more in depth 14
  • 15. Widget descriptor – more in depth 15
  • 16. Widget descriptor – more in depth 16
  • 17. Widget descriptor – more in depth 17
  • 18. Widget descriptor – more in depth 18
  • 20. iScope ● Access to dojo version 1.4.1 (highly customized for IBM Connections) 20 ● You do not have to use dojo to declare the class...
  • 21. iContext  An iContext instance is automatically set into the iScope class  The iContext provides access to the widget markup (e.g. root element), I/O related functions (i.e. URL rewriting), widget attributes etc.  The iContext is easily accessed from the iScope class using this.iContext  Important functions include: ─ iContext.getRootElement() : DOM Element ─ iContext.getElementById(id:string) : DOM Element ─ iContext.getiWidgetAttributes() : ItemSet ─ iContext.getUserProfile() : ItemSet ─ iContext.io.rewriteURI(uri:string) : string ─ iContext.iEvents.fireEvent(name:string, type:string, payload:object)  You retrieve information from an ItemSet using getItemValue(name:string) 21
  • 24. Same Origin Policy and the AJAX Proxy 24
  • 25. What's your origin?  In browsers JavaScript is governed by the Same Origin Policy  When JavaScript runs in the browser it may only load resources (XHR's) from the server the script itself was loaded from  Same server means: ─ Same hostname / IP ─ Same port number  To work around this we use an AJAX proxy to proxy the request through the same server we loaded the JavaScript from 25
  • 26. Using the AJAX proxy  Using the AJAX proxy consists of 3 steps 1)Decide and/or compose the URL to the resource to load 2)Rewrite the URL so it will go through the proxy 3)Load the resource using the rewritten URL  IBM Connections supplies us with a proxy ─ But again – beware! The way you use the proxy in code isn't really – hmmmm lets say - fully implemented or implemented very well ─ You use the iContext.io to rewrite the URL but dojo or plain ol' XHR to load the ressource as the iContext.io.request method isn't implemented in the IBM Connections iWidget container 26
  • 27. AJAX proxy Example If running in Profiles the proxy will be http://<host>/profiles/ajaxProxy 27 Above request will be http://<host>/profiles/ajaxProxy/http/www.google.com/search?q=Lotusphere
  • 28. Proxy security  Access through the proxy is disallowed by default  You have to allow access on a per hostname and method type (GET, POST, DELETE etc.) basis (or open for all hostnames / methods although not recommended)  Do remember to allow access for specific headers / cookies (i.e. to reuse LtpaToken) (unless using extreme care)  Proxy configuration done in proxy-config.tpl on the IBM Connections server 28
  • 29. Network latency kills web application performance...  Cache as such as possible, combine multiple files into one minified version and utilize gzip...  Repeat after me: “Latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency..... 29
  • 30. Summary  Most functionality in IBM Connections is widgets and you can add your own  Bringing your applications into IBM Connections and thus providing in-context access is very valuable  Widgets are quite easy to develop using JavaScript and CSS although you must know about asynchronous JavaScript  iWidgets, iScope, iContext, iEvents...  Start small and build from there  End-to-end video example on widget development on my blog by Monday  Happy coding!! End-to-end video example on widget development 30 on my blog by Monday
  • 31. Q&A  But?, How?, Doesn't that mean...  Give it to me! (or come talk to me after the session...)  T: @lekkim E: mh@intravision.dk B: http://lekkimworld.com  http://www.ontimesuite.com 31