From 8d4d1070a45c815ab17bccab7460e22ba5fc8f43 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Mon, 10 Jun 2019 17:05:20 +0300 Subject: [PATCH] Add translation, help, refactorin --- ui/package.json | 2 +- ui/src/app/api/entity.service.js | 2 +- ui/src/app/help/help-links.constant.js | 1 + .../import-dialog-csv.controller.js | 13 +++- .../import-export/import-dialog-csv.tpl.html | 44 ++++++++------ .../import-export/import-export.service.js | 4 +- .../table-columns-assignment.tpl.html | 12 ++-- ui/src/app/locale/locale.constant-en_US.json | 59 +++++++++++-------- 8 files changed, 82 insertions(+), 55 deletions(-) diff --git a/ui/package.json b/ui/package.json index ed54580b19..6159033d2c 100644 --- a/ui/package.json +++ b/ui/package.json @@ -64,7 +64,7 @@ "jstree-bootstrap-theme": "^1.0.1", "leaflet": "^1.0.3", "leaflet-providers": "^1.1.17", - "material-steppers": "git://github.com/vvlladd28/material-steppers.git#master", + "material-steppers": "git://github.com/thingsboard/material-steppers.git#master", "material-ui": "^0.16.1", "material-ui-number-input": "^5.0.16", "md-color-picker": "0.2.6", diff --git a/ui/src/app/api/entity.service.js b/ui/src/app/api/entity.service.js index df821368c2..e335a7877d 100644 --- a/ui/src/app/api/entity.service.js +++ b/ui/src/app/api/entity.service.js @@ -1159,7 +1159,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device break; } findIdEntity.then(function success(response) { - saveEntityRelarion(response.id, entityType, entityParameters, config).then(function success() { + saveEntityRelarion(entityType, response.id, entityParameters, config).then(function success() { statisticalInfo.update = { entity: 1 }; diff --git a/ui/src/app/help/help-links.constant.js b/ui/src/app/help/help-links.constant.js index 7f49496550..dbe96377e6 100644 --- a/ui/src/app/help/help-links.constant.js +++ b/ui/src/app/help/help-links.constant.js @@ -96,6 +96,7 @@ export default angular.module('thingsboard.help', []) assets: helpBaseUrl + "/docs/user-guide/ui/assets", devices: helpBaseUrl + "/docs/user-guide/ui/devices", entityViews: helpBaseUrl + "/docs/user-guide/ui/entity-views", + entitiesImport: helpBaseUrl + "/docs/user-guide/bulk-provisioning", dashboards: helpBaseUrl + "/docs/user-guide/ui/dashboards", users: helpBaseUrl + "/docs/user-guide/ui/users", widgetsBundles: helpBaseUrl + "/docs/user-guide/ui/widget-library#bundles", diff --git a/ui/src/app/import-export/import-dialog-csv.controller.js b/ui/src/app/import-export/import-dialog-csv.controller.js index 37f5caa74f..a7b5329205 100644 --- a/ui/src/app/import-export/import-dialog-csv.controller.js +++ b/ui/src/app/import-export/import-dialog-csv.controller.js @@ -16,7 +16,7 @@ import './import-dialog.scss'; /*@ngInject*/ -export default function ImportDialogCsvController($scope, $mdDialog, toast, importTitle, importFileLabel, entityType, importExport, types, $mdStepper) { +export default function ImportDialogCsvController($scope, $mdDialog, toast, importTitle, importFileLabel, entityType, importExport, types, $mdStepper, $timeout) { var vm = this; @@ -40,6 +40,7 @@ export default function ImportDialogCsvController($scope, $mdDialog, toast, impo vm.isLinear = true; vm.isAlternative = false; vm.isMobileStepText = true; + vm.isImportData = false; vm.parseData = []; @@ -171,6 +172,7 @@ export default function ImportDialogCsvController($scope, $mdDialog, toast, impo }); importExport.createMultiEntity(entitiesData, vm.entityType, vm.importParameters.isUpdate, config).then(function (response) { vm.statistical = response; + vm.isImportData = false; $mdStepper('import-stepper').next(); }); } @@ -186,7 +188,9 @@ export default function ImportDialogCsvController($scope, $mdDialog, toast, impo switch (step) { case 1: steppers.back(); - vm.theFormStep1.$setDirty(); + $timeout(function () { + vm.theFormStep1.$setDirty(); + }); break; default: steppers.back(); @@ -203,8 +207,10 @@ export default function ImportDialogCsvController($scope, $mdDialog, toast, impo case 3: parseData = parseCSV(vm.importData); if (parseData === -1) { - clearFile(); steppers.back(); + $timeout(function () { + clearFile(); + }); } else { createColumnsData(parseData); steppers.next(); @@ -212,6 +218,7 @@ export default function ImportDialogCsvController($scope, $mdDialog, toast, impo break; case 4: steppers.next(); + vm.isImportData = true; addEntities(parseData, vm.columnsParam); break; case 6: diff --git a/ui/src/app/import-export/import-dialog-csv.tpl.html b/ui/src/app/import-export/import-dialog-csv.tpl.html index b10d1f6da9..50c8f83d7b 100644 --- a/ui/src/app/import-export/import-dialog-csv.tpl.html +++ b/ui/src/app/import-export/import-dialog-csv.tpl.html @@ -15,13 +15,14 @@ limitations under the License. --> - +

{{ vm.importTitle }}

- +
@@ -31,7 +32,7 @@ - +
@@ -78,27 +79,28 @@ - Continue + {{ 'action.continue' | translate }} - +
- + {{delimiter.value}} - - First line contains column names + + {{ 'import.csv-first-line-header' | translate }} - Update attributes/telemetry + {{ 'import.csv-update-data' | translate }}
@@ -111,12 +113,12 @@ {{ 'action.cancel' | translate }} - Continue + {{ 'action.continue' | translate }}
- + - Continue + {{ 'action.continue' | translate }} - + - + - +
-

{{vm.statistical.create.entity}} new entities were successfully created.

-

{{vm.statistical.update.entity}} entities were successfully updated.

-

There was an error creating {{vm.statistical.error.entity}} entities.

+

import.message.create-entities

+

import.message.update-entities

+

import.message.error-entities

- Ok + {{ 'action.ok' | translate }}
diff --git a/ui/src/app/import-export/import-export.service.js b/ui/src/app/import-export/import-export.service.js index c7f83a9b15..f86c79c148 100644 --- a/ui/src/app/import-export/import-export.service.js +++ b/ui/src/app/import-export/import-export.service.js @@ -802,7 +802,7 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, let csvlines = csvdata.split(/[\r\n]+/); let csvheaders = splitCSV(csvlines[0], delim); if (csvheaders.length < 2) { - toast.showError($translate.instant('entity.import-csv-number-columns-error')); + toast.showError($translate.instant('import.import-csv-number-columns-error')); return -1; } let csvrows = header ? csvlines.slice(1, csvlines.length) : csvlines; @@ -819,7 +819,7 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, let rowitems = splitCSV(row, delim); if (rowitems.length !== result.headers.length) { - toast.showError($translate.instant('entity.import-csv-invalid-format-error', {line: (header ? result.rows.length + 2: result.rows.length + 1)})); + toast.showError($translate.instant('import.import-csv-invalid-format-error', {line: (header ? result.rows.length + 2: result.rows.length + 1)})); return -1; } for (let i = 0; i < rowitems.length; i++) { diff --git a/ui/src/app/import-export/table-columns-assignment.tpl.html b/ui/src/app/import-export/table-columns-assignment.tpl.html index 66c34c7ea7..f00a08251c 100644 --- a/ui/src/app/import-export/table-columns-assignment.tpl.html +++ b/ui/src/app/import-export/table-columns-assignment.tpl.html @@ -20,9 +20,9 @@   - Example value data - Column type - Name attributes/telemetry + {{ 'import.column-example' | translate }} + {{ 'import.column-type.column-type' | translate }} + {{ 'import.column-key' | translate }} @@ -31,7 +31,7 @@ {{column.sampleData}} + aria-label="{{ 'import.column-type.column-type' | translate }}"> {{type.name | translate}} @@ -43,9 +43,9 @@ column.type != vm.columnTypes.type.value && column.type != vm.columnTypes.accessToken.value"> + aria-label="{{ 'import.column-value' | translate }}"> diff --git a/ui/src/app/locale/locale.constant-en_US.json b/ui/src/app/locale/locale.constant-en_US.json index 380ea9edfe..02ce0ca139 100644 --- a/ui/src/app/locale/locale.constant-en_US.json +++ b/ui/src/app/locale/locale.constant-en_US.json @@ -48,7 +48,8 @@ "paste-reference": "Paste reference", "import": "Import", "export": "Export", - "share-via": "Share via {{provider}}" + "share-via": "Share via {{provider}}", + "continue": "Continue" }, "aggregation": { "aggregation": "Aggregation", @@ -778,27 +779,7 @@ "details": "Entity details", "no-entities-prompt": "No entities found", "no-data": "No data to display", - "columns-to-display": "Columns to Display", - "import-csv-number-columns-error": "A file should contain at least two columns", - "import-csv-invalid-format-error": "Invalid file format. Line: '{{line}}'" - }, - "entity-group": { - "column-value": "Value", - "column-title": "Title", - "column-type": { - "column-type": "Column type", - "client-attribute": "Client attribute", - "shared-attribute": "Shared attribute", - "server-attribute": "Server attribute", - "timeseries": "Timeseries", - "entity-field": "Entity field", - "access-token": "Access token" - }, - "entity-field": { - "name": "Name", - "type": "Type", - "assigned_customer": "Assigned Customer" - } + "columns-to-display": "Columns to Display" }, "entity-view": { "entity-view": "Entity View", @@ -1118,7 +1099,39 @@ "import": { "no-file": "No file selected", "drop-file": "Drop a JSON file or click to select a file to upload.", - "drop-file-csv": "Drop a CSV file or click to select a file to upload." + "drop-file-csv": "Drop a CSV file or click to select a file to upload.", + "column-value": "Value", + "column-title": "Title", + "column-example": "Example value data", + "column-key": "Attribute/telemetry key", + "csv-delimiter": "CSV delimiter", + "csv-first-line-header": "First line contains column names", + "csv-update-data": "Update attributes/telemetry", + "import-csv-number-columns-error": "A file should contain at least two columns", + "import-csv-invalid-format-error": "Invalid file format. Line: '{{line}}'", + "column-type": { + "name": "Name", + "type": "Type", + "column-type": "Column type", + "client-attribute": "Client attribute", + "shared-attribute": "Shared attribute", + "server-attribute": "Server attribute", + "timeseries": "Timeseries", + "entity-field": "Entity field", + "access-token": "Access token" + }, + "stepper-text":{ + "select-file": "Select a file", + "configuration": "Import configuration", + "column-type": "Select columns type", + "creat-entities": "Creating new entities", + "done": "Done" + }, + "message": { + "create-entities": "'{{count}}' new entities were successfully created.", + "update-entities": "'{{count}}' entities were successfully updated.", + "error-entities": "There was an error creating '{{count}}' entities." + } }, "item": { "selected": "Selected"