SlideShare a Scribd company logo
1 of 42
Download to read offline
* Bild austauschen

                                                   * fehlende
                                                   Bildver weise
                                                   ersetzen




                    T3CON10                                                    Inspiring people to
                    Development of the TYPO3 Phoenix User Interface with Ext JS share
Dienstag, 5. Oktober 2010
Development of the TYPO3 Phoenix
                   User Interface with Ext JS
                                         01.10.2010


                               Nils Dehl <nils.dehl@dkd.de>
                      Christopher Hlubek <hlubek@networkteam.com>




Dienstag, 5. Oktober 2010
Christopher Hlubek                            Nils Dehl




                               twitter: hlubek                         twitter: nilsdehl



                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Agenda
                            Introduction

                            Challenges of implementing the TYPO3 Phoenix UI

                            Choosing Ext JS

                            The Phoenix JS UI architecture

                            Next steps

                            Questions




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Introduction




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Dienstag, 5. Oktober 2010
Dienstag, 5. Oktober 2010
Challenges
                             of implementing the TYPO3
                                     Phoenix UI



                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
1                 Smooth workflow &
                                              rich user experience
                     Development of the TYPO3 Phoenix User Interface with Ext JS   Inspiring people to
                                                                                   share
Dienstag, 5. Oktober 2010
Traditional web interface

                    Web > Page                       Web > List                    Web > Preview



                                                     Template                       Workspace


                            Page load


                                                                                    Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                    share
Dienstag, 5. Oktober 2010
Phoenix user interface


                                                    Web > List
                                                  Web Template
                                                       > Page
                                                    Workspace
                                                Web > Preview


                                                                        Single page

                            Page load


                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Single page workflow

                            Load everything at once
                            Intelligent initialization
                            Manage browser history




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
2                 Extensibility

                     Development of the TYPO3 Phoenix User Interface with Ext JS   Inspiring people to
                                                                                   share
Dienstag, 5. Oktober 2010
Insert section
         Insert menu item
                                             Add column




Dienstag, 5. Oktober 2010
Add form field
                                                         Change input
                                                             type
                            Add dialog




Dienstag, 5. Oktober 2010
1s
                     Extensibility




                                                                                   tl
                                                                                    ev
                                                                                      el
                                                                                           co
                                                                                              n  ce
                            Extend everything




                                                                                                    p t
                            Don‘t worry about extensibility
                            Easy API




                                                                                    Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                    share
Dienstag, 5. Oktober 2010
3         Development with many
                                      (unknown) people
                            Consistency
                            Intuitive concepts
                            Simple vs. Flexible




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
4          Robust API
                                       (safe and maintainable)

                            Using it right should be simple
                            Good documentation
                            Stable vs. Extensible




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Choosing Ext JS




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Dienstag, 5. Oktober 2010
Dienstag, 5. Oktober 2010
ExtJS
                            very rich component library

                            cross-browser compatible

                            great component model

                            many nice abstractions, f.e. Data Stores

                            uses Layout Managers

                            easy to extend




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Ext Direct

                                                                         Controller
                                              RPC                          Action
                            Client
                                                                         Controller
                                                                           Action
                                                                                                  Server




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
The Phoenix JS UI architecture




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
JavaScript UI architecture
                                                        Base UI

                                               Base Components

                            Initialization             Configuration
                                                                                   ExtDirect
                                        Schema                   Security          Services
                            I18N
                                      information                  ACLs


                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
JavaScript UI concepts

                                                           Configuration

                                                           Initialization
                              Module
                                                             Helper API

                                                         Event container



                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Creating Modules
                      Application.createModule(‘F3...SomeModule‘, {
                        configure: function(registry) {
                          registry.set(‘form/type/...‘, ‘value‘);
                        },
                        initialize: function(application) {
                          application.afterInitializationOf(‘F3...SomeModule‘,
                            function(someModule) { ... }
                          );
                        }
                      });

                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Initialization




Dienstag, 5. Oktober 2010
Initialization order




                                                ?
                            Module 2                            Module 3




                               Module 4
                                                                                   Module 1
           t


                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Dienstag, 5. Oktober 2010
Application initialization
           create
           Module                                                                                      addContent             initialize
                                  for every Module:



                                                                   for every Module:
                                                      configure()


                                                                                       initialize()
                                                                                                          Area                viewport
           create
           Module

           create                                                                                             ...                      ...
           Module
                                                                                                      afterInitializationOf Application.
                               DOM onReady
                                                                                                      UserInterfaceModule afterBootstrap
             t

                                                                                                                         Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                                                         share
