tryton-sao 7.0.9 → 7.2.0

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.
Files changed (76) hide show
  1. package/CHANGELOG +6 -42
  2. package/Gruntfile.js +9 -31
  3. package/README.md +1 -1
  4. package/dist/tryton-sao.css +132 -15
  5. package/dist/tryton-sao.js +1168 -793
  6. package/index.html +17 -23
  7. package/locale/bg.json +1 -1
  8. package/locale/bg.po +13 -2
  9. package/locale/ca.json +1 -1
  10. package/locale/ca.po +17 -4
  11. package/locale/cs.json +1 -1
  12. package/locale/cs.po +13 -2
  13. package/locale/de.json +1 -1
  14. package/locale/de.po +16 -3
  15. package/locale/es.json +1 -1
  16. package/locale/es.po +16 -3
  17. package/locale/es_419.json +1 -1
  18. package/locale/es_419.po +16 -3
  19. package/locale/et.json +1 -1
  20. package/locale/et.po +15 -3
  21. package/locale/fa.json +1 -1
  22. package/locale/fa.po +15 -3
  23. package/locale/fi.json +1 -1
  24. package/locale/fi.po +13 -2
  25. package/locale/fr.json +1 -1
  26. package/locale/fr.po +16 -4
  27. package/locale/hu.json +1 -1
  28. package/locale/hu.po +15 -3
  29. package/locale/id.json +1 -1
  30. package/locale/id.po +14 -2
  31. package/locale/it.json +1 -1
  32. package/locale/it.po +16 -3
  33. package/locale/lo.json +1 -1
  34. package/locale/lo.po +15 -3
  35. package/locale/lt.json +1 -1
  36. package/locale/lt.po +15 -3
  37. package/locale/messages.pot +17 -15
  38. package/locale/nl.json +1 -1
  39. package/locale/nl.po +16 -3
  40. package/locale/pl.json +1 -1
  41. package/locale/pl.po +16 -3
  42. package/locale/pt.json +1 -1
  43. package/locale/pt.po +15 -3
  44. package/locale/ro.json +1 -1
  45. package/locale/ro.po +29 -18
  46. package/locale/ru.json +1 -1
  47. package/locale/ru.po +13 -2
  48. package/locale/sl.json +1 -1
  49. package/locale/sl.po +16 -3
  50. package/locale/tr.json +1 -1
  51. package/locale/tr.po +13 -2
  52. package/locale/uk.json +1 -1
  53. package/locale/uk.po +16 -3
  54. package/locale/zh_CN.json +1 -1
  55. package/locale/zh_CN.po +16 -3
  56. package/package.json +2 -3
  57. package/src/action.js +8 -13
  58. package/src/board.js +7 -14
  59. package/src/common.js +156 -166
  60. package/src/model.js +111 -59
  61. package/src/pyson.js +214 -195
  62. package/src/rpc.js +16 -8
  63. package/src/sao.js +62 -51
  64. package/src/sao.less +167 -14
  65. package/src/screen.js +125 -82
  66. package/src/session.js +50 -1
  67. package/src/tab.js +97 -59
  68. package/src/view/calendar.js +0 -2
  69. package/src/view/form.js +240 -56
  70. package/src/view/tree.js +21 -63
  71. package/src/window.js +41 -7
  72. package/src/wizard.js +17 -14
  73. package/tests/index.html +3 -3
  74. package/tests/sao.js +34 -9
  75. package/dist/tryton-sao.min.css +0 -10583
  76. package/dist/tryton-sao.min.js +0 -4
package/CHANGELOG CHANGED
@@ -1,48 +1,12 @@
1
1
 
2
- Version 7.0.9 - 2024-04-04
2
+ Version 7.2.0 - 2024-04-29
3
3
  --------------------------
4
4
  * Bug fixes (see mercurial logs for details)
