SlideShare a Scribd company logo
1 of 21
Combining Customer
  Portals, Force.com
Sites, Visualforce, Twitt
    er Bootstrap and
 Responsive Design!
About Me
• Steven Herod
• Working with Salesforce since
  2010
• @sherod on Twitter
• http://limitexception.herod.net
What was the problem?
• Needed to accept online credit
  applications for car loans
• Leverage their Existing Salesforce
  Organization.
• Required support of Mobile Phone/Tablet
  and Desktop browsers.
Components
                      Force.com Site +
                       Service Portal


Responsive Design with
• Twitter Bootstrap
• jQuery




                 Visualforce + Fieldsets
What is Responsive Design?




http://johnpolacek.github.com/scrolldeck.js/decks/responsive/
What is Twitter Bootstrap?
And the Salesforce bits
• High Volume Customer Portal
  – Salesforce license / Security model
• Force.com Site
  – Custom login and user interface
• Visualforce
  – Fieldsets
  – Custom Controllers
Deep Dive
Responding to different displays




    Desktop




                         iPad
              iPhone
Setting up the page
Handling the Resize


                       Twitter Bootstrap CSS classes +
                       jQuery to react to changes




<div class="callimg hidden-phone hidden-tablet">
      <apex:image
url="{!URLFOR($Resource.LCPStaticRsc, 'lcp/img/img_call.png')}"
alt="" width="224" height="35" />
     </div>
Using Fieldsets
• “A field set is a grouping of fields”
• Allows us to package the fields into a
  configurable group and then refer to that
  group within the VF page without
  referencing every field individually.
• Also allows us to mark if its mandatory..
Fields sets on the page
                      Visualforce Page



                                Page Block


                                  Fieldset


                                  Fieldset




                                Page Block


                                  Fieldset


                                  Fieldset




                                Page Block


                                  Fieldset


                                  Fieldset




                                Page Block


                                  Fieldset


                                  Fieldset
Field set per section




Order of fields and required driven from
Fieldset definition in configuration
Displaying the Fieldsets
Help and Type changes UI
Setting up the help/input field
Javascript for Currency/Help
          popover
Error handling


                                                                     Twitter Bootstrap
                                                                     CSS classes




             <apex:messages styleClass="alert alert-error" />

j$('input.error,select.error').parents('.control-group').addClass('error');
Questions?

More Related Content

What's hot

Prism Tech Ed India
Prism Tech Ed IndiaPrism Tech Ed India
Prism Tech Ed Indiarsnarayanan
 
Building resuable and customizable Vue components
Building resuable and customizable Vue componentsBuilding resuable and customizable Vue components
Building resuable and customizable Vue componentsFilip Rakowski
 
Phonegap & JqueryMobile
Phonegap & JqueryMobilePhonegap & JqueryMobile
Phonegap & JqueryMobilefinjonkiang
 
Joomla! Templates and Comparison of Frameworks
Joomla! Templates and Comparison of FrameworksJoomla! Templates and Comparison of Frameworks
Joomla! Templates and Comparison of FrameworksSaurabh Shah
 
Google AMP (Accelerated Mobile Pages)
Google AMP (Accelerated Mobile Pages)Google AMP (Accelerated Mobile Pages)
Google AMP (Accelerated Mobile Pages)Chitpong Wuttanan
 
Single Page Application presentation
Single Page Application presentationSingle Page Application presentation
Single Page Application presentationJohn Staveley
 
Monitoring SharePoint 2010
Monitoring SharePoint 2010Monitoring SharePoint 2010
Monitoring SharePoint 2010Mai Omar Desouki
 
Building Enterprise Apps Rapidly with Salesforce Mobile Packs Webinar
Building Enterprise Apps Rapidly with Salesforce Mobile Packs WebinarBuilding Enterprise Apps Rapidly with Salesforce Mobile Packs Webinar
Building Enterprise Apps Rapidly with Salesforce Mobile Packs WebinarSalesforce Developers
 
