@c8y/ng1-modules 1021.80.1 → 1022.3.2
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.
- package/alarmsEventsExplorer/alarmsEventsTimelinesConfig/alarmsEventsTimelinesConfig.html +1 -1
- package/assetPropertyWidget/img/asset-properties-widget-pr.png +0 -0
- package/assetPropertyWidget/views/config.html +1 -1
- package/assetTable/assetTable2/img/asset-table-widget-pr.png +0 -0
- package/assetTable/img/asset-table-widget-pr.png +0 -0
- package/core/core/services/audits.js +1 -1
- package/core/core/services/retentions.js +1 -1
- package/core/core/services/tenant.js +1 -1
- package/core/core/services/user.js +1 -1
- package/core/cumulocity.json +0 -1
- package/core/locales/de.po +472 -720
- package/core/locales/es.po +422 -671
- package/core/locales/fr.po +501 -751
- package/core/locales/ja_JP.po +494 -740
- package/core/locales/ko.po +421 -671
- package/core/locales/nl.po +424 -672
- package/core/locales/pl.po +422 -672
- package/core/locales/pt_BR.po +519 -768
- package/core/locales/zh_CN.po +421 -671
- package/core/locales/zh_TW.po +422 -671
- package/core/ui/properties/propertySelector.html +156 -109
- package/core/ui/views/auditList.html +2 -2
- package/core/ui/views/eventList.html +2 -2
- package/core/ui/views/filePicker.html +1 -1
- package/dataBroker/connectors/connectors.service.js +1 -1
- package/dataPointExplorer/img/data-points-graph-widget-pr.png +0 -0
- package/dataPointExplorer/views/widgetConfig.html +92 -94
- package/device-protocols/object-mapping.component.js +1 -1
- package/device-protocols/object-mapping.html +1 -1
- package/deviceDatabase4/modals/configure-discrete-io.html +1 -1
- package/deviceDatabase4/modals/configure-register.html +1 -1
- package/deviceDetail/cumulocity.json +1 -2
- package/deviceStatusWidget/ownerStatus.html +2 -2
- package/deviceStatusWidget/requiredAvailabilityIntervalSetting.html +4 -4
- package/devicemanagement-eventList/index.js +1 -1
- package/enterpriseEdition/cumulocity.json +0 -13
- package/enterpriseEdition/enterpriseEdition.module.js +1 -1
- package/eventList/img/events-list-widget-pr.png +0 -0
- package/eventList/views/eventListConfig.html +39 -32
- package/export/cumulocity.json +0 -1
- package/export/index.js +1 -1
- package/export/services/config.js +1 -1
- package/htmlWidget/index.js +1 -1
- package/kpi/img/data-points-list-widget-pr.png +0 -0
- package/kpi/views/gaugeConfig.html +28 -34
- package/kpi/views/listConfig.html +14 -18
- package/kpi/views/pieChartConfig.html +30 -36
- package/modbusConfiguration4/fieldbus-device-list.component.js +1 -1
- package/modbusWidget4/widget-config.html +74 -84
- package/package.json +11 -13
- package/propertiesLibrary/index.js +1 -1
- package/roles/list/rolesList.html +0 -2
- package/scada/views/componentConfig.html +23 -23
- package/scada/views/mapping.html +41 -39
- package/smartRules/controllers/add.js +1 -1
- package/smartRules/controllers/list.js +1 -1
- package/smartRules/list/smartRulesList.component.js +1 -1
- package/smartRules/list/smartRulesList.html +2 -2
- package/smartRules/services/smartRules.js +1 -1
- package/smartRules/views/add.html +32 -10
- package/smartRules/views/list.html +4 -3
- package/trafficLightWidget/states-mapping.html +82 -69
- package/administration-config/administration-config.module.js +0 -1
- package/administration-config/cumulocity.json +0 -13
- package/asset-notes/assetNotes.component.js +0 -1
- package/asset-notes/assetNotes.html +0 -93
- package/asset-notes/assetNotes.module.js +0 -1
- package/asset-notes/assetNotes.service.js +0 -1
- package/asset-notes/cumulocity.json +0 -13
- package/core/ui/forms/ssh-key-input.html +0 -33
- package/core/ui/forms/ssh-key-input.js +0 -1
- package/devicemanagement-deviceListMap/controllers/deviceListMap.js +0 -1
- package/devicemanagement-deviceListMap/cumulocity.json +0 -19
- package/devicemanagement-deviceListMap/index.js +0 -1
- package/devicemanagement-deviceListMap/views/index.html +0 -21
- package/enterpriseEdition/customBranding/brandingConfiguration.constants.js +0 -1
- package/enterpriseEdition/customBranding/brandingConfiguration.service.js +0 -1
- package/enterpriseEdition/customBranding/brandingConfigurationForm.component.js +0 -1
- package/enterpriseEdition/customBranding/brandingConfigurationForm.html +0 -141
- package/enterpriseEdition/customBranding/brandingConfigurationUi.provider.js +0 -1
- package/enterpriseEdition/customBranding/brandingDeploy.service.js +0 -1
- package/enterpriseEdition/customBranding/brandingProcessExecution.component.js +0 -1
- package/enterpriseEdition/customBranding/brandingProcessExecution.html +0 -120
- package/enterpriseEdition/customBranding/custom-branding.module.js +0 -1
- package/enterpriseEdition/customBranding/microservice.value.js +0 -1
- package/enterpriseEdition/ui-assets/index.js +0 -1
- package/enterpriseEdition/ui-assets/public-options.service.js +0 -1
- package/enterpriseEdition/ui-assets/static-assets.service.js +0 -1
- package/enterpriseEdition/ui-assets/ui-assets.service.js +0 -1
- package/export/controllers/list.js +0 -1
- package/export/views/list.html +0 -298
- package/remoteAccess/clients/remoteAccessClients.service.js +0 -1
- package/remoteAccess/clients/terminal/index.html +0 -30
- package/remoteAccess/clients/terminal/index.js +0 -1
- package/remoteAccess/clients/terminal/shell-adapter.js +0 -1
- package/remoteAccess/clients/terminal/style.css +0 -25
- package/remoteAccess/clients/terminal/telnet-negotiator.js +0 -1
- package/remoteAccess/clients/vnc/vncClient.html +0 -60
- package/remoteAccess/clients/vnc/vncClient.js +0 -1
- package/remoteAccess/cumulocity.json +0 -69
- package/remoteAccess/remoteAccess.module.js +0 -1
- package/remoteAccess/remoteAccess.service.js +0 -1
- package/remoteAccess/remoteAccessEndpointCard/remoteAccessEndpointCard.component.js +0 -1
- package/remoteAccess/remoteAccessEndpointCard/remoteAccessEndpointCard.html +0 -89
- package/remoteAccess/remoteAccessEndpointModal/remoteAccessEndpointModal.component.js +0 -1
- package/remoteAccess/remoteAccessEndpointModal/remoteAccessEndpointModal.html +0 -484
- package/remoteAccess/remoteAccessEndpointModal/suggestedIPAddressTemplate.html +0 -8
- package/remoteAccess/remoteAccessEndpointsList/remoteAccessEndpointsList.component.js +0 -1
- package/remoteAccess/remoteAccessEndpointsList/remoteAccessEndpointsList.html +0 -75
- package/remoteAccess/remoteAccessSettings/remoteAccessSettings.component.js +0 -1
- package/remoteAccess/remoteAccessSettings/remoteAccessSettings.html +0 -37
- package/remoteAccess/remoteAccessUI.provider.js +0 -1
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
<c8y-breadcrumbs-set>
|
|
2
|
-
<c8y-breadcrumbs-item label="{{ 'Branding' | translate }}" icon="cog"></c8y-breadcrumbs-item>
|
|
3
|
-
<c8y-breadcrumbs-item
|
|
4
|
-
label="{{ 'Enterprise tenant' | translate }}"
|
|
5
|
-
icon="cog"
|
|
6
|
-
></c8y-breadcrumbs-item>
|
|
7
|
-
<c8y-breadcrumbs-item label="{{ 'Settings' | translate }}" icon="cog"></c8y-breadcrumbs-item>
|
|
8
|
-
</c8y-breadcrumbs-set>
|
|
9
|
-
|
|
10
|
-
<c8y-ui-action-bar-set>
|
|
11
|
-
<li ng-show="vm.state.WAITING || vm.state.RUNNING">
|
|
12
|
-
<i c8y-icon="spinner" class="icon-spin"></i>
|
|
13
|
-
<span translate ng-show="vm.state.WAITING">Waiting in queue</span>
|
|
14
|
-
<span translate ng-show="vm.state.RUNNING">Executing. Takes about 2 minutes</span>
|
|
15
|
-
</li>
|
|
16
|
-
|
|
17
|
-
<button
|
|
18
|
-
ng-show="vm.useMicroservice"
|
|
19
|
-
title="{{ 'Create branded standard apps' | translate }}"
|
|
20
|
-
type="button"
|
|
21
|
-
class="btn btn-link"
|
|
22
|
-
ng-click="vm.generate()"
|
|
23
|
-
ng-disabled="vm.blocked()"
|
|
24
|
-
>
|
|
25
|
-
<i c8y-icon="bolt"></i>
|
|
26
|
-
{{ 'Create' | translate }}
|
|
27
|
-
</button>
|
|
28
|
-
|
|
29
|
-
<button
|
|
30
|
-
class="btn btn-link"
|
|
31
|
-
type="button"
|
|
32
|
-
title="{{ (wrapperform.$dirty ? vm.dirtyFormApplyTitle : vm.applyTitle) | translate }}"
|
|
33
|
-
ng-disabled="wrapperform.$dirty"
|
|
34
|
-
ng-click="vm.applyConfiguration()"
|
|
35
|
-
ng-show="!vm.useMicroservice"
|
|
36
|
-
>
|
|
37
|
-
<i c8y-icon="bolt"></i>
|
|
38
|
-
{{ 'Apply' | translate }}
|
|
39
|
-
</button>
|
|
40
|
-
|
|
41
|
-
<button
|
|
42
|
-
class="btn btn-link"
|
|
43
|
-
type="button"
|
|
44
|
-
title="{{ 'Remove applied branding' | translate }}"
|
|
45
|
-
ng-click="vm.removeAppliedBranding()"
|
|
46
|
-
ng-show="!vm.useMicroservice"
|
|
47
|
-
>
|
|
48
|
-
<i c8y-icon="undo"></i>
|
|
49
|
-
{{ 'Remove branding' | translate }}
|
|
50
|
-
</button>
|
|
51
|
-
|
|
52
|
-
<button
|
|
53
|
-
class="btn btn-link"
|
|
54
|
-
type="button"
|
|
55
|
-
title="{{ 'Open branded apps preview' | translate }}"
|
|
56
|
-
ng-click="vm.preview()"
|
|
57
|
-
>
|
|
58
|
-
<i c8y-icon="external-link"></i>
|
|
59
|
-
{{ 'Open preview' | translate }}
|
|
60
|
-
</button>
|
|
61
|
-
</c8y-ui-action-bar-set>
|
|
62
|
-
|
|
63
|
-
<div class="card card--grid content-fullpage grid__col--3-9--md" ng-form="wrapperform">
|
|
64
|
-
<div class="d-flex d-col content-fullpage bg-level-1">
|
|
65
|
-
<div class="card-header separator">
|
|
66
|
-
<div class="card-title" translate>Configuration</div>
|
|
67
|
-
</div>
|
|
68
|
-
<div class="inner-scroll flex-grow">
|
|
69
|
-
<div class="card-block p-t-0 p-b-0 overflow-visible">
|
|
70
|
-
<div ng-show="vm.isLoading">
|
|
71
|
-
<c8y-loading></c8y-loading>
|
|
72
|
-
</div>
|
|
73
|
-
<form name="platformConfigurationForm1" ng-blur="vm.updateLivePreview()" novalidate>
|
|
74
|
-
<c8y-schema-form
|
|
75
|
-
schema="vm.schema"
|
|
76
|
-
form="vm.form[0]"
|
|
77
|
-
model="vm.branding.c8y_less_variables"
|
|
78
|
-
options="vm.options"
|
|
79
|
-
></c8y-schema-form>
|
|
80
|
-
</form>
|
|
81
|
-
|
|
82
|
-
<form name="platformConfigurationForm2" novalidate>
|
|
83
|
-
<c8y-schema-form
|
|
84
|
-
schema="vm.schema"
|
|
85
|
-
form="vm.form[1]"
|
|
86
|
-
model="vm.branding.c8y_less_variables"
|
|
87
|
-
options="vm.options"
|
|
88
|
-
></c8y-schema-form>
|
|
89
|
-
</form>
|
|
90
|
-
</div>
|
|
91
|
-
</div>
|
|
92
|
-
<div class="card-footer separator sticky-bottom">
|
|
93
|
-
<button
|
|
94
|
-
class="btn btn-default"
|
|
95
|
-
type="button"
|
|
96
|
-
title="{{ 'Reset' | translate }}"
|
|
97
|
-
ng-disabled="!wrapperform.$dirty"
|
|
98
|
-
ng-click="vm.resetForm(wrapperform)"
|
|
99
|
-
c8y-key-shortcut="Escape"
|
|
100
|
-
>
|
|
101
|
-
{{ 'Reset' | translate }}
|
|
102
|
-
</button>
|
|
103
|
-
<button
|
|
104
|
-
class="btn btn-primary"
|
|
105
|
-
type="button"
|
|
106
|
-
title="{{ 'Save' | translate }}"
|
|
107
|
-
ng-click="vm.save()"
|
|
108
|
-
ng-disabled="!vm.canSave() || !wrapperform.$dirty"
|
|
109
|
-
ng-hide="vm.isLoading"
|
|
110
|
-
c8y-key-shortcut="Enter"
|
|
111
|
-
>
|
|
112
|
-
{{ 'Save' | translate }}
|
|
113
|
-
</button>
|
|
114
|
-
</div>
|
|
115
|
-
</div>
|
|
116
|
-
|
|
117
|
-
<div class="d-flex d-col">
|
|
118
|
-
<div class="card-header separator">
|
|
119
|
-
<div class="card-title" translate>Preview</div>
|
|
120
|
-
</div>
|
|
121
|
-
<div class="c8y-browser-mock d-flex d-col flex-grow">
|
|
122
|
-
<div class="browser-container flex-grow d-flex d-col">
|
|
123
|
-
<div class="browser-row">
|
|
124
|
-
<div class="buttons">
|
|
125
|
-
<span class="dot" style="background: #ed594a"></span>
|
|
126
|
-
<span class="dot" style="background: #fdd800"></span>
|
|
127
|
-
<span class="dot" style="background: #5ac05a"></span>
|
|
128
|
-
</div>
|
|
129
|
-
<div class="tab text-truncate">
|
|
130
|
-
<img alt="{{ vm.title }}" src="{{ vm.favicon }}" />
|
|
131
|
-
{{ vm.title }}
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
|
|
135
|
-
<div class="browser-content flex-grow d-flex d-col">
|
|
136
|
-
<iframe id="previewBrowser" title="Preview" class="flex-grow fit-w"></iframe>
|
|
137
|
-
</div>
|
|
138
|
-
</div>
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
</div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _slicedToArray(t,e){return _arrayWithHoles(t)||_iterableToArrayLimit(t,e)||_unsupportedIterableToArray(t,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(t,e){var r;if(t)return"string"==typeof t?_arrayLikeToArray(t,e):"Map"===(r="Object"===(r={}.toString.call(t).slice(8,-1))&&t.constructor?t.constructor.name:r)||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(t,e):void 0}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,o=Array(e);r<e;r++)o[r]=t[r];return o}function _iterableToArrayLimit(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var o,a,i,n,l=[],s=!0,g=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;s=!1}else for(;!(s=(o=i.call(r)).done)&&(l.push(o.value),l.length!==e);s=!0);}catch(t){g=!0,a=t}finally{try{if(!s&&null!=r.return&&(n=r.return(),Object(n)!==n))return}finally{if(g)throw a}}return l}}function _arrayWithHoles(t){if(Array.isArray(t))return t}function ownKeys(e,t){var r,o=Object.keys(e);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(e),t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,r)),o}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){_defineProperty(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function _defineProperty(t,e,r){return(e=_toPropertyKey(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function _toPropertyKey(t){t=_toPrimitive(t,"string");return"symbol"==_typeof(t)?t:t+""}function _toPrimitive(t,e){if("object"!=_typeof(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0===r)return("string"===e?String:Number)(t);r=r.call(t,e||"default");if("object"!=_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}(()=>{function t(p){g.$inject=["$q","$http","c8yPermissions","gettextCatalog","c8yInventory","c8yBinary","c8yPublicOptions","c8yBrandingMapping"];var f="brandingVariables",t={title:p("General"),items:["html_title"]},e={title:p("Main logo"),items:["favicon","brand-logo-img","brand-logo-height"]},r={title:p("Navigator logo"),items:["appLogo","appLogo-height"]},o={title:p("Font"),key:"font.options",items:["font-family-sans-serif","headings-font-family","navigator-font-family","__import-font"]},a={title:p("Colors"),items:["brand-primary","brand-complementary","brand-dark","brand-light","text-color","link-color","body-background-color"]},i={title:p("Top bar"),items:["headerColor","header-text-color","header-hover-color"]},n={title:p("Navigator"),items:["navColor","navColorHeader","navigator-title-color","navigator-text-color","navigator-separator-color","navigator-color-active","navigator-active-bg"]},l={title:p("Misc"),items:["btn-border-radius-base"]},s={title:p("Cookie banner"),items:["cookieBannerDisabled","cookieBannerTitle","cookieBannerText","policyUrl"]},m=[t,e,r,o,a],u=[i,n,l,s];return{$get:g};function g(i,n,t,r,l,s,o,g){var a=["brand-logo-img","appLogo","favicon"];return{getSchema:c,getForm:function(){return i.when([_.map(m,e),_.map(u,e)])},getSchemaFormOptions:function(){return t.hasAnyRole(["ROLE_OPTION_MANAGEMENT_ADMIN"]).then(function(t){return{formDefaults:{readonly:!t}}})},getBranding:function(){var t=c(),e=l.list({type:f}),r=o.read();return i.all({schema:t,managedObjects:e,publicOptions:r}).then(function(t){var r=_.pick(t.managedObjects[0],["id","c8y_less_variables","binary_ref","cookieBanner"]),o=(_.isEmpty(r)&&!_.isEmpty(t.publicOptions)&&(r=(t=>{var r={},e=t.brandingCssVars,o=t.cookieBanner,a=t.extraCssUrls,i=t.faviconUrl,t=t.globalTitle,n=_.omitBy(_objectSpread(_objectSpread(_objectSpread({},e),o),{},{faviconUrl:i,globalTitle:t}),_.isUndefined),l=_.invert(g.cssVarMapping);return Object.keys(n).forEach(function(t){var e=(t=>{if("string"==typeof t){if(t.endsWith("%"))return Number(t.slice(0,-1));if(t.endsWith("px"))return Number(t.slice(0,-2))}return t})(n[t]);l[t]?r[l[t]]=e:r[t]=e}),a&&a.length&&(r["__import-font"]=a[0]),r["navigator-font-family"]&&(r["navigator-font-family"]=(e=>{var r,o=_.invert(g.fontFamilyCssVars);return Object.keys(o).forEach(function(t){e.includes(t)&&(r=o[t])}),r})(e["navigator-font-family"])),o=g.fileProperties.map(function(t){return t.key}),["appLogo-height","brand-logo-height","navigator-app-icon-size","btn-border-radius-base"].forEach(function(t){r[t]&&(r[t]=parseInt(r[t],10))}),{c8y_less_variables:_.omit(r,o),binary_ref:_.pick(r,o)}})(t.publicOptions)),[]);return _.each(a,function(e){var a,t;r.binary_ref&&r.binary_ref[e]&&((t=(t=r.binary_ref[e]).id?l.detail(t,{},{silentError:!0}):(a=(t=t).startsWith("url(")?t.slice(4,-1):t,n.get(a,{responseType:"blob"}).then(function(o){return s.readDataUri(o.data).then(function(t){var e=o.headers(),r=_slicedToArray(a.split("/").pop().split("?"),1)[0],r=new File([o.data],r,{type:e["content-type"]});return _.set(r,"fileSrc",t),_.set(r,"length",e["content-length"]),{data:r}})}))).then(function(t){r.c8y_less_variables[e]=t.data},function(){}),o.push(t.catch(function(){return!1})))}),i.all(o).then(_.constant(r))})},saveConfiguration:function(t,e){t={type:f,c8y_less_variables:t.c8y_less_variables,binary_ref:t.binary_ref||{}};e&&(t.id=e);return l.save(t)},saveBinary:function(e,t,r,o){if(_.isEqual(t,o)&&t.id)return i.when(o);var a={c8y_Branding:e,fileSrc:t.fileSrc};return s.upload(t,a).then(function(t){return r&&r[e]&&o&&s.removeBinary(r[e]),t.data})},BINARY_VARS:a};function c(){var t=p("Hex, rgb or rgba value. Default: {{defaultColor}}"),e={message:{cssColor:r.getString("Must be a valid CSS color value.")},validator:{cssColor:function(t){var e;return!!_.isEmpty(t)||((e=document.createElement("SPAN")).style.color=t,!_.isEmpty(e.style.color))}}};return i.when({type:"object",properties:{html_title:{title:r.getString("Title"),type:"string",description:r.getString("Title to be used in browser tab")},"brand-logo-img":{title:"".concat(r.getString("Brand logo")),type:"string",description:r.getString("Supported files: *.png, *.svg, *.jpg"),format:"file","x-schema-form":{type:"fileUpload",allowedFileType:[".png",".svg",".jpg"]}},favicon:{title:"".concat(r.getString("Favicon")),type:"string",description:r.getString("Supported files: *.ico"),format:"file","x-schema-form":{type:"fileUpload",allowedFileType:[".ico"]}},"brand-logo-height":{title:r.getString("Brand logo height"),type:"number",minimum:0,description:r.getString("Height for setting the right proportion for the logo: height / width x 100")},appLogo:{title:r.getString("Navigator logo"),type:"string",description:r.getString("Supported files: *.png, *.svg, *.jpg"),format:"file","x-schema-form":{type:"fileUpload",allowedFileType:[".png",".svg",".jpg"]}},"appLogo-height":{title:r.getString("Navigator logo height"),type:"number",minimum:0,description:r.getString("Height for setting the right proportion for the navigator logo: height / width x 100")},"font-family-sans-serif":{title:r.getString("Base font stack"),type:"string","x-schema-form":{placeholder:r.getString('e.g. "Lato", Arial, Verdana, sans-serif')}},"headings-font-family":{title:r.getString("Headings font stack"),type:"string","x-schema-form":{placeholder:r.getString('e.g. "Lato", Arial, Verdana, sans-serif')}},"navigator-font-family":{title:r.getString("Navigator font stack"),type:"string",default:"@font-family-sans-serif","x-schema-form":{type:"radios",enum:["@font-family-sans-serif","@headings-font-family"],titleMap:[{value:"@font-family-sans-serif",name:r.getString("Same as base font")},{value:"@headings-font-family",name:r.getString("Same as headings font")}]}},"__import-font":{title:r.getString("URL"),description:r.getString("A link to existing remote fonts (for example, Google Fonts)"),type:"string"},"brand-primary":{title:"".concat(r.getString("Main brand color")),type:"string",description:r.getString("Hex, rgb or rgba value."),"x-schema-form":{placeholder:r.getString("e.g.: #27b3ce"),validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"brand-complementary":{title:r.getString("Secondary brand color"),type:"string",description:r.getString(t,{defaultColor:d("brand-complementary")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"brand-dark":{title:r.getString("Dark brand color"),type:"string",description:r.getString(t,{defaultColor:d("brand-dark")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"brand-light":{title:r.getString("Light brand color"),type:"string",description:r.getString(t,{defaultColor:d("brand-light")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"text-color":{title:r.getString("Text color"),type:"string",description:r.getString(t,{defaultColor:d("text-color")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"link-color":{title:r.getString("Link color"),type:"string",description:r.getString(t,{defaultColor:d("link-color")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"body-background-color":{title:r.getString("Main background color"),type:"string",description:r.getString(t,{defaultColor:d("body-background-color")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},headerColor:{title:r.getString("Background color"),type:"string",description:r.getString(t,{defaultColor:d("headerColor")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"header-text-color":{title:r.getString("Text color"),type:"string",description:r.getString(t,{defaultColor:d("header-text-color")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"header-hover-color":{title:r.getString("Button hover text color"),type:"string",description:r.getString(t,{defaultColor:d("header-hover-color")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},navColor:{title:r.getString("Background color"),type:"string",description:r.getString(t,{defaultColor:d("navColor")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},navColorHeader:{title:r.getString("Logo wrapper background color"),type:"string",description:r.getString(t,{defaultColor:d("navColorHeader")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"navigator-title-color":{title:r.getString("Title color"),type:"string",description:r.getString(t,{defaultColor:d("navigator-title-color")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"navigator-text-color":{title:r.getString("Text and buttons color"),type:"string",description:r.getString(t,{defaultColor:d("navigator-text-color")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"navigator-separator-color":{title:r.getString("Separator line color"),type:"string",description:r.getString(t,{defaultColor:d("navigator-separator-color")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"navigator-color-active":{title:r.getString("Text color of current item in navigator"),type:"string",description:r.getString(t,{defaultColor:d("navigator-color-active")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"navigator-active-bg":{title:r.getString("Background color of current item in navigator"),type:"string",description:r.getString(t,{defaultColor:d("navigator-active-bg")}),"x-schema-form":{validationMessage:_objectSpread({},e.message),$validators:_objectSpread({},e.validator)}},"btn-border-radius-base":{title:r.getString("Button border-radius"),type:"number",minimum:0,maximum:20,description:r.getString("Value in px")},cookieBannerDisabled:{title:r.getString("Disable cookie banner"),type:"boolean"},cookieBannerTitle:{title:r.getString("Title"),type:"string","x-schema-form":{condition:"!model.cookieBannerDisabled"}},cookieBannerText:{title:r.getString("Text"),type:"string","x-schema-form":{type:"textarea",condition:"!model.cookieBannerDisabled"}},policyUrl:{title:r.getString("Link to privacy policy"),type:"string","x-schema-form":{placeholder:r.getString("e.g. https://example.com/mypolicy"),condition:"!model.cookieBannerDisabled"}}}})}function d(t){return{"brand-complementary":"#07b91A","text-color":"#444","link-color":"main brand color","body-background-color":"#FAFAFA","brand-dark":"#0B385B","brand-light":"#5FAEEC",headerColor:"#FFFFFF","header-text-color":"#49595B","header-hover-color":"main brand color",navColor:"#2c3637",navColorHeader:"transparent","navigator-title-color":"#FFFFFF","navigator-text-color":"#FAFAFA","navigator-separator-color":"#FAFAFA","navigator-color-active":"#FAFAFA","navigator-active-bg":"main brand color"}[t]}function e(t){var e={type:"collapse"};return _.assign(e,t),e.items=_.map(e.items,function(t){return{key:[t]}}),e.title=r.getString(e.title),e}}}t.$inject=["gettext"],angular.module("c8y.custom-branding").provider("c8yBrandingConfigurationUi",t)})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function _slicedToArray(n,t){return _arrayWithHoles(n)||_iterableToArrayLimit(n,t)||_unsupportedIterableToArray(n,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(n,t){var r;if(n)return"string"==typeof n?_arrayLikeToArray(n,t):"Map"===(r="Object"===(r={}.toString.call(n).slice(8,-1))&&n.constructor?n.constructor.name:r)||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(n,t):void 0}function _arrayLikeToArray(n,t){(null==t||t>n.length)&&(t=n.length);for(var r=0,e=Array(t);r<t;r++)e[r]=n[r];return e}function _iterableToArrayLimit(n,t){var r=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=r){var e,a,o,i,c=[],l=!0,u=!1;try{if(o=(r=r.call(n)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(e=o.call(r)).done)&&(c.push(e.value),c.length!==t);l=!0);}catch(n){u=!0,a=n}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}function _arrayWithHoles(n){if(Array.isArray(n))return n}(()=>{function n(r,i,n,e,t,a,o,p,c){var y=c.fileProperties,l=c.cookieBannerProperties,u=c.nonCssProperties;return{keyToCssVar:f,getFontFamilyCssVar:d,reset:function(){return s(),n.remove().then(function(){return i.remove()})},deploy:function(t){function r(n){_.assign(a,n)}function e(n){_.assign(o,n)}var a={},o={brandingCssVars:a};return r((e=>{var n=y.map(function(n){return n.key}).concat(u,l),a={};return _.keys(_.omit(e,n)).forEach(function(n){var t,r=e[n];_.isNumber(r)&&(t="px",/logo.*height/i.test(n)&&(t="%"),r="".concat(r).concat(t)),a[f(n)]=r}),a["navigator-font-family"]=d(a["navigator-font-family"]),a})(t)),e((n=>{var t,r={},e=(n.html_title&&(r.globalTitle=n.html_title),n["__import-font"]&&(t=n["__import-font"],r.extraCssUrls=[t]),_.pick(n,l));return e.cookieBannerDisabled&&l.forEach(function(n){e[n]=null}),r.cookieBanner=_.omit(e,"cookieBannerDisabled"),r})(t)),i.contextPath().then(function(n){return c=n,l=t,u=[],s={},f={},y.forEach(function(n){var t,r,e,a=n.key,o=n.cssVar,i=n.filename,n=n.option;l[a]&&(a=(n=>{for(var t=atob(n.split(",")[1]),n=_slicedToArray(n.split(",")[0].split(":")[1].split(";"),1)[0],r=new ArrayBuffer(t.length),e=new Uint8Array(r),a=0;a<t.length;a++)e[a]=t.charCodeAt(a);return new Blob([r],{type:n})})(l[a].fileSrc),e=a.type,t=_.find(["jpg","jpeg","svg","png","gif","webp","ico"],function(n){return new RegExp(n).test(e)}),r="?nocache=".concat(String(Math.random()).substr(2)),i="".concat(i,".").concat(t),o&&(s[o]="url(/apps/public/".concat(c,"/").concat(i).concat(r,")")),n&&(f[n]="/apps/public/".concat(c,"/").concat(i).concat(r)),u.push(p([a],i)))}),i.update(u).then(function(){return{cssVars:s,options:f}});var c,l,u,s,f}).then(function(n){var t=n.cssVars,n=n.options;r(t),e(n)}).then(function(){return n.save(o)}).then(s)},removeLegacyBrandedApplications:function(){return e.listByOwner().then(function(n){return n.filter(function(n){return n.manifest&&n.manifest.originalAppId&&n.manifest.originalActiveVersionId})}).then(function(n){return 0<n.length?t({status:"danger",title:o("Delete legacy branded applications"),body:o("Before applying new branding configuration, legacy branded applications must be deleted.")}).then(function(){return t=[],n.forEach(function(n){return t.push(e.remove(n))}),r.all(t);var t}).then(function(){return a.success(o("Legacy branded applications deleted."))},function(n){return a.danger(n)}):r.resolve()})}};function s(){window.localStorage.removeItem("OPTIONS")}function f(n){return c.cssVarMapping[n]||_.kebabCase(n)}function d(n){var t=c.fontFamilyCssVars;return"var(--".concat(t[n],")")}}n.$inject=["$q","c8yUiAssets","c8yPublicOptions","c8yApplication","c8yModal","c8yAlert","gettext","createFile","c8yBrandingMapping"],angular.module("c8y.custom-branding").factory("c8yBrandingDeploy",n)})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{function e(n,i,e,t,o,r){var a,c=this,s={generate:{title:e("Create applications"),flow:["beforeGenerate"],lastStep:"generateComplete",expectedDuration:120},preview:{title:e("Preview branding"),lastStep:"selectPreviewApp",init:function(){r.current().then(function(e){c.tenant=e.name}),t.preview().then(u)},flow:["waiting"],expectedDuration:15}};function l(){return t.state().then(u)}function u(e){var t=c.state;c.state=e,t&&t.RUNNING&&!e.RUNNING&&(0||(c.progress=100),i.cancel(c.fakeProgress),n(function(){return a.goTo(c.lastStep)},300)),t&&t.WAITING&&e.RUNNING&&(a.goTo("executing"),t=c.expectedDuration,t*=10,c.progress=0,c.fakeProgress=i(function(){c.progress+=1},t,100)),(e.RUNNING||e.WAITING)&&n(l,1e3)}_.assign(c,{$onInit:function(){var e=_.get(c,"resolve.process"),e=s[e];e&&(_.assign(c,_.pick(e,["title","lastStep","flow","expectedDuration"])),e.init)&&e.init();o.list().then(function(e){return _.filter(e,function(e){return"MARKET"===e.availability&&"management"===e.owner.tenant.id&&"HOSTED"===e.type&&!0===e.manifest._webpaas})}).then(function(e){c.applications=e})},generate:function(){a.goTo("waiting"),t.update().then(u)},setWizardController:function(e){a=e},$onDestroy:function(){i.cancel(c.fakeProgress)}})}e.$inject=["$timeout","$interval","gettext","c8yBrandingConfiguration","c8yApplication","c8yTenant"],angular.module("c8y.custom-branding").component("c8yBrandingProcessExecution",{templateUrl:":::PLUGIN_PATH:::/customBranding/brandingProcessExecution.html",controllerAs:"vm",controller:e,bindings:{modalInstance:"<",resolve:"<"}})})();
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
<c8y-wizard
|
|
2
|
-
on-dismiss="vm.modalInstance.dismiss()"
|
|
3
|
-
on-close="vm.finishProcess(path)"
|
|
4
|
-
get-controller="vm.setWizardController(controller)"
|
|
5
|
-
initial-flow="vm.flow"
|
|
6
|
-
>
|
|
7
|
-
<header class="text-white">
|
|
8
|
-
<div style="font-size: 62px;">
|
|
9
|
-
<span c8y-icon="paint-brush"></span>
|
|
10
|
-
</div>
|
|
11
|
-
<h4 class="text-uppercase m-0"
|
|
12
|
-
style="letter-spacing: 0.15em;"
|
|
13
|
-
>
|
|
14
|
-
{{ vm.title | translate }}
|
|
15
|
-
</h4>
|
|
16
|
-
</header>
|
|
17
|
-
|
|
18
|
-
<steps>
|
|
19
|
-
<c8y-wizard-step step-id="waiting">
|
|
20
|
-
<div style="font-size:6em; opacity:0.5" class="text-center p-24">
|
|
21
|
-
<span c8y-icon="spinner" class="icon-spin"></span>
|
|
22
|
-
</div>
|
|
23
|
-
</c8y-wizard-step>
|
|
24
|
-
|
|
25
|
-
<c8y-wizard-step step-id="executing">
|
|
26
|
-
<div style="padding:30px 20px">
|
|
27
|
-
<p class="text-center">
|
|
28
|
-
<strong translate>Process is being executed</strong>
|
|
29
|
-
</p>
|
|
30
|
-
<div class="progress">
|
|
31
|
-
<div
|
|
32
|
-
class="progress-bar active progress-bar-striped"
|
|
33
|
-
role="progressbar"
|
|
34
|
-
aria-valuenow="{{ vm.progress }}"
|
|
35
|
-
aria-valuemin="0"
|
|
36
|
-
aria-valuemax="100"
|
|
37
|
-
style="min-width: 2em;"
|
|
38
|
-
ng-style="{width: vm.progress + '%'}"
|
|
39
|
-
>
|
|
40
|
-
<span>{{ vm.progress | number: 0 }}%</span>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
</c8y-wizard-step>
|
|
45
|
-
|
|
46
|
-
<c8y-wizard-step step-id="selectPreviewApp">
|
|
47
|
-
<p class="text-center p-8" translate>
|
|
48
|
-
Select the application you would like to preview.
|
|
49
|
-
</p>
|
|
50
|
-
|
|
51
|
-
<div class="c8y-wizard-list-nav">
|
|
52
|
-
<a
|
|
53
|
-
class="list-group-item text-truncate"
|
|
54
|
-
target="_new"
|
|
55
|
-
ng-repeat="app in vm.applications"
|
|
56
|
-
ng-href="/apps/{{ app.contextPath }}?preview=branding_{{ vm.tenant }}Branding"
|
|
57
|
-
>
|
|
58
|
-
<c8y-app-icon app="app" class="app-icon"></c8y-app-icon>
|
|
59
|
-
<span ng-bind="app | humanizeAppName"></span>
|
|
60
|
-
</a>
|
|
61
|
-
</div>
|
|
62
|
-
|
|
63
|
-
<div class="c8y-wizard-footer">
|
|
64
|
-
<button
|
|
65
|
-
title="{{ 'Close' | translate }}"
|
|
66
|
-
class="btn btn-default"
|
|
67
|
-
ng-click="vm.modalInstance.dismiss()"
|
|
68
|
-
translate
|
|
69
|
-
>
|
|
70
|
-
Close
|
|
71
|
-
</button>
|
|
72
|
-
</div>
|
|
73
|
-
</c8y-wizard-step>
|
|
74
|
-
|
|
75
|
-
<c8y-wizard-step step-id="beforeGenerate">
|
|
76
|
-
<p class="text-center p-8" translate>
|
|
77
|
-
You are about to create branded versions of standard applications. This process takes up to 2 minutes.
|
|
78
|
-
</p>
|
|
79
|
-
<div class="c8y-wizard-footer">
|
|
80
|
-
<button
|
|
81
|
-
title="{{ 'Close' | translate }}"
|
|
82
|
-
class="btn btn-default"
|
|
83
|
-
ng-click="vm.modalInstance.dismiss()"
|
|
84
|
-
translate
|
|
85
|
-
>
|
|
86
|
-
Close
|
|
87
|
-
</button>
|
|
88
|
-
<button
|
|
89
|
-
title="{{ 'Create' | translate }}"
|
|
90
|
-
class="btn btn-default"
|
|
91
|
-
ng-click="vm.generate()"
|
|
92
|
-
translate
|
|
93
|
-
>
|
|
94
|
-
Create
|
|
95
|
-
</button>
|
|
96
|
-
</div>
|
|
97
|
-
</c8y-wizard-step>
|
|
98
|
-
|
|
99
|
-
<c8y-wizard-step step-id="generateComplete">
|
|
100
|
-
<div class="text-center text-success p-16"
|
|
101
|
-
style="font-size:6em; opacity:0.5"
|
|
102
|
-
>
|
|
103
|
-
<span c8y-icon="check-circle-o"></span>
|
|
104
|
-
</div>
|
|
105
|
-
<p class="text-center p-8" translate>
|
|
106
|
-
Standard applications created.
|
|
107
|
-
</p>
|
|
108
|
-
<div class="c8y-wizard-footer">
|
|
109
|
-
<button
|
|
110
|
-
title="{{ 'Done' | translate }}"
|
|
111
|
-
class="btn btn-default"
|
|
112
|
-
ng-click="vm.modalInstance.dismiss()"
|
|
113
|
-
translate
|
|
114
|
-
>
|
|
115
|
-
Done
|
|
116
|
-
</button>
|
|
117
|
-
</div>
|
|
118
|
-
</c8y-wizard-step>
|
|
119
|
-
</steps>
|
|
120
|
-
</c8y-wizard>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
angular.module("c8y.custom-branding",["c8y.ui-assets"]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{var _;try{_=!__WEBPACK__}catch(a){_=!1}angular.module("c8y.custom-branding").value("USE_BRANDING_MICROSERVICE",_)})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
angular.module("c8y.ui-assets",[]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{function n(n,t,i,o){var e="public-options";return{save:function(t){var e=r();return c().then(function(n){n=Object.assign(n,t),n=[(n=>(n=JSON.stringify(n),n=new Blob([n],{type:"application/json"}),o([n],"options.json")))(_.pickBy(n,function(n){return!_.isEmpty(n)}))];return i.update(e,n)})},read:c,remove:function(){var n=r();return i.remove(n)}};function r(){var n=e;return{name:n,contextPath:n,description:t("Application containing public options used by branding."),key:"".concat(n,"-key"),type:"HOSTED",manifest:{noAppSwitcher:!0}}}function c(){return n.get("/apps/public/".concat(e,"/options.json"),{silentError:!0}).then(function(n){return n.data},function(){return{}})}}n.$inject=["$http","gettext","c8yStaticAssets","createFile"],angular.module("c8y.ui-assets").factory("c8yPublicOptions",n)})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{function n(e,r,i,u,c){var a=function(t){return function(){var n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];return r.zipFiles(n).then(function(n){return c([n],"static-assets.zip")})}(1<arguments.length&&void 0!==arguments[1]?arguments[1]:[]).then(function(n){return u.uploadArchive(t,n).then(function(n){return n.data})}).then(function(n){return u.setActiveArchive(t,n)})};return{get:o,update:function(n,t){return o(n).then(function(n){return a(n,t)})},remove:function(t){return u.listByOwner().then(function(n){n=_.find(n,_.pick(t,["contextPath"]));return n&&u.remove(n)})}};function o(n){return u.listByOwner().then((t=n,function(n){return _.find(n,_.pick(t,["contextPath"]))||(n=t,e.all({currentTenant:i.current(),newApp:u.create(n).then(function(n){return n.data})}).then(function(n){var t=n.newApp;return i.addApplication({id:n.currentTenant.name},t).then(function(){return t})}))}));var t}}n.$inject=["$q","c8yZip","c8yTenant","c8yApplication","createFile"],angular.module("c8y.ui-assets").factory("c8yStaticAssets",n)})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{function t(n,t,e){return{contextPath:c,update:function(n){return r().then(function(t){return e.update(t,n)})},remove:function(){return r().then(function(t){return e.remove(t)})}};function c(){return t.current().then(function(t){return"ui-assets-".concat(t.name)})}function r(){return c().then(function(t){return{name:t,contextPath:t,description:n("Application containing static assets used by branding."),key:"".concat(t,"-key"),type:"HOSTED",manifest:{noAppSwitcher:!0}}})}}t.$inject=["gettext","c8yTenant","c8yStaticAssets"],angular.module("c8y.ui-assets").factory("c8yUiAssets",t)})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{function e(t,n,o,r,i,e,a,c,s,u){var l=this;function f(){e.current(!0).then(function(e){t.hasEmail=!!e.email,l.hasEmail=t.hasEmail,e.email||a.info(s("Provide your email address in the user settings to use the export functionality."))}),t.canScheduleExport=n.has("smartRulesSvc"),o.list().then(g)}function g(e){t.rows=_(e).sortBy("name").map(function(e){return{config:e,selected:!1}}).value(),t.paging=e.paging}function p(){return _(t.rows).filter("selected").map("config").flatten().value()}_.assign(l,{getSelectedConfigs:p}),_.assign(t,{rows:[],add:function(){i.path("/export/new")},detail:function(e){i.path("/export/".concat(e.id))},clone:function(e){i.path("/export/".concat(e.id,"/clone"))},remove:function(e){c({title:s("Delete configuration"),body:u.getString('You are about to delete the configuration "{{name}}". Do you want to proceed?',e),status:"danger",size:"sm",labels:{ok:s("Delete")}}).then(function(){return o.remove(e)}).then(f)},runExport:function(){var e=t.getSelectedConfigs();return r.requestExport(_.map(e,"id")).then(function(){a.success(s("Export request accepted, you will receive an email."))})},getSelectedConfigs:p,refresh:function(){t.paging.refresh().then(g)},scheduleExport:function(e){var t=n.get("smartRulesSvc");return o.getSmartRuleDefaults(e).then(function(e){return t.createInstanceWithUIByName("sendExportViaEmail",e)})}}),f()}e.$inject=["$scope","$injector","exportConfig","exportService","$location","c8yUser","c8yAlert","c8yModal","gettext","gettextCatalog"],angular.module("c8y.cockpit.export").controller("exportListCtrl",e)})();
|
package/export/views/list.html
DELETED
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
<div data-ng-controller="exportListCtrl as vm">
|
|
2
|
-
<c8y-ui-title-set title="'Exports' | translate"></c8y-ui-title-set>
|
|
3
|
-
<c8y-breadcrumbs-set>
|
|
4
|
-
<c8y-breadcrumbs-item
|
|
5
|
-
icon="c8y-report"
|
|
6
|
-
label="{{ 'Exports' | translate }}"
|
|
7
|
-
></c8y-breadcrumbs-item>
|
|
8
|
-
<c8y-breadcrumbs-item
|
|
9
|
-
icon="c8y-tools"
|
|
10
|
-
label="{{ 'Configuration' | translate }}"
|
|
11
|
-
></c8y-breadcrumbs-item>
|
|
12
|
-
</c8y-breadcrumbs-set>
|
|
13
|
-
|
|
14
|
-
<c8y-ui-action-bar-set>
|
|
15
|
-
<button
|
|
16
|
-
class="btn btn-link"
|
|
17
|
-
title="{{ 'Export' | translate }}"
|
|
18
|
-
type="button"
|
|
19
|
-
ng-click="runExport()"
|
|
20
|
-
ng-disabled="!vm.hasEmail || vm.getSelectedConfigs().length === 0"
|
|
21
|
-
>
|
|
22
|
-
<i c8y-icon="data-export"></i>
|
|
23
|
-
{{ 'Export' | translate }}
|
|
24
|
-
</button>
|
|
25
|
-
|
|
26
|
-
<button
|
|
27
|
-
class="btn btn-link"
|
|
28
|
-
title="{{ 'Add export' | translate }}"
|
|
29
|
-
type="button"
|
|
30
|
-
data-ng-click="add()"
|
|
31
|
-
>
|
|
32
|
-
<i c8y-icon="plus-circle"></i>
|
|
33
|
-
{{ 'Add export' | translate }}
|
|
34
|
-
</button>
|
|
35
|
-
|
|
36
|
-
<c8y-refresh-btn></c8y-refresh-btn>
|
|
37
|
-
</c8y-ui-action-bar-set>
|
|
38
|
-
|
|
39
|
-
<c8y-help src="/docs/cockpit/exports/#managing-exports"></c8y-help>
|
|
40
|
-
|
|
41
|
-
<div class="c8y-list__group">
|
|
42
|
-
<div
|
|
43
|
-
class="page-sticky-header c8y-list__item hidden-xs"
|
|
44
|
-
ng-if="rows.length > 0"
|
|
45
|
-
>
|
|
46
|
-
<div class="c8y-list__item__block">
|
|
47
|
-
<div class="c8y-list__item__check">
|
|
48
|
-
<button
|
|
49
|
-
class="btn-help btn-help--sm"
|
|
50
|
-
aria-label="{{ 'Help' | translate }}"
|
|
51
|
-
type="button"
|
|
52
|
-
uib-popover-html="'You will receive an email with the download links for the selected exports.' | translate"
|
|
53
|
-
popover-append-to-body="true"
|
|
54
|
-
popover-placement="right"
|
|
55
|
-
popover-trigger="'focus'"
|
|
56
|
-
></button>
|
|
57
|
-
</div>
|
|
58
|
-
<div class="c8y-list__item__icon">
|
|
59
|
-
<i class="p-l-8"></i>
|
|
60
|
-
</div>
|
|
61
|
-
|
|
62
|
-
<div class="c8y-list__item__body">
|
|
63
|
-
<div class="content-flex-60">
|
|
64
|
-
<div class="col-4">
|
|
65
|
-
{{ 'Name' | translate }}
|
|
66
|
-
</div>
|
|
67
|
-
<div class="col-4">
|
|
68
|
-
{{ 'File type' | translate }}
|
|
69
|
-
</div>
|
|
70
|
-
<span class="col-4">
|
|
71
|
-
{{ 'Time range' | translate }}
|
|
72
|
-
</span>
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
<div class="c8y-list__item--empty-actions"></div>
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
|
|
79
|
-
<div
|
|
80
|
-
class="c8y-list__item"
|
|
81
|
-
ng-repeat="row in rows | orderBy:'config.name'"
|
|
82
|
-
>
|
|
83
|
-
<div class="c8y-list__item__block">
|
|
84
|
-
<div class="c8y-list__item__check p-r-4">
|
|
85
|
-
<label class="c8y-checkbox input-sm">
|
|
86
|
-
<input
|
|
87
|
-
title="{{ 'Select' | translate }}"
|
|
88
|
-
id="select"
|
|
89
|
-
type="checkbox"
|
|
90
|
-
ng-model="row.selected"
|
|
91
|
-
ng-change="updateOutput()"
|
|
92
|
-
/>
|
|
93
|
-
<span></span>
|
|
94
|
-
<span
|
|
95
|
-
class="sr-only"
|
|
96
|
-
for="select"
|
|
97
|
-
translate
|
|
98
|
-
>
|
|
99
|
-
Select
|
|
100
|
-
</span>
|
|
101
|
-
</label>
|
|
102
|
-
</div>
|
|
103
|
-
|
|
104
|
-
<div
|
|
105
|
-
class="c8y-list__item__icon"
|
|
106
|
-
ng-click="detail(row.config)"
|
|
107
|
-
>
|
|
108
|
-
<i
|
|
109
|
-
class="p-l-0"
|
|
110
|
-
ng-class="{
|
|
111
|
-
'dlt-c8y-icon-file-text-o': row.config.exportType === 'csv',
|
|
112
|
-
'dlt-c8y-icon-file-excel-o': row.config.exportType === 'vnd.ms-excel'
|
|
113
|
-
}"
|
|
114
|
-
title="{{
|
|
115
|
-
row.config.exportType === 'csv'
|
|
116
|
-
? 'CSV file'
|
|
117
|
-
: row.config.exportType === 'vnd.ms-excel'
|
|
118
|
-
? 'XLS file'
|
|
119
|
-
: ''
|
|
120
|
-
}}"
|
|
121
|
-
></i>
|
|
122
|
-
</div>
|
|
123
|
-
|
|
124
|
-
<div
|
|
125
|
-
class="c8y-list__item__body"
|
|
126
|
-
ng-click="detail(row.config)"
|
|
127
|
-
>
|
|
128
|
-
<div class="content-flex-60">
|
|
129
|
-
<div class="col-4">
|
|
130
|
-
<span title="{{ row.config.name }}">
|
|
131
|
-
{{ row.config.name }}
|
|
132
|
-
</span>
|
|
133
|
-
</div>
|
|
134
|
-
<div class="col-4">
|
|
135
|
-
<span
|
|
136
|
-
title="{{
|
|
137
|
-
row.config.exportType === 'csv'
|
|
138
|
-
? 'CSV'
|
|
139
|
-
: row.config.exportType === 'vnd.ms-excel'
|
|
140
|
-
? 'XLS'
|
|
141
|
-
: ''
|
|
142
|
-
}}"
|
|
143
|
-
>
|
|
144
|
-
{{
|
|
145
|
-
row.config.exportType === 'csv'
|
|
146
|
-
? 'CSV'
|
|
147
|
-
: row.config.exportType === 'vnd.ms-excel'
|
|
148
|
-
? 'XLS'
|
|
149
|
-
: ''
|
|
150
|
-
}}
|
|
151
|
-
</span>
|
|
152
|
-
</div>
|
|
153
|
-
<div class="col-4">
|
|
154
|
-
<span ng-show="::row.config.queryParameters.dateType == 'LAST_24HOURS'">
|
|
155
|
-
<i
|
|
156
|
-
class="m-r-4"
|
|
157
|
-
c8y-icon="calendar"
|
|
158
|
-
></i>
|
|
159
|
-
<translate>Last 24 hours</translate>
|
|
160
|
-
</span>
|
|
161
|
-
<span ng-show="::row.config.queryParameters.dateType == 'LAST_7DAYS'">
|
|
162
|
-
<i
|
|
163
|
-
class="m-r-4"
|
|
164
|
-
c8y-icon="calendar"
|
|
165
|
-
></i>
|
|
166
|
-
<translate>Last 7 days</translate>
|
|
167
|
-
</span>
|
|
168
|
-
<span ng-show="::row.config.queryParameters.dateType == 'LAST_30DAYS'">
|
|
169
|
-
<i
|
|
170
|
-
class="m-r-4"
|
|
171
|
-
c8y-icon="calendar"
|
|
172
|
-
></i>
|
|
173
|
-
<translate>Last 30 days</translate>
|
|
174
|
-
</span>
|
|
175
|
-
<span ng-show="::row.config.queryParameters.dateType == 'LAST_WEEK'">
|
|
176
|
-
<i
|
|
177
|
-
class="m-r-4"
|
|
178
|
-
c8y-icon="calendar"
|
|
179
|
-
></i>
|
|
180
|
-
<translate>Last week</translate>
|
|
181
|
-
</span>
|
|
182
|
-
<span ng-show="::row.config.queryParameters.dateType == 'LAST_MONTH'">
|
|
183
|
-
<i
|
|
184
|
-
class="m-r-4"
|
|
185
|
-
c8y-icon="calendar"
|
|
186
|
-
></i>
|
|
187
|
-
<translate>Last month</translate>
|
|
188
|
-
</span>
|
|
189
|
-
<span ng-show="::row.config.queryParameters.dateType == 'LAST_YEAR'">
|
|
190
|
-
<i
|
|
191
|
-
class="m-r-4"
|
|
192
|
-
c8y-icon="calendar"
|
|
193
|
-
></i>
|
|
194
|
-
<translate>Last year</translate>
|
|
195
|
-
</span>
|
|
196
|
-
<span ng-show="::row.config.queryParameters.dateType == 'CUSTOM'">
|
|
197
|
-
<i
|
|
198
|
-
class="m-r-4"
|
|
199
|
-
c8y-icon="calendar"
|
|
200
|
-
></i>
|
|
201
|
-
<span ng-show="::row.config.queryParameters.from">
|
|
202
|
-
<label class="text-label-small">{{ 'From`date`' | translate }}</label>
|
|
203
|
-
{{ row.config.queryParameters.from | absoluteDate }}
|
|
204
|
-
</span>
|
|
205
|
-
<span ng-show="::row.config.queryParameters.to">
|
|
206
|
-
<label class="text-label-small">{{ 'To`date`' | translate }}</label>
|
|
207
|
-
{{ row.config.queryParameters.to | absoluteDate }}
|
|
208
|
-
</span>
|
|
209
|
-
</span>
|
|
210
|
-
</div>
|
|
211
|
-
</div>
|
|
212
|
-
</div>
|
|
213
|
-
|
|
214
|
-
<div class="c8y-list__item__actions">
|
|
215
|
-
<div
|
|
216
|
-
uib-dropdown
|
|
217
|
-
is-open="menuOpen"
|
|
218
|
-
>
|
|
219
|
-
<button
|
|
220
|
-
class="dropdown-toggle c8y-dropdown"
|
|
221
|
-
title="{{ 'Actions' | translate }}"
|
|
222
|
-
aria-haspopup="true"
|
|
223
|
-
type="button"
|
|
224
|
-
uib-dropdown-toggle
|
|
225
|
-
data-cy="Actions"
|
|
226
|
-
>
|
|
227
|
-
<i c8y-icon="ellipsis-v"></i>
|
|
228
|
-
</button>
|
|
229
|
-
<ul
|
|
230
|
-
class="dropdown-menu dropdown-menu-right"
|
|
231
|
-
uib-dropdown-menu
|
|
232
|
-
>
|
|
233
|
-
<li>
|
|
234
|
-
<button
|
|
235
|
-
title="{{ 'Edit' | translate }}"
|
|
236
|
-
type="button"
|
|
237
|
-
data-cy="Edit"
|
|
238
|
-
ng-click="detail(row.config)"
|
|
239
|
-
>
|
|
240
|
-
<i c8y-icon="pencil"></i>
|
|
241
|
-
{{ 'Edit' | translate }}
|
|
242
|
-
</button>
|
|
243
|
-
</li>
|
|
244
|
-
<li>
|
|
245
|
-
<button
|
|
246
|
-
title="{{ 'Duplicate' | translate }}"
|
|
247
|
-
type="button"
|
|
248
|
-
data-cy="Duplicate"
|
|
249
|
-
ng-click="clone(row.config)"
|
|
250
|
-
>
|
|
251
|
-
<i c8y-icon="clone"></i>
|
|
252
|
-
{{ 'Duplicate' | translate }}
|
|
253
|
-
</button>
|
|
254
|
-
</li>
|
|
255
|
-
<li>
|
|
256
|
-
<button
|
|
257
|
-
title="{{ 'Delete' | translate }}"
|
|
258
|
-
type="button"
|
|
259
|
-
data-cy="Delete"
|
|
260
|
-
ng-click="remove(row.config)"
|
|
261
|
-
>
|
|
262
|
-
<i c8y-icon="delete"></i>
|
|
263
|
-
{{ 'Delete' | translate }}
|
|
264
|
-
</button>
|
|
265
|
-
</li>
|
|
266
|
-
</ul>
|
|
267
|
-
</div>
|
|
268
|
-
</div>
|
|
269
|
-
</div>
|
|
270
|
-
</div>
|
|
271
|
-
</div>
|
|
272
|
-
|
|
273
|
-
<!-- Empty state -->
|
|
274
|
-
<c8y-ui-empty-state
|
|
275
|
-
[icon]="'graph-report'"
|
|
276
|
-
[title]="'No exports to display.' | translate"
|
|
277
|
-
[subtitle]="'Add your first export using the button below.' | translate"
|
|
278
|
-
ng-if="rows.length === 0"
|
|
279
|
-
>
|
|
280
|
-
<p>
|
|
281
|
-
<button
|
|
282
|
-
class="btn btn-primary"
|
|
283
|
-
title="{{ 'Add export' | translate }}"
|
|
284
|
-
type="button"
|
|
285
|
-
data-ng-click="add()"
|
|
286
|
-
>
|
|
287
|
-
{{ 'Add export' | translate }}
|
|
288
|
-
</button>
|
|
289
|
-
</p>
|
|
290
|
-
<p c8y-guide-docs>
|
|
291
|
-
<small translate>
|
|
292
|
-
Find out more in the
|
|
293
|
-
<a c8y-guide-href="/docs/cockpit/managing-exports">user documentation</a>
|
|
294
|
-
.
|
|
295
|
-
</small>
|
|
296
|
-
</p>
|
|
297
|
-
</c8y-ui-empty-state>
|
|
298
|
-
</div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function RemoteAccessClientsService(e,t){var n,s;this.STATUSES={CONNECTING:"CONNECTING",CONNECTED:"CONNECTED",DISCONNECTED:"DISCONNECTED",ERROR:"ERROR"},this.getConnectionStatus=function(){return s.status||this.STATUSES.DISCONNECTED},this.setConnectionStatus=function(e){s.status=e,t.setItem(n,JSON.stringify(s))},this.getParams=function(){return s},this.loadCss=function(e){var t=document.createElement("link");t.href=e,t.type="text/css",t.rel="stylesheet",t.media="screen,print",document.getElementsByTagName("head")[0].appendChild(t)},this.loadJs=function(e){var t=document.createElement("script");t.src=e,document.getElementsByTagName("head")[0].appendChild(t)},n=(e=>{var t={},n=/[?&]?([^=]+)=([^&]*)/g;for(e=e.split("+").join(" ");a=n.exec(e);){var s=a[1],a=a[2];t[decodeURIComponent(s)]=decodeURIComponent(a)}return t})(e.search).paramsId;try{s=JSON.parse(t.getItem(n))}catch(e){console.err("Cannot load connection parameters!")}}
|