mirror of
https://github.com/rr-/szurubooru.git
synced 2025-07-17 08:26:24 +00:00
Added post favoriting
This commit is contained in:
@ -22,6 +22,7 @@ App.Presenters.PostPresenter = function(
|
||||
var historyTemplate;
|
||||
|
||||
var post;
|
||||
var postFavorites;
|
||||
var postHistory;
|
||||
var postNameOrId;
|
||||
|
||||
@ -74,11 +75,16 @@ App.Presenters.PostPresenter = function(
|
||||
|
||||
promise.waitAll(
|
||||
api.get('/posts/' + postNameOrId),
|
||||
api.get('/posts/' + postNameOrId + '/favorites'),
|
||||
privileges.canViewHistory ?
|
||||
api.get('/posts/' + postNameOrId + '/history') :
|
||||
null)
|
||||
.then(function(postResponse, postHistoryResponse) {
|
||||
.then(function(
|
||||
postResponse,
|
||||
postFavoritesResponse,
|
||||
postHistoryResponse) {
|
||||
post = postResponse.json;
|
||||
postFavorites = postFavoritesResponse && postFavoritesResponse.json && postFavoritesResponse.json.data;
|
||||
postHistory = postHistoryResponse && postHistoryResponse.json && postHistoryResponse.json.data;
|
||||
topNavigationPresenter.changeTitle('@' + post.id);
|
||||
render();
|
||||
@ -112,30 +118,43 @@ App.Presenters.PostPresenter = function(
|
||||
}
|
||||
|
||||
$el.find('.post-edit-wrapper form').submit(editFormSubmitted);
|
||||
$el.find('#sidebar .delete').click(deleteButtonClicked);
|
||||
$el.find('#sidebar .feature').click(featureButtonClicked);
|
||||
$el.find('#sidebar .edit').click(editButtonClicked);
|
||||
$el.find('#sidebar .history').click(historyButtonClicked);
|
||||
attachSidebarEvents();
|
||||
}
|
||||
|
||||
function renderSidebar() {
|
||||
$el.find('#sidebar').html(jQuery(renderPostTemplate()).find('#sidebar').html());
|
||||
attachSidebarEvents();
|
||||
}
|
||||
|
||||
function renderPostTemplate() {
|
||||
return postTemplate({
|
||||
post: post,
|
||||
postFavorites: postFavorites,
|
||||
postHistory: postHistory,
|
||||
|
||||
formatRelativeTime: util.formatRelativeTime,
|
||||
formatFileSize: util.formatFileSize,
|
||||
|
||||
postContentTemplate: postContentTemplate,
|
||||
postEditTemplate: postEditTemplate,
|
||||
historyTemplate: historyTemplate,
|
||||
|
||||
hasFav: _.any(postFavorites, function(favUser) { return favUser.id === auth.getCurrentUser().id; }),
|
||||
isLoggedIn: auth.isLoggedIn(),
|
||||
privileges: privileges,
|
||||
editPrivileges: editPrivileges,
|
||||
});
|
||||
}
|
||||
|
||||
function attachSidebarEvents() {
|
||||
$el.find('#sidebar .delete').click(deleteButtonClicked);
|
||||
$el.find('#sidebar .feature').click(featureButtonClicked);
|
||||
$el.find('#sidebar .edit').click(editButtonClicked);
|
||||
$el.find('#sidebar .history').click(historyButtonClicked);
|
||||
$el.find('#sidebar .add-favorite').click(addFavoriteButtonClicked);
|
||||
$el.find('#sidebar .delete-favorite').click(deleteFavoriteButtonClicked);
|
||||
}
|
||||
|
||||
function deleteButtonClicked(e) {
|
||||
e.preventDefault();
|
||||
messagePresenter.hideMessages($messages);
|
||||
@ -268,6 +287,34 @@ App.Presenters.PostPresenter = function(
|
||||
$el.find('.post-history-wrapper').slideDown('slow');
|
||||
}
|
||||
|
||||
function addFavoriteButtonClicked(e) {
|
||||
e.preventDefault();
|
||||
addFavorite();
|
||||
}
|
||||
|
||||
function deleteFavoriteButtonClicked(e) {
|
||||
e.preventDefault();
|
||||
deleteFavorite();
|
||||
}
|
||||
|
||||
function addFavorite() {
|
||||
api.post('/posts/' + post.id + '/favorites')
|
||||
.then(function(response) {
|
||||
postFavorites = response.json.data;
|
||||
renderSidebar();
|
||||
})
|
||||
.fail(showGenericError);
|
||||
}
|
||||
|
||||
function deleteFavorite() {
|
||||
api.delete('/posts/' + post.id + '/favorites')
|
||||
.then(function(response) {
|
||||
postFavorites = response.json.data;
|
||||
renderSidebar();
|
||||
})
|
||||
.fail(showGenericError);
|
||||
}
|
||||
|
||||
function showEditError(response) {
|
||||
window.alert(response.json && response.json.error || response);
|
||||
}
|
||||
|
Reference in New Issue
Block a user