@c8y/ng1-modules 1016.247.0 → 1016.253.0

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.
@@ -145,7 +145,12 @@
145
145
  <div class="c8y-list__item__body">
146
146
  <div class="row">
147
147
  <div class="col-sm-5">
148
- <button class="btn-clean" type="button" ng-click="selectLogfile(op)">
148
+ <button
149
+ class="btn-clean"
150
+ type="button"
151
+ ng-class="{ 'no-pointer': !hasLogFile(op) }"
152
+ ng-click="selectLogfile(op)"
153
+ >
149
154
  {{ getOperationDesc(op) | translate }}
150
155
  </button>
151
156
  </div>
@@ -165,11 +170,12 @@
165
170
  <button
166
171
  ng-if="!hasLogFile(op) && isPending(op)"
167
172
  class="btn btn-dot a-s-center"
173
+ type="button"
168
174
  uib-tooltip="{{ 'Cancel operation' | translate }}"
169
175
  aria-label="{{ 'Cancel operation' | translate }}"
170
- type="button"
171
176
  tooltip-popup-delay="500"
172
177
  popover-trigger="'mouseenter focus'"
178
+ tooltip-placement="left"
173
179
  ng-click="cancel(op)"
174
180
  >
175
181
  <i c8y-icon="times-circle"></i>
@@ -178,10 +184,11 @@
178
184
  ng-if="!hasLogFile(op) && isFailed(op)"
179
185
  class="btn btn-dot btn-dot--danger a-s-center"
180
186
  type="button"
181
- tooltip-popup-delay="500"
182
- popover-trigger="'mouseenter focus'"
183
187
  uib-tooltip="{{ 'Delete operation' | translate }}"
184
188
  aria-label="{{ 'Delete operation' | translate }}"
189
+ tooltip-popup-delay="500"
190
+ popover-trigger="'mouseenter focus'"
191
+ tooltip-placement="left"
185
192
  ng-click="remove(op)"
186
193
  >
187
194
  <i c8y-icon="delete"></i>
@@ -236,7 +243,7 @@
236
243
  </span>
237
244
  </div>
238
245
  </div>
239
- <div class="collapse" uib-collapse="!op===selectedLog">
246
+ <div class="collapse" uib-collapse="!(op === selectedLog)">
240
247
  <div class="c8y-list__collapse__container">
241
248
  <div class="row" ng-show="op === selectedLog">
242
249
  <div class="col-sm-3">
@@ -4,31 +4,33 @@
4
4
  </div>
5
5
  <div class="inner-scroll split-view__list">
6
6
  <div class="bg-level-1 flex-grow">
7
- <div class="c8y-nav-stacked">
8
- <button
7
+ <ul class="c8y-nav-stacked">
8
+ <li
9
9
  class="c8y-stacked-item removable"
10
- type="button"
11
10
  ng-repeat="object in vm.objects"
12
- ng-click="vm.select(object)"
13
11
  ng-class="{ active: vm.isSelected(object) }"
14
12
  >
15
13
  <div class="d-flex flex-grow a-i-center">
16
- <span class="text-truncate" title="{{ object.title | translate }}">
14
+ <button
15
+ class="text-truncate btn-clean flex-grow"
16
+ title="{{ object.title | translate }}"
17
+ ng-click="vm.select(object)"
18
+ >
17
19
  <i c8y-icon="portraits"></i>
18
20
  <span ng-bind="object.title | translate"></span>
19
- </span>
20
-
21
- <c8y-generic-ui-inventory
22
- path="object.key"
23
- data-title="object.title"
24
- schema="object.schema"
25
- context="object.managedObject"
26
- only-basic-operations="true"
27
- class="m-l-auto m-r-24"
28
- ></c8y-generic-ui-inventory>
21
+ </button>
29
22
  </div>
30
- </button>
31
- </div>
23
+
24
+ <c8y-generic-ui-inventory
25
+ path="object.key"
26
+ data-title="object.title"
27
+ schema="object.schema"
28
+ context="object.managedObject"
29
+ only-basic-operations="true"
30
+ class="m-l-auto m-r-24"
31
+ ></c8y-generic-ui-inventory>
32
+ </li>
33
+ </ul>
32
34
  </div>
33
35
  </div>
34
36
 
@@ -42,7 +42,7 @@
42
42
  type="button"
43
43
  class="btn-help btn-help--sm"
44
44
  aria-label="{{ 'Help' | translate }}"
