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
EPiServer Charts
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

PPTX
Using the extensibility benefits of EPiServer
PPTX
EpiServer find Macaw
PDF
Ds03 data analysis
PPTX
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013
PPTX
Survey of the Microsoft Azure Data Landscape
PDF
Azure App Configuration with .NET applications
PPT
Asp.net Project
PPTX
Hidden gems in SXA that you might not be aware of
Using the extensibility benefits of EPiServer
EpiServer find Macaw
Ds03 data analysis
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013
Survey of the Microsoft Azure Data Landscape
Azure App Configuration with .NET applications
Asp.net Project
Hidden gems in SXA that you might not be aware of

What's hot (20)

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

Recently uploaded (20)

PPTX
Configure Apache Mutual Authentication
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPTX
Chapter 5: Probability Theory and Statistics
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Getting started with AI Agents and Multi-Agent Systems
PPTX
Modernising the Digital Integration Hub
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Architecture types and enterprise applications.pdf
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
A comparative study of natural language inference in Swahili using monolingua...
DOCX
search engine optimization ppt fir known well about this
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Configure Apache Mutual Authentication
Module 1.ppt Iot fundamentals and Architecture
A review of recent deep learning applications in wood surface defect identifi...
Custom Battery Pack Design Considerations for Performance and Safety
Chapter 5: Probability Theory and Statistics
NewMind AI Weekly Chronicles – August ’25 Week III
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
Developing a website for English-speaking practice to English as a foreign la...
Getting started with AI Agents and Multi-Agent Systems
Modernising the Digital Integration Hub
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Architecture types and enterprise applications.pdf
A contest of sentiment analysis: k-nearest neighbor versus neural network
sbt 2.0: go big (Scala Days 2025 edition)
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Convolutional neural network based encoder-decoder for efficient real-time ob...
A comparative study of natural language inference in Swahili using monolingua...
search engine optimization ppt fir known well about this
Credit Without Borders: AI and Financial Inclusion in Bangladesh
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Ad

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
  • 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?