diff --git a/public/admin.php b/public/admin.php
index a098aa0..37ea501 100644
--- a/public/admin.php
+++ b/public/admin.php
@@ -457,11 +457,23 @@ $counts['total'] = count($all_contributions);
-
-
+
diff --git a/public/js/admin.js b/public/js/admin.js
index ca4c398..6c798f5 100644
--- a/public/js/admin.js
+++ b/public/js/admin.js
@@ -275,7 +275,26 @@ function sortCommentRows(sortBy) {
// =====================================================================
-// Block 7: Helper Functions
+// Block 7: News Filter and Sorting
+// =====================================================================
+
+// Sorts News
+function sortNewsRows(sortBy) {
+ var container = document.getElementById('tab-news');
+ var rows = Array.from(container.querySelectorAll('.contribution-row'));
+
+ rows.sort(function (a, b) {
+ if (sortBy === 'date-desc') return new Date(b.dataset.date || 0) - new Date(a.dataset.date || 0);
+ if (sortBy === 'date-asc') return new Date(a.dataset.date || 0) - new Date(b.dataset.date || 0);
+ return 0;
+ });
+
+ rows.forEach(function (row) { row.parentNode.appendChild(row); });
+}
+
+
+// =====================================================================
+// Block 8: Helper Functions
// =====================================================================
// Sends a POST request to API
@@ -301,7 +320,7 @@ function escapeHtml(text) {
}
// =====================================================================
-// Block 8: CRUD Operations for Contributions
+// Block 9: CRUD Operations for Contributions
// =====================================================================
// STATUS: Changes Contribution Status
@@ -406,7 +425,7 @@ function deleteContribution(contributionId) {
}
// =====================================================================
-// Block 9: CRUD Operations for Comments
+// Block 10: CRUD Operations for Comments
// =====================================================================
// STATUS: Changes Comment Status
@@ -501,7 +520,7 @@ function deleteModComment(commentId) {
// =====================================================================
-// Block 10: CRUD Operations for News
+// Block 11: CRUD Operations for News
// =====================================================================
// CREATE: Submits new News Article
diff --git a/public/styles.css b/public/styles.css
index 27cebf9..ce746f5 100644
--- a/public/styles.css
+++ b/public/styles.css
@@ -1374,6 +1374,12 @@ select.form-input { cursor: pointer; }
border-top: 1px solid #f0f0f0;
}
+.tab-footer-action {
+ display: flex;
+ justify-content: flex-end;
+ margin-top: var(--space-md);
+}
+
/* News and Comments Tab Headers */
.tab-header {