Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
618f25a3a3
commit
6a4c889f31
151
js/ui/mxgraph/src/js/util/mxUrlConverter.js
Normal file
151
js/ui/mxgraph/src/js/util/mxUrlConverter.js
Normal file
|
@ -0,0 +1,151 @@
|
|||
/**
|
||||
* Copyright (c) 2006-2015, JGraph Ltd
|
||||
* Copyright (c) 2006-2015, Gaudenz Alder
|
||||
*/
|
||||
/**
|
||||
*
|
||||
* Class: mxUrlConverter
|
||||
*
|
||||
* Converts relative and absolute URLs to absolute URLs with protocol and domain.
|
||||
*/
|
||||
var mxUrlConverter = function()
|
||||
{
|
||||
// Empty constructor
|
||||
};
|
||||
|
||||
/**
|
||||
* Variable: enabled
|
||||
*
|
||||
* Specifies if the converter is enabled. Default is true.
|
||||
*/
|
||||
mxUrlConverter.prototype.enabled = true;
|
||||
|
||||
/**
|
||||
* Variable: baseUrl
|
||||
*
|
||||
* Specifies the base URL to be used as a prefix for relative URLs.
|
||||
*/
|
||||
mxUrlConverter.prototype.baseUrl = null;
|
||||
|
||||
/**
|
||||
* Variable: baseDomain
|
||||
*
|
||||
* Specifies the base domain to be used as a prefix for absolute URLs.
|
||||
*/
|
||||
mxUrlConverter.prototype.baseDomain = null;
|
||||
|
||||
/**
|
||||
* Function: updateBaseUrl
|
||||
*
|
||||
* Private helper function to update the base URL.
|
||||
*/
|
||||
mxUrlConverter.prototype.updateBaseUrl = function()
|
||||
{
|
||||
this.baseDomain = location.protocol + '//' + location.host;
|
||||
this.baseUrl = this.baseDomain + location.pathname;
|
||||
var tmp = this.baseUrl.lastIndexOf('/');
|
||||
|
||||
// Strips filename etc
|
||||
if (tmp > 0)
|
||||
{
|
||||
this.baseUrl = this.baseUrl.substring(0, tmp + 1);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: isEnabled
|
||||
*
|
||||
* Returns <enabled>.
|
||||
*/
|
||||
mxUrlConverter.prototype.isEnabled = function()
|
||||
{
|
||||
return this.enabled;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: setEnabled
|
||||
*
|
||||
* Sets <enabled>.
|
||||
*/
|
||||
mxUrlConverter.prototype.setEnabled = function(value)
|
||||
{
|
||||
this.enabled = value;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getBaseUrl
|
||||
*
|
||||
* Returns <baseUrl>.
|
||||
*/
|
||||
mxUrlConverter.prototype.getBaseUrl = function()
|
||||
{
|
||||
return this.baseUrl;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: setBaseUrl
|
||||
*
|
||||
* Sets <baseUrl>.
|
||||
*/
|
||||
mxUrlConverter.prototype.setBaseUrl = function(value)
|
||||
{
|
||||
this.baseUrl = value;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getBaseDomain
|
||||
*
|
||||
* Returns <baseDomain>.
|
||||
*/
|
||||
mxUrlConverter.prototype.getBaseDomain = function()
|
||||
{
|
||||
return this.baseDomain;
|
||||
},
|
||||
|
||||
/**
|
||||
* Function: setBaseDomain
|
||||
*
|
||||
* Sets <baseDomain>.
|
||||
*/
|
||||
mxUrlConverter.prototype.setBaseDomain = function(value)
|
||||
{
|
||||
this.baseDomain = value;
|
||||
},
|
||||
|
||||
/**
|
||||
* Function: isRelativeUrl
|
||||
*
|
||||
* Returns true if the given URL is relative.
|
||||
*/
|
||||
mxUrlConverter.prototype.isRelativeUrl = function(url)
|
||||
{
|
||||
return url.substring(0, 2) != '//' && url.substring(0, 7) != 'http://' && url.substring(0, 8) != 'https://' && url.substring(0, 10) != 'data:image';
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: convert
|
||||
*
|
||||
* Converts the given URL to an absolute URL with protol and domain.
|
||||
* Relative URLs are first converted to absolute URLs.
|
||||
*/
|
||||
mxUrlConverter.prototype.convert = function(url)
|
||||
{
|
||||
if (this.isEnabled() && this.isRelativeUrl(url))
|
||||
{
|
||||
if (this.getBaseUrl() == null)
|
||||
{
|
||||
this.updateBaseUrl();
|
||||
}
|
||||
|
||||
if (url.charAt(0) == '/')
|
||||
{
|
||||
url = this.getBaseDomain() + url;
|
||||
}
|
||||
else
|
||||
{
|
||||
url = this.getBaseUrl() + url;
|
||||
}
|
||||
}
|
||||
|
||||
return url;
|
||||
};
|
Loading…
Reference in New Issue
Block a user