179 lines
9.4 KiB
HTML
179 lines
9.4 KiB
HTML
<!--
|
|
|
|
Copyright © 2016-2019 The Thingsboard Authors
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
|
|
-->
|
|
<md-dialog aria-label="{{ vm.importTitle | translate }}" class="tb-import-stepper" tb-help="'import-csv'" help-container-id="help-container">
|
|
<md-toolbar>
|
|
<div class="md-toolbar-tools">
|
|
<h2 translate>{{ vm.importTitle }}</h2>
|
|
<span flex></span>
|
|
<div id="help-container"></div>
|
|
<md-button class="md-icon-button" ng-click="vm.cancel()">
|
|
<ng-md-icon icon="close" aria-label="{{ 'dialog.close' | translate }}"></ng-md-icon>
|
|
</md-button>
|
|
</div>
|
|
</md-toolbar>
|
|
|
|
<span style="max-height: 5px; height: 5px;" flex></span>
|
|
<md-dialog-content>
|
|
<md-stepper id="import-stepper" md-mobile-step-text="vm.isMobileStepText" md-vertical="vm.isVertical"
|
|
md-linear="vm.isLinear" md-alternative="vm.isAlternative">
|
|
<md-step md-label="Select a file">
|
|
<md-step-body>
|
|
<form name="vm.theFormStep1">
|
|
<fieldset ng-disabled="$root.loading">
|
|
<div layout="column" layout-padding>
|
|
<div class="tb-container">
|
|
<label class="tb-label" translate>{{ vm.importFileLabel }}</label>
|
|
<div flow-init="{singleFile:true}"
|
|
flow-file-added="vm.fileAdded( $file )" class="tb-file-select-container">
|
|
<div class="tb-file-clear-container">
|
|
<md-button ng-click="vm.clearFile()"
|
|
class="tb-file-clear-btn md-icon-button md-primary"
|
|
aria-label="{{ 'action.remove' | translate }}">
|
|
<md-tooltip md-direction="top">
|
|
{{ 'action.remove' | translate }}
|
|
</md-tooltip>
|
|
<md-icon aria-label="{{ 'action.remove' | translate }}"
|
|
class="material-icons">
|
|
close
|
|
</md-icon>
|
|
</md-button>
|
|
</div>
|
|
<div class="alert tb-flow-drop" flow-drop>
|
|
<label for="select" translate>import.drop-file-csv</label>
|
|
<input class="file-input" flow-btn
|
|
flow-attrs="{accept:'.csv,application/csv,text/csv'}"
|
|
id="select">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div ng-show="!vm.fileName" translate>import.no-file</div>
|
|
<div ng-show="vm.fileName">{{ vm.fileName }}</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</form>
|
|
</md-step-body>
|
|
|
|
<md-step-actions layout="row">
|
|
<span flex></span>
|
|
<md-button ng-disabled="$root.loading" ng-click="vm.cancel()">
|
|
{{ 'action.cancel' | translate }}
|
|
</md-button>
|
|
<md-button class="md-primary md-raised"
|
|
ng-disabled="$root.loading || !vm.theFormStep1.$dirty || !vm.theFormStep1.$valid || !vm.importData"
|
|
ng-click="vm.nextStep(2);">
|
|
Continue
|
|
</md-button>
|
|
</md-step-actions>
|
|
</md-step>
|
|
|
|
<md-step md-label="Import configuration">
|
|
<md-step-body>
|
|
<div layout="column">
|
|
<md-input-container>
|
|
<label translate>CSV delimiter</label>
|
|
<md-select ng-model="vm.importParameters.delim">
|
|
<md-option ng-repeat="delimiter in vm.delimiters" ng-value="delimiter.key">
|
|
{{delimiter.value}}
|
|
</md-option>
|
|
</md-select>
|
|
</md-input-container>
|
|
<md-checkbox ng-model="vm.importParameters.isHeader" aria-label="First line contains column names">
|
|
First line contains column names
|
|
</md-checkbox>
|
|
<md-checkbox ng-model="vm.importParameters.isUpdate" aria-label="Update attributes/telemetry">
|
|
Update attributes/telemetry
|
|
</md-checkbox>
|
|
</div>
|
|
</md-step-body>
|
|
|
|
<md-step-actions layout="row">
|
|
<md-button ng-disabled="$root.loading" ng-click="vm.previousStep(1);">Back
|
|
</md-button>
|
|
<span flex></span>
|
|
<md-button ng-disabled="$root.loading" ng-click="vm.cancel()">
|
|
{{ 'action.cancel' | translate }}
|
|
</md-button>
|
|
<md-button class="md-primary md-raised" ng-disabled="$root.loading" ng-click="vm.nextStep(3);">
|
|
Continue
|
|
</md-button>
|
|
</md-step-actions>
|
|
</md-step>
|
|
|
|
<md-step md-label="Select columns type">
|
|
<md-step-body>
|
|
<form name="vm.theFormStep3">
|
|
<tb-table-columns-assignment columns="vm.columnsParam" the-form="vm.theFormStep3"
|
|
entity-type="vm.entityType"></tb-table-columns-assignment>
|
|
</form>
|
|
</md-step-body>
|
|
|
|
<md-step-actions layout="row">
|
|
<md-button ng-disabled="$root.loading" ng-click="vm.previousStep();">Back
|
|
</md-button>
|
|
<span flex></span>
|
|
<md-button ng-disabled="$root.loading" ng-click="vm.cancel()">
|
|
{{ 'action.cancel' | translate }}
|
|
</md-button>
|
|
<md-button class="md-primary md-raised"
|
|
ng-disabled="$root.loading || !vm.theFormStep3.$dirty || !vm.theFormStep3.$valid"
|
|
ng-click="vm.nextStep(4);">
|
|
Continue
|
|
</md-button>
|
|
</md-step-actions>
|
|
</md-step>
|
|
|
|
<md-step md-label="Creating new entities">
|
|
<md-step-body>
|
|
<md-progress-linear class="md-warn tb-import-progress" md-mode="determinate" value="{{vm.progressCreate}}"></md-progress-linear>
|
|
</md-step-body>
|
|
</md-step>
|
|
<md-step md-label="Done">
|
|
<md-step-body layout="column">
|
|
<div>
|
|
<p class="md-body-1" ng-if="vm.statistical.create && vm.statistical.create.device">{{vm.statistical.create.device}} new devices were successfully created.</p>
|
|
<p class="md-body-1" ng-if="vm.statistical.update && vm.statistical.update.device">{{vm.statistical.update.device}} devices were successfully updated.</p>
|
|
<p class="md-body-1" ng-if="vm.statistical.error && vm.statistical.error.device">There was an error creating {{vm.statistical.error.device}} devices.</p>
|
|
</div>
|
|
</md-step-body>
|
|
<md-step-actions layout="row">
|
|
<span flex></span>
|
|
<!--<md-button ng-disabled="$root.loading" ng-click="vm.cancel()">-->
|
|
<!--{{ 'action.cancel' | translate }}-->
|
|
<!--</md-button>-->
|
|
<md-button class="md-primary md-raised" ng-disabled="$root.loading" ng-click="vm.finishExport();">
|
|
Ok
|
|
</md-button>
|
|
</md-step-actions>
|
|
</md-step>
|
|
|
|
</md-stepper>
|
|
</md-dialog-content>
|
|
<!--<md-dialog-actions layout="row">-->
|
|
<!--<span flex></span>-->
|
|
<!--<md-button ng-disabled="$root.loading || !theForm.$dirty || !theForm.$valid || !vm.importData" type="submit"-->
|
|
<!--class="md-raised md-primary">-->
|
|
<!--{{ 'action.import' | translate }}-->
|
|
<!--</md-button>-->
|
|
<!--<md-button ng-disabled="$root.loading" ng-click="vm.cancel()" style="margin-right:20px;">{{ 'action.cancel'-->
|
|
<!--| translate }}-->
|
|
<!--</md-button>-->
|
|
<!--</md-dialog-actions>-->
|
|
</md-dialog>
|