cartodb-4.42/lib/assets/javascripts/dashboard/public-dataset.js
2024-04-09 12:00:11 +08:00

125 lines
3.8 KiB
JavaScript

const Polyglot = require('node-polyglot');
const Locale = require('locale/index');
//const ACTIVE_LOCALE = window.ACTIVE_LOCALE || 'en';
const ACTIVE_LOCALE = 'zh-cn';
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
});
});