45
- uib-popover-html="'Drag x-axis to move time.<br>Select time period to zoom.<br>Double click to zoom out.<br>Values in the y-axis may be truncated, hover over the values or the circle in the bottom to display whole values.' | translate"
45
+ uib-popover-html="'Drag x-axis to the left or right to move time.<br>Select time period to zoom.<br>Double click to zoom out.<br>Values in the y-axis may be truncated, hover over the values or the circle in the bottom to display whole values.' | translate"
46
46
  popover-placement="right"
47
47
  popover-trigger="'focus'"
48
48
  popover-append-to-body="true"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/ng1-modules",
3
- "version": "1016.247.0",
3
+ "version": "1016.253.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity",
6
6
  "description": "AngularJS modules for Cumulocity IoT applications.",
@@ -1,9 +1,9 @@
1
1
  <div class="modal-header dialog-header">
2
2
  <i c8y-icon="laptop"></i>
3
- <h4 translate>Remote access endpoint</h4>
3
+ <h1 id="modal-title" class="h4 text-uppercase" translate>Remote access endpoint</h1>
4
4
  </div>
5
5
  <div class="modal-inner-scroll">
6
- <div class="modal-body">
6
+ <div class="modal-body" id="modal-body">
7
7
  <form name="endpointForm" novalidate>
8
8
  <div class="form-group">
9
9
  <label for="name" translate>Name</label>
@@ -77,7 +77,6 @@
77
77
  {{ vm.identifiedType | translate }}
78
78
  </span>
79
79
  <input
80
- aria-label="{{ 'Host address' | translate }}"
81
80
  id="hostname"
82
81
  name="hostname"
83
82
  class="form-control"
