Add Content Apps to your types (coming up in v 3.1). You can use these to display other information related to them. For example you could display the payments done with a voucher. Of course this data has to come from a UI-O-Matic.
To add your content app you need to create a class that inherits from IUiomaticContentAppFactory
.
public class VoucherHistoryContentApp : IUiomaticContentAppFactory{public ContentApp GetContentAppFor(Type type){if (type != typeof(Voucher)) return null;var voucherHistoryApp = new ContentApp{Alias = "voucherHistory",Name = "Voucher History",Icon = "icon-calculator",View = "/App_Plugins/ContentApps/voucherHistory.html",Weight = 0};​return voucherHistoryApp;}}
This voucherHistoryApp ContentApp is a Umbraco Content App. The configuration of the app is the same than other Umbraco apps.
The GetContentAppFor
method will get the type being loaded in UI-O-Matic. You can use this type to check if your app needs to load.
To add the voucherHistoryApp app to the collection of apps you need to use a Composer :
public class ContentAppsComposer : IUserComposer{public void Compose(Composition composition){composition.UiomaticContentApps().Append<VoucherHistoryContentApp>();}}
On the previous step you configured your content app to display a view on /App_Plugins/ContentApps/voucherHistory.html
.
For this view to work you will need to use a controller.
<div ng-controller="voucherHistoryController"><!--Your view here--></div>
Controller:
You can get the id of your current item from editorState.id
angular.module("umbraco").controller("voucherHistoryController",function ($scope, editorState) {var id = editorState.id;​//your logic here});