5
-
6
-
7
- Version 7.0.8 - 2024-03-03
8
- --------------------------
9
- * Bug fixes (see mercurial logs for details)
10
-
11
-
12
- Version 7.0.7 - 2024-02-15
13
- --------------------------
14
- * Bug fixes (see mercurial logs for details)
15
-
16
-
17
- Version 7.0.6 - 2024-02-03
18
- --------------------------
19
- * Bug fixes (see mercurial logs for details)
20
-
21
-
22
- Version 7.0.5 - 2024-01-15
23
- --------------------------
24
- * Bug fixes (see mercurial logs for details)
25
-
26
-
27
- Version 7.0.4 - 2024-01-01
28
- --------------------------
29
- * Bug fixes (see mercurial logs for details)
30
-
31
-
32
- Version 7.0.3 - 2023-12-16
33
- --------------------------
34
- * Bug fixes (see mercurial logs for details)
35
-
36
-
37
- Version 7.0.2 - 2023-12-01
38
- --------------------------
39
- * Bug fixes (see mercurial logs for details)
40
-
41
-
42
- Version 7.0.1 - 2023-11-03
43
- --------------------------
44
- * Bug fixes (see mercurial logs for details)
45
-
5
+ * Read xxx2Many fields using the dotted notation
6
+ * Display XML ID on Log window
7
+ * Use operators when converting PYSON to string
8
+ * Add DnD on binary and image widgets
9
+ * Allow resetting forgotten password
46
10
 
47
11
  Version 7.0.0 - 2023-10-30
48
12
  --------------------------
package/Gruntfile.js CHANGED
@@ -75,35 +75,13 @@ module.exports = function(grunt) {
75
75
  dest: 'dist/<%= pkg.name %>.js'
76
76
  }
77
77
  },
78
- uglify: {
79
- options: {
80
- banner: '/*! <%= pkg.name %>-<%= pkg.version %> | GPL-3\n' +
81
- 'This file is part of Tryton. ' +
82
- 'The COPYRIGHT file at the top level of\n' +
83
- 'this repository contains the full copyright notices ' +
84
- 'and license terms. */\n'
85
- },
86
- dist: {
87
- src: 'dist/<%= pkg.name %>.js',
88
- dest: 'dist/<%= pkg.name %>.min.js'
89
- }
90
- },
91
78
  less: {
92
- dev: {
93
- options: {
94
- paths: less_paths,
95
- },
96
- files: {
97
- 'dist/<%= pkg.name %>.css': 'src/sao.less'
98
- }
99
- },
100
79
  'default': {
101
80
  options: {
102
81
  paths: less_paths,
103
- yuicompress: true
104
82
  },
105
83
  files: {
106
- 'dist/<%= pkg.name %>.min.css': 'src/sao.less'
84
+ 'dist/<%= pkg.name %>.css': 'src/sao.less'
107
85
  }
108
86
  }
109
87
  },
@@ -114,7 +92,11 @@ module.exports = function(grunt) {
114
92
  },
115
93
  styles: {
116
94
  files: ['src/*.less'],
117
- tasks: 'less:dev'
95
+ tasks: 'less'
96
+ },
97
+ translations: {
98
+ files: ['locale/*.po'],
99
+ tasks: 'po2json'
118
100
  }
119
101
  },
120
102
  qunit: {
@@ -135,18 +117,14 @@ module.exports = function(grunt) {
135
117
  });
136
118
 
137
119
  grunt.loadNpmTasks('grunt-contrib-concat');
138
- grunt.loadNpmTasks('grunt-contrib-uglify');
139
120
  grunt.loadNpmTasks('grunt-contrib-less');
140
121
  grunt.loadNpmTasks('grunt-po2json');
141
122
  grunt.loadNpmTasks('grunt-qunit-junit');
142
123
 