@@ -1 +1 @@
1
- "use strict";!function(){function e(n,t,h){r.$inject=["$q","$interval","$window","c8yRemoteAccess","$uibModal","c8yModal","c8yAlert","c8yBase","c8yInventory","c8yDevices","gettextCatalog"],i.$inject=["$routeParams","c8yBase","c8yDevices","c8yRemoteAccess"],c.$inject=["$routeParams"];var e="device/:deviceId",o={name:h("Remote access"),icon:"window-restore",template:'<c8y-remote-access-endpoints-list device="vm.id"></c8y-remote-access-endpoints-list>',controllerAs:"vm",controller:c,showIf:i};function c(e){this.id=e.deviceId}function i(e,n,t,o){var c=e.deviceId;return t.detail(c).then(n.getResData).then(function(e){return t.supportsOperation(e,"c8y_RemoteAccessConnect")}).then(function(e){return e&&o.isMicroServiceAvailable(c)})}function r(o,i,r,s,c,a,d,n,t,u,l){return{getSuggestedIPAddresses:function(e){var t=[{label:"localhost",ipAddress:s.DEFAULT_HOST}];return v(e).then(function(e){var n=_.map(e,function(e){return{label:u.properName(e),ipAddress:u.getIPAddress(e)}});return _.filter(t.concat(n),"ipAddress")})},getChildDevices:v,getEndpoints:p,addEndpoint:function(e){var n=g(e).then(function(e){return c.open({size:"md",component:"c8yRemoteAccessEndpointModal",resolve:{rootDevice:_.constant(_.cloneDeep(e))}}).result});return n.then(function(){return d.success(h("Endpoint saved."))})},editEndpoint:function(n){var e=o.all({deviceDetails:g(n.device),endpointDetails:p(n.device).then(function(e){return _.find(e,function(e){return e.config.id===n.config.id})})}).then(function(e){var n=e.deviceDetails,t=e.endpointDetails;return c.open({size:"md",component:"c8yRemoteAccessEndpointModal",resolve:{rootDevice:_.constant(_.cloneDeep(n)),endpoint:_.constant(_.cloneDeep(t))}}).result});return e.then(function(){return d.success(h("Endpoint saved."))})},removeEndpoint:function(e){var n={title:h("Delete endpoint"),body:l.getString('You are about to delete endpoint "{{config.name}}" from device "{{device.name}}". Do you want to proceed?',e),labels:{ok:h("Delete")},status:"danger"},t=a(n);return t.then(function(){return s.remove(e.device,e.config)}).then(function(){return d.success(h("Endpoint deleted."))})},connectEndpoint:function(c){return s.getConnectionParams(c.device,c.config).then(function(e){var n=m(c);r.localStorage.setItem(n,JSON.stringify(e));var t="".concat(e.protocol.clientWindowPath,"?paramsId=").concat(n),o=r.open(t,n,e.protocol.clientWindowParams);return o.opener=null,f(o,n,e),_.assign(e,{paramsId:n,clientWindow:o})})},isLocalEndpoint:function(e){return _.includes(["localhost",s.DEFAULT_HOST],e.config.hostname)},resumeMonitoring:function(e){var n=m(e);if(r.localStorage.getItem(n)){var t=r.open("",n);if(t.opener=null,t)return function(e,n,t){return s.getConnectionParams(e.device,e.config).then(function(e){return f(n,t,e),_.assign(e,{paramsId:t,clientWindow:n})})}(e,t,n)}return o.resolve()}};function v(e){return t.childDevices(e)}function p(e){return g(e).then(function(n){return s.list(n).then(function(e){return _.map(e,function(e){return{device:n,config:e}})})})}function f(e,t,o){var c=i(function(){var n;try{n=JSON.parse(r.localStorage.getItem(t))}catch(e){n={}}_.assign(o,n),e.closed&&(i.cancel(c),r.localStorage.removeItem(t),o.status=void 0,o.clientWindow=void 0)},1e3)}function m(e){return"remoteConnection_".concat(e.device.id,"_").concat(e.config.id)}function g(e){return _.isObjectLike(e)?o.when(e):t.detail(e).then(n.getResData)}}return{$get:r,provideSettingsPage:function(){function e(e){return e.isAvailable({name:"cloud-remote-access",type:"MICROSERVICE"})}e.$inject=["c8yApplication"],t.addNavigation({parent:h("Settings"),name:h("Remote access"),path:"remoteAccessSettings",icon:"key",priority:2e3,showIf:e}),n.when("/remoteAccessSettings",{template:"<c8y-remote-access-settings />"})},provideDeviceTab:function(){n.when("/".concat(e),o)}}}e.$inject=["c8yViewsProvider","c8yNavigatorProvider","gettext"],angular.module("c8y.remoteAccess").provider("c8yRemoteAccessUI",e)}();
1
+ "use strict";!function(){function e(n,t,y){r.$inject=["$q","$interval","$window","c8yRemoteAccess","$uibModal","c8yModal","c8yAlert","c8yBase","c8yInventory","c8yDevices","gettextCatalog"],i.$inject=["$routeParams","c8yBase","c8yDevices","c8yRemoteAccess"],c.$inject=["$routeParams"];var e="device/:deviceId",o={name:y("Remote access"),icon:"window-restore",template:'<c8y-remote-access-endpoints-list device="vm.id"></c8y-remote-access-endpoints-list>',controllerAs:"vm",controller:c,showIf:i};function c(e){this.id=e.deviceId}function i(e,n,t,o){var c=e.deviceId;return t.detail(c).then(n.getResData).then(function(e){return t.supportsOperation(e,"c8y_RemoteAccessConnect")}).then(function(e){return e&&o.isMicroServiceAvailable(c)})}function r(o,i,r,a,c,s,d,n,t,u,l){return{getSuggestedIPAddresses:function(e){var t=[{label:"localhost",ipAddress:a.DEFAULT_HOST}];return v(e).then(function(e){var n=_.map(e,function(e){return{label:u.properName(e),ipAddress:u.getIPAddress(e)}});return _.filter(t.concat(n),"ipAddress")})},getChildDevices:v,getEndpoints:p,addEndpoint:function(e){var n=g(e).then(function(e){return c.open({size:"sm",component:"c8yRemoteAccessEndpointModal",ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",resolve:{rootDevice:_.constant(_.cloneDeep(e))}}).result});return n.then(function(){return d.success(y("Endpoint saved."))})},editEndpoint:function(n){var e=o.all({deviceDetails:g(n.device),endpointDetails:p(n.device).then(function(e){return _.find(e,function(e){return e.config.id===n.config.id})})}).then(function(e){var n=e.deviceDetails,t=e.endpointDetails;return c.open({size:"sm",component:"c8yRemoteAccessEndpointModal",ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",resolve:{rootDevice:_.constant(_.cloneDeep(n)),endpoint:_.constant(_.cloneDeep(t))}}).result});return e.then(function(){return d.success(y("Endpoint saved."))})},removeEndpoint:function(e){var n={title:y("Delete endpoint"),body:l.getString('You are about to delete endpoint "{{config.name}}" from device "{{device.name}}". Do you want to proceed?',e),labels:{ok:y("Delete")},status:"danger"},t=s(n);return t.then(function(){return a.remove(e.device,e.config)}).then(function(){return d.success(y("Endpoint deleted."))})},connectEndpoint:function(c){return a.getConnectionParams(c.device,c.config).then(function(e){var n=m(c);r.localStorage.setItem(n,JSON.stringify(e));var t="".concat(e.protocol.clientWindowPath,"?paramsId=").concat(n),o=r.open(t,n,e.protocol.clientWindowParams);return o.opener=null,f(o,n,e),_.assign(e,{paramsId:n,clientWindow:o})})},isLocalEndpoint:function(e){return _.includes(["localhost",a.DEFAULT_HOST],e.config.hostname)},resumeMonitoring:function(e){var n=m(e);if(r.localStorage.getItem(n)){var t=r.open("",n);if(t.opener=null,t)return function(e,n,t){return a.getConnectionParams(e.device,e.config).then(function(e){return f(n,t,e),_.assign(e,{paramsId:t,clientWindow:n})})}(e,t,n)}return o.resolve()}};function v(e){return t.childDevices(e)}function p(e){return g(e).then(function(n){return a.list(n).then(function(e){return _.map(e,function(e){return{device:n,config:e}})})})}function f(e,t,o){var c=i(function(){var n;try{n=JSON.parse(r.localStorage.getItem(t))}catch(e){n={}}_.assign(o,n),e.closed&&(i.cancel(c),r.localStorage.removeItem(t),o.status=void 0,o.clientWindow=void 0)},1e3)}function m(e){return"remoteConnection_".concat(e.device.id,"_").concat(e.config.id)}function g(e){return _.isObjectLike(e)?o.when(e):t.detail(e).then(n.getResData)}}return{$get:r,provideSettingsPage:function(){function e(e){return e.isAvailable({name:"cloud-remote-access",type:"MICROSERVICE"})}e.$inject=["c8yApplication"],t.addNavigation({parent:y("Settings"),name:y("Remote access"),path:"remoteAccessSettings",icon:"key",priority:2e3,showIf:e}),n.when("/remoteAccessSettings",{template:"<c8y-remote-access-settings />"})},provideDeviceTab:function(){n.when("/".concat(e),o)}}}e.$inject=["c8yViewsProvider","c8yNavigatorProvider","gettext"],angular.module("c8y.remoteAccess").provider("c8yRemoteAccessUI",e)}();
@@ -1,64 +1,67 @@
1
1
  <div class="viewport-modal">
