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);
         },
     });
 

Reply via email to