@c8y/ng1-modules 1018.497.8 → 1018.499.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";angular.module("c8y.parts.alarmMapping",[]).config(["c8yNavigatorProvider","c8yViewsProvider","gettext",function(a,i,e){a.addNavigation({parent:{name:e("Business rules"),icon:"c8y-business-rules"},name:e("Alarm mapping"),path:"alarmmapping",icon:"alarm",priority:2900}),i.when("/alarmmapping",{templateUrl:":::PLUGIN_PATH:::/views/index.html"})}]);
|
|
1
|
+
"use strict";angular.module("c8y.parts.alarmMapping",[]).config(["c8yNavigatorProvider","c8yViewsProvider","gettext",function(a,i,e){var r={allRoles:["ROLE_OPTION_MANAGEMENT_READ"]};a.addNavigation({parent:{name:e("Business rules"),icon:"c8y-business-rules"},name:e("Alarm mapping"),path:"alarmmapping",icon:"alarm",priority:2900,showIfPermissions:r}),i.when("/alarmmapping",{templateUrl:":::PLUGIN_PATH:::/views/index.html",showIfPermissions:r})}]);
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
<table class="table table-striped bg-inherit">
|
|
2
2
|
<thead class="bg-inherit">
|
|
3
3
|
<tr class="bg-inherit">
|
|
4
|
-
<th
|
|
4
|
+
<th
|
|
5
|
+
class="sticky-top has-sticky-card-header"
|
|
6
|
+
translate
|
|
7
|
+
>
|
|
8
|
+
Type
|
|
9
|
+
</th>
|
|
5
10
|
<th class="sticky-top has-sticky-card-header text-center">
|
|
6
11
|
<span translate>Read</span>
|
|
7
12
|
<br />
|
|
8
|
-
<label
|
|
13
|
+
<label
|
|
14
|
+
class="c8y-checkbox d-inline-block"
|
|
15
|
+
ng-if="!vm.readOnly"
|
|
16
|
+
>
|
|
9
17
|
<input
|
|
10
18
|
type="checkbox"
|
|
11
19
|
ng-click="::vm.selectAll('READ')"
|
|
@@ -19,15 +27,18 @@
|
|
|
19
27
|
<span translate>Admin</span>
|
|
20
28
|
<button
|
|
21
29
|
class="btn-help btn-help--sm"
|
|
22
|
-
type="button"
|
|
23
30
|
aria-label="{{ 'Help' | translate }}"
|
|
31
|
+
type="button"
|
|
24
32
|
uib-popover="{{::vm.STRINGS.ADMIN | translate}}"
|
|
25
33
|
popover-placement="top"
|
|
26
34
|
popover-trigger="'focus'"
|
|
27
35
|
popover-append-to-body="true"
|
|
28
36
|
></button>
|
|
29
37
|
<br />
|
|
30
|
-
<label
|
|
38
|
+
<label
|
|
39
|
+
class="c8y-checkbox d-inline-block"
|
|
40
|
+
ng-if="!vm.readOnly"
|
|
41
|
+
>
|
|
31
42
|
<input
|
|
32
43
|
type="checkbox"
|
|
33
44
|
ng-click="::vm.selectAll('ADMIN')"
|
|
@@ -40,7 +51,10 @@
|
|
|
40
51
|
<th class="sticky-top has-sticky-card-header text-center">
|
|
41
52
|
<span translate>Create</span>
|
|
42
53
|
<br />
|
|
43
|
-
<label
|
|
54
|
+
<label
|
|
55
|
+
class="c8y-checkbox d-inline-block"
|
|
56
|
+
ng-if="!vm.readOnly"
|
|
57
|
+
>
|
|
44
58
|
<input
|
|
45
59
|
type="checkbox"
|
|
46
60
|
ng-click="::vm.selectAll('CREATE')"
|
|
@@ -56,7 +70,10 @@
|
|
|
56
70
|
>
|
|
57
71
|
<span translate>Update</span>
|
|
58
72
|
<br />
|
|
59
|
-
<label
|
|
73
|
+
<label
|
|
74
|
+
class="c8y-checkbox d-inline-block"
|
|
75
|
+
ng-if="!vm.readOnly"
|
|
76
|
+
>
|
|
60
77
|
<input
|
|
61
78
|
type="checkbox"
|
|
62
79
|
ng-click="::vm.selectAll('UPDATE')"
|
|
@@ -75,8 +92,8 @@
|
|
|
75
92
|
{{::vm.categoryLabel(group) | translate}}
|
|
76
93
|
<button
|
|
77
94
|
class="btn-help btn-help--sm"
|
|
78
|
-
type="button"
|
|
79
95
|
aria-label="{{ 'Help' | translate }}"
|
|
96
|
+
type="button"
|
|
80
97
|
uib-popover="{{::vm.STRINGS.PERMISSIONS_GLOBAL[group.category] | translate}}"
|
|
81
98
|
popover-placement="right"
|
|
82
99
|
popover-append-to-body="true"
|
|
@@ -87,8 +104,8 @@
|
|
|
87
104
|
<td class="text-center">
|
|
88
105
|
<label
|
|
89
106
|
class="c8y-checkbox d-inline-block"
|
|
90
|
-
ng-show="::vm.hasPermission(group.permissions, 'READ')"
|
|
91
107
|
ng-class="{ disabled: vm.readOnly }"
|
|
108
|
+
ng-show="::vm.hasPermission(group.permissions, 'READ')"
|
|
92
109
|
>
|
|
93
110
|
<input
|
|
94
111
|
type="checkbox"
|
|
@@ -102,8 +119,8 @@
|
|
|
102
119
|
<td class="text-center">
|
|
103
120
|
<label
|
|
104
121
|
class="c8y-checkbox d-inline-block"
|
|
105
|
-
ng-show="::vm.hasPermission(group.permissions, 'ADMIN')"
|
|
106
122
|
ng-class="{ disabled: vm.readOnly }"
|
|
123
|
+
ng-show="::vm.hasPermission(group.permissions, 'ADMIN')"
|
|
107
124
|
>
|
|
108
125
|
<input
|
|
109
126
|
type="checkbox"
|
|
@@ -117,8 +134,8 @@
|
|
|
117
134
|
<td class="text-center">
|
|
118
135
|
<label
|
|
119
136
|
class="c8y-checkbox d-inline-block"
|
|
120
|
-
ng-show="::vm.hasPermission(group.permissions, 'CREATE')"
|
|
121
137
|
ng-class="{ disabled: vm.readOnly }"
|
|
138
|
+
ng-show="::vm.hasPermission(group.permissions, 'CREATE')"
|
|
122
139
|
>
|
|
123
140
|
<input
|
|
124
141
|
type="checkbox"
|
|
@@ -129,11 +146,14 @@
|
|
|
129
146
|
<span class="sr-only">{{ 'Create' | translate }}</span>
|
|
130
147
|
</label>
|
|
131
148
|
</td>
|
|
132
|
-
<td
|
|
149
|
+
<td
|
|
150
|
+
class="text-center"
|
|
151
|
+
ng-if="vm.hasPermissionWithAccess('UPDATE')"
|
|
152
|
+
>
|
|
133
153
|
<label
|
|
134
154
|
class="c8y-checkbox d-inline-block"
|
|
135
|
-
ng-show="::vm.hasPermission(group.permissions, 'UPDATE')"
|
|
136
155
|
ng-class="{ disabled: vm.readOnly }"
|
|
156
|
+
ng-show="::vm.hasPermission(group.permissions, 'UPDATE')"
|
|
137
157
|
>
|
|
138
158
|
<input
|
|
139
159
|
type="checkbox"
|
package/package.json
CHANGED
|
@@ -2,35 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
<c8y-breadcrumbs-set>
|
|
4
4
|
<c8y-breadcrumbs-item
|
|
5
|
+
icon="connected-people"
|
|
5
6
|
path="#roles/global_roles"
|
|
6
7
|
label="{{ 'Global roles' | translate }}"
|
|
7
|
-
icon="connected-people"
|
|
8
8
|
></c8y-breadcrumbs-item>
|
|
9
9
|
<c8y-breadcrumbs-item
|
|
10
|
+
icon="c8y-users"
|
|
10
11
|
path="#roles"
|
|
11
12
|
label="{{ 'Roles' | translate }}"
|
|
12
|
-
icon="c8y-users"
|
|
13
13
|
></c8y-breadcrumbs-item>
|
|
14
14
|
<c8y-breadcrumbs-item
|
|
15
|
-
label="{{ 'Accounts' | translate }}"
|
|
16
15
|
icon="c8y-accounts"
|
|
16
|
+
label="{{ 'Accounts' | translate }}"
|
|
17
17
|
></c8y-breadcrumbs-item>
|
|
18
18
|
</c8y-breadcrumbs-set>
|
|
19
19
|
|
|
20
20
|
<div class="card content-fullpage card--grid grid__col--8-4--sm">
|
|
21
|
-
<form
|
|
21
|
+
<form
|
|
22
|
+
class="d-contents"
|
|
23
|
+
name="vm.globalRoleDetailForm"
|
|
24
|
+
>
|
|
22
25
|
<div class="d-flex d-col inner-scroll bg-level-0">
|
|
23
26
|
<div class="card-header large-padding separator">
|
|
24
|
-
<div
|
|
27
|
+
<div
|
|
28
|
+
class="card-title"
|
|
29
|
+
translate
|
|
30
|
+
>
|
|
31
|
+
Global role
|
|
32
|
+
</div>
|
|
25
33
|
</div>
|
|
26
34
|
<div class="card-block large-padding p-b-0 flex-no-shrink">
|
|
27
35
|
<div class="form-group">
|
|
28
36
|
<label translate>Name</label>
|
|
29
37
|
<input
|
|
30
|
-
|
|
38
|
+
class="form-control"
|
|
31
39
|
placeholder="{{ 'e.g. My global role' | translate }}"
|
|
40
|
+
name="name"
|
|
32
41
|
required
|
|
33
|
-
class="form-control"
|
|
34
42
|
ng-maxlength="254"
|
|
35
43
|
ng-model="vm.role.name"
|
|
36
44
|
/>
|
|
@@ -39,10 +47,10 @@
|
|
|
39
47
|
<div class="form-group">
|
|
40
48
|
<label translate>Description</label>
|
|
41
49
|
<textarea
|
|
42
|
-
|
|
50
|
+
class="form-control"
|
|
43
51
|
aria-label="{{ 'Description' | translate }}"
|
|
52
|
+
aria-multiline="true"
|
|
44
53
|
name="description"
|
|
45
|
-
class="form-control"
|
|
46
54
|
rows="3"
|
|
47
55
|
ng-maxlength="1000"
|
|
48
56
|
ng-model="vm.role.description"
|
|
@@ -57,14 +65,17 @@
|
|
|
57
65
|
</div>
|
|
58
66
|
<button
|
|
59
67
|
class="btn-help"
|
|
60
|
-
type="button"
|
|
61
68
|
aria-label="{{ 'Help' | translate }}"
|
|
69
|
+
type="button"
|
|
62
70
|
uib-popover-template="'helpContent.html'"
|
|
63
71
|
popover-trigger="'focus'"
|
|
64
72
|
popover-append-to-body="true"
|
|
65
73
|
popover-placement="right"
|
|
66
74
|
></button>
|
|
67
|
-
<script
|
|
75
|
+
<script
|
|
76
|
+
id="helpContent.html"
|
|
77
|
+
type="text/ng-template"
|
|
78
|
+
>
|
|
68
79
|
<div>
|
|
69
80
|
<p translate>
|
|
70
81
|
A <strong>global role</strong> contains generally applicable permissions. For example,
|
|
@@ -82,10 +93,10 @@
|
|
|
82
93
|
</div>
|
|
83
94
|
<div class="card-block large-padding bg-inherit overflow-visible p-b-0">
|
|
84
95
|
<c8y-roles-matrix
|
|
96
|
+
class="bg-inherit"
|
|
85
97
|
available-roles="vm.permissions"
|
|
86
98
|
selected-roles="vm.selectedPermissions"
|
|
87
99
|
on-selected-roles-change="vm.onSelectedRolesChange(selectedRoles)"
|
|
88
|
-
class="bg-inherit"
|
|
89
100
|
></c8y-roles-matrix>
|
|
90
101
|
</div>
|
|
91
102
|
</div>
|
|
@@ -98,8 +109,8 @@
|
|
|
98
109
|
|
|
99
110
|
<button
|
|
100
111
|
class="btn-help"
|
|
101
|
-
type="button"
|
|
102
112
|
aria-label="{{ 'Help' | translate }}"
|
|
113
|
+
type="button"
|
|
103
114
|
uib-popover="{{ 'This role has access to the applications selected below' | translate }}"
|
|
104
115
|
popover-trigger="'focus'"
|
|
105
116
|
popover-placement="right"
|
|
@@ -107,7 +118,11 @@
|
|
|
107
118
|
></button>
|
|
108
119
|
</div>
|
|
109
120
|
<div class="card-block large-padding p-t-0">
|
|
110
|
-
<p
|
|
121
|
+
<p
|
|
122
|
+
class="alert alert-info"
|
|
123
|
+
ng-show="vm.hasAppPermissions()"
|
|
124
|
+
translate
|
|
125
|
+
>
|
|
111
126
|
This role already has access to all applications. Revoke all "Application management"
|
|
112
127
|
permissions to grant access only to some applications.
|
|
113
128
|
</p>
|
|
@@ -123,8 +138,8 @@
|
|
|
123
138
|
<div class="card-footer large-padding separator-top grid__col-fullspan">
|
|
124
139
|
<button
|
|
125
140
|
class="btn btn-default"
|
|
126
|
-
type="button"
|
|
127
141
|
title="{{ 'Cancel' | translate }}"
|
|
142
|
+
type="button"
|
|
128
143
|
ng-click="vm.cancel()"
|
|
129
144
|
c8y-key-shortcut="Escape"
|
|
130
145
|
>
|
|
@@ -132,8 +147,8 @@
|
|
|
132
147
|
</button>
|
|
133
148
|
<button
|
|
134
149
|
class="btn btn-primary"
|
|
135
|
-
type="button"
|
|
136
150
|
title="{{ 'Save' | translate }}"
|
|
151
|
+
type="button"
|
|
137
152
|
ng-click="vm.save()"
|
|
138
153
|
ng-disabled="vm.saving || vm.globalRoleDetailForm.$invalid || (vm.role.id && vm.globalRoleDetailForm.$pristine)"
|
|
139
154
|
c8y-key-shortcut="Enter"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(){function e(i,r,n,t,c,
|
|
1
|
+
"use strict";!function(){function e(i,r,e,n,t,o,c,j,a,u,l,s,d,f,h,g,v,m){var p,S=r.deviceId||r.groupId,x={},A={},b={done:!1,inProgress:!1},R={true:{text:v("Active"),icon:"check-circle",cls:"text-success"},false:{text:v("Inactive"),icon:"ban",cls:"text-danger"}},y=s.getContext(),C=v("Global smart rules");function I(){return n.when().then(T).then(M).then(w).then(L).then(D).catch(E)}function T(){b.inProgress=!0}function D(){b.inProgress=!1,b.done=!0,b.error=!1}function E(e){e.data&&e.data.message&&l.danger(e.data.message),b.inProgress=!1,b.done=!0,b.error=!0}function M(){return h.list().then(N)}function N(e){_.forEach(e||[],function(e){x[e.name]=e})}function w(){var e=S?g.listByContext(S):n.resolve([]),t=f.hasPermissions().then(function(e){return e?g.list():n.when([])});return n.all({listByContext:e,list:t}).then(function(e){i.rules=function(e){var t=e;S&&(t=_.reject(e,function(e){var n=new RegExp("".concat(e,"/dashboard"));return function(e){var t=_.get(e,"config.url","");return O(e)&&!n.test(t)}}(S)));return t}(_.concat(e.listByContext,e.list))})}function O(e){return"sendDashboardsViaEmail"===e.ruleTemplateName}function U(e){return g.hasSource(e,S)}function L(){var e;return Array.isArray(i.rules)&&0<i.rules.length&&null!==(e=s.getContext()).context?c.childAssets(e.id,{skipDetail:!0,params:{pageSize:2e3,withChildren:!1}}).then(function(e){i.children=e}).then(function(){i.ruleChildren={},_.forEach(i.rules,function(e){i.ruleChildren[e.id]=P(e)})}):n.resolve()}function P(t){return _.filter(i.children,function(e){return g.hasSource(t,e)})}_.assign(i,{isOpen:{},moId:S,loadingStatus:b,refresh:I,paging:{refresh:I},ruleTemplates:x,getLinkToDM:function(){var e={deviceId:S};return t(p||"")(e)},add:function(){g.addNewWithUI().then(I)},edit:function(e){g.editWithUI(e).then(I)},clone:function(e){g.cloneWithUI(e).then(I)},remove:function(e){u({title:v("Delete smart rule"),body:m.getString('You are about to delete smart rule "{{name}}". Do you want to proceed?',e),labels:{ok:v("Delete")},status:"danger"}).then(angular.bind(g,g.remove,e)).then(function(){return _.pull(i.rules,e)}).then(function(){return l.success(v("Smart rule deleted."))})},hasSource:U,getChildrenEnabledForSmartRule:P,toggleRuleActivationForContextMO:function(e){if(U(e))return g.deactivate(e,S,!1).then(function(){l.success(m.getString('Smart rule "{{name}}" deactivated.',e))});return g.activate(e,S,!1).then(function(){l.success(m.getString('Smart rule "{{name}}" activated.',e))})},toggleRuleActivationForChildrenMOs:function(e,n){var t=_.filter(n,function(t){return!_.find(i.ruleChildren[e.id],function(e){return e.id===t.id})}),r=_.filter(i.ruleChildren[e.id],function(t){return!_.find(n,function(e){return t.id===e.id})});return g.updateSources(e,t,r,!1).then(w).then(L).then(function(){l.success(m.getString('Smart rule "{{name}}" activated/deactivated for children.',e))})},tooltip:function(e){var t={activate:{"for group":v("Activate for this group"),"for device":v("Activate for this device"),"for object":v("Activate for this object")},deactivate:{"for group":v("Deactivate for this group"),"for device":v("Deactivate for this device"),"for object":v("Deactivate for this object")}},e=e.enabled&&U(e)?"deactivate":"activate",n=r.groupId?"group":"object";return n=r.deviceId?"device":n,t[e]["for ".concat(n)]},type:function(e){var t,e=x[e.ruleTemplateName];e&&(t=e.label.full?m.getString(e.label.full):"".concat(m.getString(e.label.input)," ").concat(m.getString(e.label.output)));return t},status:function(e){return R[e.enabled].text},statusIcon:function(e){return R[e.enabled].icon},statusClass:function(e){return R[e.enabled].cls},showTitle:function(){return null!==s.getContext().context},title:C,context:y,inputIcon:function(e){var t,e=x[e.ruleTemplateName];e&&(t=e.paramGroups.input.icon);return t},outputIcon:function(e){var t,e=x[e.ruleTemplateName];e&&(t=e.paramGroups.output.icon);return t},canAddRules:function(e){var t=_.get(x,"".concat(_.get(e,"ruleTemplateName"),"._active")),n=A.canAddRules;e&&!t&&(n=!1);_.isUndefined(n)&&(e=i.context?{adminMOs:[i.context.id]}:{allRoles:["ROLE_INVENTORY_ADMIN"],anyRole:["ROLE_SMARTRULE_ADMIN","ROLE_CEP_MANAGEMENT_ADMIN"]},A.canAddRules=a.isAllowed(e).then(function(e){return A.canAddRules=e,A.canAddRules}),n=!1);return n},canModify:function(t){A.rules=A.rules||{};var n=A.rules,e=n[t.id];_.isUndefined(e)&&(n[t.id]=a.isAllowed({adminMOs:[t.id]}).then(function(e){return n[t.id]=e,n[t.id]}),e=!1);return e},canApplyOnChildren:function(e){return!O(e)},canSeeSection:function(){var e=A.canSeeSection;_.isUndefined(e)&&(A.canSeeSection=(o.checkIfModulesExist(["c8y.cockpit.config"])?f.shouldShowLocalSmartRules():n.when(!1)).then(function(e){return A.canSeeSection=e,A.canSeeSection}),e=!1);return e},isConfigurationGlobalSmartRulesContext:void 0}),i.isConfigurationGlobalSmartRulesContext=e.path().includes("/rules"),I(),null===s.getContext().context&&d.changeTitle({title:C}),"device"===y.context&&o.getStaticLinkTemplate("devicemanagementDeviceDetails").then(function(e){p=e})}e.$inject=["$scope","$routeParams","$location","$q","$interpolate","c8yBase","c8yInventory","c8yApplication","c8yPermissions","c8yModal","c8yAlert","c8yUiUtil","c8yTitle","c8ySmartRulesAvailability","smartRuleTemplatesSvc","smartRulesSvc","gettext","gettextCatalog"],angular.module("c8y.smartRules").controller("SmartRulesListCtrl",e)}();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div ng-controller="SmartRulesListCtrl as vm">
|
|
2
2
|
<div ng-if="canSeeSection()">
|
|
3
|
-
<c8y-breadcrumbs-set>
|
|
3
|
+
<c8y-breadcrumbs-set ng-if="isConfigurationGlobalSmartRulesContext">
|
|
4
4
|
<c8y-breadcrumbs-item
|
|
5
5
|
icon="c8y-smart-rules"
|
|
6
6
|
label="{{ 'Global smart rules' | translate }}"
|