2
- <div class="modal-header text-center separator">
3
- <h3 id="modal-title">
4
- <i class="c8y-icon c8y-icon-smart-rules c8y-icon-duocolor"></i>
5
- {{ title | translate }}
6
- </h3>
7
- </div>
8
-
9
- <div class="inner-scroll" id="modal-body">
10
- <div
11
- class="alert alert-warning"
12
- ng-show="ruleTemplates.length == 0 && !loading.loading"
13
- translate
14
- >
15
- No matching smart rules available.
2
+ <div class="modal-header text-center separator">
3
+ <h1 id="modal-title" class="h3">
4
+ <i class="c8y-icon c8y-icon-smart-rules c8y-icon-duocolor"></i>
5
+ {{ title | translate }}
6
+ </h1>
16
7
  </div>
17
- <div class="d-flex a-i-center j-c-center" ng-show="loading.loading">
18
- <c8y-loading></c8y-loading>
8
+
9
+ <div class="inner-scroll" id="modal-body">
10
+ <div
11
+ class="alert alert-warning"
12
+ ng-show="ruleTemplates.length == 0 && !loading.loading"
13
+ translate
14
+ >
15
+ No matching smart rules available.
16
+ </div>
17
+ <div class="d-flex a-i-center j-c-center" ng-show="loading.loading">
18
+ <c8y-loading></c8y-loading>
19
+ </div>
20
+ <div class="card-group-block smart-rule-templates-list interact-grid">
21
+ <button
22
+ ng-repeat="ruleTemplate in ruleTemplates"
23
+ class="col-md-4 col-sm-6 col-xs-12 card btn-clean"
24
+ ng-class="{ 'not-active': !ruleTemplate._active, interact: ruleTemplate._active }"
25
+ ng-click="createInstance(ruleTemplate)"
26
+ >
27
+ <div class="card-block text-center">
28
+ <div class="smart-list-icon-label">
29
+ <span class="dot"><i c8y-icon="{{ ruleTemplate.paramGroups.input.icon }}"></i></span>
30
+ <i c8y-icon="arrow-right"></i>
31
+ <span class="dot"><i c8y-icon="{{ ruleTemplate.paramGroups.output.icon }}"></i></span>
32
+ </div>
33
+ <div ng-if="ruleTemplate.label.full" class="text-pre-normal">
34
+ <span class="caption" title="{{ ruleTemplate.label.full | translate }}">
35
+ {{ ruleTemplate.label.full | translate }}
36
+ </span>
37
+ </div>
38
+ <div ng-if="!ruleTemplate.label.full" class="text-pre-normal">
39
+ <span class="caption caption-input" title="{{ ruleTemplate.label.input | translate }}">
40
+ {{ ruleTemplate.label.input | translate }}
41
+ </span>
42
+ <span
43
+ class="caption caption-output"
44
+ title="{{ ruleTemplate.label.output | translate }}"
45
+ >
46
+ {{ ruleTemplate.label.output | translate }}
47
+ </span>
48
+ </div>
49
+ <small class="text-muted text-pre-normal">
50
+ {{ ruleTemplate.description | translate }}
51
+ </small>
52
+ </div>
53
+ </button>
54
+ </div>
19
55
  </div>