Dienstag, 5. Oktober 2010
Initialization process

                                             Module A                                                                                  Module B
                                                                   afterInitialization ...




                                                                                                                                                                         afterInitialization ...
                                                 register events




                                                                                                                                           register events
                                                                                              afterBootstrap




                                                                                                                                                                                                   afterBootstrap
                     configure()




                                                                                                               configure()
                                  initialize()




                                                                                             Application                    initialize()


                                                                                                                                                             Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                                                                                             share
Dienstag, 5. Oktober 2010
Configuration




Dienstag, 5. Oktober 2010
Registry
                     menu
                            main
                               content
                                    title        "Content"




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Registry                             registry.set(
                                                                           'menu/main[]/content/title',
                     menu                                                  'Welcome'
                                                                         )
                            main
                               content
                                    title       "Welcome"
                                                "Content"




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Registry                             registry.set(
                                                                           'menu/main[]/content/title',
                     menu                                                  'Welcome'
                                                                         )
                            main
                                                                         registry.append(
                                                                           'menu/main[]', 'management',
                               content                                     {title: 'Mgmt'}
                                                                         )
                                    title       "Welcome"
                                                "Content"
                               management
                                    title        "Mgmt"



                                                                                    Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Registry                             registry.set(
                                                                           'menu/main[]/content/title',
                     menu                                                  'Welcome'
                                                                         )
                            main
                                                                         registry.set(
                                                                           'menu/main[]/management/
                               content                                     title', 'Manage'
                                                                         )
                                    title       "Welcome"
                                                "Content"                registry.append(
                                                                           'menu/main[]', 'management',
                               management                                  {title: 'Mgmt'}
                                                                         )
                                    title       "Mgmt"
                                                "Manage"



                                                                                    Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Registry
                            Order independent configuration

                            Needs compilation after

                            Create any JSON structure

                              Menus

                              Form definitions

                              Grid columns

                              ...


                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
Next Steps
                            Refine the API

                            Implement more features

                            Create lots of custom components

                            Implement the new design

                            And for that...




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
We need you!




                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
????
                                                         ??
                                                         ??
                                                          ?
                                                       ??
                                                        ?
                                                       ?


                                                                                   Inspiring people to
                     Development of the TYPO3 Phoenix User Interface with Ext JS
                                                                                   share
Dienstag, 5. Oktober 2010
inspiring people to share.


Dienstag, 5. Oktober 2010

More Related Content

More from Nils Dehl

Sencha Touch meets TYPO3 CMS
Sencha Touch meets TYPO3 CMSSencha Touch meets TYPO3 CMS
Sencha Touch meets TYPO3 CMSNils Dehl
 
jsday.it - develop and test custom components for sencha touch by nils dehl
jsday.it - develop and test custom components for sencha touch by nils dehljsday.it - develop and test custom components for sencha touch by nils dehl
jsday.it - develop and test custom components for sencha touch by nils dehlNils Dehl
 
Sencha Touch meets TYPO3
Sencha Touch meets TYPO3Sencha Touch meets TYPO3
Sencha Touch meets TYPO3Nils Dehl
 
Workshop getting started with sencha touch 2 - nils dehl
Workshop   getting started with sencha touch 2 - nils dehlWorkshop   getting started with sencha touch 2 - nils dehl
Workshop getting started with sencha touch 2 - nils dehlNils Dehl
 
SenchaTouch 2 and Sencha.io
SenchaTouch 2 and Sencha.ioSenchaTouch 2 and Sencha.io
SenchaTouch 2 and Sencha.ioNils Dehl
 
SenchaCon 2011 VGF Showcase
SenchaCon 2011 VGF ShowcaseSenchaCon 2011 VGF Showcase
SenchaCon 2011 VGF ShowcaseNils Dehl
 

More from Nils Dehl (6)

Sencha Touch meets TYPO3 CMS
Sencha Touch meets TYPO3 CMSSencha Touch meets TYPO3 CMS
Sencha Touch meets TYPO3 CMS
 
jsday.it - develop and test custom components for sencha touch by nils dehl
jsday.it - develop and test custom components for sencha touch by nils dehljsday.it - develop and test custom components for sencha touch by nils dehl
jsday.it - develop and test custom components for sencha touch by nils dehl
 
Sencha Touch meets TYPO3
Sencha Touch meets TYPO3Sencha Touch meets TYPO3
Sencha Touch meets TYPO3
 
Workshop getting started with sencha touch 2 - nils dehl
Workshop   getting started with sencha touch 2 - nils dehlWorkshop   getting started with sencha touch 2 - nils dehl
Workshop getting started with sencha touch 2 - nils dehl
 
