diff --git a/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java b/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java index 5ef1cdcaddb9acbaac7f3b3f83c5f2d060758bc8..daecfe86b571e66ac747e8763191747829123f52 100644 --- a/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java +++ b/src/main/java/polish_community_group_11/polish_community/feed/controllers/FeedApisController.java @@ -52,7 +52,7 @@ public class FeedApisController { if (currentUser != null){ - // set isEditable flag for each post depedant on whether they are an admin or own the post + // set isDeletable flag and isEditable flag for each post depedant on whether they are an admin or own the post for (FeedImpl post : posts) { log.info("Role ID: " + currentUser.getRoleId()); boolean isSuperAdmin = currentUser != null && currentUser.getRoleId() == 1; @@ -60,6 +60,7 @@ public class FeedApisController { boolean isOwner = currentUser != null && post.getUserId() == currentUser.getId(); log.info("IsPostOwner: " + isOwner); post.setIsDeletable(isSuperAdmin || isOwner); + post.setIsEditable( isOwner); log.info("PostIsEditable: " + post.getIsDeletable()); } } diff --git a/src/main/java/polish_community_group_11/polish_community/feed/models/Feed.java b/src/main/java/polish_community_group_11/polish_community/feed/models/Feed.java index f117f79692b2204c55cb1b9e386b8c5f22e5c55b..42ffd5d9ec762c28744c4cc8a901037a8fe49668 100644 --- a/src/main/java/polish_community_group_11/polish_community/feed/models/Feed.java +++ b/src/main/java/polish_community_group_11/polish_community/feed/models/Feed.java @@ -34,6 +34,9 @@ public interface Feed { boolean getIsDeletable(); void setIsDeletable(boolean isDeletable); + boolean getIsEditable(); + void setIsEditable(boolean isEditable); + int getPostId(); diff --git a/src/main/java/polish_community_group_11/polish_community/feed/models/FeedImpl.java b/src/main/java/polish_community_group_11/polish_community/feed/models/FeedImpl.java index 329d4ae62a2a7f7ae7b4e9c45c185cd9ad60956b..3a7f5762fa8f379f6da9d3703a84b8e90e072091 100644 --- a/src/main/java/polish_community_group_11/polish_community/feed/models/FeedImpl.java +++ b/src/main/java/polish_community_group_11/polish_community/feed/models/FeedImpl.java @@ -22,6 +22,7 @@ public class FeedImpl implements Feed { private List<String> tags; private int likesCount; private boolean isDeletable; + private boolean isEditable; @Override public boolean getIsDeletable() { @@ -32,5 +33,15 @@ public class FeedImpl implements Feed { public void setIsDeletable(boolean isDeletable) { this.isDeletable = isDeletable; } + + @Override + public boolean getIsEditable(){ + return isEditable; + } + + @Override + public void setIsEditable(boolean isEditable){ + this.isEditable = isEditable; + } } diff --git a/src/main/resources/static/js/feed/feed.js b/src/main/resources/static/js/feed/feed.js index 468f6f895c809f4963dde1200d66963cbe732920..2de2bed6a9aca5402445e899b0efa8b5e14806e1 100644 --- a/src/main/resources/static/js/feed/feed.js +++ b/src/main/resources/static/js/feed/feed.js @@ -45,7 +45,9 @@ async function renderPost(post) { const postElement = postTemplate.content.cloneNode(true); const deleteButton = postElement.querySelector('.delete-post'); + const editButton = postElement.querySelector('.edit-post'); deleteButton.style.display = post.isDeletable ? 'block' : 'none'; + editButton.style.display = post.isEditable ? 'block' : 'none'; postElement.querySelector('.author').textContent = post.authorName; postElement.querySelector('.author-title').textContent = post.authorOrganization; postElement.querySelector('.post-title').textContent = post.postTitle; @@ -146,7 +148,7 @@ const postForm = document.getElementById('post-form'); postForm.addEventListener('submit', (event) => { event.preventDefault(); - // getting form data + // getting form data, const postTitle = document.getElementById('postTitle').value; const postDescription = document.getElementById('postDescription').value; const postTagsInput = document.getElementById('postTags').value; @@ -195,4 +197,4 @@ document.addEventListener('DOMContentLoaded', () => { }); // refresh posts each minute , though cannot show at moment since not online -setInterval(fetchPosts, 60000); \ No newline at end of file +// setInterval(fetchPosts, 60000); \ No newline at end of file diff --git a/src/main/resources/templates/feed/feed.html b/src/main/resources/templates/feed/feed.html index 28861a9c8e98e1e9e677b34e607508d9b5a53e95..189c8e7ee3fc2665235a373f7d4373f96a6d07cc 100644 --- a/src/main/resources/templates/feed/feed.html +++ b/src/main/resources/templates/feed/feed.html @@ -32,10 +32,10 @@ </div> </div> <div class="post-manipulation"> - <button title="Delete post" class="edit-post" id="edit-post"> + <button title="Edit post" class="edit-post" id="edit-post"> <i class="bi bi-pencil"></i> </button> - <button title="Edit post" class="delete-post" id="delete-post"> + <button title="Delete post" class="delete-post" id="delete-post"> <i class="bi bi-trash3"></i> </button> </div>