SlideShare ist ein Scribd-Unternehmen logo
1 von 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.

Weitere ähnliche Inhalte

Ähnlich wie Collective.Amberjack

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 2013Diego Freniche Brito
 
Amberjack Lightning Talk
Amberjack Lightning TalkAmberjack Lightning Talk
Amberjack Lightning TalkJazkarta, Inc.
 
國民雲端架構 Django + GAE
國民雲端架構 Django + GAE國民雲端架構 Django + GAE
國民雲端架構 Django + GAEWinston Chen
 
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 coffeescriptAmir Barylko
 
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1Yoav Farhi
 
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 ...Sencha
 
Learning jQuery @ MIT
Learning jQuery @ MITLearning jQuery @ MIT
Learning jQuery @ MITjeresig
 
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 PHPFabien Potencier
 
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 jQuerycolinbdclark
 
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...Jazkarta, Inc.
 
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 PluginAcquia
 
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)Doris Chen
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, SuccessfullySauce Labs
 
jQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UIjQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UIjeresig
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipeilittlebtc
 

Ähnlich wie 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
 

Mehr von Massimo Azzolini

Value design + Experience design = Business design
Value design + Experience design = Business designValue design + Experience design = Business design
Value design + Experience design = Business designMassimo Azzolini
 
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...Massimo Azzolini
 
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 clienteMassimo Azzolini
 
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 passiMassimo 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 BolognaMassimo Azzolini
 
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 workMassimo Azzolini
 
Agile values, methods and software
Agile values, methods and softwareAgile values, methods and software
Agile values, methods and softwareMassimo 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 socialMassimo Azzolini
 
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 2012Massimo Azzolini
 
Penelope - oltre il classico project management
Penelope - oltre il classico project managementPenelope - oltre il classico project management
Penelope - oltre il classico project managementMassimo Azzolini
 
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 webMassimo Azzolini
 
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 studyMassimo Azzolini
 

Mehr von 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
 

Kürzlich hochgeladen

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 

Kürzlich hochgeladen (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 

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

Hinweis der Redaktion

  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