mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-01 05:29:20 +03:00
Resolve #864
This commit is contained in:
parent
dba125ad59
commit
79510eb79c
10 changed files with 24 additions and 26 deletions
|
|
@ -1,13 +1,13 @@
|
|||
import { pInt } from 'Common/Utils';
|
||||
import { Settings } from 'Common/Globals';
|
||||
import { doc, Settings } from 'Common/Globals';
|
||||
|
||||
const
|
||||
BASE = doc.location.pathname.replace(/\/+$/,'') + '/',
|
||||
HASH_PREFIX = '#/',
|
||||
SERVER_PREFIX = './?',
|
||||
|
||||
adminPath = () => rl.adminArea() && !Settings.app('adminHostUse'),
|
||||
|
||||
prefix = () => SERVER_PREFIX + (adminPath() ? Settings.app('adminPath') : '');
|
||||
prefix = () => BASE + '?' + (adminPath() ? Settings.app('adminPath') : '');
|
||||
|
||||
export const
|
||||
SUB_QUERY_PREFIX = '&q[]=',
|
||||
|
|
@ -21,7 +21,7 @@ export const
|
|||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
logoutLink = () => adminPath() ? prefix() : './',
|
||||
logoutLink = () => adminPath() ? prefix() : BASE,
|
||||
|
||||
/**
|
||||
* @param {string} type
|
||||
|
|
@ -30,7 +30,7 @@ export const
|
|||
* @returns {string}
|
||||
*/
|
||||
serverRequestRaw = (type, hash) =>
|
||||
SERVER_PREFIX + '/Raw/' + SUB_QUERY_PREFIX + '/'
|
||||
BASE + '?/Raw/' + SUB_QUERY_PREFIX + '/'
|
||||
+ '0/' // Settings.get('AccountHash') ?
|
||||
+ (type
|
||||
? type + '/' + (hash ? SUB_QUERY_PREFIX + '/' + hash : '')
|
||||
|
|
@ -45,7 +45,7 @@ export const
|
|||
serverRequestRaw('Download', download, customSpecSuffix),
|
||||
|
||||
proxy = url =>
|
||||
SERVER_PREFIX + '/ProxyExternal/'
|
||||
BASE + '?/ProxyExternal/'
|
||||
+ btoa(url.replace(/ /g, '%20')).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''),
|
||||
// + b64EncodeJSONSafe(url.replace(/ /g, '%20')),
|
||||
|
||||
|
|
@ -55,13 +55,16 @@ export const
|
|||
*/
|
||||
serverRequest = type => prefix() + '/' + type + '/' + SUB_QUERY_PREFIX + '/0/',
|
||||
|
||||
// Is '?/Css/0/Admin' needed?
|
||||
cssLink = theme => BASE + '?/Css/0/User/-/' + encodeURI(theme) + '/-/' + Date.now() + '/Hash/-/Json/',
|
||||
|
||||
/**
|
||||
* @param {string} lang
|
||||
* @param {boolean} isAdmin
|
||||
* @returns {string}
|
||||
*/
|
||||
langLink = (lang, isAdmin) =>
|
||||
SERVER_PREFIX + '/Lang/0/' + (isAdmin ? 'Admin' : 'App')
|
||||
BASE + '?/Lang/0/' + (isAdmin ? 'Admin' : 'App')
|
||||
+ '/' + encodeURI(lang)
|
||||
+ '/' + Settings.app('version') + '/',
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import ko from 'ko';
|
||||
import { $htmlCL, elementById, leftPanelDisabled, Settings, SettingsGet } from 'Common/Globals';
|
||||
import { isArray, arrayLength } from 'Common/Utils';
|
||||
import { serverRequestRaw } from 'Common/Links';
|
||||
import { cssLink, serverRequestRaw } from 'Common/Links';
|
||||
import { SaveSettingStatus } from 'Common/Enums';
|
||||
|
||||
let __themeTimer = 0;
|
||||
|
|
@ -41,7 +41,7 @@ export const
|
|||
clearTimer = () => {
|
||||
__themeTimer = setTimeout(() => themeTrigger(SaveSettingStatus.Idle), 1000);
|
||||
},
|
||||
url = themeStyle.dataset.href.replace(/(Admin|User)\/-\/[^/]+\//, '$1/-/' + value + '/') + 'Json/';
|
||||
url = cssLink(value);
|
||||
|
||||
clearTimeout(__themeTimer);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
(doc => {
|
||||
|
||||
const
|
||||
query = path => doc.location.pathname.replace(/\/+$/,'') + '/?/' + path,
|
||||
qUri = path => doc.location.pathname.replace(/\/+$/,'') + '/?/' + path,
|
||||
eId = id => doc.getElementById('rl-'+id),
|
||||
app = eId('app'),
|
||||
admin = app && '1' == app.dataset.admin,
|
||||
layout = doc.cookie.match(/(^|;) ?rllayout=([^;]+)/) || '',
|
||||
redirect = path => doc.location.replace(query(path)),
|
||||
redirect = path => doc.location.replace(qUri(path)),
|
||||
|
||||
showError = msg => {
|
||||
let div = eId('loading-error');
|
||||
|
|
@ -68,7 +68,7 @@ window.rl = {
|
|||
cb = () => rl.app.bootstart();
|
||||
loadScript(url)
|
||||
.then(() => loadScript(url.replace('/libs.', `/${admin?'admin':'app'}.`)))
|
||||
.then(() => appData.PluginsLink ? loadScript(appData.PluginsLink) : Promise.resolve())
|
||||
.then(() => appData.PluginsLink ? loadScript(qUri(appData.PluginsLink)) : Promise.resolve())
|
||||
.then(() => rl.app
|
||||
? cb()
|
||||
: doc.addEventListener('readystatechange', () => 'complete' == doc.readyState && cb())
|
||||
|
|
@ -87,7 +87,7 @@ window.rl = {
|
|||
loadScript: loadScript
|
||||
};
|
||||
|
||||
loadScript(query(`${admin ? 'Admin' : ''}AppData/0/${Math.random().toString().slice(2)}/`))
|
||||
loadScript(qUri(`${admin ? 'Admin' : ''}AppData/0/${Math.random().toString().slice(2)}/`))
|
||||
.catch(e => showError(e));
|
||||
|
||||
})(document);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue