diff --git a/app/admin/routes.py b/app/admin/routes.py
index 9e9a4c5..85785d7 100644
--- a/app/admin/routes.py
+++ b/app/admin/routes.py
@@ -17,3 +17,9 @@ def administration():
return render_template('administration.html',
users=users,
campaigns=campaigns)
+
+@admin.route('archive')
+def archive():
+ archived_campaigns = Campaign.query.filter_by(archived=True).all()
+ return render_template('archive.html',
+ archived_campaigns=archived_campaigns)
\ No newline at end of file
diff --git a/app/admin/static/archive.js b/app/admin/static/archive.js
new file mode 100644
index 0000000..2db5a59
--- /dev/null
+++ b/app/admin/static/archive.js
@@ -0,0 +1,31 @@
+const unArchiveButtons = document.getElementsByClassName('unarchive-button');
+
+
+function deactivateUnArchiveButtons(){
+ for (let i = 0; i < unArchiveButtons.length; i++){
+ unArchiveButtons[i].disabled=true;
+ }
+}
+function activateUnArchiveButtons(){
+ for (let i = 0; i < unArchiveButtons.length; i++){
+ unArchiveButtons[i].disabled=false;
+ }
+}
+
+
+async function unArchiveCampaign(id){
+ deactivateUnArchiveButtons()
+ var result = await fetch(`/campaigns/campaign_api/un_archive_campaign/${id}`, {method:'PUT'});
+ var data = await result.json();
+ document.getElementById(`${id}-row`).remove();
+ activateUnArchiveButtons()
+}
+
+
+document.addEventListener("DOMContentLoaded", (event) => {
+ for(let i = 0; i < unArchiveButtons.length; i++){
+ unArchiveButtons[i].addEventListener('click', e => {
+ unArchiveCampaign(parseInt(e.target.value))
+ })
+ }
+ });
\ No newline at end of file
diff --git a/app/admin/templates/archive.html b/app/admin/templates/archive.html
new file mode 100644
index 0000000..0395be5
--- /dev/null
+++ b/app/admin/templates/archive.html
@@ -0,0 +1,38 @@
+{% extends 'base.html' %}
+{% block title %}Archive{% endblock title %}
+{% block stylesheet %}{% endblock stylesheet %}
+{% block content %}
+
+
+
Archived Campaigns
+
+
+
+
+ | Title |
+ Goal |
+ Raised |
+ Campaign Link |
+ Unarchive? |
+
+
+
+ {% for campaign in archived_campaigns %}
+
+ | {{campaign.title}} |
+ {{campaign.goal}} |
+ {{campaign.get_amount_raised()}} |
+ See campaign details |
+
+ |
+
+ {% endfor %}
+
+
+
+
+
+{% endblock content %}
\ No newline at end of file
diff --git a/app/main/templates/base.html b/app/main/templates/base.html
index 39f6888..b105f4c 100644
--- a/app/main/templates/base.html
+++ b/app/main/templates/base.html
@@ -18,6 +18,7 @@
User Page
{% if current_user.user_type == 'Admin' %}
Admin Management
+ Archive
{% endif %}