Skip to content

Commit 9c02db4

Browse files
authored
Merge pull request #2 from Weberistic/contentApps
Content apps
2 parents 436b9e3 + a0d272c commit 9c02db4

16 files changed

+472
-368
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
angular.module("umbraco").controller("uSupport.ticketStatus.contentApp.controller", function ($scope) {
2+
3+
'use strict';
4+
5+
$scope.model.properties = [{
6+
alias: "Color",
7+
label: "Color",
8+
view: "dropdownFlexible",
9+
value: "primary",
10+
config: {
11+
items: [
12+
"primary",
13+
"secondary",
14+
"success",
15+
"warning",
16+
"danger",
17+
"gray"
18+
],
19+
},
20+
validation: {
21+
mandatory: true,
22+
// pattern: ""
23+
}
24+
},
25+
{
26+
alias: "Active",
27+
label: "Active",
28+
description: "If tickets with this status should count as active",
29+
view: "boolean",
30+
},
31+
{
32+
alias: "Default",
33+
label: "Default",
34+
description: "If all new tickets should have this status as default status. (Only 1 can be default)",
35+
view: "boolean",
36+
37+
}];
38+
39+
$scope.model.preview = {
40+
property: $scope.model.properties[0],
41+
page: $scope.model.page
42+
};
43+
44+
if (!$scope.model.create) {
45+
$scope.model.properties.forEach(function (property) {
46+
property.value = $scope.model.ticketStatus[property.alias];
47+
});
48+
}
49+
50+
$scope.$watch("model.preview", function (newValue, oldValue) {
51+
$scope.model.selectedColor = newValue.property.singleDropdownValue;
52+
$scope.model.selectedName = newValue.page.title;
53+
}, true);
54+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<div ng-controller="uSupport.ticketStatus.contentApp.controller as vm" class="uSupport">
2+
<div class="uSupport-row">
3+
<div class="uSupport-col-12">
4+
<umb-box>
5+
<umb-box-header title="Settings"></umb-box-header>
6+
<umb-box-content>
7+
8+
<umb-property property="property" ng-repeat="property in model.properties">
9+
<umb-property-editor model="property"></umb-property-editor>
10+
</umb-property>
11+
12+
<div class="umb-property uSupport-umb-property-last">
13+
<div class="control-group umb-control-group">
14+
<div class="control-header">
15+
<div class="control-label">
16+
Preview
17+
</div>
18+
</div>
19+
<div class="controls">
20+
<div class="db umb-property-editor">
21+
<umb-badge size="s"
22+
color="{{model.selectedColor}}">
23+
{{model.selectedName || 'Status'}}
24+
</umb-badge>
25+
</div>
26+
</div>
27+
</div>
28+
</div>
29+
30+
</umb-box-content>
31+
</umb-box>
32+
</div>
33+
</div>
34+
</div>

src/uSupport/App_Plugins/uSupport/backoffice/ticketStatuses/edit.html

+2-32
Original file line numberDiff line numberDiff line change
@@ -13,42 +13,12 @@
1313
hide-icon="false"
1414
show-back-button="true"
1515
on-back="vm.close()"
16+
navigation="vm.page.navigation"
1617
menu="vm.page.menu">
1718
</umb-editor-header>
1819

1920
<umb-editor-container class="form-horizontal">
20-
<div class="uSupport-row">
21-
<div class="uSupport-col-12">
22-
<umb-box>
23-
<umb-box-header title="Settings"></umb-box-header>
24-
<umb-box-content>
25-
26-
<umb-property property="property" ng-repeat="property in vm.properties">
27-
<umb-property-editor model="property"></umb-property-editor>
28-
</umb-property>
29-
30-
<div class="umb-property uSupport-umb-property-last">
31-
<div class="control-group umb-control-group">
32-
<div class="control-header">
33-
<div class="control-label">
34-
Preview
35-
</div>
36-
</div>
37-
<div class="controls">
38-
<div class="db umb-property-editor">
39-
<umb-badge size="s"
40-
color="{{vm.selectedColor}}">
41-
{{vm.selectedName || 'Status'}}
42-
</umb-badge>
43-
</div>
44-
</div>
45-
</div>
46-
</div>
47-
48-
</umb-box-content>
49-
</umb-box>
50-
</div>
51-
</div>
21+
<umb-editor-sub-views sub-views="vm.page.navigation" model="vm"></umb-editor-sub-views>
5222
</umb-editor-container>
5323

5424
<umb-editor-footer>

src/uSupport/App_Plugins/uSupport/backoffice/ticketStatuses/ticketStatuses.edit.controller.js

+20-19
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,26 @@
77
uSupportConfig,
88
notificationsService,
99
uSupportHelperServices,
10+
uSupportHelperResources,
1011
uSupportTicketStatusResources) {
1112

1213
'use strict';
1314

1415
var vm = this;
15-
16-
vm.page = {};
1716
vm.loading = true;
1817
vm.create = $routeParams.create;
19-
vm.properties = uSupportConfig.ticketStatusProperties;
2018

21-
vm.preview = {
22-
property: vm.properties[0],
23-
page: vm.page
24-
}
19+
vm.page = {};
20+
21+
vm.navigation = [{
22+
name: "Ticket status",
23+
alias: "ticketStatus",
24+
icon: "icon-file-cabinet",
25+
view: uSupportConfig.basePathAppPlugins + "backoffice/ticketStatuses/apps/ticketStatus/ticketStatus.html",
26+
active: true
27+
}];
28+
29+
vm.page.navigation = vm.navigation;
2530

2631
if (!vm.create) {
2732
uSupportTicketStatusResources.getTicketStatus($routeParams.id).then(function (ticketStatus) {
@@ -34,27 +39,23 @@
3439
menu: {
3540
currentNode: currentNode,
3641
currentSection: appState.getSectionState("currentSection")
37-
}
42+
},
43+
navigation: vm.navigation
3844
};
3945

40-
vm.preview.page = vm.page;
41-
42-
vm.properties.forEach(function (property) {
43-
property.value = vm.ticketStatus[property.alias];
44-
});
46+
uSupportHelperResources.getAddons(vm.ticketStatus).then(function (apps) {
47+
if (apps.length > 0) {
48+
vm.navigation = vm.navigation.concat(apps)
49+
}
4550

46-
vm.loading = false;
51+
vm.loading = false;
52+
});
4753
});
4854
});
4955
} else {
5056
vm.loading = false;
5157
}
5258