SenchaTouch 2 and Sencha.io
SenchaTouch 2 and Sencha.ioSenchaTouch 2 and Sencha.io
SenchaTouch 2 and Sencha.io
 
SenchaCon 2011 VGF Showcase
SenchaCon 2011 VGF ShowcaseSenchaCon 2011 VGF Showcase
SenchaCon 2011 VGF Showcase
 

Recently uploaded

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

Development of the TYPO3 Phoenix User Interface with Ext JS

  • 1. * Bild austauschen * fehlende Bildver weise ersetzen T3CON10 Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 2. Development of the TYPO3 Phoenix User Interface with Ext JS 01.10.2010 Nils Dehl <nils.dehl@dkd.de> Christopher Hlubek <hlubek@networkteam.com> Dienstag, 5. Oktober 2010
  • 3. Christopher Hlubek Nils Dehl twitter: hlubek twitter: nilsdehl Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 4. Agenda Introduction Challenges of implementing the TYPO3 Phoenix UI Choosing Ext JS The Phoenix JS UI architecture Next steps Questions Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 5. Introduction Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 8. Challenges of implementing the TYPO3 Phoenix UI Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 9. 1 Smooth workflow & rich user experience Development of the TYPO3 Phoenix User Interface with Ext JS Inspiring people to share Dienstag, 5. Oktober 2010
  • 10. Traditional web interface Web > Page Web > List Web > Preview Template Workspace Page load Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 11. Phoenix user interface Web > List Web Template > Page Workspace Web > Preview Single page Page load Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 12. Single page workflow Load everything at once Intelligent initialization Manage browser history Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 13. 2 Extensibility Development of the TYPO3 Phoenix User Interface with Ext JS Inspiring people to share Dienstag, 5. Oktober 2010
  • 14. Insert section Insert menu item Add column Dienstag, 5. Oktober 2010
  • 15. Add form field Change input type Add dialog Dienstag, 5. Oktober 2010
  • 16. 1s Extensibility tl ev el co n ce Extend everything p t Don‘t worry about extensibility Easy API Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 17. 3 Development with many (unknown) people Consistency Intuitive concepts Simple vs. Flexible Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 18. 4 Robust API (safe and maintainable) Using it right should be simple Good documentation Stable vs. Extensible Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 19. Choosing Ext JS Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 22. ExtJS very rich component library cross-browser compatible great component model many nice abstractions, f.e. Data Stores uses Layout Managers easy to extend Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 23. Ext Direct Controller RPC Action Client Controller Action Server Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 24. The Phoenix JS UI architecture Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 25. JavaScript UI architecture Base UI Base Components Initialization Configuration ExtDirect Schema Security Services I18N information ACLs Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 26. JavaScript UI concepts Configuration Initialization Module Helper API Event container Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 27. Creating Modules Application.createModule(‘F3...SomeModule‘, { configure: function(registry) { registry.set(‘form/type/...‘, ‘value‘); }, initialize: function(application) { application.afterInitializationOf(‘F3...SomeModule‘, function(someModule) { ... } ); } }); Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 29. Initialization order ? Module 2 Module 3 Module 4 Module 1 t Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 31. Application initialization create Module addContent initialize for every Module: for every Module: configure() initialize() Area viewport create Module create ... ... Module afterInitializationOf Application. DOM onReady UserInterfaceModule afterBootstrap t Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 32. Initialization process Module A Module B afterInitialization ... afterInitialization ... register events register events afterBootstrap afterBootstrap configure() configure() initialize() Application initialize() Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 34. Registry menu main content title "Content" Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 35. Registry registry.set( 'menu/main[]/content/title', menu 'Welcome' ) main content title "Welcome" "Content" Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 36. Registry registry.set( 'menu/main[]/content/title', menu 'Welcome' ) main registry.append( 'menu/main[]', 'management', content {title: 'Mgmt'} ) title "Welcome" "Content" management title "Mgmt" Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 37. Registry registry.set( 'menu/main[]/content/title', menu 'Welcome' ) main registry.set( 'menu/main[]/management/ content title', 'Manage' ) title "Welcome" "Content" registry.append( 'menu/main[]', 'management', management {title: 'Mgmt'} ) title "Mgmt" "Manage" Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 38. Registry Order independent configuration Needs compilation after Create any JSON structure Menus Form definitions Grid columns ... Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 39. Next Steps Refine the API Implement more features Create lots of custom components Implement the new design And for that... Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 40. We need you! Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 41. ???? ?? ?? ? ?? ? ? Inspiring people to Development of the TYPO3 Phoenix User Interface with Ext JS share Dienstag, 5. Oktober 2010
  • 42. inspiring people to share. Dienstag, 5. Oktober 2010