diff --git a/src/app/modules/languages/cn.js b/src/app/modules/languages/cn.js index 932c7b99..43f7baf9 100644 --- a/src/app/modules/languages/cn.js +++ b/src/app/modules/languages/cn.js @@ -260,6 +260,7 @@ function ChineseProvider($translateProvider) { MOSAIC_DEFINITION_REQUIRES_LEVY: '需要征费', MOSAIC_DEFINITION_LEVY_LIMITATION: 'UI限制: 当前仅允许已拥有的马赛克作为征费。', MOSAIC_DEFINITION_LEVY_SELECT_MOSAIC: '选择征费马赛克', + MOSAIC_DEFINITION_LEVY_IS_NEW_MOSAIC: '使用新的马赛克征税', MOSAIC_DEFINITION_LEVY_ADDRESS: '征费地址', MOSAIC_DEFINITION_LEVY_FEE_TYPE: '征费类型', MOSAIC_DEFINITION_LEVY_FEE_TYPE_1: '绝对值', diff --git a/src/app/modules/languages/de.js b/src/app/modules/languages/de.js index 895d6c72..03b51efc 100644 --- a/src/app/modules/languages/de.js +++ b/src/app/modules/languages/de.js @@ -263,6 +263,7 @@ function GermanProvider($translateProvider) { MOSAIC_DEFINITION_REQUIRES_LEVY: 'Benötigt Levy', MOSAIC_DEFINITION_LEVY_LIMITATION: 'Einschränkung der UI: Momentan können nur Mosaike als Levy verwendet werden die sich im eigenen Besitz befinden.', MOSAIC_DEFINITION_LEVY_SELECT_MOSAIC: 'Levy Mosaik auswählen', + MOSAIC_DEFINITION_LEVY_IS_NEW_MOSAIC: 'Das neue Mosaik benutzen', MOSAIC_DEFINITION_LEVY_ADDRESS: 'Levy Adresse', MOSAIC_DEFINITION_LEVY_FEE_TYPE: 'Gebührentyp', MOSAIC_DEFINITION_LEVY_FEE_TYPE_1: 'Absolut', diff --git a/src/app/modules/languages/en.js b/src/app/modules/languages/en.js index b7748e01..ddae5d65 100644 --- a/src/app/modules/languages/en.js +++ b/src/app/modules/languages/en.js @@ -262,6 +262,7 @@ function EnglishProvider($translateProvider) { MOSAIC_DEFINITION_REQUIRES_LEVY: 'Requires levy', MOSAIC_DEFINITION_LEVY_LIMITATION: 'UI-limitation: right now, only owned mosaics can be used as a levy.', MOSAIC_DEFINITION_LEVY_SELECT_MOSAIC: 'Select levy mosaic', + MOSAIC_DEFINITION_LEVY_IS_NEW_MOSAIC: 'Use the new mosaic for levy', MOSAIC_DEFINITION_LEVY_ADDRESS: 'Levy address', MOSAIC_DEFINITION_LEVY_FEE_TYPE: 'Fee type', MOSAIC_DEFINITION_LEVY_FEE_TYPE_1: 'Absolute', diff --git a/src/app/modules/languages/es.js b/src/app/modules/languages/es.js index e768ffcc..a3a947cd 100644 --- a/src/app/modules/languages/es.js +++ b/src/app/modules/languages/es.js @@ -259,6 +259,7 @@ function SpanishProvider($translateProvider) { MOSAIC_DEFINITION_REQUIRES_LEVY: 'Impuesto requerido', MOSAIC_DEFINITION_LEVY_LIMITATION: 'Limitación de la interfaz de usuario: en este momento, solo los mosaicos en propiedad pueden ser usados como un impuesto.', MOSAIC_DEFINITION_LEVY_SELECT_MOSAIC: 'Seleccionar el mosaico del impuesto', + MOSAIC_DEFINITION_LEVY_IS_NEW_MOSAIC: 'Usar el mosaico nuevo', MOSAIC_DEFINITION_LEVY_ADDRESS: 'Dirección de impuesto', MOSAIC_DEFINITION_LEVY_FEE_TYPE: 'Tipo de tarifa', MOSAIC_DEFINITION_LEVY_FEE_TYPE_1: 'Fija', diff --git a/src/app/modules/languages/pl.js b/src/app/modules/languages/pl.js index 73ef6470..d6c9b49f 100644 --- a/src/app/modules/languages/pl.js +++ b/src/app/modules/languages/pl.js @@ -263,6 +263,7 @@ function PolishProvider($translateProvider) { MOSAIC_DEFINITION_REQUIRES_LEVY: 'Wymaga specjalnej opłaty', MOSAIC_DEFINITION_LEVY_LIMITATION: 'Ogranieczenie UI: obecnie tylko posiadane mozaiki mogą zostać użyte do specjalnej opłaty.', MOSAIC_DEFINITION_LEVY_SELECT_MOSAIC: 'Wybierz mozaikę do specjalnej opłaty', + MOSAIC_DEFINITION_LEVY_IS_NEW_MOSAIC: 'Użyj nowej mozaiki do opłaty specjalnej', MOSAIC_DEFINITION_LEVY_ADDRESS: 'Adres specjalej opłaty', MOSAIC_DEFINITION_LEVY_FEE_TYPE: 'Typ opłaty', MOSAIC_DEFINITION_LEVY_FEE_TYPE_1: 'Stała', diff --git a/src/app/modules/languages/ru.js b/src/app/modules/languages/ru.js index 6a81b173..eaaf3681 100644 --- a/src/app/modules/languages/ru.js +++ b/src/app/modules/languages/ru.js @@ -263,6 +263,7 @@ function RussianProvider($translateProvider) { MOSAIC_DEFINITION_REQUIRES_LEVY: 'Требовать налог', MOSAIC_DEFINITION_LEVY_LIMITATION: 'UI-ограничение: в настоящее время в качестве налога допускается только мозайка.', MOSAIC_DEFINITION_LEVY_SELECT_MOSAIC: 'Выберите облагаемую налогом мозайку', + MOSAIC_DEFINITION_LEVY_IS_NEW_MOSAIC: 'Используйте новую мозайку для комиссий', MOSAIC_DEFINITION_LEVY_ADDRESS: 'Номер счёта налоговой', MOSAIC_DEFINITION_LEVY_FEE_TYPE: 'Тип сбора', MOSAIC_DEFINITION_LEVY_FEE_TYPE_1: 'Фиксированный', diff --git a/src/app/modules/mosaics/create/createMosaic.controller.js b/src/app/modules/mosaics/create/createMosaic.controller.js index 5b96902d..cc2ab57f 100644 --- a/src/app/modules/mosaics/create/createMosaic.controller.js +++ b/src/app/modules/mosaics/create/createMosaic.controller.js @@ -20,6 +20,9 @@ class createMosaicCtrl { //// End dependencies region //// + // Export Math into template + this.Math = Math; + // Initialization this.init(); } @@ -40,6 +43,8 @@ class createMosaicCtrl { this.formData.multisigAccount = this._DataStore.account.metaData.meta.cosignatoryOf.length == 0 ? '' : this._DataStore.account.metaData.meta.cosignatoryOf[0]; // Has no levy by default this.hasLevy = false; + // Levy will be in the newly created mosaic + this.levyInNewlyCreatedMosaic = false; // Mosaics owned names for current account this.currentAccountMosaicNames = ''; // Selected mosaic from view @@ -65,7 +70,7 @@ class createMosaicCtrl { /** * Set name to lowercase and check it */ - processMosaicName(){ + processMosaicName() { // Lowercase mosaic name this.formData.mosaicName = this._$filter('lowercase')(this.formData.mosaicName); // Check mosaic name validity @@ -73,6 +78,7 @@ class createMosaicCtrl { this._Alert.invalidMosaicName(); return; } + this.updateLevyMosaic(this.hasLevy, this.levyInNewlyCreatedMosaic); this.prepareTransaction(); } @@ -99,18 +105,43 @@ class createMosaicCtrl { /** * Update levy mosaic data * - * @note: Used in view (ng-update) on hasLevy and selectedMosaic changes + * @note: Used in view (ng-update) on hasLevy, selectedMosaic and levyInNewlyCreatedMosaic changes * - * @param {boolean} val - true or false + * @param {boolean} _hasLevy - true or false + * @param {boolean} _levyInNewlyCreatedMosaic - true or false */ - updateLevyMosaic(val) { - if (val) { - this.formData.levy.mosaic = this.mosaicOwned[this.selectedMosaic].mosaicId; + updateLevyMosaic(_hasLevy, _levyInNewlyCreatedMosaic) { + if (_hasLevy) { + if (_levyInNewlyCreatedMosaic) { + this.formData.levy.mosaic = { + // create mosaicId structure by hand + "namespaceId": this.formData.namespaceParent.fqn, + "name": this.formData.mosaicName + }; + } else { + this.formData.levy.mosaic = this.mosaicOwned[this.selectedMosaic].mosaicId; + } } else { this.formData.levy.mosaic = null; } } + /** + * Gets divisibility of selectedMosaic + * + * @note: used in view in output formatting and calculations for levy examples + */ + selectedMosaicDivisibility() { + var props = this._DataStore.mosaic.metaData[this.selectedMosaic].mosaicDefinition.properties; + var proplen = props.length; + for(var i=0;i - @@ -144,7 +144,7 @@

{{ 'MOSAIC_DEFINITION_MOSAIC_PROPERTIES' | translate }}

- + @@ -190,13 +190,21 @@

{{ 'GENERAL_LEVY' | translate }}

+ +
+
+ + +
+
- + {{ $ctrl.formData.namespaceParent.fqn }}:{{ $ctrl.formData.mosaicName }} +
@@ -220,7 +228,16 @@

{{ 'GENERAL_LEVY' | translate }}

- + + + + + + + + + +
@@ -245,22 +262,40 @@

{{ 'GENERAL_LEVY' | translate }}