Mai Omar Desouki - SharePoint 2013 What it means for your business
Mai Omar Desouki - SharePoint 2013 What it means for your businessMai Omar Desouki - SharePoint 2013 What it means for your business
Mai Omar Desouki - SharePoint 2013 What it means for your businessMai Omar Desouki
 
Mai Omar Desouki - SharePoint 2010 ITPRO
Mai Omar Desouki - SharePoint 2010 ITPROMai Omar Desouki - SharePoint 2010 ITPRO
Mai Omar Desouki - SharePoint 2010 ITPROMai Omar Desouki
 
Web Development on Web Project Presentation
Web Development on Web Project PresentationWeb Development on Web Project Presentation
Web Development on Web Project PresentationMilind Gokhale
 
iProspect - Tech SEO - Task - 17/12/2019
iProspect - Tech SEO - Task - 17/12/2019iProspect - Tech SEO - Task - 17/12/2019
iProspect - Tech SEO - Task - 17/12/2019Nick Samuel
 
Web Development with HTML5, CSS3 & JavaScript
Web Development with HTML5, CSS3 & JavaScriptWeb Development with HTML5, CSS3 & JavaScript
Web Development with HTML5, CSS3 & JavaScriptEdureka!
 
Improving joomla's backend user experience
Improving joomla's backend user experienceImproving joomla's backend user experience
Improving joomla's backend user experienceLuke Summerfield
 
Headless - the future of e-commerce
Headless - the future of e-commerceHeadless - the future of e-commerce
Headless - the future of e-commerceJamie Maria Schouren
 
Salesforce interview questions and answers
Salesforce interview questions and answersSalesforce interview questions and answers
Salesforce interview questions and answersbhanuadmob
 

What's hot (20)

Prism Tech Ed India
Prism Tech Ed IndiaPrism Tech Ed India
Prism Tech Ed India
 
Building resuable and customizable Vue components
Building resuable and customizable Vue componentsBuilding resuable and customizable Vue components
Building resuable and customizable Vue components
 
Template Frameworks
Template FrameworksTemplate Frameworks
Template Frameworks
 
Phonegap & JqueryMobile
Phonegap & JqueryMobilePhonegap & JqueryMobile
Phonegap & JqueryMobile
 
Joomla! Templates and Comparison of Frameworks
Joomla! Templates and Comparison of FrameworksJoomla! Templates and Comparison of Frameworks
Joomla! Templates and Comparison of Frameworks
 
Vue Storefront MUG
Vue Storefront MUGVue Storefront MUG
Vue Storefront MUG
 
Google AMP (Accelerated Mobile Pages)
Google AMP (Accelerated Mobile Pages)Google AMP (Accelerated Mobile Pages)
Google AMP (Accelerated Mobile Pages)
 
10 things to remember
10 things to remember10 things to remember
10 things to remember
 
Single Page Application presentation
Single Page Application presentationSingle Page Application presentation
Single Page Application presentation
 
Monitoring SharePoint 2010
Monitoring SharePoint 2010Monitoring SharePoint 2010
Monitoring SharePoint 2010
 
Building Enterprise Apps Rapidly with Salesforce Mobile Packs Webinar
Building Enterprise Apps Rapidly with Salesforce Mobile Packs WebinarBuilding Enterprise Apps Rapidly with Salesforce Mobile Packs Webinar
Building Enterprise Apps Rapidly with Salesforce Mobile Packs Webinar
 
Mai Omar Desouki - SharePoint 2013 What it means for your business
Mai Omar Desouki - SharePoint 2013 What it means for your businessMai Omar Desouki - SharePoint 2013 What it means for your business
Mai Omar Desouki - SharePoint 2013 What it means for your business
 
Mai Omar Desouki - SharePoint 2010 ITPRO
Mai Omar Desouki - SharePoint 2010 ITPROMai Omar Desouki - SharePoint 2010 ITPRO
Mai Omar Desouki - SharePoint 2010 ITPRO
 
