tryton-sao 8.0.1 → 8.0.3
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 +10 -0
- package/dist/tryton-sao.css +14 -8
- package/dist/tryton-sao.js +28 -20
- package/package.json +1 -1
- package/src/sao.js +1 -1
- package/src/sao.less +16 -10
- package/src/session.js +19 -16
- package/src/view/form.js +8 -3
package/CHANGELOG
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
|
|
2
|
+
Version 8.0.3 - 2026-05-20
|
|
3
|
+
--------------------------
|
|
4
|
+
* Bug fixes (see mercurial logs for details)
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Version 8.0.2 - 2026-05-02
|
|
8
|
+
--------------------------
|
|
9
|
+
* Bug fixes (see mercurial logs for details)
|
|
10
|
+
|
|
11
|
+
|
|
2
12
|
Version 8.0.1 - 2026-04-22
|
|
3
13
|
--------------------------
|
|
4
14
|
* Bug fixes (see mercurial logs for details)
|
package/dist/tryton-sao.css
CHANGED
|
@@ -9724,12 +9724,10 @@ html.accesskey *[accesskey]:after {
|
|
|
9724
9724
|
padding: 0 2px;
|
|
9725
9725
|
position: absolute;
|
|
9726
9726
|
text-transform: uppercase;
|
|
9727
|
-
|
|
9727
|
+
left: -1em;
|
|
9728
|
+
right: 0;
|
|
9728
9729
|
z-index: 5;
|
|
9729
9730
|
}
|
|
9730
|
-
html.accesskey input[accesskey][type="checkbox"]:after {
|
|
9731
|
-
background-color: initial;
|
|
9732
|
-
}
|
|
9733
9731
|
html.accesskey *[accesskey] ~ span[data-accesskey] {
|
|
9734
9732
|
float: right;
|
|
9735
9733
|
position: relative;
|
|
@@ -9740,10 +9738,13 @@ html.accesskey *[accesskey] ~ span[data-accesskey]:after {
|
|
|
9740
9738
|
html.accesskey *[accesskey]:after {
|
|
9741
9739
|
content: attr(accesskey);
|
|
9742
9740
|
}
|
|
9743
|
-
html.accesskey
|
|
9744
|
-
html.accesskey
|
|
9745
|
-
|
|
9746
|
-
|
|
9741
|
+
html.accesskey[dir="rtl"] *[accesskey] ~ span[data-accesskey]:after,
|
|
9742
|
+
html.accesskey[dir="rtl"] *[accesskey]:after {
|
|
9743
|
+
left: 0;
|
|
9744
|
+
right: -1em;
|
|
9745
|
+
}
|
|
9746
|
+
html.accesskey[dir="rtl"] *[accesskey] ~ span[data-accesskey] {
|
|
9747
|
+
float: left;
|
|
9747
9748
|
}
|
|
9748
9749
|
.tab-form,
|
|
9749
9750
|
.tab-board {
|
|
@@ -10076,6 +10077,10 @@ img.icon {
|
|
|
10076
10077
|
height: 1.42857143em;
|
|
10077
10078
|
display: block;
|
|
10078
10079
|
}
|
|
10080
|
+
[dir="rtl"] .treeview > table.tree img.column-affix,
|
|
10081
|
+
[dir="rtl"] .treeview > table.tree a.column-affix > img {
|
|
10082
|
+
transform: scaleX(-1);
|
|
10083
|
+
}
|
|
10079
10084
|
.treeview > table.tree tr.more-row {
|
|
10080
10085
|
text-align: center;
|
|
10081
10086
|
}
|
|
@@ -10195,6 +10200,7 @@ img.icon {
|
|
|
10195
10200
|
}
|
|
10196
10201
|
[dir="rtl"] .treeview .expander > img {
|
|
10197
10202
|
float: right;
|
|
10203
|
+
transform: scaleX(-1);
|
|
10198
10204
|
}
|
|
10199
10205
|
.treeview label {
|
|
10200
10206
|
font-weight: normal;
|
package/dist/tryton-sao.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
/* eslint-disable no-redeclare */
|
|
5
5
|
var Sao = {
|
|
6
|
-
__version__: '8.0.
|
|
6
|
+
__version__: '8.0.3',
|
|
7
7
|
};
|
|
8
8
|
/* eslint-enable no-redeclare */
|
|
9
9
|
|
|
@@ -2761,7 +2761,7 @@ var Sao = {
|
|
|
2761
2761
|
'contentType': 'application/json',
|
|
2762
2762
|
'data': JSON.stringify(args),
|
|
2763
2763
|
'dataType': 'json',
|
|
2764
|
-
'url':
|
|
2764
|
+
'url': (this.database || '.') + '/rpc/#' + args.method,
|
|
2765
2765
|
'type': 'post',
|
|
2766
2766
|
});
|
|
2767
2767
|
},
|
|
@@ -2859,15 +2859,16 @@ var Sao = {
|
|
|
2859
2859
|
|
|
2860
2860
|
Sao.Session.server_version = function() {
|
|
2861
2861
|
var timeoutID = Sao.common.processing.show();
|
|
2862
|
-
|
|
2863
|
-
'contentType': 'application/json',
|
|
2864
|
-
'data': JSON.stringify({
|
|
2862
|
+
let args = {
|
|
2865
2863
|
'id': 0,
|
|
2866
2864
|
'method': 'common.server.version',
|
|
2867
2865
|
'params': []
|
|
2868
|
-
}
|
|
2866
|
+
};
|
|
2867
|
+
return jQuery.ajax({
|
|
2868
|
+
'contentType': 'application/json',
|
|
2869
|
+
'data': JSON.stringify(args),
|
|
2869
2870
|
'dataType': 'json',
|
|
2870
|
-
'url': 'rpc
|
|
2871
|
+
'url': 'rpc/#' + args.method,
|
|
2871
2872
|
'type': 'post',
|
|
2872
2873
|
'complete': [function() {
|
|
2873
2874
|
Sao.common.processing.hide(timeoutID);
|
|
@@ -3272,15 +3273,16 @@ var Sao = {
|
|
|
3272
3273
|
|
|
3273
3274
|
Sao.DB.list = function() {
|
|
3274
3275
|
var timeoutID = Sao.common.processing.show();
|
|
3275
|
-
|
|
3276
|
-
'contentType': 'application/json',
|
|
3277
|
-
'data': JSON.stringify({
|
|
3276
|
+
let args = {
|
|
3278
3277
|
'id': 0,
|
|
3279
3278
|
'method': 'common.db.list',
|
|
3280
3279
|
'params': []
|
|
3281
|
-
}
|
|
3280
|
+
};
|
|
3281
|
+
return jQuery.ajax({
|
|
3282
|
+
'contentType': 'application/json',
|
|
3283
|
+
'data': JSON.stringify(args),
|
|
3282
3284
|
'dataType': 'json',
|
|
3283
|
-
'url': 'rpc
|
|
3285
|
+
'url': 'rpc/#' + args.method,
|
|
3284
3286
|
'type': 'post',
|
|
3285
3287
|
'complete': [function() {
|
|
3286
3288
|
Sao.common.processing.hide(timeoutID);
|
|
@@ -3294,15 +3296,16 @@ var Sao = {
|
|
|
3294
3296
|
|
|
3295
3297
|
Sao.Authentication.services = function() {
|
|
3296
3298
|
var timeoutID = Sao.common.processing.show();
|
|
3297
|
-
|
|
3298
|
-
'contentType': 'application/json',
|
|
3299
|
-
'data': JSON.stringify({
|
|
3299
|
+
let args = {
|
|
3300
3300
|
'id': 0,
|
|
3301
3301
|
'method': 'common.authentication.services',
|
|
3302
3302
|
'params': []
|
|
3303
|
-
}
|
|
3303
|
+
}
|
|
3304
|
+
return jQuery.ajax({
|
|
3305
|
+
'contentType': 'application/json',
|
|
3306
|
+
'data': JSON.stringify(args),
|
|
3304
3307
|
'dataType': 'json',
|
|
3305
|
-
'url': 'rpc
|
|
3308
|
+
'url': 'rpc/#' + args.method,
|
|
3306
3309
|
'type': 'post',
|
|
3307
3310
|
'complete': [function() {
|
|
3308
3311
|
Sao.common.processing.hide(timeoutID);
|
|
@@ -17452,11 +17455,13 @@ function eval_pyson(value){
|
|
|
17452
17455
|
this.el = jQuery('<div/>', {
|
|
17453
17456
|
'class': this.class_
|
|
17454
17457
|
});
|
|
17458
|
+
this.group = jQuery('<div/>', {
|
|
17459
|
+
'class': 'input-group input-group-sm'
|
|
17460
|
+
}).css('width', '100%').appendTo(this.el);
|
|
17455
17461
|
this.select = this.labelled = jQuery('<select/>', {
|
|
17456
17462
|
'class': 'form-control input-sm mousetrap',
|
|
17457
17463
|
'name': attributes.name,
|
|
17458
|
-
});
|
|
17459
|
-
this.el.append(this.select);
|
|
17464
|
+
}).appendTo(this.group);
|
|
17460
17465
|
this.select.change(this.focus_out.bind(this));
|
|
17461
17466
|
Sao.common.selection_mixin.init.call(this);
|
|
17462
17467
|
this.init_selection();
|
|
@@ -17557,11 +17562,14 @@ function eval_pyson(value){
|
|
|
17557
17562
|
this.el = jQuery('<div/>', {
|
|
17558
17563
|
'class': this.class_
|
|
17559
17564
|
});
|
|
17565
|
+
this.group = jQuery('<div/>', {
|
|
17566
|
+
'class': 'input-group input-group-sm'
|
|
17567
|
+
}).css('width', '100%').appendTo(this.el);
|
|
17560
17568
|
this.input = this.labelled = jQuery('<input/>', {
|
|
17561
17569
|
'type': 'checkbox',
|
|
17562
17570
|
'class': 'form-control input-sm mousetrap',
|
|
17563
17571
|
'name': attributes.name,
|
|
17564
|
-
}).appendTo(this.
|
|
17572
|
+
}).appendTo(this.group);
|
|
17565
17573
|
this.input.change(this.focus_out.bind(this));
|
|
17566
17574
|
this.input.click(function() {
|
|
17567
17575
|
// Dont trigger click if field is readonly as readonly has no
|
package/package.json
CHANGED
package/src/sao.js
CHANGED
package/src/sao.less
CHANGED
|
@@ -631,14 +631,11 @@ html.accesskey {
|
|
|
631
631
|
padding: 0 2px;
|
|
632
632
|
position: absolute;
|
|
633
633
|
text-transform: uppercase;
|
|
634
|
-
|
|
634
|
+
left: -1em;
|
|
635
|
+
right: 0;
|
|
635
636
|
z-index: 5;
|
|
636
637
|
}
|
|
637
638
|
|
|
638
|
-
input[accesskey][type="checkbox"]:after {
|
|
639
|
-
background-color: initial;
|
|
640
|
-
}
|
|
641
|
-
|
|
642
639
|
*[accesskey] ~ span[data-accesskey] {
|
|
643
640
|
float: right;
|
|
644
641
|
position: relative;
|
|
@@ -652,11 +649,15 @@ html.accesskey {
|
|
|
652
649
|
content: attr(accesskey);
|
|
653
650
|
}
|
|
654
651
|
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
652
|
+
&[dir="rtl"] {
|
|
653
|
+
*[accesskey] ~ span[data-accesskey]:after,
|
|
654
|
+
*[accesskey]:after {
|
|
655
|
+
left: 0;
|
|
656
|
+
right: -1em;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
*[accesskey] ~ span[data-accesskey] {
|
|
660
|
+
float: left;
|
|
660
661
|
}
|
|
661
662
|
}
|
|
662
663
|
}
|
|
@@ -1024,6 +1025,10 @@ img.icon {
|
|
|
1024
1025
|
width: unit(@line-height-base, em);
|
|
1025
1026
|
height: unit(@line-height-base, em);
|
|
1026
1027
|
display: block;
|
|
1028
|
+
|
|
1029
|
+
[dir="rtl"] & {
|
|
1030
|
+
transform: scaleX(-1);
|
|
1031
|
+
}
|
|
1027
1032
|
}
|
|
1028
1033
|
|
|
1029
1034
|
tr.more-row {
|
|
@@ -1117,6 +1122,7 @@ img.icon {
|
|
|
1117
1122
|
float: left;
|
|
1118
1123
|
[dir="rtl"] & {
|
|
1119
1124
|
float: right;
|
|
1125
|
+
transform: scaleX(-1);
|
|
1120
1126
|
}
|
|
1121
1127
|
width: unit(@line-height-base, em);
|
|
1122
1128
|
height: unit(@line-height-base, em);
|
package/src/session.js
CHANGED
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
'contentType': 'application/json',
|
|
84
84
|
'data': JSON.stringify(args),
|
|
85
85
|
'dataType': 'json',
|
|
86
|
-
'url':
|
|
86
|
+
'url': (this.database || '.') + '/rpc/#' + args.method,
|
|
87
87
|
'type': 'post',
|
|
88
88
|
});
|
|
89
89
|
},
|
|
@@ -181,15 +181,16 @@
|
|
|
181
181
|
|
|
182
182
|
Sao.Session.server_version = function() {
|
|
183
183
|
var timeoutID = Sao.common.processing.show();
|
|
184
|
-
|
|
185
|
-
'contentType': 'application/json',
|
|
186
|
-
'data': JSON.stringify({
|
|
184
|
+
let args = {
|
|
187
185
|
'id': 0,
|
|
188
186
|
'method': 'common.server.version',
|
|
189
187
|
'params': []
|
|
190
|
-
}
|
|
188
|
+
};
|
|
189
|
+
return jQuery.ajax({
|
|
190
|
+
'contentType': 'application/json',
|
|
191
|
+
'data': JSON.stringify(args),
|
|
191
192
|
'dataType': 'json',
|
|
192
|
-
'url': 'rpc
|
|
193
|
+
'url': 'rpc/#' + args.method,
|
|
193
194
|
'type': 'post',
|
|
194
195
|
'complete': [function() {
|
|
195
196
|
Sao.common.processing.hide(timeoutID);
|
|
@@ -594,15 +595,16 @@
|
|
|
594
595
|
|
|
595
596
|
Sao.DB.list = function() {
|
|
596
597
|
var timeoutID = Sao.common.processing.show();
|
|
597
|
-
|
|
598
|
-
'contentType': 'application/json',
|
|
599
|
-
'data': JSON.stringify({
|
|
598
|
+
let args = {
|
|
600
599
|
'id': 0,
|
|
601
600
|
'method': 'common.db.list',
|
|
602
601
|
'params': []
|
|
603
|
-
}
|
|
602
|
+
};
|
|
603
|
+
return jQuery.ajax({
|
|
604
|
+
'contentType': 'application/json',
|
|
605
|
+
'data': JSON.stringify(args),
|
|
604
606
|
'dataType': 'json',
|
|
605
|
-
'url': 'rpc
|
|
607
|
+
'url': 'rpc/#' + args.method,
|
|
606
608
|
'type': 'post',
|
|
607
609
|
'complete': [function() {
|
|
608
610
|
Sao.common.processing.hide(timeoutID);
|
|
@@ -616,15 +618,16 @@
|
|
|
616
618
|
|
|
617
619
|
Sao.Authentication.services = function() {
|
|
618
620
|
var timeoutID = Sao.common.processing.show();
|
|
619
|
-
|
|
620
|
-
'contentType': 'application/json',
|
|
621
|
-
'data': JSON.stringify({
|
|
621
|
+
let args = {
|
|
622
622
|
'id': 0,
|
|
623
623
|
'method': 'common.authentication.services',
|
|
624
624
|
'params': []
|
|
625
|
-
}
|
|
625
|
+
}
|
|
626
|
+
return jQuery.ajax({
|
|
627
|
+
'contentType': 'application/json',
|
|
628
|
+
'data': JSON.stringify(args),
|
|
626
629
|
'dataType': 'json',
|
|
627
|
-
'url': 'rpc
|
|
630
|
+
'url': 'rpc/#' + args.method,
|
|
628
631
|
'type': 'post',
|
|
629
632
|
'complete': [function() {
|
|
630
633
|
Sao.common.processing.hide(timeoutID);
|
package/src/view/form.js
CHANGED
|
@@ -2256,11 +2256,13 @@ function eval_pyson(value){
|
|
|
2256
2256
|
this.el = jQuery('<div/>', {
|
|
2257
2257
|
'class': this.class_
|
|
2258
2258
|
});
|
|
2259
|
+
this.group = jQuery('<div/>', {
|
|
2260
|
+
'class': 'input-group input-group-sm'
|
|
2261
|
+
}).css('width', '100%').appendTo(this.el);
|
|
2259
2262
|
this.select = this.labelled = jQuery('<select/>', {
|
|
2260
2263
|
'class': 'form-control input-sm mousetrap',
|
|
2261
2264
|
'name': attributes.name,
|
|
2262
|
-
});
|
|
2263
|
-
this.el.append(this.select);
|
|
2265
|
+
}).appendTo(this.group);
|
|
2264
2266
|
this.select.change(this.focus_out.bind(this));
|
|
2265
2267
|
Sao.common.selection_mixin.init.call(this);
|
|
2266
2268
|
this.init_selection();
|
|
@@ -2361,11 +2363,14 @@ function eval_pyson(value){
|
|
|
2361
2363
|
this.el = jQuery('<div/>', {
|
|
2362
2364
|
'class': this.class_
|
|
2363
2365
|
});
|
|
2366
|
+
this.group = jQuery('<div/>', {
|
|
2367
|
+
'class': 'input-group input-group-sm'
|
|
2368
|
+
}).css('width', '100%').appendTo(this.el);
|
|
2364
2369
|
this.input = this.labelled = jQuery('<input/>', {
|
|
2365
2370
|
'type': 'checkbox',
|
|
2366
2371
|
'class': 'form-control input-sm mousetrap',
|
|
2367
2372
|
'name': attributes.name,
|
|
2368
|
-
}).appendTo(this.
|
|
2373
|
+
}).appendTo(this.group);
|
|
2369
2374
|
this.input.change(this.focus_out.bind(this));
|
|
2370
2375
|
this.input.click(function() {
|
|
2371
2376
|
// Dont trigger click if field is readonly as readonly has no
|