SlideShare a Scribd company logo
1 of 64
collective.amberjack   on-line tutorials with
the basic idea
✓ plone tours for new
  comers

✓ born @ bolzano sprint
  (nov ’08)




                          link foto
that’s all folks?
maybe not...
✓ every product/add-on
  might have his
  amberjack tutorial
✓ just-hired people in
   companies needs
   tutorials
✓ wizards

✓ simplified e-learning
the first goal
✓ PLIP #9324
✓ Use Amberjack to offer
  guided help for first-time
  users
✓ to be included in a next
  4.x release
we are writing
these tours
✓ Add and publish a Folder
✓ Add and publish a Page
✓ Add and publish a News
  Item
✓ Add and publish an Event
✓ Format a page using the
  visual editor
✓ Create internal links


                             link foto
we are writing
these tours
✓ Create external links
✓ Upload an image
✓ Insert image on a page
✓ Upload and link to a File
✓ Using the Contents tab
✓ Using the Display menu
✓ Create a static text
  portlet


                              link foto
a spotlight




       http://www.flickr.com/photos/slopjop/1300515408
you just installed Plone...   and you’re an happy guy
..and you need to
learn it by yourself..
hum, selecting the tour from the
list? so easy?
... and complete the
steps!
one at a time, please
http://www.flickr.com/photos/eklektikos/2541408630/sizes/l/




the blueprint   tours, steps, steps, steps
the blueprint
the blueprint

✓ A tour has

  • a name (and an Id)

  • a set of steps
the blueprint

✓ A tour has

  • a name (and an Id)

  • a set of steps



✓ every step is made by

  • a tuple (url, xpath, xcontent)

  • a title

  • a set of microsteps
the blueprint

✓ A tour has                         ✓ every microstep has

  • a name (and an Id)                 • a description

  • a set of steps                     • a id for an ajStep (choosen
                                         from the available ones’ set)

                                       • selector
✓ every step is made by
                                       • text
  • a tuple (url, xpath, xcontent)

  • a title

  • a set of microsteps
the blueprint

✓ A tour has                         ✓ every microstep has

  • a name (and an Id)                 • a description

  • a set of steps                     • a id for an ajStep (choosen
                                         from the available ones’ set)

                                       • selector
✓ every step is made by
                                       • text
  • a tuple (url, xpath, xcontent)

  • a title
                                     ✓ajStep is related to the HTML
  • a set of microsteps               generated by Plone
Do not touch Plone
✓ collective.amberjack
   do not changes anything
   in Plone itself

✓ it’s just unobtrusive
  javascript code and tours
  descripted through HTML

         http://www.flickr.com/photos/dhowellphoto/3023319312
the software components
amberjack library
collective.amberjack.core
collective.amberjack.portlet
collective.amberjack.plonetour
collective.amberjack.metatour
amberjack.org
✓ developed by Arash
   Yalpani
✓ provides an unobtrusive
  javascript infrastructure
  for online tours
✓ not completely usable for
  our purposes
                              link foto
basically it provides
✓ a fancy popup “div” with
  prev/next/exit buttons,
  fully html enabled for
  your steps.
✓ a mapping between a
  step and each url you can
  visit.

                         amberjack.org
some use case not fully supported

✓ in Plone a path does not identify uniquely a html page:


   • view a page (/plone/page-a/view)


   • edit a page (/plone/page-a/edit)


   • save a page (/plone/page-a/view)


✓ it’s not just about links, we also submit forms
the solutions

✓ make the mapping between steps and url less strong:


   • now the steps has an order (1. 2. 3....)


✓ don’t just rely   on urls to pass tour variables

   • use cookies
collective.amberjack.core

✓ tour definition   and      ✓ amberjack skins
 registration
                              • model_t

✓ step definition              • safari

                            ✓ amberjack integration and
✓ZCML configuration for        extension

  • tours
                            ✓special use case
  • ajStep                   configurations
                              • aj_xpath_exists
✓ validators definition
                              • aj_any_url
an example: add a folder
✓ the tour is made by the steps:         ✓ filling a field is entering a string
                                           inside a HTML field: it’s about JS
   • add_folder,                           and HTML.
   • fill_out_the_fields,

   • publish_folder,

   • all_done

✓ the “fill_out_the_fields” step has to:

   • fill the “title” field with a value

   • fill the “description” field with
     another value

   • save it
