SlideShare a Scribd company logo
Everything is designed,
few things are designed well
Unknown author

BOOTSTRAP & XPAGES:
THE BASICS AND BEYOND
Today’s topics
 What’s Bootstrap
 And more in general: “What is a design framework

and why would you use one?”

 Getting started with Bootstrap in XPages

 Challenges (yes, there are some)
 Bootstrap4XPages plugin

 Themes
 Plugins
Who’s that?
 Freelance consultant/ developer
 IBM Notes/ Domino
 XPages, web, Java, client, mobile

 OpenNTF Board member & contributor
 Auto Logins
 XPage Multiple File Uploader
 XPage Debug Toolbar

 IBM Champion
 Bootstrap4XPages.com
Why a design framework
 Because you want your apps to look good
 And so do your users!

 Consistent UI = easier to use
 So you don’t need to write documentation

 We’re developers
 We’re creative too, but in a different way

 Deal with cross browser issues
What is Bootstrap
So it looks good on all
kinds of devices

Bootstrap is a responsive
design framework to build
websites and/or web applications
So you can make your
work look good – even
as a developer…

FREE
What do you get?
 Layout

 Grids
 Styles
 Icons
 using the Glyphicon font

 Cross-browser

 Responsive
What do you get?
 Easy to use and extend
 And it looks good too (I think)
 Developed by Twitter
 Open source since 2011
 Active community (very)
 One of most popular projects on GitHub
 Sites with themes, plugins, snippets
Bootstrap 3
 Released mid 2013
 Re-built from the ground up
 Mobile first
 Responsive by default (optional in 2.3)

 Changed grid
 Icons are now fonts
 So they scale

 Support for IE 8+
 Older browsers dropped
And the downside?
 It’s Bootstrap

 Once you’ve seen one, you’ve seen them all
 So:

 Be creative
 Use a theme
 Or write your own
Bootstrap files
 Only a couple of JavaScript,

CSS & font files
 Needs jQuery for some

functions
Bootstrap in XPages
 Two methods:
 DIY (Do-it-yourself)

 Use the Bootstrap4XPages plugin
DIY
 Download
 Bootstrap
 jQuery

 Add files to

WebContent folder
 Via the package explorer
 Just drag-n-drop them
DIY
 Create a theme
 jQuery Javascript
 Bootstrap Javascript
 Bootstrap CSS

 Meta “viewport” tag

 Create a layout custom control with your page

layout
 Add an editable control for your content
Demo
Bootstrap4XPages plugin
 OpenNTF project
 Part of OpenNTF Essentials
 http://bootstrap4xpages.openntf.org/

 OSGi plugin that automatically loads the

Bootstrap resources (CSS, JavaScript)
 Uses Custom renderers
 e.g. adds the btn class to all buttons
Bootstrap4XPages plugin
 Support for Bootstrap 2.3.1, 2.3.2 and 3
 Bootstrap 3 support was just released last week

 Requires ExtLib
 Supported on Domino 9
Bootstrap4XPages plugin
 Add to Designer and Server

 Enable plugin in your application
 Set your application’s theme to either
 bootstrapv2.3.1
 bootstrapv2.3.1r
 bootstrapv2.3.1
 bootstrapv2.3.2r
 bootstrapv3.0.0
Demo
Bootstrap4XPages plugin
 Community effort

 You can contribute too!
 Actually… Phil Riand is asking for your help 

 Set up a plugin development environment
 (watch the webinar:

http://www.youtube.com/watch?v=uAff5uNwhn0)

 Fork from GitHub
 Make your changes and create a pull request
Pitfalls with XPages
 Targeting elements using jQuery $();
 Colons need to be escaped
 User Mark Roden’s xSnippet for that
http://openntf.org/XSnippets.nsf/snippet.xsp?id=x-jqueryselector-for-xpages

function x$(idTag, param){
idTag = idTag.replace(/:/gi, ":")+(param ? param : "");
return ($("#"+idTag));
}
Pitfalls with XPages

Resource aggregation & relative paths
 Conditionally load a stylesheet

<resource rendered=“#{javascript:
context.getProperty('xsp.resources.aggregate').equals('true')}">
<content-type>text/css</content-type>
<href>override.css</href>
</resource>}
Pitfalls with XPages
 Use HTML5 DocType
 Set in XSP Properties

 If you want to avoid CSS conflicts, remove the

