tryton-sao 7.8.5 → 7.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG CHANGED
@@ -1,4 +1,14 @@
1
1
 
2
+ Version 7.8.7 - 2026-03-18
3
+ --------------------------
4
+ * Bug fixes (see mercurial logs for details)
5
+
6
+
7
+ Version 7.8.6 - 2026-03-02
8
+ --------------------------
9
+ * Bug fixes (see mercurial logs for details)
10
+
11
+
2
12
  Version 7.8.5 - 2026-02-18
3
13
  --------------------------
4
14
  * Bug fixes (see mercurial logs for details)
@@ -3,7 +3,7 @@
3
3
 
4
4
  /* eslint-disable no-redeclare */
5
5
  var Sao = {
6
- __version__: '7.8.5',
6
+ __version__: '7.8.7',
7
7
  };
8
8
  /* eslint-enable no-redeclare */
9
9
 
@@ -326,7 +326,7 @@ var Sao = {
326
326
  navigator.userLanguage ||
327
327
  'en').replace('-', '_');
328
328
  }
329
- jQuery('html').attr('lang', lang);
329
+ jQuery('html').attr('lang', Sao.i18n.BC47(lang));
330
330
  Sao.i18n.setLocale(lang);
331
331
  moment.locale(lang.slice(0, 2));
332
332
  return jQuery.getJSON('locale/' + lang + '.json').then(function(data) {
@@ -1318,13 +1318,13 @@ var Sao = {
1318
1318
  var modalZIndex = 1040;
1319
1319
  jQuery('.modal.in').each(function(index) {
1320
1320
  var $modal = jQuery(this);
1321
- modalZIndex++;
1321
+ modalZIndex += 10;
1322
1322
  $modal.css('zIndex', modalZIndex);
1323
- $modal.next('.modal-backdrop.in').addClass('hidden')
1324
- .css('zIndex', modalZIndex - 1);
1323
+ $modal.prev('.modal-backdrop.in').addClass('hidden')
1324
+ .css('zIndex', modalZIndex - 5);
1325
1325
  });
1326
1326
  jQuery('.modal.in:visible:last').focus()
1327
- .next('.modal-backdrop.in').removeClass('hidden');
1327
+ .prev('.modal-backdrop.in').removeClass('hidden');
1328
1328
  }
1329
1329
 
1330
1330
  }());
@@ -5526,6 +5526,7 @@ var Sao = {
5526
5526
  }
5527
5527
  var factor = Number(field.factor || 1);
5528
5528
  digit -= Math.round(Math.log10(factor));
5529
+ digit = Math.max(digit, 0);
5529
5530
  return (value * factor).toLocaleString(
5530
5531
  Sao.i18n.BC47(Sao.i18n.getlang()), {
5531
5532
  useGrouping: true,
@@ -11734,7 +11735,9 @@ var Sao = {
11734
11735
  });
11735
11736
  },
11736
11737
  switch_: function() {
11737
- return this.modified_save().then(() => this.screen.switch_view());
11738
+ return this.modified_save().then(
11739
+ () => this.screen.switch_view(),
11740
+ (result) => result ? this.screen.switch_view() : null);
11738
11741
  },
