mirror of
https://github.com/rr-/szurubooru.git
synced 2025-07-17 08:26:24 +00:00
Switched to spaces
This commit is contained in:
@ -2,105 +2,105 @@ var App = App || {};
|
||||
App.Presenters = App.Presenters || {};
|
||||
|
||||
App.Presenters.UserPresenter = function(
|
||||
_,
|
||||
jQuery,
|
||||
util,
|
||||
promise,
|
||||
api,
|
||||
auth,
|
||||
topNavigationPresenter,
|
||||
presenterManager,
|
||||
userBrowsingSettingsPresenter,
|
||||
userAccountSettingsPresenter,
|
||||
userAccountRemovalPresenter,
|
||||
messagePresenter) {
|
||||
_,
|
||||
jQuery,
|
||||
util,
|
||||
promise,
|
||||
api,
|
||||
auth,
|
||||
topNavigationPresenter,
|
||||
presenterManager,
|
||||
userBrowsingSettingsPresenter,
|
||||
userAccountSettingsPresenter,
|
||||
userAccountRemovalPresenter,
|
||||
messagePresenter) {
|
||||
|
||||
var $el = jQuery('#content');
|
||||
var $messages = $el;
|
||||
var templates = {};
|
||||
var user;
|
||||
var userName = null;
|
||||
var activeTab;
|
||||
var $el = jQuery('#content');
|
||||
var $messages = $el;
|
||||
var templates = {};
|
||||
var user;
|
||||
var userName = null;
|
||||
var activeTab;
|
||||
|
||||
function init(params, loaded) {
|
||||
promise.wait(util.promiseTemplate('user'))
|
||||
.then(function(template) {
|
||||
templates.user = template;
|
||||
reinit(params, loaded);
|
||||
}).fail(function() {
|
||||
console.log(arguments);
|
||||
loaded();
|
||||
});
|
||||
}
|
||||
function init(params, loaded) {
|
||||
promise.wait(util.promiseTemplate('user'))
|
||||
.then(function(template) {
|
||||
templates.user = template;
|
||||
reinit(params, loaded);
|
||||
}).fail(function() {
|
||||
console.log(arguments);
|
||||
loaded();
|
||||
});
|
||||
}
|
||||
|
||||
function reinit(params, loaded) {
|
||||
if (params.userName !== userName) {
|
||||
userName = params.userName;
|
||||
topNavigationPresenter.select(auth.isLoggedIn(userName) ? 'my-account' : 'users');
|
||||
topNavigationPresenter.changeTitle(userName);
|
||||
function reinit(params, loaded) {
|
||||
if (params.userName !== userName) {
|
||||
userName = params.userName;
|
||||
topNavigationPresenter.select(auth.isLoggedIn(userName) ? 'my-account' : 'users');
|
||||
topNavigationPresenter.changeTitle(userName);
|
||||
|
||||
promise.wait(api.get('/users/' + userName))
|
||||
.then(function(response) {
|
||||
user = response.json;
|
||||
var extendedContext = _.extend(params, {user: user});
|
||||
promise.wait(api.get('/users/' + userName))
|
||||
.then(function(response) {
|
||||
user = response.json;
|
||||
var extendedContext = _.extend(params, {user: user});
|
||||
|
||||
presenterManager.initPresenters([
|
||||
[userBrowsingSettingsPresenter, _.extend({}, extendedContext, {target: '#browsing-settings-target'})],
|
||||
[userAccountSettingsPresenter, _.extend({}, extendedContext, {target: '#account-settings-target'})],
|
||||
[userAccountRemovalPresenter, _.extend({}, extendedContext, {target: '#account-removal-target'})]],
|
||||
function() {
|
||||
initTabs(params);
|
||||
loaded();
|
||||
});
|
||||
presenterManager.initPresenters([
|
||||
[userBrowsingSettingsPresenter, _.extend({}, extendedContext, {target: '#browsing-settings-target'})],
|
||||
[userAccountSettingsPresenter, _.extend({}, extendedContext, {target: '#account-settings-target'})],
|
||||
[userAccountRemovalPresenter, _.extend({}, extendedContext, {target: '#account-removal-target'})]],
|
||||
function() {
|
||||
initTabs(params);
|
||||
loaded();
|
||||
});
|
||||
|
||||
}).fail(function(response) {
|
||||
$el.empty();
|
||||
messagePresenter.showError($messages, response.json && response.json.error || response);
|
||||
loaded();
|
||||
});
|
||||
}).fail(function(response) {
|
||||
$el.empty();
|
||||
messagePresenter.showError($messages, response.json && response.json.error || response);
|
||||
loaded();
|
||||
});
|
||||
|
||||
} else {
|
||||
initTabs(params);
|
||||
loaded();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
initTabs(params);
|
||||
loaded();
|
||||
}
|
||||
}
|
||||
|
||||
function initTabs(params) {
|
||||
activeTab = params.tab || 'basic-info';
|
||||
render();
|
||||
}
|
||||
function initTabs(params) {
|
||||
activeTab = params.tab || 'basic-info';
|
||||
render();
|
||||
}
|
||||
|
||||
function render() {
|
||||
$el.html(templates.user({
|
||||
user: user,
|
||||
isLoggedIn: auth.isLoggedIn(user.name),
|
||||
util: util,
|
||||
canChangeBrowsingSettings: userBrowsingSettingsPresenter.getPrivileges().canChangeBrowsingSettings,
|
||||
canChangeAccountSettings: _.any(userAccountSettingsPresenter.getPrivileges()),
|
||||
canDeleteAccount: userAccountRemovalPresenter.getPrivileges().canDeleteAccount}));
|
||||
$messages = $el.find('.messages');
|
||||
util.loadImagesNicely($el.find('img'));
|
||||
userBrowsingSettingsPresenter.render();
|
||||
userAccountSettingsPresenter.render();
|
||||
userAccountRemovalPresenter.render();
|
||||
changeTab(activeTab);
|
||||
}
|
||||
function render() {
|
||||
$el.html(templates.user({
|
||||
user: user,
|
||||
isLoggedIn: auth.isLoggedIn(user.name),
|
||||
util: util,
|
||||
canChangeBrowsingSettings: userBrowsingSettingsPresenter.getPrivileges().canChangeBrowsingSettings,
|
||||
canChangeAccountSettings: _.any(userAccountSettingsPresenter.getPrivileges()),
|
||||
canDeleteAccount: userAccountRemovalPresenter.getPrivileges().canDeleteAccount}));
|
||||
$messages = $el.find('.messages');
|
||||
util.loadImagesNicely($el.find('img'));
|
||||
userBrowsingSettingsPresenter.render();
|
||||
userAccountSettingsPresenter.render();
|
||||
userAccountRemovalPresenter.render();
|
||||
changeTab(activeTab);
|
||||
}
|
||||
|
||||
function changeTab(targetTab) {
|
||||
var $link = $el.find('a[data-tab=' + targetTab + ']');
|
||||
var $links = $link.closest('ul').find('a[data-tab]');
|
||||
var $tabs = $el.find('.tab-wrapper').find('.tab');
|
||||
$links.removeClass('active');
|
||||
$link.addClass('active');
|
||||
$tabs.removeClass('active');
|
||||
$tabs.filter('[data-tab=' + targetTab + ']').addClass('active');
|
||||
}
|
||||
function changeTab(targetTab) {
|
||||
var $link = $el.find('a[data-tab=' + targetTab + ']');
|
||||
var $links = $link.closest('ul').find('a[data-tab]');
|
||||
var $tabs = $el.find('.tab-wrapper').find('.tab');
|
||||
$links.removeClass('active');
|
||||
$link.addClass('active');
|
||||
$tabs.removeClass('active');
|
||||
$tabs.filter('[data-tab=' + targetTab + ']').addClass('active');
|
||||
}
|
||||
|
||||
return {
|
||||
init: init,
|
||||
reinit: reinit,
|
||||
render: render
|
||||
};
|
||||
return {
|
||||
init: init,
|
||||
reinit: reinit,
|
||||
render: render
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user