SlideShare a Scribd company logo
1 of 24
EPiServer Charts
EPiServer meetup
28-06-2016
Patrick van Kleef
EPiServer Most Valued Professional @Geta
• www.patrickvankleef.com
• twitter.com/patkleef
• slideshare.com/patkleef
• github.com/patkleef
• jsfiddle.net/patkleef
• www.geta.no
Code available!
Github | JSFiddle
• www.github.com/patkleef/DojoDragAndDrop
• https://jsfiddle.net/patkleef/Ls3hq01v/1/
• https://github.com/patkleef/DojoCharts
• https://jsfiddle.net/patkleef/37yuu79w/
• https://github.com/patkleef/EPiServerStats
Contents
- Dojo drag and drop
- Demo
- Dojo charting
- Demo
- EPiServer Charts
- Demo
Just to be clear
- Widget = Dojo
- Gadget = EPiServer
Drag and Drop
Dojo
Drag and Drop
• Types that inherit from IContent can be drag and drop
• ContentArea
• [AllowedTypes(new[ ] { typeof(ImageData)]
• TinyMCE
• Dojo/dnd package
• Source
• Target
• Avatar
• Events
Pages | Blocks | Media
Dojo/dnd
How does it work?
Source
Item 1 - Block
Item 2 - Image
Item 3 - Document
Target
Accept: [ ] { Document }
Avatar
Item 3
Events
DndDrop, DraggingOver, DraggingOut, DropExternal, DropInternal, DndCancel, OverEvent, OutEvent,
MouseMove, MouseDown, MouseUp
DEMO
- Drag and Drop
Charting
Dojo
Charting
• Different chart types
• Animation and effects
• Customize
• Dojox/charting package
• Charts
• Plot
• Axis
• Action2d
• Themes
Line | Column | Bar | Pie | Bubbles | more
DEMO
- Charting
Charts
EPiServer – custom solution
What’s the solution about?
• ChartData : IContent
• Chart asset gadget
• Chart dashboard - custom view (preview, all-properties, inline-editor)
• Chart preview – custom view ‘’
• Page source
• Modified by
• Modified at
• Links to page
Display information (charts) of the current page in the CMS
ChartData : IContent
• Why IContent? Use the benefits!
• Create, update, delete charts
• Create gadgets, like the blocks, media assets
• Different views: all properties, preview
• Find will index it
• Trash basket
• More ?
All items in EPiServer are IContent: pages, blocks media and charts
Architecture
Chart dashboard
Chart gadget
• Page modified by
• Page modified at
DnD chart
Rest store
Chart drop
Load page
Content repository
descriptor
Chart Preview
Create chart
Chart dashboard
• Class inherit from ViewConfiguration<T>
• Set the view name
• Set the controllerType, if you would like to use Dojo
• Set the viewType, if you would like to use MVC/Webforms
• Optional – class inherit from UIDescriptor<T>
• Default view (view name)
• Disable views – for example the OnPageEditView
• Dojo widget – controllerType
• UI
What do you need to build a custom view?
All types inherit
ViewConfiguration<HomePage>
Check default view
Type inherit
UIDescriptor<HomePage>
Render default view
Load HomePage in CMS
Chart preview
• Same as previous, but now for ChartData (IContent)
What do you need to build a custom view?
Chart gadget
• Class inherit from ComponentDefinitionBase
• Set dojo module
• Title, description
• Plugin area
• ContentRepositoryDescriptorBase
• Tell what the gadget should show – ChartData
• What the gadget can do – CRUD
• What the root is
• Custom content provider ?
• Dojo widget
• HierarchicalList widget (EPiServer)
What do you need to build a gadget?
Dojo widget architecture
Rest store Chart widget
Chart preview
widget
Chart dashboard
widget
Module.configChart initializer
Code demo
- EPiServer Charts
Still work in progress
• Implement chart sources for pages
• Create Nuget package
What’s next?
Thanks!
www.patrickvankleef.com

More Related Content

What's hot

Html5 storage and browser storage
Html5 storage and browser storageHtml5 storage and browser storage
Html5 storage and browser storage
Sway Deng
 

What's hot (20)

Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014
 
1111
11111111
1111
 
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
 
Cloud architectural patterns and Microsoft Azure tools
Cloud architectural patterns and Microsoft Azure toolsCloud architectural patterns and Microsoft Azure tools
Cloud architectural patterns and Microsoft Azure tools
 
DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...
DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...
DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...
 
Bleeding Edge Databases
Bleeding Edge DatabasesBleeding Edge Databases
Bleeding Edge Databases
 
AWS for Big Data Experts
AWS for Big Data ExpertsAWS for Big Data Experts
AWS for Big Data Experts
 
Marketing vs Technology
Marketing vs TechnologyMarketing vs Technology
Marketing vs Technology
 
A (XPages) developers guide to Cloudant
A (XPages) developers guide to CloudantA (XPages) developers guide to Cloudant
A (XPages) developers guide to Cloudant
 
Power BI: Dashboard in an Hour Walk-Through
Power BI: Dashboard in an Hour Walk-ThroughPower BI: Dashboard in an Hour Walk-Through
Power BI: Dashboard in an Hour Walk-Through
 
Creating Custom HTML Helpers In ASP.NET MVC
Creating Custom HTML Helpers In ASP.NET MVCCreating Custom HTML Helpers In ASP.NET MVC
Creating Custom HTML Helpers In ASP.NET MVC
 
Increasing Findability with Subject Schemes (Advanced DITA Webinar)
Increasing Findability with Subject Schemes (Advanced DITA Webinar)Increasing Findability with Subject Schemes (Advanced DITA Webinar)
Increasing Findability with Subject Schemes (Advanced DITA Webinar)
 
Html5 storage and browser storage
Html5 storage and browser storageHtml5 storage and browser storage
Html5 storage and browser storage
 
Modern Data architecture Design
Modern Data architecture DesignModern Data architecture Design
Modern Data architecture Design
 
C# 8 and .NET Core 3
C# 8 and .NET Core 3C# 8 and .NET Core 3
C# 8 and .NET Core 3
 
Database Choices
Database ChoicesDatabase Choices
Database Choices
 
Azure DocumentDB for Healthcare Integration - Part 2
Azure DocumentDB for Healthcare Integration - Part 2Azure DocumentDB for Healthcare Integration - Part 2
Azure DocumentDB for Healthcare Integration - Part 2
 
Gab2015 azure search as a service
Gab2015 azure search as a serviceGab2015 azure search as a service
Gab2015 azure search as a service
 
Database basics
Database basicsDatabase basics
Database basics
 
ExtjsPart1
ExtjsPart1ExtjsPart1
ExtjsPart1
 

Similar to EPiServer Charts

Drupal Step-by-Step: How We Built Our Training Site, Part 2
Drupal Step-by-Step: How We Built Our Training Site, Part 2Drupal Step-by-Step: How We Built Our Training Site, Part 2
Drupal Step-by-Step: How We Built Our Training Site, Part 2
Acquia
 
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
BIWUG
 

Similar to EPiServer Charts (20)

Creating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChartCreating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChart
 
Agile sites311training
Agile sites311trainingAgile sites311training
Agile sites311training
 
Front End Development for Back End Developers - Devoxx UK 2017
 Front End Development for Back End Developers - Devoxx UK 2017 Front End Development for Back End Developers - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino Designer
 
Untangling spring week5
Untangling spring week5Untangling spring week5
Untangling spring week5
 
Voluminous_Weibo
Voluminous_WeiboVoluminous_Weibo
Voluminous_Weibo
 
Drupal Step-by-Step: How We Built Our Training Site, Part 2
Drupal Step-by-Step: How We Built Our Training Site, Part 2Drupal Step-by-Step: How We Built Our Training Site, Part 2
Drupal Step-by-Step: How We Built Our Training Site, Part 2
 
SUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsSUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT Pros
 
SPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITProsSPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITPros
 
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
 
Utilizing jQuery in SharePoint: Get More Done Faster
Utilizing jQuery in SharePoint: Get More Done FasterUtilizing jQuery in SharePoint: Get More Done Faster
Utilizing jQuery in SharePoint: Get More Done Faster
 
Wordpress beyond blogging
Wordpress beyond bloggingWordpress beyond blogging
Wordpress beyond blogging
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4
 
2022 HTML5: The future is now
2022 HTML5: The future is now2022 HTML5: The future is now
2022 HTML5: The future is now
 
Introducing collection views - Mark Pospesel
Introducing collection views - Mark PospeselIntroducing collection views - Mark Pospesel
Introducing collection views - Mark Pospesel
 
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
 
#SPSLondon - Session 2 JSLink for IT Pros
#SPSLondon - Session 2 JSLink for IT Pros#SPSLondon - Session 2 JSLink for IT Pros
#SPSLondon - Session 2 JSLink for IT Pros
 
Azure Resource Manager templates: Improve deployment time and reusability
Azure Resource Manager templates: Improve deployment time and reusabilityAzure Resource Manager templates: Improve deployment time and reusability
Azure Resource Manager templates: Improve deployment time and reusability
 
Awesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAwesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescript
 
Scala at Treasure Data
Scala at Treasure DataScala at Treasure Data
Scala at Treasure Data
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

EPiServer Charts

  • 2. Patrick van Kleef EPiServer Most Valued Professional @Geta • www.patrickvankleef.com • twitter.com/patkleef • slideshare.com/patkleef • github.com/patkleef • jsfiddle.net/patkleef • www.geta.no
  • 3. Code available! Github | JSFiddle • www.github.com/patkleef/DojoDragAndDrop • https://jsfiddle.net/patkleef/Ls3hq01v/1/ • https://github.com/patkleef/DojoCharts • https://jsfiddle.net/patkleef/37yuu79w/ • https://github.com/patkleef/EPiServerStats
  • 4. Contents - Dojo drag and drop - Demo - Dojo charting - Demo - EPiServer Charts - Demo
  • 5. Just to be clear - Widget = Dojo - Gadget = EPiServer
  • 7.
  • 8. Drag and Drop • Types that inherit from IContent can be drag and drop • ContentArea • [AllowedTypes(new[ ] { typeof(ImageData)] • TinyMCE • Dojo/dnd package • Source • Target • Avatar • Events Pages | Blocks | Media
  • 9. Dojo/dnd How does it work? Source Item 1 - Block Item 2 - Image Item 3 - Document Target Accept: [ ] { Document } Avatar Item 3 Events DndDrop, DraggingOver, DraggingOut, DropExternal, DropInternal, DndCancel, OverEvent, OutEvent, MouseMove, MouseDown, MouseUp
  • 12. Charting • Different chart types • Animation and effects • Customize • Dojox/charting package • Charts • Plot • Axis • Action2d • Themes Line | Column | Bar | Pie | Bubbles | more
  • 15. What’s the solution about? • ChartData : IContent • Chart asset gadget • Chart dashboard - custom view (preview, all-properties, inline-editor) • Chart preview – custom view ‘’ • Page source • Modified by • Modified at • Links to page Display information (charts) of the current page in the CMS
  • 16. ChartData : IContent • Why IContent? Use the benefits! • Create, update, delete charts • Create gadgets, like the blocks, media assets • Different views: all properties, preview • Find will index it • Trash basket • More ? All items in EPiServer are IContent: pages, blocks media and charts
  • 17. Architecture Chart dashboard Chart gadget • Page modified by • Page modified at DnD chart Rest store Chart drop Load page Content repository descriptor Chart Preview Create chart
  • 18. Chart dashboard • Class inherit from ViewConfiguration<T> • Set the view name • Set the controllerType, if you would like to use Dojo • Set the viewType, if you would like to use MVC/Webforms • Optional – class inherit from UIDescriptor<T> • Default view (view name) • Disable views – for example the OnPageEditView • Dojo widget – controllerType • UI What do you need to build a custom view? All types inherit ViewConfiguration<HomePage> Check default view Type inherit UIDescriptor<HomePage> Render default view Load HomePage in CMS
  • 19. Chart preview • Same as previous, but now for ChartData (IContent) What do you need to build a custom view?
  • 20. Chart gadget • Class inherit from ComponentDefinitionBase • Set dojo module • Title, description • Plugin area • ContentRepositoryDescriptorBase • Tell what the gadget should show – ChartData • What the gadget can do – CRUD • What the root is • Custom content provider ? • Dojo widget • HierarchicalList widget (EPiServer) What do you need to build a gadget?
  • 21. Dojo widget architecture Rest store Chart widget Chart preview widget Chart dashboard widget Module.configChart initializer
  • 23. Still work in progress • Implement chart sources for pages • Create Nuget package What’s next?