SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
* 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

Contenu connexe

Plus de 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
 

Plus de 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
 

Dernier

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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
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
 
"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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Dernier (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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
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)
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

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