details: https://code.tryton.org/tryton/commit/465d9a64e5b9
branch: default
user: Cédric Krier <[email protected]>
date: Sun Nov 12 23:43:41 2023 +0100
description:
Use relative path for server requests of sao
Closes #9239
diffstat:
sao/CHANGELOG | 1 +
sao/src/rpc.js | 2 +-
sao/src/sao.js | 4 ++--
sao/src/session.js | 21 +++++++++++----------
sao/src/view/form.js | 2 +-
sao/src/window.js | 2 +-
6 files changed, 17 insertions(+), 15 deletions(-)
diffs (142 lines):
diff -r a90668af7ef9 -r 465d9a64e5b9 sao/CHANGELOG
--- a/sao/CHANGELOG Sun Nov 12 23:44:43 2023 +0100
+++ b/sao/CHANGELOG Sun Nov 12 23:43:41 2023 +0100
@@ -1,3 +1,4 @@
+* Use relative path for server requests
* Use cookie to store session
* Move the logout entry and add a help entry to the notification menu
* Add visual hint on widget of modified field
diff -r a90668af7ef9 -r 465d9a64e5b9 sao/src/rpc.js
--- a/sao/src/rpc.js Sun Nov 12 23:44:43 2023 +0100
+++ b/sao/src/rpc.js Sun Nov 12 23:43:41 2023 +0100
@@ -178,7 +178,7 @@
'params': params
})),
'dataType': 'json',
- 'url': '/' + (session.database || '') + '/',
+ 'url': (session.database || '.') + '/',
'type': 'post',
'complete': [function() {
Sao.common.processing.hide(timeoutID);
diff -r a90668af7ef9 -r 465d9a64e5b9 sao/src/sao.js
--- a/sao/src/sao.js Sun Nov 12 23:44:43 2023 +0100
+++ b/sao/src/sao.js Sun Nov 12 23:43:41 2023 +0100
@@ -451,11 +451,11 @@
Sao.set_url = function(path, name) {
var session = Sao.Session.current_session;
if (session) {
- var url = '#' + session.database;
+ var url = session.database;
if (path) {
url += '/' + path;
}
- window.location = url;
+ window.location.hash = url;
}
Sao.set_title(name);
};
diff -r a90668af7ef9 -r 465d9a64e5b9 sao/src/session.js
--- a/sao/src/session.js Sun Nov 12 23:44:43 2023 +0100
+++ b/sao/src/session.js Sun Nov 12 23:43:41 2023 +0100
@@ -58,7 +58,7 @@
'contentType': 'application/json',
'data': JSON.stringify({}),
'dataType': 'json',
- 'url': `/${this.database}/session/logout`,
+ 'url': `${this.database}/session/logout`,
'type': 'post',
});
this.unstore();
@@ -189,7 +189,7 @@
'params': []
}),
'dataType': 'json',
- 'url': '/',
+ 'url': '.',
'type': 'post',
'complete': [function() {
Sao.common.processing.hide(timeoutID);
@@ -295,7 +295,7 @@
dfd.resolve(session);
dialog.modal.remove();
if (database_url() != database) {
- window.location = '#' + database;
+ window.location.hash = database;
}
}, function() {
disable_form(false);
@@ -314,10 +314,11 @@
return;
}
disable_form();
- var host = window.location.protocol + '//' + window.location.host;
- var next = new URL(host + '/');
+ const base = (
+ window.location.protocol + '//' + window.location.host +
window.location.pathname);
+ var next = new URL(base);
next.searchParams.append('login_service', evt.data);
- var url = new URL(host + '/' + database + evt.data);
+ var url = new URL(base + database + evt.data);
url.searchParams.append('next', next.href);
var service_window = window.open(url.href, '_blank', 'popup=1');
const timer = window.setInterval(() => {
@@ -330,7 +331,7 @@
dfd.resolve(session);
dialog.modal.remove();
if (database_url() != database) {
- window.location = '#' + database;
+ window.location.hash = database;
}
} else {
disable_form(false);
@@ -449,7 +450,7 @@
'contentType': 'application/json',
'data': JSON.stringify(data),
'dataType': 'json',
- 'url': `/${this.session.database}/session/login`,
+ 'url': `${this.session.database}/session/login`,
'type': 'post',
'complete': [function() {
Sao.common.processing.hide(timeoutID);
@@ -601,7 +602,7 @@
'params': []
}),
'dataType': 'json',
- 'url': '/',
+ 'url': '.',
'type': 'post',
'complete': [function() {
Sao.common.processing.hide(timeoutID);
@@ -623,7 +624,7 @@
'params': []
}),
'dataType': 'json',
- 'url': '/',
+ 'url': '.',
'type': 'post',
'complete': [function() {
Sao.common.processing.hide(timeoutID);
diff -r a90668af7ef9 -r 465d9a64e5b9 sao/src/view/form.js
--- a/sao/src/view/form.js Sun Nov 12 23:44:43 2023 +0100
+++ b/sao/src/view/form.js Sun Nov 12 23:43:41 2023 +0100
@@ -5010,7 +5010,7 @@
if (!record || (record.id < 0)) {
uri = '';
} else {
- uri = '/' + record.model.session.database +
+ uri = record.model.session.database +
'/ir/html/' + record.model.name + '/' + record.id + '/' +
this.field_name;
uri += '?language=' + encodeURIComponent(
diff -r a90668af7ef9 -r 465d9a64e5b9 sao/src/window.js
--- a/sao/src/window.js Sun Nov 12 23:44:43 2023 +0100
+++ b/sao/src/window.js Sun Nov 12 23:43:41 2023 +0100
@@ -2429,7 +2429,7 @@
query_string = query_string.map(function(param) {
return param.map(encodeURIComponent).join('=');
}).join('&');
- this.button_url.attr('href', '/' + path.join('/') + '?' +
query_string);
+ this.button_url.attr('href', path.join('/') + '?' + query_string);
},
});