“extends=“ from your theme
 But you need to style everything
Reusable fields & validation
 Bootstrap requires a lot of HTML for a single

form field
 Add that to a custom control
 For every field on your form: add that custom
control
 Add error class for validation errors
Demo
Themes (not the XPage ones)
 Don’t like the default look? Get a theme
 http://wrapbootstrap.com
 http://bootswatch.com

 Or create one
 http://stylebootstrap.info/

(or go hardcore and use LESS)
Plugins
 Lot of plugins available

 Mostly build on top of jQuery
 With a bit of Bootstrap styling

 Some I really like:
 Select2
 Font awesome
 jQuery File Uploader
Plugins – Select2
 Turns a boring combobox
 Into an advanced search control
 With support for:
 Typeahead-selection
 Static/ dynamic links (using Ajax)
 Markup
 Events
Demo
Select2 - basics
 Download release

 Load select2.min.js and select2.css
 Transform a xp:comboBox using:
<xp:scriptBlock id="scriptBlock2"><xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:comboBox5}" ).select2();
} );
]]></xp:this.value></xp:scriptBlock>
Select2 – remote data
 Pass query to XAgent style XPage
 XPage performs query, returns JSON formatted

results
 Select2 plugin deals with creating a list based on

your query
Plugins – Font awesome
 Bootstrap 3 comes with

200 Glyphicons
 But no rocket

 Font awesome has 369
 Including a rocket
Plugins – Font awesome
 Only need to load a single CSS file

 But make a small change first:
url('../font/fontawesome-webfont.eot?v=3.2.1');
url('../font/fontawesome-webfont.eot?open&v=3.2.1');
<xp:button styleClass=“btn” value=“Home”>
<i class=“icon-home” />
</xp:button>
Demo
Plugins – jQuery File Upload
 HTML5 multi-file uploader

 Support for:
 Progress bars
 Drag-n-drop

 Client side images resizing

 Browsers:
 Internet Explorer 10+
 Chrome, Firefox
 Mobile browsers
Demo
Plugins – jQuery File Upload
 Added library to database

 Create XAgent XPage that can receive files
 upload.xsp
 eu.linqed.UploadHandler()

 jQuery with Dojo 1.8 can be is hard
 Load jQuery & plugins before anything else
 See http://hasselba.ch/blog/?p=1216
Not enough? There’s more…
 Fuel UX - http://exacttarget.github.io/fuelux/

 Tablecloth - http://tableclothjs.com/
 Jetstrap – http://jetstrap.com
 Paintstrap – http://www.paintstrap.com
 Need inspiration? http://builtwithbootstrap.com/
To summarize
 Stable framework

 Easy to get started with
 Solid backing from a large community
 Lots of resources
 “I’m not a designer” is not an excuse to create a

good looking site
What’s next?
 You’re up.

 http://bootstrap4xpages.openntf.org
 http://Bootstrap4XPages.com
 Going to Connect? Come to my and Phil Riand’s Bootstrap

session!

 Got questions?
 Twitter: @markleusink
 Email: m.leusink@linqed.eu
 Blog: http://linqed.eu

More Related Content

PPTX
Bootstrap4XPages webinar
ODP
Bootstrap4 x pages
PDF
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
PDF
Bootstrap4XPages
PPTX
Responsive Layout Frameworks for XPages Application UI
PPT
Engage - Expanding XPages with Bootstrap Plugins for ultimate usability
PDF
Building Responsive Applications Using XPages
PDF
XPages Application Layout Control - TLCC March, 2014 Webinar
Bootstrap4XPages webinar
Bootstrap4 x pages
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Bootstrap4XPages
Responsive Layout Frameworks for XPages Application UI
Engage - Expanding XPages with Bootstrap Plugins for ultimate usability
Building Responsive Applications Using XPages
XPages Application Layout Control - TLCC March, 2014 Webinar

What's hot (20)

