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

+ + + + + + + + + + + + + {% for campaign in archived_campaigns %} + + + + + + + + {% endfor %} + +
TitleGoalRaisedCampaign LinkUnarchive?
{{campaign.title}}{{campaign.goal}}{{campaign.get_amount_raised()}}See campaign details +
+
+
+ +{% 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 %}