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

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
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
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
 
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
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 

Recently uploaded (20)

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
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
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
 
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
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
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
 

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