SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Getting Started with 
QCMagritte 
Diego Lont & Stephan Eggermont 
• Download a QCMagritte image from 
http://ci.inria.org/pharo-contribution/QCMagritte 
• Download a pharo vm from 
http://get.pharo.org 
• Download a QCMagritte demo from 
http://smalltalkhub.com/mc/DiegoLont/QCMagritteDemo 
dinsdag 19 augustus 14
What is QC-Magritte 
• Application level framework 
• On top of Seaside and Magritte 
• Provides re-usable parts for common tasks 
dinsdag 19 augustus 14
QCMagritte supports ... 
Application 
Template 
Influences 
(AJAX) 
Table support 
Search 
(Queries) 
Application 
navigation 
Multi-language 
User 
management 
Commands 
Hierarchical 
domain 
structure 
Menu 
structure 
dinsdag 19 augustus 14
Example: CI 
• Continuous Integration Server 
• Not focus of the talk 
• Predefined with Magritte definitions 
dinsdag 19 augustus 14
CI Model 
CI-Model Trigger 
Configuration 
Build 
Definition 
PProrojejecct t Project 
BBuuilidld Build 
Build 
Step 
Build 
Step 
Build 
Step 
Trigger 
dinsdag 19 augustus 14
Demo 
• View magritte descriptions in model 
dinsdag 19 augustus 14
Template 
• Application 
• Seaside application, registering itself 
• Points to model 
• Creates menu 
• Model 
• Describes entry points for entire domain 
• Defines builders used to generate components 
dinsdag 19 augustus 14
Bootstrap template 
QCBootstrapApplication subclass: #CIBuildServerApplication 
CIBuildServerApplication>>title 
^'Demo CI' 
CIBuildServerApplication>>model 
^CIBuildServerModel default 
CIBuildServerApplication class>>applicationName 
^'Demo CI' 
QCBootstrapApplicationModel subclass: #CIBuildServerModel 
dinsdag 19 augustus 14
Demo 
• Show code 
• Run tutorial:1 
• Show application 
• Add 2 projects 
• 1 project defines steps and triggers 
dinsdag 19 augustus 14
Default commands 
• CRUD 
• User rights 
• Domain constraints 
CIProject>>canRemove 
^self builds isEmpty 
dinsdag 19 augustus 14
Custom commands 
• Domain object has containerActions 
• Label 
• Condition 
• Action 
CIProject>>containerActions: aContainer 
<magritteContainer> 
^aContainer 
addCommand: 'build' condition: #canBuild action: #startBuild; 
yourself 
dinsdag 19 augustus 14
Custom components 
• Easy extend model with custom components 
• Demo: add status description + component 
dinsdag 19 augustus 14
User Management 
• Only allow changes by logged in users 
• Restrict access to views/actions 
• Controlled by “hasUserManagent” 
• Defaults to true if there is an admin user 
• (CRUD) Rights and roles model. 
dinsdag 19 augustus 14
Demo 
• Add user management 
dinsdag 19 augustus 14
QCMagritte supports ... 
Application 
Template 
Influences 
(AJAX) 
Table 
Support 
Search 
(Queries) 
Application 
navigation 
Multi-language 
User 
management 
Commands 
Hierarchical 
domain 
structure 
Menu 
structure 
dinsdag 19 augustus 14
Influences 
• disable timeout 
• user first, last name 
• How to avoid cycles 
dinsdag 19 augustus 14
Application navigation 
• Mostly announcement based (still some call’s left, 
slowly being replaced) 
• QCPageChoice shows how 
dinsdag 19 augustus 14
Parent Object 
• Hierarchical ownership model for the domain 
• Only one owner: parent 
• Backlink to model = parent model 
• QCQueriedToManyComponent 
• search support 
• newInstance sets parent if needed 
dinsdag 19 augustus 14
Multilanguage 
• In-application support for multiple languages 
• Each user can have own language preference 
• Application has default language 
• Keep default values for untranslated 
• Default translation of labels, groups, comments, 
error messages. Others: asMultilanguageString 
dinsdag 19 augustus 14
Search 
• Model-wide search, from a starting point 
• Description-type specific 
• everything transformed to string representation 
dinsdag 19 augustus 14
Table support 
• Select on field values, smart filter 
• Sorting 
• Export CSV 
• Select columns 
• Add calculated columns 
dinsdag 19 augustus 14
Menu structure 
• Tree based, announcements 
• Autocollapse: expand current selection 
dinsdag 19 augustus 14

Weitere ähnliche Inhalte

Mehr von ESUG

Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalkESUG
 
gt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Mediagt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social MediaESUG
 
Roassal3 update
Roassal3 updateRoassal3 update
Roassal3 updateESUG
 
VASER Control: Smart Energy
VASER Control: Smart EnergyVASER Control: Smart Energy
VASER Control: Smart EnergyESUG
 
