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.
- package/CHANGELOG +6 -42
- package/Gruntfile.js +9 -31
- package/README.md +1 -1
- package/dist/tryton-sao.css +132 -15
- package/dist/tryton-sao.js +1168 -793
- package/index.html +17 -23
- package/locale/bg.json +1 -1
- package/locale/bg.po +13 -2
- package/locale/ca.json +1 -1
- package/locale/ca.po +17 -4
- package/locale/cs.json +1 -1
- package/locale/cs.po +13 -2
- package/locale/de.json +1 -1
- package/locale/de.po +16 -3
- package/locale/es.json +1 -1
- package/locale/es.po +16 -3
- package/locale/es_419.json +1 -1
- package/locale/es_419.po +16 -3
- package/locale/et.json +1 -1
- package/locale/et.po +15 -3
- package/locale/fa.json +1 -1
- package/locale/fa.po +15 -3
- package/locale/fi.json +1 -1
- package/locale/fi.po +13 -2
- package/locale/fr.json +1 -1
- package/locale/fr.po +16 -4
- package/locale/hu.json +1 -1
- package/locale/hu.po +15 -3
- package/locale/id.json +1 -1
- package/locale/id.po +14 -2
- package/locale/it.json +1 -1
- package/locale/it.po +16 -3
- package/locale/lo.json +1 -1
- package/locale/lo.po +15 -3
- package/locale/lt.json +1 -1
- package/locale/lt.po +15 -3
- package/locale/messages.pot +17 -15
- package/locale/nl.json +1 -1
- package/locale/nl.po +16 -3
- package/locale/pl.json +1 -1
- package/locale/pl.po +16 -3
- package/locale/pt.json +1 -1
- package/locale/pt.po +15 -3
- package/locale/ro.json +1 -1
- package/locale/ro.po +29 -18
- package/locale/ru.json +1 -1
- package/locale/ru.po +13 -2
- package/locale/sl.json +1 -1
- package/locale/sl.po +16 -3
- package/locale/tr.json +1 -1
- package/locale/tr.po +13 -2
- package/locale/uk.json +1 -1
- package/locale/uk.po +16 -3
- package/locale/zh_CN.json +1 -1
- package/locale/zh_CN.po +16 -3
- package/package.json +2 -3
- package/src/action.js +8 -13
- package/src/board.js +7 -14
- package/src/common.js +156 -166
- package/src/model.js +111 -59
- package/src/pyson.js +214 -195
- package/src/rpc.js +16 -8
- package/src/sao.js +62 -51
- package/src/sao.less +167 -14
- package/src/screen.js +125 -82
- package/src/session.js +50 -1
- package/src/tab.js +97 -59
- package/src/view/calendar.js +0 -2
- package/src/view/form.js +240 -56
- package/src/view/tree.js +21 -63
- package/src/window.js +41 -7
- package/src/wizard.js +17 -14
- package/tests/index.html +3 -3
- package/tests/sao.js +34 -9
- package/dist/tryton-sao.min.css +0 -10583
- package/dist/tryton-sao.min.js +0 -4
package/CHANGELOG
CHANGED
|
@@ -1,48 +1,12 @@
|
|
|
1
1
|
|
|
2
|
-
Version 7.0
|
|
2
|
+
Version 7.2.0 - 2024-04-29
|
|
3
3
|
--------------------------
|
|
4
4
|
* Bug fixes (see mercurial logs for details)
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
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 %>.
|
|
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
|
|
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', '
|
|
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('
|
|
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
|
|
141
|
+
grunt.task.run(['concat', 'less', 'qunit_junit', 'qunit']);
|
|
164
142
|
});
|
|
165
143
|
|
|
166
144
|
};
|
package/README.md
CHANGED
package/dist/tryton-sao.css
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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 {
|