Web Development on Web Project Presentation
Web Development on Web Project PresentationWeb Development on Web Project Presentation
Web Development on Web Project Presentation
 
iProspect - Tech SEO - Task - 17/12/2019
iProspect - Tech SEO - Task - 17/12/2019iProspect - Tech SEO - Task - 17/12/2019
iProspect - Tech SEO - Task - 17/12/2019
 
Web Development with HTML5, CSS3 & JavaScript
Web Development with HTML5, CSS3 & JavaScriptWeb Development with HTML5, CSS3 & JavaScript
Web Development with HTML5, CSS3 & JavaScript
 
MVVM with Kendo UI
MVVM with Kendo UIMVVM with Kendo UI
MVVM with Kendo UI
 
Improving joomla's backend user experience
Improving joomla's backend user experienceImproving joomla's backend user experience
Improving joomla's backend user experience
 
Headless - the future of e-commerce
Headless - the future of e-commerceHeadless - the future of e-commerce
Headless - the future of e-commerce
 
Salesforce interview questions and answers
Salesforce interview questions and answersSalesforce interview questions and answers
Salesforce interview questions and answers
 

Similar to Combining Customer Portals, Force.com Sites, Visualforce, Twitter Bootstrap and Responsive Design

Rp 6 session 2 naresh bhatia
Rp 6  session 2 naresh bhatiaRp 6  session 2 naresh bhatia
Rp 6 session 2 naresh bhatiasapientindia
 
Fragments: Why, How, What For?
Fragments: Why, How, What For?Fragments: Why, How, What For?
Fragments: Why, How, What For?Brenda Cook
 
PLAT-15 Forms Config, Customization, and Extension
PLAT-15 Forms Config, Customization, and ExtensionPLAT-15 Forms Config, Customization, and Extension
PLAT-15 Forms Config, Customization, and ExtensionAlfresco Software
 
Architecting WPF Applications
Architecting WPF ApplicationsArchitecting WPF Applications
Architecting WPF ApplicationsPaul Stovell
 
Famo.us - New generation of HTML5 Web Application Framework
Famo.us - New generation of HTML5 Web Application FrameworkFamo.us - New generation of HTML5 Web Application Framework
Famo.us - New generation of HTML5 Web Application FrameworkHina Chen
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Chris Alfano
 
Refactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.jsRefactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.jsStacy London
 
Refactor Large applications with Backbone
Refactor Large applications with BackboneRefactor Large applications with Backbone
Refactor Large applications with BackboneColdFusionConference
 
Refactor Large apps with Backbone
Refactor Large apps with BackboneRefactor Large apps with Backbone
Refactor Large apps with BackbonedevObjective
 
Design Tips & Development with jQuery Mobile and PhoneGap
Design Tips & Development with jQuery Mobile and PhoneGapDesign Tips & Development with jQuery Mobile and PhoneGap
Design Tips & Development with jQuery Mobile and PhoneGapGO Ohtani
 
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014FalafelSoftware
 
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patternsBuilding strong foundations apex enterprise patterns
Building strong foundations apex enterprise patternsandyinthecloud
 
Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Andreas Bovens
 
Advanced Custom Fields: Amazing Possibilities and Irritating Limitations
Advanced Custom Fields: Amazing Possibilities and Irritating LimitationsAdvanced Custom Fields: Amazing Possibilities and Irritating Limitations
Advanced Custom Fields: Amazing Possibilities and Irritating LimitationsEast Bay WordPress Meetup
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQueryMark Rackley
 
Considerations with Writing JavaScript in your DotNetNuke site
Considerations with Writing JavaScript in your DotNetNuke siteConsiderations with Writing JavaScript in your DotNetNuke site
Considerations with Writing JavaScript in your DotNetNuke siteEngage Software
 