11739
11742
  reload: function(test_modified=true) {
11740
11743
  const reload = () => {
@@ -11865,10 +11868,12 @@ var Sao = {
11865
11868
  revision = revisions[revisions.length - 1][0];
11866
11869
  }
11867
11870
  if (revision != this.screen.context._datetime) {
11868
- this.screen.clear();
11869
11871
  // Update group context that will be propagated by
11870
11872
  // recreating new group
11871
11873
  this.screen.group._context._datetime = revision;
11874
+ // clear after updating the datetime such that the tab
11875
+ // compute already the right URL
11876
+ this.screen.clear();
11872
11877
  if (this.screen.current_view.view_type != 'form') {
11873
11878
  this.screen.search_filter(
11874
11879
  this.screen.screen_container
@@ -12381,9 +12386,8 @@ var Sao = {
12381
12386
  }
12382
12387
  set_sensitive(button_id, sensitive && can_be_sensitive);
12383
12388
  }
12384
- for (let button_id of ['reload', 'action']) {
12385
- set_sensitive(button_id, sensitive);
12386
- }
12389
+ set_sensitive('action', sensitive);
12390
+ set_sensitive('reload', sensitive || (view_type != 'form'))
12387
12391
  set_sensitive(
12388
12392
  'switch_',
12389
12393
  (position || (view_type == 'form') || (next_view_type != 'form')) &&
@@ -13346,7 +13350,7 @@ var Sao = {
13346
13350
  'class': 'form-control input-sm',
13347
13351
  'type': 'number',
13348
13352
  'step': 'any',
13349
- 'lang': Sao.i18n.getlang(),
13353
+ 'lang': Sao.i18n.BC47(Sao.i18n.getlang()),
13350
13354
  }).appendTo(el);
13351
13355
  return entry;
13352
13356
  },
@@ -17201,7 +17205,7 @@ function eval_pyson(value){
17201
17205
  input_text.attr('type', 'text');
17202
17206
  input.attr('type', 'number');
17203
17207
  input.attr('step', 1);
17204
- input.attr('lang', Sao.i18n.getlang());
17208
+ input.attr('lang', Sao.i18n.BC47(Sao.i18n.getlang()));
17205
17209
 
17206
17210
  input.hide().on('focusout', function() {
17207
17211
  if (input[0].checkValidity()) {
@@ -25044,7 +25048,7 @@ function eval_pyson(value){
25044
25048
  this.view.screen.context.calendar_scroll_time ||
25045
25049
  Sao.Time(6)).toString(),
25046
25050
  events: this.view.get_events.bind(this.view),
25047
- locale: Sao.i18n.getlang().slice(0, 2),
25051
+ locale: Sao.i18n.BC47(Sao.i18n.getlang()).toLowerCase(),
25048
25052
  isRTL: Sao.i18n.rtl,
25049
25053
  themeSystem: 'bootstrap3',
25050
25054
  bootstrapGlyphicons: {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "tryton-sao",
3
3
  "title": "sao",
4
4
  "description": "Tryton webclient",
5
- "version": "7.8.5",
5
+ "version": "7.8.7",
6
6
  "homepage": "https://www.tryton.org/",
7
7
  "author": {
8
8
  "name": "Tryton"
package/src/common.js CHANGED
@@ -2223,6 +2223,7 @@
2223
2223
  }
2224
2224
  var factor = Number(field.factor || 1);
2225
2225
  digit -= Math.round(Math.log10(factor));
2226
+ digit = Math.max(digit, 0);
2226
2227
  return (value * factor).toLocaleString(
2227
2228
  Sao.i18n.BC47(Sao.i18n.getlang()), {
2228
2229
  useGrouping: true,
package/src/sao.js CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  /* eslint-disable no-redeclare */
5
5
  var Sao = {
6
- __version__: '7.8.5',
6
+ __version__: '7.8.7',
7
7
  };
8
8
  /* eslint-enable no-redeclare */
9
9
 
@@ -326,7 +326,7 @@ var Sao = {
326
326
  navigator.userLanguage ||
327
327
  'en').replace('-', '_');
328
328
  }
329
- jQuery('html').attr('lang', lang);
329
+ jQuery('html').attr('lang', Sao.i18n.BC47(lang));
330
330
  Sao.i18n.setLocale(lang);
331
331
  moment.locale(lang.slice(0, 2));
332
332
  return jQuery.getJSON('locale/' + lang + '.json').then(function(data) {
@@ -1318,13 +1318,13 @@ var Sao = {
1318
1318
  var modalZIndex = 1040;
1319
1319
  jQuery('.modal.in').each(function(index) {
1320
1320
  var $modal = jQuery(this);
1321
- modalZIndex++;
1321
+ modalZIndex += 10;
1322
1322
  $modal.css('zIndex', modalZIndex);
1323
- $modal.next('.modal-backdrop.in').addClass('hidden')
1324
- .css('zIndex', modalZIndex - 1);
1323
+ $modal.prev('.modal-backdrop.in').addClass('hidden')
1324
+ .css('zIndex', modalZIndex - 5);
1325
1325
  });
1326
1326
  jQuery('.modal.in:visible:last').focus()
1327
- .next('.modal-backdrop.in').removeClass('hidden');
1327
+ .prev('.modal-backdrop.in').removeClass('hidden');
1328
1328
  }
1329
1329
 
1330
1330
  }());
package/src/screen.js CHANGED
@@ -746,7 +746,7 @@
746
746
  'class': 'form-control input-sm',
747
747
  'type': 'number',
748
748
  'step': 'any',
749
- 'lang': Sao.i18n.getlang(),
749
+ 'lang': Sao.i18n.BC47(Sao.i18n.getlang()),
750
750
  }).appendTo(el);
751
751
  return entry;
752
752
  },
package/src/tab.js CHANGED
@@ -922,7 +922,9 @@
922
922
  });
923
923
  },
924
924
  switch_: function() {
925
- return this.modified_save().then(() => this.screen.switch_view());
925
+ return this.modified_save().then(
926
+ () => this.screen.switch_view(),
927
+ (result) => result ? this.screen.switch_view() : null);
926
928
  },
927
929
  reload: function(test_modified=true) {
928
930
  const reload = () => {
@@ -1053,10 +1055,12 @@
1053
1055
  revision = revisions[revisions.length - 1][0];
1054
1056
  }
1055
1057
  if (revision != this.screen.context._datetime) {
1056
- this.screen.clear();
1057
1058
  // Update group context that will be propagated by
1058
1059
  // recreating new group
1059
1060
  this.screen.group._context._datetime = revision;
1061
+ // clear after updating the datetime such that the tab
1062
+ // compute already the right URL
1063
+ this.screen.clear();
1060
1064
  if (this.screen.current_view.view_type != 'form') {
1061
1065
  this.screen.search_filter(
1062
1066
  this.screen.screen_container
@@ -1569,9 +1573,8 @@
1569
1573
  }
1570
1574
  set_sensitive(button_id, sensitive && can_be_sensitive);
1571
1575
  }
1572
- for (let button_id of ['reload', 'action']) {
1573
- set_sensitive(button_id, sensitive);
1574
- }
1576
+ set_sensitive('action', sensitive);
1577
+ set_sensitive('reload', sensitive || (view_type != 'form'))
1575
1578
  set_sensitive(
1576
1579
  'switch_',
1577
1580
  (position || (view_type == 'form') || (next_view_type != 'form')) &&
@@ -87,7 +87,7 @@
87
87
  this.view.screen.context.calendar_scroll_time ||
88
88
  Sao.Time(6)).toString(),
89
89
  events: this.view.get_events.bind(this.view),
90
- locale: Sao.i18n.getlang().slice(0, 2),
90
+ locale: Sao.i18n.BC47(Sao.i18n.getlang()).toLowerCase(),
91
91
  isRTL: Sao.i18n.rtl,
92
92
  themeSystem: 'bootstrap3',
93
93
  bootstrapGlyphicons: {
package/src/view/form.js CHANGED
@@ -2064,7 +2064,7 @@ function eval_pyson(value){
2064
2064
  input_text.attr('type', 'text');
2065
2065
  input.attr('type', 'number');
2066
2066
  input.attr('step', 1);
2067
- input.attr('lang', Sao.i18n.getlang());
2067
+ input.attr('lang', Sao.i18n.BC47(Sao.i18n.getlang()));
2068
2068
 
2069
2069
  input.hide().on('focusout', function() {
2070
2070
  if (input[0].checkValidity()) {