Do you know your browser?
Do you know your browser?Do you know your browser?
Do you know your browser?ESUG
 
News on Bloc for Pharo
News on Bloc for PharoNews on Bloc for Pharo
News on Bloc for PharoESUG
 

Mehr von ESUG (20)

Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalk
 
gt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Mediagt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Media
 
Roassal3 update
Roassal3 updateRoassal3 update
Roassal3 update
 
VASER Control: Smart Energy
VASER Control: Smart EnergyVASER Control: Smart Energy
VASER Control: Smart Energy
 
Do you know your browser?
Do you know your browser?Do you know your browser?
Do you know your browser?
 
News on Bloc for Pharo
News on Bloc for PharoNews on Bloc for Pharo
News on Bloc for Pharo
 

Kürzlich hochgeladen

SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationShrmpro
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 

Kürzlich hochgeladen (20)

SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 

Getting Started with QCMagritte

  • 1. Getting Started with QCMagritte Diego Lont & Stephan Eggermont • Download a QCMagritte image from http://ci.inria.org/pharo-contribution/QCMagritte • Download a pharo vm from http://get.pharo.org • Download a QCMagritte demo from http://smalltalkhub.com/mc/DiegoLont/QCMagritteDemo dinsdag 19 augustus 14
  • 2. What is QC-Magritte • Application level framework • On top of Seaside and Magritte • Provides re-usable parts for common tasks dinsdag 19 augustus 14
  • 3. QCMagritte supports ... Application Template Influences (AJAX) Table support Search (Queries) Application navigation Multi-language User management Commands Hierarchical domain structure Menu structure dinsdag 19 augustus 14
  • 4. Example: CI • Continuous Integration Server • Not focus of the talk • Predefined with Magritte definitions dinsdag 19 augustus 14
  • 5. CI Model CI-Model Trigger Configuration Build Definition PProrojejecct t Project BBuuilidld Build Build Step Build Step Build Step Trigger dinsdag 19 augustus 14
  • 6. Demo • View magritte descriptions in model dinsdag 19 augustus 14
  • 7. Template • Application • Seaside application, registering itself • Points to model • Creates menu • Model • Describes entry points for entire domain • Defines builders used to generate components dinsdag 19 augustus 14
  • 8. Bootstrap template QCBootstrapApplication subclass: #CIBuildServerApplication CIBuildServerApplication>>title ^'Demo CI' CIBuildServerApplication>>model ^CIBuildServerModel default CIBuildServerApplication class>>applicationName ^'Demo CI' QCBootstrapApplicationModel subclass: #CIBuildServerModel dinsdag 19 augustus 14
  • 9. Demo • Show code • Run tutorial:1 • Show application • Add 2 projects • 1 project defines steps and triggers dinsdag 19 augustus 14
  • 10. Default commands • CRUD • User rights • Domain constraints CIProject>>canRemove ^self builds isEmpty dinsdag 19 augustus 14
  • 11. Custom commands • Domain object has containerActions • Label • Condition • Action CIProject>>containerActions: aContainer <magritteContainer> ^aContainer addCommand: 'build' condition: #canBuild action: #startBuild; yourself dinsdag 19 augustus 14
  • 12. Custom components • Easy extend model with custom components • Demo: add status description + component dinsdag 19 augustus 14
  • 13. User Management • Only allow changes by logged in users • Restrict access to views/actions • Controlled by “hasUserManagent” • Defaults to true if there is an admin user • (CRUD) Rights and roles model. dinsdag 19 augustus 14
  • 14. Demo • Add user management dinsdag 19 augustus 14
  • 15. QCMagritte supports ... Application Template Influences (AJAX) Table Support Search (Queries) Application navigation Multi-language User management Commands Hierarchical domain structure Menu structure dinsdag 19 augustus 14
  • 16. Influences • disable timeout • user first, last name • How to avoid cycles dinsdag 19 augustus 14
  • 17. Application navigation • Mostly announcement based (still some call’s left, slowly being replaced) • QCPageChoice shows how dinsdag 19 augustus 14
  • 18. Parent Object • Hierarchical ownership model for the domain • Only one owner: parent • Backlink to model = parent model • QCQueriedToManyComponent • search support • newInstance sets parent if needed dinsdag 19 augustus 14
  • 19. Multilanguage • In-application support for multiple languages • Each user can have own language preference • Application has default language • Keep default values for untranslated • Default translation of labels, groups, comments, error messages. Others: asMultilanguageString dinsdag 19 augustus 14
  • 20. Search • Model-wide search, from a starting point • Description-type specific • everything transformed to string representation dinsdag 19 augustus 14
  • 21. Table support • Select on field values, smart filter • Sorting • Export CSV • Select columns • Add calculated columns dinsdag 19 augustus 14
  • 22. Menu structure • Tree based, announcements • Autocollapse: expand current selection dinsdag 19 augustus 14