Umbraco back office - Creating dialog windows

This post is a work in progress, more coming soon.

Intro:

Dialog windows are an often requirement for custom datatypes in the back office of Umbraco and for beginners, they can also be quite complicated. Once you get to know how they work and when to use them, you'll find yourself created them for more clients because they're a brilliant way of allowing clients to work with your custom data in a user friendly way.

Before we start, I assume you already know how to set up a basic property editor and already have a basic one running in a test site at least. If not, and you're curious about how to start with it, I definitely suggest that you read the official Umbraco documentation to get the basic knowledge.

Getting started:

Within your Umbraco project, create a basic property editor setup as explained within the documentation link above, for this tutorial I'll call mine mypropertyeditor (generic I know).

Assuming you've created a JavaScript file for your controller, mine's called mypropertyeditor.controller.js, you'll be able to paste the below code into it:

angular.module("umbraco").controller("luke.mypropertyeditorcontroller", function ($scope, $http, $timeout, entityResource, editorState, dialogService) {
    $scope.load = function () {
        // My code goes here.
    };

    $scope.openHelp = function () {
        console.log("Clicked help");
        dialogService.open({
            template: '/App_Plugins/mypropertyeditor/dialogs/help.html',
            show: true
        });
    }

    $scope.load();
});

And then it's just a case of hooking up your button to the function you've created in the controller with the html file, so if you haven't already, create a dialogs folder within the mypropertyeditor folder and create an html file called help.html. This file will contain the following basic code to open your dialog window:

<div ng-controller="luke.mypropertyeditorcontroller">
<a href="" ng-click="openHelp()" title="Get help">
Click here to get help
</a>
</div>

On course the above html is very basic, but it's the minimum requirement in order to get a dialog/modal window to open.

Further reading:

I've created a post on how to open external or internal pages in an iframeesque modal/dialogue window within Umbraco that opens in much the same way that this dialog window does, it's definitely worth a read if you haven't already.

Also, if you want to know about what sort of parameters the dialog service can take and what's possible with it, take a look at the dialog service source code.


Published at

Tags: Umbraco,Back Office,Angular,C#,HTML

Luke Alderton

Comments

Share with
Tags
Latest Comments
By Mark Gentry on Windows Server 2019 - Change product key does nothing
20 Aug 2021, 03:30 AM
By Cathy on In-Place Upgrade for a Windows Server domain controller
31 Jul 2021, 18:28 PM
By Mr. Greymatter on Raspberry Pi - Running Java app on Raspbian
16 Feb 2021, 07:35 AM
By Mikko Seittenranta on Xamarin Forms multiple instances of same app open
16 Feb 2021, 04:34 AM
By Andrew on Auto/Custom height on Xamarin Forms WebView for Android and iOS
22 Jan 2021, 22:15 PM
By Nick on Raspberry Pi - Running Java app on Raspbian
14 Oct 2020, 19:37 PM
By Ivan on Fixed: Value cannot be null Parameter Name: source
15 Sep 2020, 19:47 PM
By Anand on Raspberry Pi - Bluetooth using Bluecove on Raspbian
7 Sep 2020, 16:53 PM
Categories
App Development
Event
Game Development
Mapping
Modelling
Programming
Review
Robotics
Tutorial
Web Development