122 lines
3.8 KiB
JavaScript
122 lines
3.8 KiB
JavaScript
|
const Polyglot = require('node-polyglot');
|
||
|
const Locale = require('locale/index');
|
||
|
|
||
|
const ACTIVE_LOCALE = window.ACTIVE_LOCALE || 'en';
|
||
|
const polyglot = new Polyglot({
|
||
|
locale: ACTIVE_LOCALE, // Needed for pluralize behaviour
|
||
|
phrases: Locale[ACTIVE_LOCALE]
|
||
|
});
|
||
|
window._t = polyglot.t.bind(polyglot);
|
||
|
|
||
|
const Backbone = require('backbone');
|
||
|
const _ = require('underscore');
|
||
|
const $ = require('jquery');
|
||
|
const ConfigModel = require('dashboard/data/config-model');
|
||
|
const UserSettingsView = require('dashboard/components/navbar/user-settings-view');
|
||
|
const UserIndustriesView = require('dashboard/components/navbar/user-industries-view');
|
||
|
const MapCardPreview = require('dashboard/components/mapcard-preview-view');
|
||
|
const AuthenticatedUser = require('dashboard/data/authenticated-user-model');
|
||
|
const UserModel = require('dashboard/data/user-model');
|
||
|
const UserMetaView = require('dashboard/components/user-meta-view/user-meta-view');
|
||
|
const PublicTableWindow = require('dashboard/views/public-dataset/public-table-window');
|
||
|
|
||
|
const ForbiddenAction = require('builder/data/backbone/network-interceptors/interceptors/forbidden-403');
|
||
|
const NetworkResponseInterceptor = require('builder/data/backbone/network-interceptors/interceptor');
|
||
|
NetworkResponseInterceptor.addURLPattern('api/v');
|
||
|
NetworkResponseInterceptor.addErrorInterceptor(ForbiddenAction());
|
||
|
NetworkResponseInterceptor.start();
|
||
|
|
||
|
$(function () {
|
||
|
const configModel = new ConfigModel(
|
||
|
_.defaults(
|
||
|
{
|
||
|
base_url: window.base_url
|
||
|
},
|
||
|
window.config
|
||
|
)
|
||
|
);
|
||
|
|
||
|
if (window.api_key) configModel.set('api_key', window.api_key);
|
||
|
|
||
|
new UserIndustriesView({ // eslint-disable-line no-new
|
||
|
el: $('.js-user-industries')
|
||
|
});
|
||
|
|
||
|
new UserMetaView({ // eslint-disable-line no-new
|
||
|
el: $('.js-user-meta'),
|
||
|
model: new Backbone.Model({
|
||
|
active: false
|
||
|
})
|
||
|
});
|
||
|
|
||
|
const authenticatedUser = new AuthenticatedUser();
|
||
|
authenticatedUser.bind('change', function () {
|
||
|
if (authenticatedUser.get('username')) {
|
||
|
const user = new UserModel(authenticatedUser.attributes);
|
||
|
const userSettingsView = new UserSettingsView({
|
||
|
el: $('.js-user-settings'),
|
||
|
model: user
|
||
|
});
|
||
|
userSettingsView.render();
|
||
|
|
||
|
$('.js-login').hide();
|
||
|
$('.js-learn').show();
|
||
|
|
||
|
if (user.get('username') === window.owner_username) {
|
||
|
// Show "Edit in CartoDB" button if logged user
|
||
|
// is the map owner ;)
|
||
|
$('.js-edit').css('display', 'inline-block');
|
||
|
$('.js-oneclick').hide();
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
$('.MapCard').each(function () {
|
||
|
const visId = $(this).data('visId');
|
||
|
if (visId) {
|
||
|
const username = $(this).data('visOwnerName');
|
||
|
const mapCardPreview = new MapCardPreview({
|
||
|
config: configModel,
|
||
|
el: $(this).find('.js-header'),
|
||
|
visId: $(this).data('visId'),
|
||
|
username: username,
|
||
|
mapsApiResource: configModel.getMapsResourceName(username)
|
||
|
});
|
||
|
mapCardPreview.load();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
authenticatedUser.fetch();
|
||
|
|
||
|
/**
|
||
|
* entry point for public table view
|
||
|
*/
|
||
|
// Add easeinquad animation
|
||
|
$.extend($.easing, {
|
||
|
easeInQuad: function (x, t, b, c, d) {
|
||
|
return c * (t /= d) * t + b;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Check if device is a mobile
|
||
|
var mobileDevice = /Android|webOS|iPad|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
||
|
|
||
|
// Window view
|
||
|
new PublicTableWindow({ // eslint-disable-line no-new
|
||
|
configModel,
|
||
|
el: window,
|
||
|
table_id: window.table_id,
|
||
|
table_name: window.table_name,
|
||
|
user_name: window.user_name,
|
||
|
owner_username: window.owner_username,
|
||
|
vizjson: window.vizjson_obj,
|
||
|
auth_token: window.auth_token,
|
||
|
https: window.use_https,
|
||
|
api_key: window.api_key,
|
||
|
schema: window.schema,
|
||
|
config: window.config,
|
||
|
isMobileDevice: mobileDevice,
|
||
|
belong_organization: window.belong_organization
|
||
|
});
|
||
|
});
|