143
124
  grunt.registerTask('default', 'Build for production.', function() {
144
- grunt.task.run(['concat', 'uglify', 'less', 'po2json']);
145
- });
146
- grunt.registerTask('dev', 'Build for development.', function() {
147
- grunt.task.run(['concat', 'less:dev']);
125
+ grunt.task.run(['concat', 'less', 'po2json']);
148
126
  });
149
- grunt.registerTask('devwatch', 'Watch development', function() {
127
+ grunt.registerTask('watch', 'Watch development', function() {
150
128
  grunt.loadNpmTasks('grunt-contrib-watch');
151
129
  grunt.task.run(['watch']);
152
130
  });
@@ -160,7 +138,7 @@ module.exports = function(grunt) {
160
138
  });
161
139
  grunt.registerTask('test', 'Run tests', function() {
162
140
  grunt.loadNpmTasks('grunt-contrib-qunit');
163
- grunt.task.run(['concat', 'less:dev', 'qunit_junit', 'qunit']);
141
+ grunt.task.run(['concat', 'less', 'qunit_junit', 'qunit']);
164
142
  });
165
143
 
166
144
  };
package/README.md CHANGED
@@ -20,7 +20,7 @@ Development
20
20
  For development, you have to run instead:
21
21
 
22
22
  $ npm install --legacy-peer-deps
23
- $ grunt dev
23
+ $ grunt
24
24
 
25
25
  Setup
26
26
  -----
@@ -8441,6 +8441,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
8441
8441
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
8442
8442
  THE SOFTWARE.
8443
8443
  */
8444
+ user-select: none;
8444
8445
  }
8445
8446
  html[theme="default"] .navbar {
8446
8447
  border: none;
@@ -9245,7 +9246,41 @@ html[theme="default"] .carousel-caption h6 {
9245
9246
  #menu,
9246
9247
  #tabs {
9247
9248
  margin-top: 5px;
9248
- padding-bottom: 5px;
9249
+ }
9250
+ #menu .navbar-brand .title,
9251
+ #tabs .navbar-brand .title {
9252
+ display: inline-block;
9253
+ overflow: hidden;
9254
+ text-overflow: ellipsis;
9255
+ white-space: nowrap;
9256
+ }
9257
+ @media screen and (max-width: 1199px) {
9258
+ #menu .navbar-brand .title,
9259
+ #tabs .navbar-brand .title {
9260
+ max-width: 180px;
9261
+ }
9262
+ }
9263
+ @media screen and (max-width: 991px) {
9264
+ #menu .navbar-brand .title,
9265
+ #tabs .navbar-brand .title {
9266
+ max-width: 170px;
9267
+ }
9268
+ }
9269
+ @media screen and (max-width: 767px) {
9270
+ #menu,
9271
+ #tabs {
9272
+ padding-left: 0;
9273
+ padding-right: 0;
9274
+ }
9275
+ #menu .navbar-brand,
9276
+ #tabs .navbar-brand {
9277
+ padding-left: 0;
9278
+ padding-right: 0;
9279
+ }
9280
+ #menu .navbar-brand .title,
9281
+ #tabs .navbar-brand .title {
9282
+ max-width: 70px;
9283
+ }
9249
9284
  }
9250
9285
  #menu {
9251
9286
  background-color: #f8f8f8;
@@ -9258,6 +9293,9 @@ html[theme="default"] .carousel-caption h6 {
9258
9293
  #menu .treeview {
9259
9294
  height: auto;
9260
9295
  }
9296
+ #menu .treeview .cell {
9297
+ user-select: none;
9298
+ }
9261
9299
  [dir="rtl"] #menu {
9262
9300
  border-right: none;
9263
9301
  }
@@ -9274,8 +9312,45 @@ html[theme="default"] .carousel-caption h6 {
9274
9312
  border-right: none;
9275
9313
  }
9276
9314
  }
9315
+ #tabcontent {
9316
+ display: block;
9317
+ width: 100%;
9318
+ }
9277
9319
  #tabcontent > .tab-pane > .panel {