collective.amberjack.core - tour
collective.amberjack.core - tour



  ajTour = {'tourId':u'basic01_add_and_publish_a_folder',
   'title': _(u'Add and publish a Folder'),
   'steps': (add_folder,
             fill_out_the_fields,
             publish_folder,
             all_done,
             )}
collective.amberjack.core - step
collective.amberjack.core - step


  add_folder = {
      'validators': (isManager, isNotFolderCreated,),
      'url': u'/',
      'xpath': u'',
      'xcontent': u'',
      'title': _(u"Create a new folder"),
      'text': _(u"Folders are one..."),
      'steps': ({...})
collective.amberjack.core - microsteps
collective.amberjack.core - microsteps


  'steps': (
    {'description':
           _(u"In the [Title] field, type.."),
     'idStep': u'form_title',
     'selector': u'',
     'text': u'MyFolder'},
    {'description':
           _(u"In the [Description] field, type .."),
     'idStep': u'form_description',
     'selector': u'',
     'text': _("This folder will be used...")},)}
collective.amberjack.core - ajStep
collective.amberjack.core - ajStep

  ajStandardSteps = (
      ...
      ('form_title',
        '#archetypes-fieldname-title input'),
      ('form_description',
        '#archetypes-fieldname-description textarea'),
      ...
  )
collective.amberjack.core - ZCML registration
collective.amberjack.core - ZCML registration


    <collective.amberjack:tour
        tourdescriptor=".tour1.ajTour"
        />


    <collective.amberjack:ajstep
       stepsdescriptor=
         ".ajStandardSteps.ajStandardSteps"
       />
validators
✓ isAnonymous
✓ isAuthenticated
✓ isManager
✓ isReviewer
✓ isContributor
✓ isEditor
✓ isReader
             http://www.flickr.com/photos/traveleden/3797157077
collective.amberjack.plonetour

✓ defines the 12   tours              ✓translations


✓ provides tour specific validators     • french

  • isFolderCreated                    • italian

  • isNotFolderCreated


✓ZCML registration
collective.amberjack.portlet

✓ a portlet for starting a single tour

   • it just lets you provide the tourId and the skinId


✓ a portlet that lets you provide a set   of tour in a given order, you
  provide:

   • portlet’s title

   • tours’ list and order

   • skinId
collective.amberjack.metatour

✓provides 2 archetypes:

   • ajtour

   • ajstep

     • url, xpath, xcontent


     • microsteps

✓ metatours and ZCML registered tours are identical
http://www.flickr.com/photos/vramak/3499502280




See in action
Create a folder and a page
Create a folder and a page
http://www.flickr.com/photos/orphanjones/414401592




write your own tour   as simple as you need
what you need to
do
✓ create an empty package
  via paster

✓ write your tour in
   myTour.py
✓ add it to the available ones
  through ZCML

✓ translate it
✓ (opt. add custom ajSteps)


            http://www.flickr.com/photos/domhuk/197875701
Let’s see some, still in progress, code
http://www.flickr.com/photos/anirudhkoul/3786725982




who’s involved   the team, actually now
who’s involved
✓ Nate Aune proposed the
  idea to find a framework
  to create tours and adapt
  it to plone
who’s involved
✓ Nate Aune
✓ Vincent Fretin
  completely refactored the
  code, i18ned everything,
  has been a guide to me
who’s involved
✓ Nate Aune
✓ Vincent Fretin
✓ Sam Knox wrote all the
  tours
who’s involved
✓ Nate Aune
✓ Vincent Fretin
✓ Sam Knox
✓ Giacomo Spettoli during
   his thesis worked on the
   initial core
who’s involved
✓   Nate Aune
✓   Vincent Fretin
✓   Sam Knox
✓   Giacomo Spettoli
✓ Mirna Bagnolatti during
    her thesis developed
    tours from scratch,
    translated them in italian
who’s involved
✓   Nate Aune
✓   Vincent Fretin
✓   Sam Knox
✓   Giacomo Spettoli
✓   Mirna Bagnolatti
✓ Andrew Mleczko tour
    validations, tiny
    refactoring, test test test
who’s involved
✓ Nate Aune
✓ Vincent Fretin
✓ Sam Knox
✓ Giacomo Spettoli
✓ Mirna Bagnolatti
✓ Andrew Mleczko
✓ Federica D’Elia test
  coverage