53-
$scope.$watch("vm.preview", function (newValue, oldValue) {
54-
vm.selectedColor = newValue.property.singleDropdownValue;
55-
vm.selectedName = newValue.page.title;
56-
}, true);
57-
5859
vm.save = function () {
5960
vm.buttonState = "busy";
6061

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
angular.module("umbraco").controller("uSupport.ticketType.contentApp.controller", function (
2+
$scope,
3+
uSupportTicketTypeResources) {
4+
5+
'use strict';
6+
7+
$scope.loading = true;
8+
9+
uSupportTicketTypeResources.getAllDataTypes().then(function (dataTypes) {
10+
$scope.model.dataTypes = dataTypes;
11+
$scope.model.properties = [
12+
{
13+
alias: "propertyName",
14+
label: "Property name",
15+
view: "textbox"
16+
},
17+
{
18+
alias: "propertyDescription",
19+
label: "Property description",
20+
view: "textbox"
21+
},
22+
{
23+
alias: "property",
24+
label: "Property",
25+
view: "dropdownFlexible",
26+
config: {
27+
items: dataTypes
28+
}
29+
}
30+
];
31+
32+
if ($scope.model.ticketType.PropertyId !== 0) {
33+
uSupportTicketTypeResources.getDataTypeFromId($scope.model.ticketType.PropertyId).then(function (type) {
34+
$scope.model.properties[0].value = $scope.model.ticketType.PropertyName;
35+
$scope.model.properties[1].value = $scope.model.ticketType.PropertyDescription;
36+
$scope.model.properties[2].value = type.Name;
37+
38+
$scope.loading = false;
39+
});
40+
} else {
41+
$scope.loading = false;
42+
}
43+
});
44+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<div ng-controller="uSupport.ticketType.contentApp.controller as vm" class="uSupport">
2+
3+
<umb-load-indicator ng-if="loading"></umb-load-indicator>
4+
5+
<div class="uSupport-row" ng-if="!loading">
6+
<div class="uSupport-col-12">
7+
<umb-box>
8+
<umb-box-header title="Settings"></umb-box-header>
9+
<umb-box-content>
10+
11+
<umb-property property="property" ng-repeat="property in model.properties">
12+
<umb-property-editor model="property"></umb-property-editor>
13+
</umb-property>
14+
15+
</umb-box-content>
16+
</umb-box>
17+
</div>
18+
</div>
19+
</div>
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,43 @@
11
<div ng-controller="uSupport.ticketType.edit.controller as vm" class="uSupport">
22

3-
<umb-load-indicator ng-if="vm.loading"></umb-load-indicator>
4-
5-
<form novalidate val-form-manager name="formName" ng-submit="vm.save()">
6-
<umb-editor-view ng-if="!vm.loading">
7-
<umb-editor-header name="vm.page.title"
8-
description="vm.page.description"
9-
hideDescription="false"
10-
name-locked="false"
11-
hide-alias="false"
12-
alias="vm.page.alias"
13-
icon="vm.page.icon"
14-
hideIcon="false"
15-
show-back-button="true"
16-
on-back="vm.close()"
17-
menu="vm.page.menu">
18-
</umb-editor-header>
19-
20-
<umb-editor-container class="form-horizontal">
21-
<div class="uSupport-row">
22-
<div class="uSupport-col-12">
23-
<umb-box>
24-
<umb-box-header title="Settings"></umb-box-header>
25-
<umb-box-content>
26-
27-
<umb-property property="property" ng-repeat="property in vm.properties">
28-
<umb-property-editor model="property"></umb-property-editor>
29-
</umb-property>
30-
31-
</umb-box-content>
32-
</umb-box>
33-
</div>
34-
</div>
35-
</umb-editor-container>
36-
37-
<umb-editor-footer>
38-
<umb-editor-footer-content-right>
39-
<umb-button type="button"
40-
button-style="link"
41-
label-key="general_close"
42-
action="vm.close()">
43-
</umb-button>
44-
45-
<umb-button type="submit"
46-
button-style="success"
47-
state="vm.buttonState"
48-
label-key="buttons_save"
49-
action="vm.save()">
50-
</umb-button>
51-
</umb-editor-footer-content-right>
52-
</umb-editor-footer>
53-
54-
</umb-editor-view>
55-
</form>
3+
<umb-load-indicator ng-if="vm.loading"></umb-load-indicator>
4+
5+
<form novalidate val-form-manager name="formName" ng-submit="vm.save()">
6+
<umb-editor-view ng-if="!vm.loading">
7+
<umb-editor-header name="vm.page.title"
8+
description="vm.page.description"
9+
hideDescription="false"
10+
name-locked="false"
11+
hide-alias="false"
12+
alias="vm.page.alias"
13+
icon="vm.page.icon"
14+
hideIcon="false"
15+
show-back-button="true"
16+
on-back="vm.close()"
17+
navigation="vm.page.navigation"
18+
menu="vm.page.menu">
19+
</umb-editor-header>
20+
21+
<umb-editor-container class="form-horizontal">
22+
<umb-editor-sub-views sub-views="vm.page.navigation" model="vm"></umb-editor-sub-views>
23+
</umb-editor-container>
24+
25+
<umb-editor-footer>
26+
<umb-editor-footer-content-right>
27+
<umb-button type="button"
28+
button-style="link"
29+
label-key="general_close"
30+
action="vm.close()">
31+
</umb-button>
32+
33+
<umb-button type="submit"
34+
button-style="success"
35+
state="vm.buttonState"
36+
label-key="buttons_save"
37+
action="vm.save()">
38+
</umb-button>
39+
</umb-editor-footer-content-right>
40+
</umb-editor-footer>
41+
</umb-editor-view>
42+
</form>
5643
</div>

0 commit comments

Comments
 (0)