PDF
Expanding XPages with Bootstrap Plugins for Ultimate Usability
PDF
IBM Connect 2016 - AD1548 - Building Responsive XPages Applications
PDF
JMP401: Masterclass: XPages Scalability
PPTX
SharePoint Development 101
PPTX
Rapid application development for WordPress using AWF
PPTX
Cross CMS plugin development using AWF
PPTX
Whats new in joomla 3.5 & whats coming in future
PPTX
Extension developer secrets - How to make money with Joomla
PDF
jQuery Chicago 2014 - Next-generation JavaScript Testing
PDF
JMP402 Master Class: Managed beans and XPages: Your Time Is Now
PPTX
State of play for Joomla - Nov 2014
PDF
Theming in WordPress - Where do I Start?
PDF
Ako na vlastne WP temy
PPTX
Zimmertwins Presentation
KEY
jQuery Conference Boston 2011 CouchApps
PPTX
XPages Workshop: Customizing OneUI
PPTX
Learn How to Use Atomic Design to Make Your Site Manageable and Adaptable
PDF
State of jQuery June 2013 - Portland
PDF
XPages: No Experience Needed
PDF
Web Development for UX Designers
Expanding XPages with Bootstrap Plugins for Ultimate Usability
IBM Connect 2016 - AD1548 - Building Responsive XPages Applications
JMP401: Masterclass: XPages Scalability
SharePoint Development 101
Rapid application development for WordPress using AWF
Cross CMS plugin development using AWF
Whats new in joomla 3.5 & whats coming in future
Extension developer secrets - How to make money with Joomla
jQuery Chicago 2014 - Next-generation JavaScript Testing
JMP402 Master Class: Managed beans and XPages: Your Time Is Now
State of play for Joomla - Nov 2014
Theming in WordPress - Where do I Start?
Ako na vlastne WP temy
Zimmertwins Presentation
jQuery Conference Boston 2011 CouchApps
XPages Workshop: Customizing OneUI
Learn How to Use Atomic Design to Make Your Site Manageable and Adaptable
State of jQuery June 2013 - Portland
XPages: No Experience Needed
Web Development for UX Designers
Ad

Similar to Bootstrap and XPages (DanNotes 2013) (20)

PPT
jQuery Tips Tricks Trivia
PPTX
Techorama 2019 - ASP.NET Core One Hour Makeover
PPT
JavaScript 2.0 in Dreamweaver CS4
PPTX
J Query The Write Less Do More Javascript Library
PDF
WebNet Conference 2012 - Designing complex applications using html5 and knock...
PDF
jQuery in the [Aol.] Enterprise
PPTX
Introduction to using jQuery with SharePoint
PPTX
jQuery
PDF
Intro to mobile web application development
PPTX
Introduction to jQuery
PPTX
lec 14-15 Jquery_All About J-query_.pptx
PPT
Joomla Day Austin Part 4
PPT
Jquery PPT_Finalfgfgdfgdr5tryeujkhdwappt
PPTX
jQuery - the world's most popular java script library comes to XPages
PDF
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
PPTX
Frontend Workflow
PDF
How to make Ajax Libraries work for you
PDF
PPTX
PPT
Building Smart Workflows - Dan Diebolt
jQuery Tips Tricks Trivia
Techorama 2019 - ASP.NET Core One Hour Makeover
JavaScript 2.0 in Dreamweaver CS4
J Query The Write Less Do More Javascript Library
WebNet Conference 2012 - Designing complex applications using html5 and knock...
jQuery in the [Aol.] Enterprise
Introduction to using jQuery with SharePoint
jQuery
Intro to mobile web application development
Introduction to jQuery
lec 14-15 Jquery_All About J-query_.pptx
Joomla Day Austin Part 4
Jquery PPT_Finalfgfgdfgdr5tryeujkhdwappt
jQuery - the world's most popular java script library comes to XPages
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Frontend Workflow
How to make Ajax Libraries work for you
Building Smart Workflows - Dan Diebolt
Ad

More from Mark Leusink (11)