Widget Platform
Widget PlatformWidget Platform
Widget Platformjosemataf
 
Targeting Mobile Platform with MVC 4.0
Targeting Mobile Platform with MVC 4.0Targeting Mobile Platform with MVC 4.0
Targeting Mobile Platform with MVC 4.0Mayank Srivastava
 

Similar to Combining Customer Portals, Force.com Sites, Visualforce, Twitter Bootstrap and Responsive Design (20)

Rp 6 session 2 naresh bhatia
Rp 6  session 2 naresh bhatiaRp 6  session 2 naresh bhatia
Rp 6 session 2 naresh bhatia
 
Fragments: Why, How, What For?
Fragments: Why, How, What For?Fragments: Why, How, What For?
Fragments: Why, How, What For?
 
Jsf2.0 -4
Jsf2.0 -4Jsf2.0 -4
Jsf2.0 -4
 
PLAT-15 Forms Config, Customization, and Extension
PLAT-15 Forms Config, Customization, and ExtensionPLAT-15 Forms Config, Customization, and Extension
PLAT-15 Forms Config, Customization, and Extension
 
Architecting WPF Applications
Architecting WPF ApplicationsArchitecting WPF Applications
Architecting WPF Applications
 
Famo.us - New generation of HTML5 Web Application Framework
Famo.us - New generation of HTML5 Web Application FrameworkFamo.us - New generation of HTML5 Web Application Framework
Famo.us - New generation of HTML5 Web Application Framework
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011
 
Refactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.jsRefactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.js
 
Refactor Large applications with Backbone
Refactor Large applications with BackboneRefactor Large applications with Backbone
Refactor Large applications with Backbone
 
Refactor Large apps with Backbone
Refactor Large apps with BackboneRefactor Large apps with Backbone
Refactor Large apps with Backbone
 
Design Tips & Development with jQuery Mobile and PhoneGap
Design Tips & Development with jQuery Mobile and PhoneGapDesign Tips & Development with jQuery Mobile and PhoneGap
Design Tips & Development with jQuery Mobile and PhoneGap
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
 
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014
 
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patternsBuilding strong foundations apex enterprise patterns
Building strong foundations apex enterprise patterns
 
Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...
 
Advanced Custom Fields: Amazing Possibilities and Irritating Limitations
Advanced Custom Fields: Amazing Possibilities and Irritating LimitationsAdvanced Custom Fields: Amazing Possibilities and Irritating Limitations
Advanced Custom Fields: Amazing Possibilities and Irritating Limitations
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuery
 
Considerations with Writing JavaScript in your DotNetNuke site
Considerations with Writing JavaScript in your DotNetNuke siteConsiderations with Writing JavaScript in your DotNetNuke site
Considerations with Writing JavaScript in your DotNetNuke site
 
Widget Platform
Widget PlatformWidget Platform
Widget Platform
 
Targeting Mobile Platform with MVC 4.0
Targeting Mobile Platform with MVC 4.0Targeting Mobile Platform with MVC 4.0
Targeting Mobile Platform with MVC 4.0
 

More from Steven Herod

9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application ArchitectureSteven Herod
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019Steven Herod
 
Super Secret Salesforce
Super Secret SalesforceSuper Secret Salesforce
Super Secret SalesforceSteven Herod
 
Perspectives on salesforce architecture Forcelandia talk 2017
Perspectives on salesforce architecture   Forcelandia talk 2017Perspectives on salesforce architecture   Forcelandia talk 2017
Perspectives on salesforce architecture Forcelandia talk 2017Steven Herod
 
The dreamforce 2018 wrap final
The dreamforce 2018 wrap finalThe dreamforce 2018 wrap final
The dreamforce 2018 wrap finalSteven Herod
 
Sydney salesforce developer group talker tips
Sydney salesforce developer group   talker tipsSydney salesforce developer group   talker tips
Sydney salesforce developer group talker tipsSteven Herod
 
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad..."How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...Steven Herod
 