20
- <div class="card-group-block smart-rule-templates-list interact-grid">
56
+
57
+ <div class="modal-footer">
21
58
  <button
22
- ng-repeat="ruleTemplate in ruleTemplates"
23
- class="col-md-4 col-sm-6 col-xs-12 card btn-clean"
24
- ng-class="{ 'not-active': !ruleTemplate._active, interact: ruleTemplate._active }"
25
- ng-click="createInstance(ruleTemplate)"
59
+ title="{{ 'Cancel' | translate }}"
60
+ type="button"
61
+ class="btn btn-default"
62
+ ng-click="cancel()"
26
63
  >
27
- <div class="card-block text-center">
28
- <div class="smart-list-icon-label">
29
- <span class="dot"><i c8y-icon="{{ ruleTemplate.paramGroups.input.icon }}"></i></span>
30
- <i c8y-icon="arrow-right"></i>
31
- <span class="dot"><i c8y-icon="{{ ruleTemplate.paramGroups.output.icon }}"></i></span>
32
- </div>
33
- <div ng-if="ruleTemplate.label.full" class="text-pre-normal">
34
- <span class="caption" title="{{ ruleTemplate.label.full | translate }}">
35
- {{ ruleTemplate.label.full | translate }}
36
- </span>
37
- </div>
38
- <div ng-if="!ruleTemplate.label.full" class="text-pre-normal">
39
- <span class="caption caption-input" title="{{ ruleTemplate.label.input | translate }}">
40
- {{ ruleTemplate.label.input | translate }}
41
- </span>
42
- <span class="caption caption-output" title="{{ ruleTemplate.label.output | translate }}">
43
- {{ ruleTemplate.label.output | translate }}
44
- </span>
45
- </div>
46
- <small class="text-muted text-pre-normal">
47
- {{ ruleTemplate.description | translate }}
48
- </small>
49
- </div>
64
+ {{ 'Cancel' | translate }}
50
65
  </button>
51
66
  </div>
52
67
  </div>
