Creating Your Own Admin Panel for DNN 9

Slides:



Advertisements
Similar presentations
Patrick J. Santry Microsoft ASP.NET MVP wwwCoder.com.
Advertisements

Samsung Smart TV is a web-based application running on an application engine installed on digital TVs connected to the Internet.
My First Building Block Presented By Tracy Engwirda 28 September, 2005.
Get closer to the most advanced CMS Mihail Semedzhiev Joomla!
OMap By: Haitham Khateeb Yamama Dagash Under Suppervision of: Benny Daon.
ASP.NET 5 Visual Studio 2015 Templates Bill Wolff Rob Keiser June 10, 2015.
Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
Xerte Online Toolkits. Xerte Online Toolkits – internals and externals Pat Lockley IS Learning Team 17/4/2009.
DotNetNuke Portal Private Assembly Development Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application.
HTML+JavaScript M2M Applications Viewbiquity Public hybrid cloud platform for automating and visualizing everything.
CHEF II / Sakai Architecture. CHEF II Changes uPortal replaces Jetspeed –jsr 168 portlet, servlet compliant Spring replaces Turbine component framework.
DotNetNuke® Web Application Framework Michael Washington Socaldug.org – Buena Park, CA
DotNetNuke Workshop Presented by: Sara Sharick. Topics What is DotNetNuke Components Requesting a DDN Site Creating Pages Modules Adding Content Document.
Extending the Operations Dashboard
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
WHAT IS PHP FRAMEWORK? Set of Classes and Functions(Methods) Design for the development of web applications Provide basic structure Rapid application development(RAD)
Bundles, Minification Andres Käver, IT Kolledž
® IBM Software Group © 2006 IBM Corporation Dependent Combo-Box U.I. Development This Learning Module walks you through the options and development techniques.
NET Development on Microsoft SharePoint Technology Part 4: Templates, Features, and Solution Deployment Mick Badran Breeze Training Consulting Trainer.
Intoduction to Andriod studio Environment With a hello world program.
Ash Prasad, May 28, 2015 (at DNN Connect) Sr. Manager Development, DNN Corp. Localization of JS, CSS, HTML based UI in Evoq.
Today’s Applications Web API Browser Native app Web API Web API
Custom Authentication Providers For DotNetNuke v5.0 Stan Schultes – Sarasota, FL Florida Community Leader
ASP.NET Core* 1.0 The Future of Web Apps Shahed Chowdhuri
Tutorial 1 Getting Started with Adobe Dreamweaver CS5.
My Stuff & More! How to personalize your OSLIS 2.0 “dashboard” and add files to your personal space.
DLSLUG Presentation: Firefox extensions. DLSLUG Presentation: Firefox extensions, Roger Trussell ● My address is
Introduction to Android Programming
Developing Online Tools To Support The Visualization Of Ocean Data For Educational Applications Poster #1767 Michael Mills, S. Lichtenwalner,
Umair Tariq Xavor Pakistan (Pvt) Ltd..
Building Desktop Apps with Node.js and Electron
Installation The Intercompany Integration Solution for SAP Business One Version 2.0 for SAP Business One 9.1 Welcome to the course on the installation.
Presents An enterprise-ready commerce solution, without the enterprise problems or the enterprise price tag. How many people are: DNN users? Developers?
Admin Console for Glassfish v2
What is Laravel ? By Georgi Genov.
How To Setup Asterisk On the MCF54451
Angular 4 + TypeScript Getting Started
Developer Guidelines for community participation
Peter Donker Bring2mind
DotNetNuke® Web Application Framework
1993 version of Mosaic browser.
Office 365 Development July 2014.
Presentation 2 Web Design.
Extend user interfaces with new portlets
Building Custom Modules
Upgrading from Full Trust Code to Add-in Model and SharePoint Framework Paolo Pialorsi Senior Consultant - PiaSys.com Track: DEV | Level:
Advanced Module Development
Not Sure how you Should React
Installation The Intercompany Integration Solution for SAP Business One Version 2.0 for SAP Business One 9.1 Welcome to the course on the installation.
…and web frameworks in general
Following Initial Design Review
Browser Support for HTML5
Modern web applications
Online Claim Submission – Enhancements/Internal Training
Andrew Deason, Eric Harmon, Bryan Rau-Jacobs, Andrew Smith
This presentation has been prepared by Vault Intelligence Limited (“Vault") and is intended for off line demonstration, presentation and educational purposes.
This presentation has been prepared by Vault Intelligence Limited (“Vault") and is intended for off line demonstration, presentation and educational purposes.
15 minute break.
Modern web applications
EMF Compare Ganymede Simultaneous Release
SharePoint 2019 Overview and Use SPFx Extensions
Prepare a DD Form 1081-Return
…and web frameworks in general
Technical Integration Guide
Implementation Methodology
MASTER PAGES.
This presentation has been prepared by Vault Intelligence Limited (“Vault") and is intended for off line demonstration, presentation and educational purposes.
Project Migration / Management
Presentation transcript:

Creating Your Own Admin Panel for DNN 9 Peter Donker Bring2mind/DNN Connect

DNN 9 Newness

Use cases Designed for admin modules like managing users And for displaying things like status feedback Extending your own module? For portal wide settings NBStore DMX

What is it? A replacement for the old control bar (which you can still use) It’s an extension itself! It’s a mini framework! Extensions/modules Permissions It is really dumb ;-)

What does it do? Loads an HTML file Loads a JS file Loads a CSS file And outputs that to an Iframe on screen Finally it will call some methods on your JS file

How does it do this? Through conventions! You give your module a path and some “identifier” (no spaces etc) It will load from DesktopModules/Admin/Dnn.PersonaBar/Modules/YourPath ./identifier.html, ./css/identifier.css and ./scripts/identifier.js It expects a JS module with the methods “init” and “load” It will call init when first loaded and load every *subsequent* time the panel is opened

How do you get onboard? Obey the conventions ;-) New manifest type :-S

<dotnetnuke type="Package" version="5.0"> <packages> <package name="Connect.ComponentPackageName" type="PersonaBar" version="01.00.00"> <friendlyName>Connect.ComponentFriendlyName</friendlyName> <description, iconFile, owner, license, releaseNotes, azureCompatiblity … <dependencies> <dependency type="CoreVersion">08.00.00</dependency> <dependency type="ManagedPackage" version="01.00.00">Dnn.PersonaBar.UI</dependency> </dependencies> <components> <component type="ResourceFile, Assembly, etc <component type="PersonaBarMenu"> <menu> <identifier>ComponentID</identifier> <moduleName>ComponentModuleName</moduleName> <resourceKey>nav_ComponentResx</resourceKey> <path>ComponentPath</path> <mobileSupport>true</mobileSupport> <parent>Settings</parent> <order>2</order> </menu> …

Quick Exploration

For the remainder of this presentation Forget about PersonaBar permissions

How do we communicate with the server? It’s not ascx or cshtml, so how do we get and save data? Through WebAPI obviously

WebAPI 4 PersonaBar Classic Module /DesktopModules/Company/Module/API/Controller/Action PersonaBar Module /API/PersonaBar/Controller/Action

? WebAPI 4 PersonaBar Classic Module /DesktopModules/Company/Module/API/Controller/Action PersonaBar Module /API/PersonaBar/Controller/Action

? WebAPI 4 PersonaBar ModuleId, TabId, Auth Token Classic Module /DesktopModules/Company/Module/API/Controller/Action Auth Token PersonaBar Module /API/PersonaBar/Controller/Action

WebAPI 4 PersonaBar ModuleId, TabId, Auth Token Classic Module /DesktopModules/Company/Module/API/Controller/Action DotNetNuke.Web.Api.DnnApiController (DotNetNuke.Web) Auth Token PersonaBar Module /API/PersonaBar/Controller/Action Dnn.PersonaBar.Library.PersonaBarApiController (Dnn.PersonaBar.Library)

public partial class ConferencesController : ConferenceApiController { [HttpGet] [DnnModuleAuthorize(AccessLevel = DotNetNuke.Security.SecurityAccessLevel.View)] public HttpResponseMessage Get(int id) [MenuPermission(MenuName = "Connect.Demo", Scope = ServiceScope.Admin)] public class WidgetController : PersonaBarApiController { [HttpGet] public HttpResponseMessage GetSetting()

Main Module

To Business: Creating our Module Goal is to create a PersonaBar module that allows us to edit a portal wide setting of our module We’ll use React because (a) it’s what DNN Corp is using and (b) it’s what I’m most familiar with

React 101 <div id="myComponent"></div> JS

React 101 Component Props State Events (render) <div id="myComponent"></div> Component Props State Events (render)

React 101 Component Props State <div id="myComponent"></div> Component Props State

React 101 Displaying props state props Component 1 state Component 2

React 101 Updating props state props Component 1 state Component 2

React 101 Using Flux props state Flux props Component 1 state

For the remainder of this presentation Forget about Flux

Let’s Code

Where is the PersonaBar Stuff? 2 Projects under the moniker “AdminExperience”: Core Library https://github.com/dnnsoftware/Dnn.AdminExperience.Library Core Extensions https://github.com/dnnsoftware/Dnn.AdminExperience.Extensions

Final Remarks Uuuuuuge addition to the platform. UI experience is improved bigly as a result Very much v 1.0 Not much detail on “Extensions” or “Permissions” yet Expect people to start tugging and pushing this around

Questions