who’s involved
✓ Nate Aune
✓ Vincent Fretin
✓ Sam Knox
✓ Giacomo Spettoli
✓ Mirna Bagnolatti
✓ Andrew Mleczko
✓ Federica D’Elia
✓ Me, spiritus movens of
  the project
http://www.flickr.com/photos/tranchis/3173646667




Coding events   when the project improves
Sprints
✓ Bolzano Sprint ’08
✓ Sorrento Sprint ’09
✓ a short summer sprint
  ’09
✓ Plone conference ’09



        http://www.flickr.com/photos/johnthescone/2526186118
Thesis

smart students from the
University of Ferrara




             http://www.flickr.com/photos/fabio48/317814195/
Everyday’s work
ok, ok, we’re not so tough




             http://www.flickr.com/photos/nickallen/3631367614/
What’s next
✓ don’t you think we
  already finished, right?!




          http://www.flickr.com/photos/biscuitsmlp/2246503687
complete the work

✓Complete all the tours               ✓Activate the prev/next buttons just
                                       only they have a real meaning
✓Check the entered texts: the texts
 entered in the fields should be the   ✓Translate javascript messages
 ones we expect                        and plone's interface parts referring


✓ Add an option to the Unified         ✓Fix problem when submitting forms
 Installer, something like "./         with contents inside the kupu
 install.sh --with-tours"              editor

  • Add a run-profile option to
    plone.recipe.unifiedinstaller to
    run additional profiles when the
    Plone Site is created
upgrade it - some ideas

✓ Check if the user completes the        ✓setUp/tearDown.
  step                                      • provide a way to create an
   • provide a way to check if the            environment in which the user
     user completes all the                   runs his tours.
     microsteps                             • explore possible security
   • provide a way to autocomplete            issues.
     all of them
                                         ✓Provide a way to create a tour using
✓ Clicking on next step button do         paster.
  all the microsteps of the current
  step.
                                         ✓collective.amberjack as a
                                          doctest-like environment?
✓Load the js stuff only if the tour is
 running
                                         ✓...
I want you

we’ll sprint on Sat-Sun

http://ploneconf2009.org/
program/sprint/collective-
amberjack




            http://www.flickr.com/photos/uhuru1701/2247554605
References

✓ Project’s website:


  • http://www.coactivate.org/projects/collectiveamberjack/


✓mailing list:

  • http://www.coactivate.org/projects/collectiveamberjack/lists/
    collectiveamberjack-discussion


✓code:

  • http://dev.plone.org/collective/browser/collective.amberjack.buildout
Questions!?
Massimo Azzolini
massimo@redturtle.net




          http://www.flickr.com/photos/seandreilinger/2326448445
Grazie. Thank you.

More Related Content

Similar to Collective.Amberjack

WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
Yoav Farhi
 
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPTwig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHP
Fabien Potencier
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipei
littlebtc
 

Similar to Collective.Amberjack (20)

Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013
 
Amberjack Lightning Talk
Amberjack Lightning TalkAmberjack Lightning Talk
Amberjack Lightning Talk
 
How to eat Cucmber
How to eat CucmberHow to eat Cucmber
How to eat Cucmber
 
國民雲端架構 Django + GAE
國民雲端架構 Django + GAE國民雲端架構 Django + GAE
國民雲端架構 Django + GAE
 
Awesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAwesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescript
 
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
 
Learning jQuery @ MIT
Learning jQuery @ MITLearning jQuery @ MIT
Learning jQuery @ MIT
 
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPTwig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHP
 
WebGL Awesomeness
WebGL AwesomenessWebGL Awesomeness
WebGL Awesomeness
 
The Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQueryThe Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQuery
 
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
 
Seven deadly theming sins
Seven deadly theming sinsSeven deadly theming sins
Seven deadly theming sins
 
Drupal 8, Where Did the Code Go? From Info Hook to Plugin
Drupal 8, Where Did the Code Go? From Info Hook to PluginDrupal 8, Where Did the Code Go? From Info Hook to Plugin
Drupal 8, Where Did the Code Go? From Info Hook to Plugin
 
HTML 5 - Overview
HTML 5 - OverviewHTML 5 - Overview
HTML 5 - Overview
 
