cartodb/lib/assets/javascripts/dashboard/user-feed.js
2020-06-15 10:58:47 +08:00

77 lines
2.3 KiB
JavaScript

const Polyglot = require('node-polyglot');
const _ = require('underscore');
const $ = require('jquery');
require('dashboard/data/backbone/sync-options');
const Locale = require('../locale/index');
const AuthenticatedUser = require('dashboard/data/authenticated-user-model');
const UserModel = require('dashboard/data/user-model');
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 ScrollToFix = require('dashboard/helpers/scroll-tofixed-view');
const FavMapView = require('dashboard/views/public-profile/fav-map-view');
const Feed = require('dashboard/views/public-profile/feed-view');
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 ForbiddenAction = require('builder/data/backbone/network-interceptors/interceptors/forbidden-403');
const NetworkResponseInterceptor = require('builder/data/backbone/network-interceptors/interceptor');
NetworkResponseInterceptor.addURLPattern('api/v');
const configModel = new ConfigModel(
_.defaults(
{
base_url: window.base_url
},
window.config
)
);
$(function () {
new ScrollToFix({ // eslint-disable-line no-new
el: $('.js-Navmenu')
});
const authenticatedUser = new AuthenticatedUser();
authenticatedUser.on('change', function (model) {
if (model.get('username')) {
NetworkResponseInterceptor.addErrorInterceptor(ForbiddenAction(model.get('username')));
NetworkResponseInterceptor.start();
var user = new UserModel(authenticatedUser.attributes, {
configModel: configModel
});
const userSettingsView = new UserSettingsView({
el: $('.js-user-settings'),
model: user
});
userSettingsView.render();
}
});
authenticatedUser.fetch();
new UserIndustriesView({ // eslint-disable-line no-new
el: $('.js-user-industries')
});
const favMapView = new FavMapView(window.favMapViewAttrs);
favMapView.render();
const feed = new Feed({
el: $('.js-feed'),
config: configModel,
authenticatedUser: authenticatedUser
});
feed.render();
});