9278
- margin-bottom: 0;
9320
+ display: flex;
9321
+ flex-direction: column;
9322
+ flex: 1;
9323
+ margin-bottom: 5px;
9324
+ }
9325
+ #tabcontent > .tab-pane > .panel > .panel-body {
9326
+ display: flex;
9327
+ flex: 1;
9328
+ flex-direction: row;
9329
+ padding-top: 0;
9330
+ min-height: 0;
9331
+ }
9332
+ #tabcontent > .tab-pane > .panel > .panel-body > div {
9333
+ display: inline-flex;
9334
+ padding-left: 15px;
9335
+ padding-right: 15px;
9336
+ }
9337
+ #tabcontent > .tab-pane > .panel > .panel-body > div:first-child {
9338
+ flex: 2;
9339
+ }
9340
+ #tabcontent > .tab-pane.active {
9341
+ /* override bootstrap which sets display to block */
9342
+ display: flex;
9343
+ flex: 1;
9344
+ }
9345
+ @media screen and (max-width: 767px) {
9346
+ #tabcontent > .tab-pane > .panel > .panel-body {
9347
+ flex-direction: column-reverse;
9348
+ min-height: unset;
9349
+ }
9350
+ }
9351
+ #tabcontent[data-view-type="tree"] {
9352
+ display: flex;
9353
+ flex: 1;
9279
9354
  }