Ext 0523
Ext 0523Ext 0523
Ext 0523
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
 
jQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UIjQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UI
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipei
 

More from Massimo Azzolini

Plone intranet - World Plone Day 2015 Bologna
Plone intranet - World Plone Day 2015 BolognaPlone intranet - World Plone Day 2015 Bologna
Plone intranet - World Plone Day 2015 Bologna
Massimo Azzolini
 
Corsi 3.0 - il sito e il social
Corsi 3.0 - il sito e il socialCorsi 3.0 - il sito e il social
Corsi 3.0 - il sito e il social
Massimo Azzolini
 

More from Massimo Azzolini (17)

Value design + Experience design = Business design
Value design + Experience design = Business designValue design + Experience design = Business design
Value design + Experience design = Business design
 
Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...
Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...
Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...
 
Personas + Business Model Canvas: Il redesign del sito a 4 mani con il cliente
Personas + Business Model Canvas: Il redesign del sito a 4 mani con il clientePersonas + Business Model Canvas: Il redesign del sito a 4 mani con il cliente
Personas + Business Model Canvas: Il redesign del sito a 4 mani con il cliente
 
Il Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passiIl Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passi
 
Plone intranet - World Plone Day 2015 Bologna
Plone intranet - World Plone Day 2015 BolognaPlone intranet - World Plone Day 2015 Bologna
Plone intranet - World Plone Day 2015 Bologna
 
Be agile: take back control over your work
Be agile: take back control over your workBe agile: take back control over your work
Be agile: take back control over your work
 
Social intranet
Social intranetSocial intranet
Social intranet
 
Agile values, methods and software
Agile values, methods and softwareAgile values, methods and software
Agile values, methods and software
 
Corsi 3.0 - il sito e il social
Corsi 3.0 - il sito e il socialCorsi 3.0 - il sito e il social
Corsi 3.0 - il sito e il social
 
Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012
Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012
Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012
 
Penelope - oltre il classico project management
Penelope - oltre il classico project managementPenelope - oltre il classico project management
Penelope - oltre il classico project management
 
Plone Konferenz 2012
Plone Konferenz 2012Plone Konferenz 2012
Plone Konferenz 2012
 
Strategie e comunicazione per il turismo sul web
Strategie e comunicazione per il turismo sul webStrategie e comunicazione per il turismo sul web
Strategie e comunicazione per il turismo sul web
 
BibliotecaAccessibile
BibliotecaAccessibileBibliotecaAccessibile
BibliotecaAccessibile
 
Provincia Di Ferrara's Plone case study
Provincia Di Ferrara's Plone case studyProvincia Di Ferrara's Plone case study
Provincia Di Ferrara's Plone case study
 
GoogleDocs on Plone
GoogleDocs on PloneGoogleDocs on Plone
GoogleDocs on Plone
 
Plone e Web 2.0
Plone e Web 2.0Plone e Web 2.0
Plone e Web 2.0
 

Recently uploaded

TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
Muhammad Subhan
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 

Recently uploaded (20)

JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 

