From d3ef05032ae213ae471382f41a89283de9f6ccab Mon Sep 17 00:00:00 2001
From: Benoit Lavenier <benoit.lavenier@e-is.pro>
Date: Wed, 16 Aug 2023 08:59:31 +0200
Subject: [PATCH] fix(tx): Sometimes 'undefined' is displayed, instead of 'UD',
 in TX amount

---
 www/js/filters.js | 41 +++++++++++++++++++++++++++++------------
 1 file changed, 29 insertions(+), 12 deletions(-)

diff --git a/www/js/filters.js b/www/js/filters.js
index cbbd6250d..0b88a8913 100644
--- a/www/js/filters.js
+++ b/www/js/filters.js
@@ -8,35 +8,50 @@ angular.module('cesium.filters', ['cesium.config', 'cesium.platform', 'pascalpre
     var
       started = false,
       startPromise,
+      defaults = {
+        MEDIAN_TIME_OFFSET: 3600  /*G1 default value*/,
+        DATE_PATTERN: 'YYYY-MM-DD HH:mm',
+        DATE_SHORT_PATTERN: 'YYYY-MM-DD',
+        DATE_MONTH_YEAR_PATTERN: 'MMM YY',
+        DAYS: 'days',
+        UD: 'UD'
+      },
       that = this;
 
-    that.MEDIAN_TIME_OFFSET = 3600  /*G1 default value*/;
+    // Default values
+    angular.merge(that, defaults);
 
     // Update some translations, when locale changed
     function onLocaleChange() {
-      console.debug('[filter] Loading translations for locale [{0}]'.format($translate.use()));
+      // DEBUG
+      //console.debug('[filter] Loading translations for locale [{0}]'.format($translate.use()));
+
       return $translate(['COMMON.DATE_PATTERN', 'COMMON.DATE_SHORT_PATTERN', 'COMMON.UD', 'COMMON.DAYS'])
         .then(function(translations) {
           that.DATE_PATTERN = translations['COMMON.DATE_PATTERN'];
           if (that.DATE_PATTERN === 'COMMON.DATE_PATTERN') {
-            that.DATE_PATTERN = 'YYYY-MM-DD HH:mm';
+            that.DATE_PATTERN = defaults.DATE_PATTERN;
           }
           that.DATE_SHORT_PATTERN = translations['COMMON.DATE_SHORT_PATTERN'];
           if (that.DATE_SHORT_PATTERN === 'COMMON.DATE_SHORT_PATTERN') {
-            that.DATE_SHORT_PATTERN = 'YYYY-MM-DD';
+            that.DATE_SHORT_PATTERN = defaults.DATE_SHORT_PATTERN;
           }
           that.DATE_MONTH_YEAR_PATTERN = translations['COMMON.DATE_MONTH_YEAR_PATTERN'];
           if (that.DATE_MONTH_YEAR_PATTERN === 'COMMON.DATE_MONTH_YEAR_PATTERN') {
-            that.DATE_MONTH_YEAR_PATTERN = 'MMM YY';
+            that.DATE_MONTH_YEAR_PATTERN = defaults.DATE_MONTH_YEAR_PATTERN;
           }
           that.DAYS = translations['COMMON.DAYS'];
           if (that.DAYS === 'COMMON.DAYS') {
-            that.DAYS = 'days';
+            that.DAYS = defaults.DAYS;
           }
           that.UD = translations['COMMON.UD'];
           if (that.UD === 'COMMON.UD') {
-            that.UD = 'UD';
+            that.UD = defaults.UD;
           }
+        })
+        .catch(function(err) {
+          console.error('[filter] Failed to load translations for locale [{0}]'.format($translate.use()), err);
+          angular.merge(that, defaults);
         });
     }
 
@@ -81,13 +96,13 @@ angular.module('cesium.filters', ['cesium.config', 'cesium.platform', 'pascalpre
 
   .filter('formatAmount', function(csConfig, csSettings, csCurrency, $filter) {
     'ngInject';
-    var pattern = '0,0.0' + Array(csConfig.decimalCount || 4).join('0');
+    var pattern = '0,0.0' + Array(csConfig.decimalCount || 2).join('0');
     var patternBigNumber = '0,0.000 a';
     var currencySymbol = $filter('currencySymbol');
 
     // Always add one decimal for relative unit
     var patternRelative = pattern + '0';
-    var minValueRelative = 1 / Math.pow(10, (csConfig.decimalCount || 4) + 1 /*add one decimal in relative*/);
+    var minValueRelative = 1 / Math.pow(10, (csConfig.decimalCount || 2) + 1 /*add one decimal in relative*/);
 
     function formatRelative(input, options) {
       var currentUD = options && options.currentUD ? options.currentUD : csCurrency.data.currentUD;
@@ -169,9 +184,11 @@ angular.module('cesium.filters', ['cesium.config', 'cesium.platform', 'pascalpre
     'ngInject';
     return function(input, useRelative) {
       if (!input) return '';
-      return (angular.isDefined(useRelative) ? useRelative : csSettings.data.useRelative) ?
-        (filterTranslations.UD + '<sub>' + $filter('abbreviate')(input) + '</sub>') :
-        $filter('abbreviate')(input);
+      var symbol = $filter('abbreviate')(input);
+      if (angular.isDefined(useRelative) ? useRelative : csSettings.data.useRelative) {
+        return filterTranslations.UD + '<sub>' + $filter('abbreviate')(input) + '</sub>';
+      }
+      return symbol;
     };
   })
 
-- 
GitLab