PDF
Now what can you really build with DQL and web components?
PDF
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
PDF
Creating mobile apps - an introduction to Ionic (Engage 2016)
PDF
The future of web development write once, run everywhere with angular js an...
PDF
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
PDF
A 20 minute introduction to AngularJS for XPage developers
PPTX
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
ODP
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
PPTX
Introduction to Bootstrap (with XPages)
PPTX
Stop (de)bugging me - ICON UK 2013
PDF
Stop (de)bugging me!
Now what can you really build with DQL and web components?
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
Creating mobile apps - an introduction to Ionic (Engage 2016)
The future of web development write once, run everywhere with angular js an...
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
A 20 minute introduction to AngularJS for XPage developers
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Introduction to Bootstrap (with XPages)
Stop (de)bugging me - ICON UK 2013
Stop (de)bugging me!

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Cloud computing and distributed systems.
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Spectroscopy.pptx food analysis technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
cuic standard and advanced reporting.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPT
Teaching material agriculture food technology
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
The AUB Centre for AI in Media Proposal.docx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Cloud computing and distributed systems.
Reach Out and Touch Someone: Haptics and Empathic Computing
Spectroscopy.pptx food analysis technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
20250228 LYD VKU AI Blended-Learning.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
cuic standard and advanced reporting.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Network Security Unit 5.pdf for BCA BBA.
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
“AI and Expert System Decision Support & Business Intelligence Systems”
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Teaching material agriculture food technology
sap open course for s4hana steps from ECC to s4
MYSQL Presentation for SQL database connectivity
Digital-Transformation-Roadmap-for-Companies.pptx