53
-
54
- <div class="modal-footer">
55
- <button
56
- title="{{ 'Cancel' | translate }}"
57
- type="button"
58
- class="btn btn-default"
59
- ng-click="cancel()"
60
- >
61
- {{ 'Cancel' | translate }}
62
- </button>
63
- </div>
64
- </div>
@@ -1 +0,0 @@
1
- "use strict";!function(){function e(t,e,o,s){var n=this;function r(e){e.$blockScrolling=1/0}_.assign(n,{$onInit:function(){t.getPostRegistrationOptions().then(function(e){n.postRegistrationOptions=e}),e.changeTitle({title:o("LWM2M post-operations")}),n.aceEditorOptions={useWrapMode:!0,showGutter:!0,onLoad:r},n.EXAMPLE_COMMANDS=[{command:"discover",resource:"<objectId>",description:o("Discover all resources of Object 3300, the generic sensor.")},{command:"read",resource:"<objectId>/<objectInstanceId>/<resourceId>",description:o("Read maximum sensor value")},{command:"write",resource:"<objectId>/<objectInstanceId>/<resourceId> <applicationType>",description:o('Write application type "CO2" to device')},{command:"execute",resource:"<objectId>/<objectInstanceId>/<resourceId>",description:o("Reset min and max values")},{command:"observe",resource:"<objectId>/<objectInstanceId>/<resourceId>",description:o("Observe sensor value. Causes device to send every new sensor value")},{command:"writeattr",resource:"<objectId>/<objectInstanceId>/<resourceId> greater=<value>",description:o("Only send observations if sensor value is higher than 100")}]},setPostRegistrationOptions:function(e){t.setPostRegistrationOptions(e).then(function(){return s.success(o("Post-operations saved."))}).catch(function(){return s.danger(o("There was an error processing the post-operations."))})}})}e.$inject=["c8yLwm2m","c8yTitle","gettext","c8yAlert"],angular.module("c8y.lwm2m").component("c8yLwm2mPostOperations",{templateUrl:":::PLUGIN_PATH:::/postOperations/lwm2mPostOperations.html",controller:e,controllerAs:"vm"})}();
@@ -1,68 +0,0 @@
1
- <c8y-breadcrumbs-set>
2
- <c8y-breadcrumbs-item
3
- label="{{ 'LWM2M post-operations' | translate }}"
4
- icon="terminal"
5
- ></c8y-breadcrumbs-item>
6
- <c8y-breadcrumbs-item
7
- label="{{ 'Device types' | translate }}"
8
- icon="c8y-device-protocols"
9
- ></c8y-breadcrumbs-item>
10
- </c8y-breadcrumbs-set>
11
-
12
- <div class="card content-fullpage card--grid grid__col--7-5--md grid__row--auto-min-content">
13
- <div class="inner-scroll d-flex d-col bg-component">
14
- <div class="card-header separator large-padding sticky-top">
15
- <div class="card-title">
16
- {{ 'Commands' | translate }}
17
- </div>
18
- <button
19
- class="btn-help btn-help--sm m-l-4"
20
- aria-label="{{ 'Help' | translate }}"
21
- type="button"
22
- uib-popover="{{
23
- 'You can enter a set of LWM2M shell commands. Each of them will be sent to every newly registered LWM2M device.'
24
- | translate
25
- }}"
26
- popover-append-to-body="true"
27
- popover-trigger="'focus'"
28
- popover-placement="right"
29
- ></button>
30
- </div>
31
- <form name="optionsForm" novalidate class="d-flex d-col flex-grow">
32
- <div
33
- class="form-control fit-h"
34
- ui-ace="vm.aceEditorOptions"
35
- ng-model="vm.postRegistrationOptions.commands"
36
- ></div>
37
- </form>
38
- </div>
39
-
40
- <div class="inner-scroll bg-level-1">
41
- <div class="card-block p-t-56 large-padding">
42
- <p class="m-b-16" translate>
43
- You may use the following syntax for specifying post-registration actions:
44
- </p>
45
- <pre class="bg-level-0 text-pre-normal m-b-0">
46
- <ul class="list-unstyled m-b-0">
47
- <li class="m-16" ng-repeat="c in vm.EXAMPLE_COMMANDS">
48
- <p class="text-muted"># {{c.description | translate}}</p>
49
- <span class="text-danger">{{c.command}}</span>
50
- <span class="text-muted">{{c.resource}}</span>
51
- </li>
52
- </ul>
53
- </pre>
54
- </div>
55
- </div>
56
-
57
- <div class="card-footer large-padding separator grid__col--fullspan">
58
- <button
59
- class="btn btn-primary"
60
- title="{{ 'Save' | translate }}"
61
- type="button"
62
- ng-click="vm.setPostRegistrationOptions(vm.postRegistrationOptions.commands)"
63
- ng-disabled="optionsForm.$invalid || optionsForm.$pristine"
64
- >
65
- {{ 'Save' | translate }}
66
- </button>
67
- </div>
68
- </div>
@@ -1 +0,0 @@
1
- "use strict";!function(){function t(t,o,n){var e="postoperations",i={parent:t("Device types"),name:t("LWM2M post-operations"),path:e,icon:"terminal",showIf:["c8yLwm2m",function(t){return t.showIf()}]},r={template:"<c8y-lwm2m-post-operations></c8y-lwm2m-post-operations>"};return{$get:function(){},initUi:function(){o.when("/".concat(e),r),n.addNavigation(i)}}}t.$inject=["gettext","c8yViewsProvider","c8yNavigatorProvider"],angular.module("c8y.lwm2m").provider("c8yLwm2mPostOperationsUi",t)}();