|
|
|
@ -41,168 +41,166 @@ var FACEBOOK_CARD_IMG_WIDTH = 1200;
|
|
|
|
|
var FACEBOOK_CARD_IMG_HEIGHT = 630;
|
|
|
|
|
var element = $('#app');
|
|
|
|
|
|
|
|
|
|
$(function () {
|
|
|
|
|
cdb.init(function () {
|
|
|
|
|
function showPasswordProtectedForm () {
|
|
|
|
|
var assetsVersion = AssetsVersionHelper.getAssetsVersion(VERSION);
|
|
|
|
|
var data = window.CartoConfig.data;
|
|
|
|
|
var config = data.config;
|
|
|
|
|
|
|
|
|
|
cdb.templates.namespace = 'cartodb/';
|
|
|
|
|
cdb.config.set(config);
|
|
|
|
|
|
|
|
|
|
document.title = TITLE({
|
|
|
|
|
title: _t('protected_map.title')
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var view = new PasswordProtectedView({
|
|
|
|
|
vizID: getPublicMapPageId(),
|
|
|
|
|
data: data,
|
|
|
|
|
assetsVersion: assetsVersion,
|
|
|
|
|
handleRedirection: function (password) {
|
|
|
|
|
if (window.CartoConfig.data && window.CartoConfig.vizdata) {
|
|
|
|
|
showPublicVisualization(password);
|
|
|
|
|
} else if (!window.CartoConfig.vizdata) {
|
|
|
|
|
getVisualization(password);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
element.html(view.render().el);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function showForbiddenView () {
|
|
|
|
|
var assetsVersion = AssetsVersionHelper.getAssetsVersion(VERSION);
|
|
|
|
|
var data = window.CartoConfig.data;
|
|
|
|
|
var config = data.config;
|
|
|
|
|
function showPasswordProtectedForm () {
|
|
|
|
|
var assetsVersion = AssetsVersionHelper.getAssetsVersion(VERSION);
|
|
|
|
|
var data = window.CartoConfig.data;
|
|
|
|
|
var config = data.config;
|
|
|
|
|
|
|
|
|
|
cdb.templates.namespace = 'cartodb/';
|
|
|
|
|
cdb.config.set(config);
|
|
|
|
|
document.title = TITLE({
|
|
|
|
|
title: _t('forbidden_map.title')
|
|
|
|
|
});
|
|
|
|
|
cdb.templates.namespace = 'cartodb/';
|
|
|
|
|
cdb.config.set(config);
|
|
|
|
|
|
|
|
|
|
var view = new ForbiddenView({
|
|
|
|
|
data: data,
|
|
|
|
|
assetsVersion: assetsVersion
|
|
|
|
|
});
|
|
|
|
|
document.title = TITLE({
|
|
|
|
|
title: _t('protected_map.title')
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
element.html(view.render().el);
|
|
|
|
|
var view = new PasswordProtectedView({
|
|
|
|
|
vizID: getPublicMapPageId(),
|
|
|
|
|
data: data,
|
|
|
|
|
assetsVersion: assetsVersion,
|
|
|
|
|
handleRedirection: function (password) {
|
|
|
|
|
if (window.CartoConfig.data && window.CartoConfig.vizdata) {
|
|
|
|
|
showPublicVisualization(password);
|
|
|
|
|
} else if (!window.CartoConfig.vizdata) {
|
|
|
|
|
getVisualization(password);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function getVisualization (password) {
|
|
|
|
|
var params = {
|
|
|
|
|
show_permission: true,
|
|
|
|
|
show_liked: true,
|
|
|
|
|
show_stats: true,
|
|
|
|
|
fetch_user: true,
|
|
|
|
|
fetch_related_canonical_visualizations: true
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (password != null) {
|
|
|
|
|
params = _.extend({}, params, {
|
|
|
|
|
password: password
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
element.html(view.render().el);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var vizID = UrlHelper.getVizID();
|
|
|
|
|
|
|
|
|
|
client.getVisualization(vizID, params, function (err, response, data) {
|
|
|
|
|
var error;
|
|
|
|
|
if (err) {
|
|
|
|
|
error = data.responseJSON;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (err && error.errors_cause && error.errors_cause === 'privacy_password') {
|
|
|
|
|
showPasswordProtectedForm();
|
|
|
|
|
} else if (err && error.errors === 'Visualization not viewable') {
|
|
|
|
|
showForbiddenView();
|
|
|
|
|
} else {
|
|
|
|
|
window.CartoConfig.vizdata = data;
|
|
|
|
|
getDerivedVisualizations(data, password);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
function showForbiddenView () {
|
|
|
|
|
var assetsVersion = AssetsVersionHelper.getAssetsVersion(VERSION);
|
|
|
|
|
var data = window.CartoConfig.data;
|
|
|
|
|
var config = data.config;
|
|
|
|
|
|
|
|
|
|
cdb.templates.namespace = 'cartodb/';
|
|
|
|
|
cdb.config.set(config);
|
|
|
|
|
document.title = TITLE({
|
|
|
|
|
title: _t('forbidden_map.title')
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function getDerivedVisualizations (vizdata, password) {
|
|
|
|
|
var visualizationsNumber = 3;
|
|
|
|
|
|
|
|
|
|
var options = {
|
|
|
|
|
per_page: visualizationsNumber,
|
|
|
|
|
password: password
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
client.getDerivedVisualizations(options, function (err, response, data) {
|
|
|
|
|
if (err) {
|
|
|
|
|
console.error(err);
|
|
|
|
|
return err;
|
|
|
|
|
} else {
|
|
|
|
|
window.CartoConfig.visualizations = data.visualizations;
|
|
|
|
|
showPublicVisualization(password);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
var view = new ForbiddenView({
|
|
|
|
|
data: data,
|
|
|
|
|
assetsVersion: assetsVersion
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
element.html(view.render().el);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getVisualization (password) {
|
|
|
|
|
var params = {
|
|
|
|
|
show_permission: true,
|
|
|
|
|
show_liked: true,
|
|
|
|
|
show_stats: true,
|
|
|
|
|
fetch_user: true,
|
|
|
|
|
fetch_related_canonical_visualizations: true
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (password != null) {
|
|
|
|
|
params = _.extend({}, params, {
|
|
|
|
|
password: password
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var vizID = UrlHelper.getVizID();
|
|
|
|
|
|
|
|
|
|
client.getVisualization(vizID, params, function (err, response, data) {
|
|
|
|
|
var error;
|
|
|
|
|
if (err) {
|
|
|
|
|
error = data.responseJSON;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function showPublicVisualization (password) {
|
|
|
|
|
var data = window.CartoConfig.data;
|
|
|
|
|
var vizdata = window.CartoConfig.vizdata;
|
|
|
|
|
var visualizations = window.CartoConfig.visualizations;
|
|
|
|
|
var assetsVersion = AssetsVersionHelper.getAssetsVersion(VERSION);
|
|
|
|
|
var assetsBaseUrl = data.config.app_assets_base_url;
|
|
|
|
|
var currentUser = data.user_data
|
|
|
|
|
? new cdb.admin.User(data.user_data)
|
|
|
|
|
: null;
|
|
|
|
|
|
|
|
|
|
var mapOwnerUser = vizdata.permission.owner
|
|
|
|
|
? new cdb.admin.User(vizdata.permission.owner)
|
|
|
|
|
: null;
|
|
|
|
|
|
|
|
|
|
cdb.templates.namespace = 'cartodb/';
|
|
|
|
|
cdb.config.set(data.config);
|
|
|
|
|
|
|
|
|
|
if (currentUser) {
|
|
|
|
|
cdb.config.set('user', currentUser);
|
|
|
|
|
cdb.config.set('url_prefix', currentUser.get('base_url'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StaticHeaderMetaTagsHelper
|
|
|
|
|
.addPublicMapMeta(assetsBaseUrl, vizdata, mapOwnerUser)
|
|
|
|
|
.addTwitterMeta(vizdata, mapOwnerUser, TWITTER_CARD_IMG_WIDTH, TWITTER_CARD_IMG_HEIGHT)
|
|
|
|
|
.addFacebookMeta(vizdata, mapOwnerUser, FACEBOOK_CARD_IMG_WIDTH, FACEBOOK_CARD_IMG_HEIGHT);
|
|
|
|
|
|
|
|
|
|
$('#app').empty();
|
|
|
|
|
|
|
|
|
|
var publicMapView = new PublicMapWindow({
|
|
|
|
|
el: '#app',
|
|
|
|
|
assetsVersion: assetsVersion,
|
|
|
|
|
collection: new cdb.admin.Visualizations(),
|
|
|
|
|
config: cdb.config,
|
|
|
|
|
currentUser: currentUser,
|
|
|
|
|
mapOwnerUser: mapOwnerUser,
|
|
|
|
|
data: data,
|
|
|
|
|
isMobileDevice: MapOptionsHelper.isMobileDevice(),
|
|
|
|
|
mapId: MAP_ID,
|
|
|
|
|
mapOptions: {},
|
|
|
|
|
vizdata: vizdata,
|
|
|
|
|
visualizations: visualizations,
|
|
|
|
|
password: password
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
publicMapView.render();
|
|
|
|
|
if (err && error.errors_cause && error.errors_cause === 'privacy_password') {
|
|
|
|
|
showPasswordProtectedForm();
|
|
|
|
|
} else if (err && error.errors === 'Visualization not viewable') {
|
|
|
|
|
showForbiddenView();
|
|
|
|
|
} else {
|
|
|
|
|
window.CartoConfig.vizdata = data;
|
|
|
|
|
getDerivedVisualizations(data, password);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getDerivedVisualizations (vizdata, password) {
|
|
|
|
|
var visualizationsNumber = 3;
|
|
|
|
|
|
|
|
|
|
var options = {
|
|
|
|
|
per_page: visualizationsNumber,
|
|
|
|
|
password: password
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
client.getDerivedVisualizations(options, function (err, response, data) {
|
|
|
|
|
if (err) {
|
|
|
|
|
console.error(err);
|
|
|
|
|
return err;
|
|
|
|
|
} else {
|
|
|
|
|
window.CartoConfig.visualizations = data.visualizations;
|
|
|
|
|
showPublicVisualization(password);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function showPublicVisualization (password) {
|
|
|
|
|
var data = window.CartoConfig.data;
|
|
|
|
|
var vizdata = window.CartoConfig.vizdata;
|
|
|
|
|
var visualizations = window.CartoConfig.visualizations;
|
|
|
|
|
var assetsVersion = AssetsVersionHelper.getAssetsVersion(VERSION);
|
|
|
|
|
var assetsBaseUrl = data.config.app_assets_base_url;
|
|
|
|
|
var currentUser = data.user_data
|
|
|
|
|
? new cdb.admin.User(data.user_data)
|
|
|
|
|
: null;
|
|
|
|
|
|
|
|
|
|
var mapOwnerUser = vizdata.permission.owner
|
|
|
|
|
? new cdb.admin.User(vizdata.permission.owner)
|
|
|
|
|
: null;
|
|
|
|
|
|
|
|
|
|
cdb.templates.namespace = 'cartodb/';
|
|
|
|
|
cdb.config.set(data.config);
|
|
|
|
|
|
|
|
|
|
if (currentUser) {
|
|
|
|
|
cdb.config.set('user', currentUser);
|
|
|
|
|
cdb.config.set('url_prefix', currentUser.get('base_url'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StaticHeaderMetaTagsHelper
|
|
|
|
|
.addPublicMapMeta(assetsBaseUrl, vizdata, mapOwnerUser)
|
|
|
|
|
.addTwitterMeta(vizdata, mapOwnerUser, TWITTER_CARD_IMG_WIDTH, TWITTER_CARD_IMG_HEIGHT)
|
|
|
|
|
.addFacebookMeta(vizdata, mapOwnerUser, FACEBOOK_CARD_IMG_WIDTH, FACEBOOK_CARD_IMG_HEIGHT);
|
|
|
|
|
|
|
|
|
|
$('#app').empty();
|
|
|
|
|
|
|
|
|
|
var publicMapView = new PublicMapWindow({
|
|
|
|
|
el: '#app',
|
|
|
|
|
assetsVersion: assetsVersion,
|
|
|
|
|
collection: new cdb.admin.Visualizations(),
|
|
|
|
|
config: cdb.config,
|
|
|
|
|
currentUser: currentUser,
|
|
|
|
|
mapOwnerUser: mapOwnerUser,
|
|
|
|
|
data: data,
|
|
|
|
|
isMobileDevice: MapOptionsHelper.isMobileDevice(),
|
|
|
|
|
mapId: MAP_ID,
|
|
|
|
|
mapOptions: {},
|
|
|
|
|
vizdata: vizdata,
|
|
|
|
|
visualizations: visualizations,
|
|
|
|
|
password: password
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var getConfig = function () {
|
|
|
|
|
client.getConfig(function (err, response, data) {
|
|
|
|
|
if (err) {
|
|
|
|
|
console.error(err);
|
|
|
|
|
return err;
|
|
|
|
|
} else {
|
|
|
|
|
window.CartoConfig.data = data;
|
|
|
|
|
getVisualization();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
getConfig();
|
|
|
|
|
publicMapView.render();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var getConfig = function () {
|
|
|
|
|
client.getConfig(function (err, response, data) {
|
|
|
|
|
if (err) {
|
|
|
|
|
console.error(err);
|
|
|
|
|
return err;
|
|
|
|
|
} else {
|
|
|
|
|
window.CartoConfig.data = data;
|
|
|
|
|
getVisualization();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
cdb.init(function () {
|
|
|
|
|
getConfig();
|
|
|
|
|
});
|
|
|
|
|