Designing custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.comDesigning custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.comSteven Herod
 
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)Steven Herod
 
Force.com Canvas - a Quick Introduction
Force.com Canvas - a Quick IntroductionForce.com Canvas - a Quick Introduction
Force.com Canvas - a Quick IntroductionSteven Herod
 
Becoming a Salesforce.com Technical Architect
Becoming a Salesforce.com Technical ArchitectBecoming a Salesforce.com Technical Architect
Becoming a Salesforce.com Technical ArchitectSteven Herod
 

More from Steven Herod (11)

9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019
 
Super Secret Salesforce
Super Secret SalesforceSuper Secret Salesforce
Super Secret Salesforce
 
Perspectives on salesforce architecture Forcelandia talk 2017
Perspectives on salesforce architecture   Forcelandia talk 2017Perspectives on salesforce architecture   Forcelandia talk 2017
Perspectives on salesforce architecture Forcelandia talk 2017
 
The dreamforce 2018 wrap final
The dreamforce 2018 wrap finalThe dreamforce 2018 wrap final
The dreamforce 2018 wrap final
 
Sydney salesforce developer group talker tips
Sydney salesforce developer group   talker tipsSydney salesforce developer group   talker tips
Sydney salesforce developer group talker tips
 
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad..."How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
 
Designing custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.comDesigning custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.com
 
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)
 
Force.com Canvas - a Quick Introduction
Force.com Canvas - a Quick IntroductionForce.com Canvas - a Quick Introduction
Force.com Canvas - a Quick Introduction
 
Becoming a Salesforce.com Technical Architect
Becoming a Salesforce.com Technical ArchitectBecoming a Salesforce.com Technical Architect
Becoming a Salesforce.com Technical Architect
 

Combining Customer Portals, Force.com Sites, Visualforce, Twitter Bootstrap and Responsive Design

  • 1. Combining Customer Portals, Force.com Sites, Visualforce, Twitt er Bootstrap and Responsive Design!
  • 2. About Me • Steven Herod • Working with Salesforce since 2010 • @sherod on Twitter • http://limitexception.herod.net
  • 3. What was the problem? • Needed to accept online credit applications for car loans • Leverage their Existing Salesforce Organization. • Required support of Mobile Phone/Tablet and Desktop browsers.
  • 4. Components Force.com Site + Service Portal Responsive Design with • Twitter Bootstrap • jQuery Visualforce + Fieldsets
  • 5. What is Responsive Design? http://johnpolacek.github.com/scrolldeck.js/decks/responsive/
  • 6. What is Twitter Bootstrap?
  • 7. And the Salesforce bits • High Volume Customer Portal – Salesforce license / Security model • Force.com Site – Custom login and user interface • Visualforce – Fieldsets – Custom Controllers
  • 9. Responding to different displays Desktop iPad iPhone
  • 11. Handling the Resize Twitter Bootstrap CSS classes + jQuery to react to changes <div class="callimg hidden-phone hidden-tablet"> <apex:image url="{!URLFOR($Resource.LCPStaticRsc, 'lcp/img/img_call.png')}" alt="" width="224" height="35" /> </div>
  • 12. Using Fieldsets • “A field set is a grouping of fields” • Allows us to package the fields into a configurable group and then refer to that group within the VF page without referencing every field individually. • Also allows us to mark if its mandatory..
  • 13. Fields sets on the page Visualforce Page Page Block Fieldset Fieldset Page Block Fieldset Fieldset Page Block Fieldset Fieldset Page Block Fieldset Fieldset
  • 14. Field set per section Order of fields and required driven from Fieldset definition in configuration
  • 16. Help and Type changes UI
  • 17.
  • 18. Setting up the help/input field
  • 20. Error handling Twitter Bootstrap CSS classes <apex:messages styleClass="alert alert-error" /> j$('input.error,select.error').parents('.control-group').addClass('error');