9280
9355
  @media screen and (min-width: 768px) {
9281
9356
  #global-search-entry {
@@ -9460,6 +9535,11 @@ html.accesskey select[accesskey] ~ span[data-accesskey] {
9460
9535
  top: 0px;
9461
9536
  z-index: 999;
9462
9537
  }
9538
+ .tab-form nav.toolbar .close,
9539
+ .tab-board nav.toolbar .close {
9540
+ margin-right: 5px;
9541
+ margin-left: 5px;
9542
+ }
9463
9543
  .tab-form .navbar-text .badge,
9464
9544
  .tab-board .navbar-text .badge {
9465
9545
  max-width: 7em;
@@ -9477,6 +9557,7 @@ html.accesskey select[accesskey] ~ span[data-accesskey] {
9477
9557
  .tab-form .tab-domain,
9478
9558
  .tab-board .tab-domain {
9479
9559
  overflow-x: auto;
9560
+ flex: 0 0 content;
9480
9561
  }
9481
9562
  .tab-form .tab-domain > .nav-tabs,
9482
9563
  .tab-board .tab-domain > .nav-tabs {
@@ -9498,6 +9579,12 @@ html.accesskey select[accesskey] ~ span[data-accesskey] {
9498
9579
  width: 50%;
9499
9580
  }
9500
9581
  }
9582
+ @media screen and (max-width: 767px) {
9583
+ nav.toolbar {
9584
+ padding-left: 0;
9585
+ padding-right: 0;
9586
+ }
9587
+ }
9501
9588
  .modal-body {
9502
9589
  overflow-x: auto;
9503
9590
  max-height: calc(100vh - 200px);
@@ -9563,6 +9650,11 @@ img.icon {
9563
9650
  [dir="rtl"] img.icon {
9564
9651
  transform: scaleX(-1);
9565
9652
  }
9653
+ .screen-container {
9654
+ display: flex;
9655
+ flex-direction: column;
9656
+ flex: 1;
9657
+ }
9566
9658
  .filter-box {
9567
9659
  margin: 5px 0;
9568
9660
  }
@@ -9572,24 +9664,41 @@ img.icon {
9572
9664
  }
9573
9665
  }
9574
9666
  .content-box {
9667
+ display: flex;
9668
+ flex-direction: column;
9669
+ flex: 1;
9575
9670
  overflow-y: auto;
9576
9671
  }
9672
+ .tree-container {
9673
+ display: flex;
9674
+ flex-direction: column;
9675
+ min-height: 0;
9676
+ }
9677
+ .attachment-preview {
9678
+ border-color: #ddd;
9679
+ border-style: solid;
9680
+ border-width: 0 0 0 1px;
9681
+ flex: 1;
9682
+ margin-left: 5px;
9683
+ min-width: 20%;
9684
+ overflow: auto;
9685
+ }
9686
+ .attachment-preview > div {
9687
+ flex: 1;
9688
+ }
9689
+ .wizard-form {
9690
+ width: 100%;
9691
+ }
9577
9692
  @media screen and (max-width: 991px) {
9578
9693
  .attachment-preview:not(:empty) {
9579
- border-color: #ddd;
9580
- border-style: solid;
9581
9694
  border-width: 0 0 1px 0;
9582
9695
  margin-bottom: 5px;
9583
9696
  }
9584
9697
  }
9585
9698
  .list-form {
9586
9699
  overflow-y: auto;
9587
- -moz-user-select: none;
9588
- -webkit-user-select: none;
9589
9700
  }
9590
9701
  .treeview {
9591
- -moz-user-select: none;
9592
- -webkit-user-select: none;
9593
9702
  overflow-x: auto;
9594
9703
  }
9595
9704
  .treeview > table.tree {
@@ -9756,6 +9865,7 @@ img.icon {
9756
9865
  .treeview .cell {
9757
9866
  display: flex;
9758
9867
  justify-content: space-between;
9868
+ user-select: text;
9759
9869
  }
9760
9870
  .treeview .cell > * {
9761
9871
  align-self: center;
@@ -9816,6 +9926,7 @@ img.icon {
9816
9926
  }
9817
9927
  .form {
9818
9928
  width: 100%;
9929
+ height: 100%;
9819
9930
  }
9820
9931
  .form .form-container,
9821
9932
  .form .form-hcontainer,
@@ -9832,15 +9943,14 @@ img.icon {
9832
9943
  padding: 0px;
9833
9944
  }
9834
9945
  .form .form-label {
9835
- white-space: pre;
9946
+ white-space: pre-wrap;
9947
+ width: max-content;
9948
+ max-width: 80ch;
9836
9949
  }
9837
9950
  .form .form-char input,
9838
9951
  .form .form-password input,
9839
9952
  .form .form-integer input,
9840
9953
  .form .form-float input,
9841
- .form .form-date input,
9842
- .form .form-datetime input,
9843
- .form .form-time input,
9844
9954
  .form .form-timedelta input,
9845
9955
  .form .form-selection input,
9846
9956
  .form .form-multiselection input,
@@ -9853,9 +9963,6 @@ img.icon {
9853
9963
  .form .form-password select,
9854
9964
  .form .form-integer select,
9855
9965
  .form .form-float select,
9856
- .form .form-date select,
9857
- .form .form-datetime select,
9858
- .form .form-time select,
9859
9966
  .form .form-timedelta select,
9860
9967
  .form .form-selection select,
9861
9968
  .form .form-multiselection select,
@@ -9866,6 +9973,15 @@ img.icon {
9866
9973
  .form .form-pyson select {
9867
9974
  min-width: 8ch;
9868
9975
  }
9976
+ .form .form-date input {
9977
+ width: calc(10ch + 34px);
9978
+ }
9979
+ .form .form-time input {
9980
+ width: calc(8ch + 34px);
9981
+ }
9982
+ .form .form-datetime input {
9983
+ width: calc(19ch + 34px);
9984
+ }
9869
9985
  .form .form-many2one select,
9870
9986
  .form .form-one2one select,
9871
9987
  .form .form-reference select,
@@ -10370,6 +10486,7 @@ input.column-boolean {
10370
10486
  animation-delay: 500ms;
10371
10487
  }
10372
10488
  .scrollbar {
10489
+ flex: 0 0 content;
10373
10490
  overflow: auto;
10374
10491
  }
10375
10492
  .scrollbar > div {