Collective.Amberjack

  • 1. collective.amberjack on-line tutorials with
  • 2. the basic idea ✓ plone tours for new comers ✓ born @ bolzano sprint (nov ’08) link foto
  • 3. that’s all folks? maybe not... ✓ every product/add-on might have his amberjack tutorial ✓ just-hired people in companies needs tutorials ✓ wizards ✓ simplified e-learning
  • 4. the first goal ✓ PLIP #9324 ✓ Use Amberjack to offer guided help for first-time users ✓ to be included in a next 4.x release
  • 5. we are writing these tours ✓ Add and publish a Folder ✓ Add and publish a Page ✓ Add and publish a News Item ✓ Add and publish an Event ✓ Format a page using the visual editor ✓ Create internal links link foto
  • 6. we are writing these tours ✓ Create external links ✓ Upload an image ✓ Insert image on a page ✓ Upload and link to a File ✓ Using the Contents tab ✓ Using the Display menu ✓ Create a static text portlet link foto
  • 7. a spotlight http://www.flickr.com/photos/slopjop/1300515408
  • 8. you just installed Plone... and you’re an happy guy
  • 9. ..and you need to learn it by yourself.. hum, selecting the tour from the list? so easy?
  • 10. ... and complete the steps! one at a time, please
  • 13. the blueprint ✓ A tour has • a name (and an Id) • a set of steps
  • 14. the blueprint ✓ A tour has • a name (and an Id) • a set of steps ✓ every step is made by • a tuple (url, xpath, xcontent) • a title • a set of microsteps
  • 15. the blueprint ✓ A tour has ✓ every microstep has • a name (and an Id) • a description • a set of steps • a id for an ajStep (choosen from the available ones’ set) • selector ✓ every step is made by • text • a tuple (url, xpath, xcontent) • a title • a set of microsteps
  • 16. the blueprint ✓ A tour has ✓ every microstep has • a name (and an Id) • a description • a set of steps • a id for an ajStep (choosen from the available ones’ set) • selector ✓ every step is made by • text • a tuple (url, xpath, xcontent) • a title ✓ajStep is related to the HTML • a set of microsteps generated by Plone
  • 17. Do not touch Plone ✓ collective.amberjack do not changes anything in Plone itself ✓ it’s just unobtrusive javascript code and tours descripted through HTML http://www.flickr.com/photos/dhowellphoto/3023319312
  • 18. the software components amberjack library collective.amberjack.core collective.amberjack.portlet collective.amberjack.plonetour collective.amberjack.metatour
  • 19. amberjack.org ✓ developed by Arash Yalpani ✓ provides an unobtrusive javascript infrastructure for online tours ✓ not completely usable for our purposes link foto
  • 20. basically it provides ✓ a fancy popup “div” with prev/next/exit buttons, fully html enabled for your steps. ✓ a mapping between a step and each url you can visit. amberjack.org
  • 21. some use case not fully supported ✓ in Plone a path does not identify uniquely a html page: • view a page (/plone/page-a/view) • edit a page (/plone/page-a/edit) • save a page (/plone/page-a/view) ✓ it’s not just about links, we also submit forms
  • 22. the solutions ✓ make the mapping between steps and url less strong: • now the steps has an order (1. 2. 3....) ✓ don’t just rely on urls to pass tour variables • use cookies
  • 23. collective.amberjack.core ✓ tour definition and ✓ amberjack skins registration • model_t ✓ step definition • safari ✓ amberjack integration and ✓ZCML configuration for extension • tours ✓special use case • ajStep configurations • aj_xpath_exists ✓ validators definition • aj_any_url
  • 24. an example: add a folder ✓ the tour is made by the steps: ✓ filling a field is entering a string inside a HTML field: it’s about JS • add_folder, and HTML. • fill_out_the_fields, • publish_folder, • all_done ✓ the “fill_out_the_fields” step has to: • fill the “title” field with a value • fill the “description” field with another value • save it
  • 26. collective.amberjack.core - tour ajTour = {'tourId':u'basic01_add_and_publish_a_folder', 'title': _(u'Add and publish a Folder'), 'steps': (add_folder, fill_out_the_fields, publish_folder, all_done, )}
  • 28. collective.amberjack.core - step add_folder = { 'validators': (isManager, isNotFolderCreated,), 'url': u'/', 'xpath': u'', 'xcontent': u'', 'title': _(u"Create a new folder"), 'text': _(u"Folders are one..."), 'steps': ({...})
  • 30. collective.amberjack.core - microsteps 'steps': ( {'description': _(u"In the [Title] field, type.."), 'idStep': u'form_title', 'selector': u'', 'text': u'MyFolder'}, {'description': _(u"In the [Description] field, type .."), 'idStep': u'form_description', 'selector': u'', 'text': _("This folder will be used...")},)}
  • 32. collective.amberjack.core - ajStep ajStandardSteps = ( ... ('form_title', '#archetypes-fieldname-title input'), ('form_description', '#archetypes-fieldname-description textarea'), ... )
  • 34. collective.amberjack.core - ZCML registration <collective.amberjack:tour tourdescriptor=".tour1.ajTour" /> <collective.amberjack:ajstep stepsdescriptor= ".ajStandardSteps.ajStandardSteps" />
  • 35. validators ✓ isAnonymous ✓ isAuthenticated ✓ isManager ✓ isReviewer ✓ isContributor ✓ isEditor ✓ isReader http://www.flickr.com/photos/traveleden/3797157077
  • 36. collective.amberjack.plonetour ✓ defines the 12 tours ✓translations ✓ provides tour specific validators • french • isFolderCreated • italian • isNotFolderCreated ✓ZCML registration
  • 37. collective.amberjack.portlet ✓ a portlet for starting a single tour • it just lets you provide the tourId and the skinId ✓ a portlet that lets you provide a set of tour in a given order, you provide: • portlet’s title • tours’ list and order • skinId
  • 38. collective.amberjack.metatour ✓provides 2 archetypes: • ajtour • ajstep • url, xpath, xcontent • microsteps ✓ metatours and ZCML registered tours are identical
  • 40. Create a folder and a page
  • 41. Create a folder and a page
  • 43. what you need to do ✓ create an empty package via paster ✓ write your tour in myTour.py ✓ add it to the available ones through ZCML ✓ translate it ✓ (opt. add custom ajSteps) http://www.flickr.com/photos/domhuk/197875701
  • 44. Let’s see some, still in progress, code
  • 46. who’s involved ✓ Nate Aune proposed the idea to find a framework to create tours and adapt it to plone
  • 47. who’s involved ✓ Nate Aune ✓ Vincent Fretin completely refactored the code, i18ned everything, has been a guide to me
  • 48. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox wrote all the tours
  • 49. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox ✓ Giacomo Spettoli during his thesis worked on the initial core
  • 50. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox ✓ Giacomo Spettoli ✓ Mirna Bagnolatti during her thesis developed tours from scratch, translated them in italian
  • 51. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox ✓ Giacomo Spettoli ✓ Mirna Bagnolatti ✓ Andrew Mleczko tour validations, tiny refactoring, test test test
  • 52. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox ✓ Giacomo Spettoli ✓ Mirna Bagnolatti ✓ Andrew Mleczko ✓ Federica D’Elia test coverage
  • 53. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox ✓ Giacomo Spettoli ✓ Mirna Bagnolatti ✓ Andrew Mleczko ✓ Federica D’Elia ✓ Me, spiritus movens of the project
  • 55. Sprints ✓ Bolzano Sprint ’08 ✓ Sorrento Sprint ’09 ✓ a short summer sprint ’09 ✓ Plone conference ’09 http://www.flickr.com/photos/johnthescone/2526186118
  • 56. Thesis smart students from the University of Ferrara http://www.flickr.com/photos/fabio48/317814195/
  • 57. Everyday’s work ok, ok, we’re not so tough http://www.flickr.com/photos/nickallen/3631367614/
  • 58. What’s next ✓ don’t you think we already finished, right?! http://www.flickr.com/photos/biscuitsmlp/2246503687
  • 59. complete the work ✓Complete all the tours ✓Activate the prev/next buttons just only they have a real meaning ✓Check the entered texts: the texts entered in the fields should be the ✓Translate javascript messages ones we expect and plone's interface parts referring ✓ Add an option to the Unified ✓Fix problem when submitting forms Installer, something like "./ with contents inside the kupu install.sh --with-tours" editor • Add a run-profile option to plone.recipe.unifiedinstaller to run additional profiles when the Plone Site is created
  • 60. upgrade it - some ideas ✓ Check if the user completes the ✓setUp/tearDown. step • provide a way to create an • provide a way to check if the environment in which the user user completes all the runs his tours. microsteps • explore possible security • provide a way to autocomplete issues. all of them ✓Provide a way to create a tour using ✓ Clicking on next step button do paster. all the microsteps of the current step. ✓collective.amberjack as a doctest-like environment? ✓Load the js stuff only if the tour is running ✓...
  • 61. I want you we’ll sprint on Sat-Sun http://ploneconf2009.org/ program/sprint/collective- amberjack http://www.flickr.com/photos/uhuru1701/2247554605
  • 62. References ✓ Project’s website: • http://www.coactivate.org/projects/collectiveamberjack/ ✓mailing list: • http://www.coactivate.org/projects/collectiveamberjack/lists/ collectiveamberjack-discussion ✓code: • http://dev.plone.org/collective/browser/collective.amberjack.buildout
  • 63. Questions!? Massimo Azzolini massimo@redturtle.net http://www.flickr.com/photos/seandreilinger/2326448445

Editor's Notes

  1. puzzle
  2. tutto a 40
  3. punti elenco con il check e img (logo plone anche solo il tondo)
  4. come sopra
  5. idem