1
0
Fork 0
forked from lthn/blockchain

comment for transaction length fix

This commit is contained in:
wildkif 2019-04-30 17:16:08 +03:00
parent 59569c5024
commit ff1e600ff2
11 changed files with 33 additions and 11 deletions

View file

@ -258,7 +258,8 @@
"AMOUNT_REQUIRED": "Amount is required.",
"AMOUNT_ZERO": "Amount is zero.",
"FEE_REQUIRED": "Fee is required.",
"FEE_MINIMUM": "Minimum fee: {{fee}}"
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached."
}
},
"HISTORY": {

View file

@ -567,8 +567,10 @@ input[type='checkbox'].style-checkbox {
}
.comment-tooltip {
overflow: auto;
word-break: break-word;
max-width: 50rem;
max-height: 25rem;
}
.ngx-contextmenu {

View file

@ -710,7 +710,7 @@ var TooltipDirective = /** @class */ (function () {
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "<div class=\"table\">\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.ID' | translate }}</span>\r\n <span class=\"cell key-value\" [style.flex-basis]=\"sizes[1] + 'px'\" (contextmenu)=\"variablesService.onContextMenuOnlyCopy($event, transaction.tx_hash)\" (click)=\"openInBrowser(transaction.tx_hash)\">{{transaction.tx_hash}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.SIZE' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\">{{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : {value: transaction.tx_blob_size} }}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.HEIGHT' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + 'px'\">{{transaction.height}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\">{{transaction.height === 0 ? 0 : variablesService.height_app - transaction.height}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.INPUTS' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + 'px'\" tooltip=\"{{inputs.join('\\n')}}\" placement=\"top\" tooltipClass=\"table-tooltip\" [delay]=\"500\" [showWhenNoOverflow]=\"false\">{{inputs.join(', ')}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.OUTPUTS' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\" tooltip=\"{{outputs.join('\\n')}}\" placement=\"top\" tooltipClass=\"table-tooltip\" [delay]=\"500\" [showWhenNoOverflow]=\"false\">{{outputs.join(', ')}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.COMMENT' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + sizes[2] + sizes[3] + 'px'\"\r\n tooltip=\"{{transaction.comment}}\" placement=\"top\" tooltipClass=\"table-tooltip comment-tooltip\" [delay]=\"500\" [showWhenNoOverflow]=\"false\"\r\n (contextmenu)=\"variablesService.onContextMenuOnlyCopy($event, transaction.comment)\">\r\n {{transaction.comment}}\r\n </span>\r\n </div>\r\n</div>\r\n"
module.exports = "<div class=\"table\">\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.ID' | translate }}</span>\r\n <span class=\"cell key-value\" [style.flex-basis]=\"sizes[1] + 'px'\" (contextmenu)=\"variablesService.onContextMenuOnlyCopy($event, transaction.tx_hash)\" (click)=\"openInBrowser(transaction.tx_hash)\">{{transaction.tx_hash}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.SIZE' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\">{{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : {value: transaction.tx_blob_size} }}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.HEIGHT' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + 'px'\">{{transaction.height}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\">{{transaction.height === 0 ? 0 : variablesService.height_app - transaction.height}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.INPUTS' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + 'px'\" tooltip=\"{{inputs.join('\\n')}}\" placement=\"top\" tooltipClass=\"table-tooltip\" [delay]=\"500\" [showWhenNoOverflow]=\"false\">{{inputs.join(', ')}}</span>\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[2] + 'px'\">{{ 'HISTORY.DETAILS.OUTPUTS' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[3] + 'px'\" tooltip=\"{{outputs.join('\\n')}}\" placement=\"top\" tooltipClass=\"table-tooltip\" [delay]=\"500\" [showWhenNoOverflow]=\"false\">{{outputs.join(', ')}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"cell label\" [style.flex-basis]=\"sizes[0] + 'px'\">{{ 'HISTORY.DETAILS.COMMENT' | translate }}</span>\r\n <span class=\"cell value\" [style.flex-basis]=\"sizes[1] + sizes[2] + sizes[3] + 'px'\"\r\n tooltip=\"{{transaction.comment}}\" placement=\"top\" tooltipClass=\"table-tooltip comment-tooltip scrolled-content\" [delay]=\"500\" [showWhenNoOverflow]=\"false\"\r\n (contextmenu)=\"variablesService.onContextMenuOnlyCopy($event, transaction.comment)\">\r\n {{transaction.comment}}\r\n </span>\r\n </div>\r\n</div>\r\n"
/***/ }),
@ -5719,7 +5719,7 @@ var SeedPhraseComponent = /** @class */ (function () {
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "<form class=\"form-send\" [formGroup]=\"sendForm\" (ngSubmit)=\"onSend()\">\r\n\r\n <div class=\"input-block input-block-address\">\r\n <label for=\"send-address\">{{ 'SEND.ADDRESS' | translate }}</label>\r\n\r\n <input type=\"text\" id=\"send-address\" formControlName=\"address\" (mousedown)=\"addressMouseDown($event)\" (contextmenu)=\"variablesService.onContextMenu($event)\">\r\n\r\n <div class=\"address-dropdown scrolled-content\" *ngIf=\"isOpen\">\r\n <div *ngFor=\"let item of localAliases\" (click)=\"setAlias(item.name)\">{{item.name}}</div>\r\n </div>\r\n\r\n <div class=\"error-block\" *ngIf=\"sendForm.controls['address'].invalid && (sendForm.controls['address'].dirty || sendForm.controls['address'].touched)\">\r\n <div *ngIf=\"sendForm.controls['address'].errors['required']\">\r\n {{ 'SEND.FORM_ERRORS.ADDRESS_REQUIRED' | translate }}\r\n </div>\r\n <div *ngIf=\"sendForm.controls['address'].errors['address_not_valid']\">\r\n {{ 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\r\n </div>\r\n <div *ngIf=\"sendForm.controls['address'].errors['alias_not_valid']\">\r\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-blocks-row\">\r\n\r\n <div class=\"input-block\">\r\n <label for=\"send-amount\">{{ 'SEND.AMOUNT' | translate }}</label>\r\n <input type=\"text\" id=\"send-amount\" formControlName=\"amount\" appInputValidate=\"money\" (contextmenu)=\"variablesService.onContextMenu($event)\">\r\n <div class=\"error-block\" *ngIf=\"sendForm.controls['amount'].invalid && (sendForm.controls['amount'].dirty || sendForm.controls['amount'].touched)\">\r\n <div *ngIf=\"sendForm.controls['amount'].errors['required']\">\r\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\r\n </div>\r\n <div *ngIf=\"sendForm.controls['amount'].errors['zero']\">\r\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-block\">\r\n <label for=\"send-comment\">{{ 'SEND.COMMENT' | translate }}</label>\r\n <input type=\"text\" id=\"send-comment\" formControlName=\"comment\" (contextmenu)=\"variablesService.onContextMenu($event)\">\r\n </div>\r\n\r\n </div>\r\n\r\n <button type=\"button\" class=\"send-select\" (click)=\"toggleOptions()\">\r\n <span>{{ 'SEND.DETAILS' | translate }}</span><i class=\"icon arrow\" [class.down]=\"!additionalOptions\" [class.up]=\"additionalOptions\"></i>\r\n </button>\r\n\r\n <div class=\"additional-details\" *ngIf=\"additionalOptions\">\r\n\r\n <div class=\"input-block\">\r\n <label for=\"send-mixin\">{{ 'SEND.MIXIN' | translate }}</label>\r\n <input type=\"text\" id=\"send-mixin\" formControlName=\"mixin\" appInputValidate=\"integer\" (contextmenu)=\"variablesService.onContextMenu($event)\">\r\n <div class=\"error-block\" *ngIf=\"sendForm.controls['mixin'].invalid && (sendForm.controls['mixin'].dirty || sendForm.controls['mixin'].touched)\">\r\n <div *ngIf=\"sendForm.controls['mixin'].errors['required']\">\r\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-block\">\r\n <label for=\"send-fee\">{{ 'SEND.FEE' | translate }}</label>\r\n <input type=\"text\" id=\"send-fee\" formControlName=\"fee\" appInputValidate=\"money\" (contextmenu)=\"variablesService.onContextMenu($event)\">\r\n <div class=\"error-block\" *ngIf=\"sendForm.controls['fee'].invalid && (sendForm.controls['fee'].dirty || sendForm.controls['fee'].touched)\">\r\n <div *ngIf=\"sendForm.controls['fee'].errors['required']\">\r\n {{ 'SEND.FORM_ERRORS.FEE_REQUIRED' | translate }}\r\n </div>\r\n <div *ngIf=\"sendForm.controls['fee'].errors['less_min']\">\r\n {{ 'SEND.FORM_ERRORS.FEE_MINIMUM' | translate : {fee: variablesService.default_fee} }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <button type=\"submit\" class=\"blue-button\" [disabled]=\"!sendForm.valid || !variablesService.currentWallet.loaded\">{{ 'SEND.BUTTON' | translate }}</button>\r\n\r\n</form>\r\n"
module.exports = "<form class=\"form-send\" [formGroup]=\"sendForm\" (ngSubmit)=\"onSend()\">\r\n\r\n <div class=\"input-block input-block-address\">\r\n <label for=\"send-address\">{{ 'SEND.ADDRESS' | translate }}</label>\r\n\r\n <input type=\"text\" id=\"send-address\" formControlName=\"address\" (mousedown)=\"addressMouseDown($event)\" (contextmenu)=\"variablesService.onContextMenu($event)\">\r\n\r\n <div class=\"address-dropdown scrolled-content\" *ngIf=\"isOpen\">\r\n <div *ngFor=\"let item of localAliases\" (click)=\"setAlias(item.name)\">{{item.name}}</div>\r\n </div>\r\n\r\n <div class=\"error-block\" *ngIf=\"sendForm.controls['address'].invalid && (sendForm.controls['address'].dirty || sendForm.controls['address'].touched)\">\r\n <div *ngIf=\"sendForm.controls['address'].errors['required']\">\r\n {{ 'SEND.FORM_ERRORS.ADDRESS_REQUIRED' | translate }}\r\n </div>\r\n <div *ngIf=\"sendForm.controls['address'].errors['address_not_valid']\">\r\n {{ 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\r\n </div>\r\n <div *ngIf=\"sendForm.controls['address'].errors['alias_not_valid']\">\r\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-blocks-row\">\r\n\r\n <div class=\"input-block\">\r\n <label for=\"send-amount\">{{ 'SEND.AMOUNT' | translate }}</label>\r\n <input type=\"text\" id=\"send-amount\" formControlName=\"amount\" appInputValidate=\"money\" (contextmenu)=\"variablesService.onContextMenu($event)\">\r\n <div class=\"error-block\" *ngIf=\"sendForm.controls['amount'].invalid && (sendForm.controls['amount'].dirty || sendForm.controls['amount'].touched)\">\r\n <div *ngIf=\"sendForm.controls['amount'].errors['required']\">\r\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\r\n </div>\r\n <div *ngIf=\"sendForm.controls['amount'].errors['zero']\">\r\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-block\">\r\n <label for=\"send-comment\">{{ 'SEND.COMMENT' | translate }}</label>\r\n <input type=\"text\" id=\"send-comment\" formControlName=\"comment\" [maxLength]=\"variablesService.maxCommentLength\" (contextmenu)=\"variablesService.onContextMenu($event)\">\r\n <div class=\"error-block\" *ngIf=\"sendForm.get('comment').value && sendForm.get('comment').value.length >= variablesService.maxCommentLength\">\r\n {{ 'SEND.FORM_ERRORS.MAX_LENGTH' | translate }}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <button type=\"button\" class=\"send-select\" (click)=\"toggleOptions()\">\r\n <span>{{ 'SEND.DETAILS' | translate }}</span><i class=\"icon arrow\" [class.down]=\"!additionalOptions\" [class.up]=\"additionalOptions\"></i>\r\n </button>\r\n\r\n <div class=\"additional-details\" *ngIf=\"additionalOptions\">\r\n\r\n <div class=\"input-block\">\r\n <label for=\"send-mixin\">{{ 'SEND.MIXIN' | translate }}</label>\r\n <input type=\"text\" id=\"send-mixin\" formControlName=\"mixin\" appInputValidate=\"integer\" (contextmenu)=\"variablesService.onContextMenu($event)\">\r\n <div class=\"error-block\" *ngIf=\"sendForm.controls['mixin'].invalid && (sendForm.controls['mixin'].dirty || sendForm.controls['mixin'].touched)\">\r\n <div *ngIf=\"sendForm.controls['mixin'].errors['required']\">\r\n {{ 'SEND.FORM_ERRORS.AMOUNT_REQUIRED' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-block\">\r\n <label for=\"send-fee\">{{ 'SEND.FEE' | translate }}</label>\r\n <input type=\"text\" id=\"send-fee\" formControlName=\"fee\" appInputValidate=\"money\" (contextmenu)=\"variablesService.onContextMenu($event)\">\r\n <div class=\"error-block\" *ngIf=\"sendForm.controls['fee'].invalid && (sendForm.controls['fee'].dirty || sendForm.controls['fee'].touched)\">\r\n <div *ngIf=\"sendForm.controls['fee'].errors['required']\">\r\n {{ 'SEND.FORM_ERRORS.FEE_REQUIRED' | translate }}\r\n </div>\r\n <div *ngIf=\"sendForm.controls['fee'].errors['less_min']\">\r\n {{ 'SEND.FORM_ERRORS.FEE_MINIMUM' | translate : {fee: variablesService.default_fee} }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <button type=\"submit\" class=\"blue-button\" [disabled]=\"!sendForm.valid || !variablesService.currentWallet.loaded\">{{ 'SEND.BUTTON' | translate }}</button>\r\n\r\n</form>\r\n"
/***/ }),
@ -5838,7 +5838,14 @@ var SendComponent = /** @class */ (function () {
}
return null;
}]),
comment: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"](null),
comment: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"]('', [function (g) {
if (g.value > _this.variablesService.maxCommentLength) {
return { 'maxLength': true };
}
else {
return null;
}
}]),
mixin: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"](0, _angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required),
fee: new _angular_forms__WEBPACK_IMPORTED_MODULE_1__["FormControl"](this.variablesService.default_fee, [_angular_forms__WEBPACK_IMPORTED_MODULE_1__["Validators"].required, function (g) {
if ((new bignumber_js__WEBPACK_IMPORTED_MODULE_6__["BigNumber"](g.value)).isLessThan(_this.variablesService.default_fee)) {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -20,7 +20,7 @@
<div class="row">
<span class="cell label" [style.flex-basis]="sizes[0] + 'px'">{{ 'HISTORY.DETAILS.COMMENT' | translate }}</span>
<span class="cell value" [style.flex-basis]="sizes[1] + sizes[2] + sizes[3] + 'px'"
tooltip="{{transaction.comment}}" placement="top" tooltipClass="table-tooltip comment-tooltip" [delay]="500" [showWhenNoOverflow]="false"
tooltip="{{transaction.comment}}" placement="top" tooltipClass="table-tooltip comment-tooltip scrolled-content" [delay]="500" [showWhenNoOverflow]="false"
(contextmenu)="variablesService.onContextMenuOnlyCopy($event, transaction.comment)">
{{transaction.comment}}
</span>

View file

@ -39,7 +39,10 @@
<div class="input-block">
<label for="send-comment">{{ 'SEND.COMMENT' | translate }}</label>
<input type="text" id="send-comment" formControlName="comment" (contextmenu)="variablesService.onContextMenu($event)">
<input type="text" id="send-comment" formControlName="comment" [maxLength]="variablesService.maxCommentLength" (contextmenu)="variablesService.onContextMenu($event)">
<div class="error-block" *ngIf="sendForm.get('comment').value && sendForm.get('comment').value.length >= variablesService.maxCommentLength">
{{ 'SEND.FORM_ERRORS.MAX_LENGTH' | translate }}
</div>
</div>
</div>

View file

@ -73,7 +73,13 @@ export class SendComponent implements OnInit, OnDestroy {
}
return null;
}]),
comment: new FormControl(null),
comment: new FormControl('', [(g: FormControl) => {
if (g.value > this.variablesService.maxCommentLength) {
return {'maxLength': true};
} else {
return null;
}
}]),
mixin: new FormControl(0, Validators.required),
fee: new FormControl(this.variablesService.default_fee, [Validators.required, (g: FormControl) => {
if ((new BigNumber(g.value)).isLessThan(this.variablesService.default_fee)) {

View file

@ -258,7 +258,8 @@
"AMOUNT_REQUIRED": "Amount is required.",
"AMOUNT_ZERO": "Amount is zero.",
"FEE_REQUIRED": "Fee is required.",
"FEE_MINIMUM": "Minimum fee: {{fee}}"
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached."
}
},
"HISTORY": {

View file

@ -567,8 +567,10 @@ input[type='checkbox'].style-checkbox {
}
.comment-tooltip {
overflow: auto;
word-break: break-word;
max-width: 50rem;
max-height: 25rem;
}
.ngx-contextmenu {