54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
|
cdb.common = {};
|
||
|
cdb.admin = {};
|
||
|
cdb.admin.dashboard = {};
|
||
|
cdb.forms = {};
|
||
|
cdb.open = {};
|
||
|
cdb.dashboard = {};
|
||
|
|
||
|
cdb.config.setUrlVersion = function(modelName, method, v) {
|
||
|
cdb.config.set(modelName + '_' + method + '_url_version', v || 'v1');
|
||
|
}
|
||
|
|
||
|
cdb.config.urlVersion = function(modelName, method, defaultVersion) {
|
||
|
method = method || ''
|
||
|
var version = cdb.config.get(modelName + "_" + method + '_url_version')
|
||
|
return version || defaultVersion || 'v1';
|
||
|
}
|
||
|
|
||
|
// return prefixUrl for all the queries to the rest api
|
||
|
cdb.config.prefixUrl = function() {
|
||
|
return this.get('url_prefix') || '';
|
||
|
};
|
||
|
|
||
|
// if the prefixUrl is like http://host.com/u/o returns
|
||
|
// /u/o part
|
||
|
cdb.config.prefixUrlPathname = function() {
|
||
|
var prefix = this.prefixUrl();
|
||
|
if (prefix !== '') {
|
||
|
try {
|
||
|
if (prefix && prefix.indexOf('/') === -1) throw new TypeError('invalid URL');
|
||
|
var a = document.createElement('a');
|
||
|
a.href = prefix;
|
||
|
var url = a.pathname;
|
||
|
// remove trailing slash
|
||
|
return url.replace(/\/$/, '');
|
||
|
} catch(e) {
|
||
|
// not an url
|
||
|
}
|
||
|
}
|
||
|
return prefix;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* returns the maps API resource name, removing protocol.
|
||
|
* {user}.carto.com:3333 || carto.com:3333/{user} || ...
|
||
|
*/
|
||
|
cdb.config.getMapsResourceName = function(username) {
|
||
|
var url;
|
||
|
var mapsApiTemplate = this.get('maps_api_template');
|
||
|
if (mapsApiTemplate) {
|
||
|
url = mapsApiTemplate.replace(/(http|https)?:\/\//, '').replace(/{user}/g, username);
|
||
|
}
|
||
|
return url;
|
||
|
}
|