Bootstrap and XPages (DanNotes 2013)

  • 1. Everything is designed, few things are designed well Unknown author BOOTSTRAP & XPAGES: THE BASICS AND BEYOND
  • 2. Today’s topics  What’s Bootstrap  And more in general: “What is a design framework and why would you use one?”  Getting started with Bootstrap in XPages  Challenges (yes, there are some)  Bootstrap4XPages plugin  Themes  Plugins
  • 3. Who’s that?  Freelance consultant/ developer  IBM Notes/ Domino  XPages, web, Java, client, mobile  OpenNTF Board member & contributor  Auto Logins  XPage Multiple File Uploader  XPage Debug Toolbar  IBM Champion  Bootstrap4XPages.com
  • 4. Why a design framework  Because you want your apps to look good  And so do your users!  Consistent UI = easier to use  So you don’t need to write documentation  We’re developers  We’re creative too, but in a different way  Deal with cross browser issues
  • 5. What is Bootstrap So it looks good on all kinds of devices Bootstrap is a responsive design framework to build websites and/or web applications So you can make your work look good – even as a developer… FREE
  • 6. What do you get?  Layout  Grids  Styles  Icons  using the Glyphicon font  Cross-browser  Responsive
  • 7. What do you get?  Easy to use and extend  And it looks good too (I think)  Developed by Twitter  Open source since 2011  Active community (very)  One of most popular projects on GitHub  Sites with themes, plugins, snippets
  • 8. Bootstrap 3  Released mid 2013  Re-built from the ground up  Mobile first  Responsive by default (optional in 2.3)  Changed grid  Icons are now fonts  So they scale  Support for IE 8+  Older browsers dropped
  • 9. And the downside?  It’s Bootstrap  Once you’ve seen one, you’ve seen them all  So:  Be creative  Use a theme  Or write your own
  • 10. Bootstrap files  Only a couple of JavaScript, CSS & font files  Needs jQuery for some functions
  • 11. Bootstrap in XPages  Two methods:  DIY (Do-it-yourself)  Use the Bootstrap4XPages plugin
  • 12. DIY  Download  Bootstrap  jQuery  Add files to WebContent folder  Via the package explorer  Just drag-n-drop them
  • 13. DIY  Create a theme  jQuery Javascript  Bootstrap Javascript  Bootstrap CSS  Meta “viewport” tag  Create a layout custom control with your page layout  Add an editable control for your content
  • 14. Demo
  • 15. Bootstrap4XPages plugin  OpenNTF project  Part of OpenNTF Essentials  http://bootstrap4xpages.openntf.org/  OSGi plugin that automatically loads the Bootstrap resources (CSS, JavaScript)  Uses Custom renderers  e.g. adds the btn class to all buttons
  • 16. Bootstrap4XPages plugin  Support for Bootstrap 2.3.1, 2.3.2 and 3  Bootstrap 3 support was just released last week  Requires ExtLib  Supported on Domino 9
  • 17. Bootstrap4XPages plugin  Add to Designer and Server  Enable plugin in your application  Set your application’s theme to either  bootstrapv2.3.1  bootstrapv2.3.1r  bootstrapv2.3.1  bootstrapv2.3.2r  bootstrapv3.0.0
  • 18. Demo
  • 19. Bootstrap4XPages plugin  Community effort  You can contribute too!  Actually… Phil Riand is asking for your help   Set up a plugin development environment  (watch the webinar: http://www.youtube.com/watch?v=uAff5uNwhn0)  Fork from GitHub  Make your changes and create a pull request
  • 20. Pitfalls with XPages  Targeting elements using jQuery $();  Colons need to be escaped  User Mark Roden’s xSnippet for that http://openntf.org/XSnippets.nsf/snippet.xsp?id=x-jqueryselector-for-xpages function x$(idTag, param){ idTag = idTag.replace(/:/gi, ":")+(param ? param : ""); return ($("#"+idTag)); }
  • 21. Pitfalls with XPages Resource aggregation & relative paths  Conditionally load a stylesheet <resource rendered=“#{javascript: context.getProperty('xsp.resources.aggregate').equals('true')}"> <content-type>text/css</content-type> <href>override.css</href> </resource>}
  • 22. Pitfalls with XPages  Use HTML5 DocType  Set in XSP Properties  If you want to avoid CSS conflicts, remove the “extends=“ from your theme  But you need to style everything
  • 23. Reusable fields & validation  Bootstrap requires a lot of HTML for a single form field  Add that to a custom control  For every field on your form: add that custom control  Add error class for validation errors
  • 24. Demo
  • 25. Themes (not the XPage ones)  Don’t like the default look? Get a theme  http://wrapbootstrap.com  http://bootswatch.com  Or create one  http://stylebootstrap.info/ (or go hardcore and use LESS)
  • 26. Plugins  Lot of plugins available  Mostly build on top of jQuery  With a bit of Bootstrap styling  Some I really like:  Select2  Font awesome  jQuery File Uploader
  • 27. Plugins – Select2  Turns a boring combobox  Into an advanced search control  With support for:  Typeahead-selection  Static/ dynamic links (using Ajax)  Markup  Events
  • 28. Demo
  • 29. Select2 - basics  Download release  Load select2.min.js and select2.css  Transform a xp:comboBox using: <xp:scriptBlock id="scriptBlock2"><xp:this.value><![CDATA[ $(document).ready( function() { x$( "#{id:comboBox5}" ).select2(); } ); ]]></xp:this.value></xp:scriptBlock>
  • 30. Select2 – remote data  Pass query to XAgent style XPage  XPage performs query, returns JSON formatted results  Select2 plugin deals with creating a list based on your query
  • 31. Plugins – Font awesome  Bootstrap 3 comes with 200 Glyphicons  But no rocket  Font awesome has 369  Including a rocket
  • 32. Plugins – Font awesome  Only need to load a single CSS file  But make a small change first: url('../font/fontawesome-webfont.eot?v=3.2.1'); url('../font/fontawesome-webfont.eot?open&v=3.2.1'); <xp:button styleClass=“btn” value=“Home”> <i class=“icon-home” /> </xp:button>
  • 33. Demo
  • 34. Plugins – jQuery File Upload  HTML5 multi-file uploader  Support for:  Progress bars  Drag-n-drop  Client side images resizing  Browsers:  Internet Explorer 10+  Chrome, Firefox  Mobile browsers
  • 35. Demo
  • 36. Plugins – jQuery File Upload  Added library to database  Create XAgent XPage that can receive files  upload.xsp  eu.linqed.UploadHandler()  jQuery with Dojo 1.8 can be is hard  Load jQuery & plugins before anything else  See http://hasselba.ch/blog/?p=1216
  • 37. Not enough? There’s more…  Fuel UX - http://exacttarget.github.io/fuelux/  Tablecloth - http://tableclothjs.com/  Jetstrap – http://jetstrap.com  Paintstrap – http://www.paintstrap.com  Need inspiration? http://builtwithbootstrap.com/
  • 38. To summarize  Stable framework  Easy to get started with  Solid backing from a large community  Lots of resources  “I’m not a designer” is not an excuse to create a good looking site
  • 39. What’s next?  You’re up.  http://bootstrap4xpages.openntf.org  http://Bootstrap4XPages.com  Going to Connect? Come to my and Phil Riand’s Bootstrap session!  Got questions?  Twitter: @markleusink  Email: m.leusink@linqed.eu  Blog: http://linqed.eu