From 24a05731358ff7aa460f82b87b1a20c188655a12 Mon Sep 17 00:00:00 2001 From: Jadowyne Ulve Date: Sun, 3 Aug 2025 18:36:11 -0500 Subject: [PATCH] Did mass revitalization of navbar! --- application/access_module/access_api.py | 14 +- .../administration/static/js/adminHandler.js | 14 +- .../administration/templates/admin.html | 449 ------------------ .../administration/templates/admin_index.html | 113 ++--- .../administration/templates/role.html | 8 +- .../administration/templates/site.html | 8 +- .../administration/templates/user.html | 12 +- application/items/templates/index.html | 144 +++--- application/items/templates/item_new.html | 120 +++-- application/items/templates/itemlink.html | 125 ++--- application/items/templates/transaction.html | 144 +++--- application/items/templates/transactions.html | 116 +++-- application/poe/templates/receipts.html | 143 +++--- application/poe/templates/scanner.html | 143 +++--- .../receipts/static/js/receiptHandler.js | 2 +- application/receipts/templates/receipt.html | 110 +++-- .../receipts/templates/receipts_index.html | 133 +++--- .../recipes/static/js/recipeEditHandler.js | 2 +- .../recipes/static/js/recipeViewHandler.js | 2 +- .../recipes/templates/recipe_edit.html | 120 +++-- .../recipes/templates/recipe_view.html | 118 +++-- .../recipes/templates/recipes_index.html | 141 +++--- application/shoppinglists/templates/edit.html | 131 ++--- .../shoppinglists/templates/lists.html | 142 +++--- application/shoppinglists/templates/view.html | 131 ++--- .../static/js/site_management_handler.js | 26 +- webserver.py | 4 +- 27 files changed, 1131 insertions(+), 1484 deletions(-) delete mode 100644 application/administration/templates/admin.html diff --git a/application/access_module/access_api.py b/application/access_module/access_api.py index 14a5f71..6347024 100644 --- a/application/access_module/access_api.py +++ b/application/access_module/access_api.py @@ -51,12 +51,18 @@ def auth(): print("Failed to fetch user info:", response.status_code, response.text) return redirect('/access/login') - user_email = response.json()['email'] - profile_pic_url = response.json()['picture'] - user = access_database.selectUserByEmail((user_email,)) + external_user = response.json() + user = access_database.selectUserByEmail((external_user['email'],)) if user['login_type'] == "External": - user = access_database.updateLoginsTuple({'id': user['id'], 'update':{'profile_pic_url': profile_pic_url}}) + payload = { + 'id': user['id'], + 'update': { + 'username': external_user['preferred_username'], + 'profile_pic_url': external_user['picture'] + } + } + user = access_database.updateLoginsTuple(payload) user = access_database.washUserDictionary(user) session['user_id'] = user['id'] session['user'] = user diff --git a/application/administration/static/js/adminHandler.js b/application/administration/static/js/adminHandler.js index 7c77fbd..393881f 100644 --- a/application/administration/static/js/adminHandler.js +++ b/application/administration/static/js/adminHandler.js @@ -46,7 +46,7 @@ var sites_current_page = 1 var sites_end_page = 10 var sites_limit = 25 async function fetchSites(){ - const url = new URL('/admin/api/getSites', window.location.origin) + const url = new URL('/administration/api/getSites', window.location.origin) url.searchParams.append('page', sites_current_page) url.searchParams.append('limit', sites_limit) const response = await fetch(url) @@ -75,7 +75,7 @@ async function replenishSitesTable(sites){ let editOp = document.createElement('a') editOp.setAttribute('class', 'uk-button uk-button-small uk-button-default') editOp.innerHTML = "edit" - editOp.href = `/admin/site/${sites[i].id}` + editOp.href = `/administration/site/${sites[i].id}` let deleteOp = document.createElement('a') deleteOp.setAttribute('class', 'uk-button uk-button-small uk-button-default') @@ -176,7 +176,7 @@ async function postDeleteSite(site_id, item_name){ let valid = document.getElementById('delete_input') if(valid.value==item_name){ valid.classList.remove('uk-form-danger') - const response = await fetch(`/admin/api/site/postDeleteSite`, { + const response = await fetch(`/administration/api/site/postDeleteSite`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -214,7 +214,7 @@ var roles_current_page = 1 var roles_end_page = 10 var roles_limit = 25 async function fetchRoles(){ - const url = new URL('/admin/api/getRoles', window.location.origin) + const url = new URL('/administration/api/getRoles', window.location.origin) url.searchParams.append('page', roles_current_page) url.searchParams.append('limit', roles_limit) const response = await fetch(url) @@ -245,7 +245,7 @@ async function replenishRolesTable(roles){ let editOp = document.createElement('a') editOp.setAttribute('class', 'uk-button uk-button-small uk-button-default') editOp.innerHTML = "edit" - editOp.href = `/admin/role/${roles[i].id}` + editOp.href = `/administration/role/${roles[i].id}` let deleteOp = document.createElement('a') deleteOp.setAttribute('class', 'uk-button uk-button-small uk-button-default') @@ -348,7 +348,7 @@ var logins_current_page = 1 var logins_end_page = 10 var logins_limit = 25 async function fetchLogins(){ - const url = new URL('/admin/api/getLogins', window.location.origin) + const url = new URL('/administration/api/getLogins', window.location.origin) url.searchParams.append('page', logins_current_page) url.searchParams.append('limit', logins_limit) const response = await fetch(url) @@ -383,7 +383,7 @@ async function replenishLoginsTable(logins){ let editOp = document.createElement('a') editOp.setAttribute('class', 'uk-button uk-button-small uk-button-default') editOp.innerHTML = "edit" - editOp.href = `/admin/user/${logins[i].id}` + editOp.href = `/administration/user/${logins[i].id}` let deleteOp = document.createElement('a') deleteOp.setAttribute('class', 'uk-button uk-button-small uk-button-default') diff --git a/application/administration/templates/admin.html b/application/administration/templates/admin.html deleted file mode 100644 index 1339684..0000000 --- a/application/administration/templates/admin.html +++ /dev/null @@ -1,449 +0,0 @@ - - - - - Admin - - - - - - - - - -
-
-
-
- - home - Profile -
-
-
-
-

Your Sites

-
-
-

Listed below are all the sites within your instance of MyPantry. Clicking on one will allow you - edit most of the attributes inherited by the site.

-
-
- - - - - -
SiteDescription
-
-
- -
-
-
-
-

Your Roles

-
-
-

Listed below are all the roles within your instance of MyPantry. Clicking on one will allow you - edit most of the attributes inherited by the role.

-
-
- - - - - - -
SiteRoleRole Description
-
-
- -
-
-
-
-

Your Users

-
-
-

Listed below is all the users that have access to your instance.

-
-
- - - - - -
UsernameEmail
-
-
- -
-
-
-
-
-
- - - - - - - - - - \ No newline at end of file diff --git a/application/administration/templates/admin_index.html b/application/administration/templates/admin_index.html index 2536074..7505fe6 100644 --- a/application/administration/templates/admin_index.html +++ b/application/administration/templates/admin_index.html @@ -16,69 +16,60 @@ -
- -
diff --git a/application/administration/templates/role.html b/application/administration/templates/role.html index bd11a0f..7253e34 100644 --- a/application/administration/templates/role.html +++ b/application/administration/templates/role.html @@ -19,7 +19,7 @@
@@ -78,7 +78,7 @@ document.addEventListener('DOMContentLoaded', async function() { let mode = "edit" - if(path == "/admin/role/new"){ + if(path == "/administration/role/new"){ mode = "new" } await replenishForm(role, mode) @@ -132,7 +132,7 @@ site_id: document.getElementById('site_id').value, } - const response = await fetch(`/admin/api/role/postAddRole`, { + const response = await fetch(`/administration/api/role/postAddRole`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -150,7 +150,7 @@ update: {role_name: document.getElementById('role_name').value, role_description: document.getElementById('role_description').value} } - const response = await fetch(`/admin/api/role/postEditRole`, { + const response = await fetch(`/administration/api/role/postEditRole`, { method: 'POST', headers: { 'Content-Type': 'application/json', diff --git a/application/administration/templates/site.html b/application/administration/templates/site.html index 67f657b..40a8315 100644 --- a/application/administration/templates/site.html +++ b/application/administration/templates/site.html @@ -19,7 +19,7 @@
@@ -144,7 +144,7 @@ - -
-
diff --git a/application/recipes/templates/recipe_view.html b/application/recipes/templates/recipe_view.html index e049802..fec44f0 100644 --- a/application/recipes/templates/recipe_view.html +++ b/application/recipes/templates/recipe_view.html @@ -30,57 +30,77 @@ } -
-
diff --git a/application/recipes/templates/recipes_index.html b/application/recipes/templates/recipes_index.html index d1bf1ff..b677c5d 100644 --- a/application/recipes/templates/recipes_index.html +++ b/application/recipes/templates/recipes_index.html @@ -22,81 +22,76 @@ -
-
diff --git a/application/shoppinglists/templates/edit.html b/application/shoppinglists/templates/edit.html index 0b40b38..b8662da 100644 --- a/application/shoppinglists/templates/edit.html +++ b/application/shoppinglists/templates/edit.html @@ -23,70 +23,77 @@ -
-
diff --git a/application/shoppinglists/templates/lists.html b/application/shoppinglists/templates/lists.html index f7d415c..bd49499 100644 --- a/application/shoppinglists/templates/lists.html +++ b/application/shoppinglists/templates/lists.html @@ -23,82 +23,76 @@ -
-
diff --git a/application/shoppinglists/templates/view.html b/application/shoppinglists/templates/view.html index 9edeb6f..723c110 100644 --- a/application/shoppinglists/templates/view.html +++ b/application/shoppinglists/templates/view.html @@ -23,70 +23,77 @@ -
-
diff --git a/application/site_management/static/js/site_management_handler.js b/application/site_management/static/js/site_management_handler.js index c0a174c..faa937b 100644 --- a/application/site_management/static/js/site_management_handler.js +++ b/application/site_management/static/js/site_management_handler.js @@ -71,7 +71,7 @@ let zones_current_page = 1 let zones_end_page = 10 let zones_limit = 25 async function fetchZones(){ - const url = new URL('/site_management/api/getZones', window.location.origin) + const url = new URL('/site-management/api/getZones', window.location.origin) url.searchParams.append('page', zones_current_page) url.searchParams.append('limit', zones_limit) const response = await fetch(url) @@ -220,7 +220,7 @@ async function postAddZone() { let zoneName = `${document.getElementById('ZoneName').value}` let description = `${document.getElementById('ZoneDescription').value}` - const response = await fetch(`/site_management/api/postAddZone`, { + const response = await fetch(`/site-management/api/postAddZone`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -251,7 +251,7 @@ async function postAddZone() { async function postEditZone(zone_id) { let description = `${document.getElementById('ZoneDescription').value}` - const response = await fetch(`/site_management/api/postEditZone`, { + const response = await fetch(`/site-management/api/postEditZone`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -284,7 +284,7 @@ let locations_current_page = 1 let locations_end_page = 10 let locations_limit = 25 async function fetchLocations(){ - const url = new URL('/site_management/api/getLocations', window.location.origin) + const url = new URL('/site-management/api/getLocations', window.location.origin) url.searchParams.append('page', locations_current_page) url.searchParams.append('limit', locations_limit) const response = await fetch(url) @@ -451,7 +451,7 @@ let vendors_current_page = 1 let vendors_end_page = 10 let vendors_limit = 25 async function fetchVendors(){ - const url = new URL('/site_management/api/getVendors', window.location.origin) + const url = new URL('/site-management/api/getVendors', window.location.origin) url.searchParams.append('page', vendors_current_page) url.searchParams.append('limit', vendors_limit) const response = await fetch(url) @@ -604,7 +604,7 @@ async function postAddVendor() { let vendor_phone_number = document.getElementById('VendorPhoneNumber').value let vendor_address = document.getElementById('VendorAddress').value - const response = await fetch(`/site_management/api/postAddVendor`, { + const response = await fetch(`/site-management/api/postAddVendor`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -638,7 +638,7 @@ async function postEditVendor(vendor_id) { let vendor_phone_number = document.getElementById('VendorPhoneNumber').value let vendor_address = document.getElementById('VendorAddress').value - const response = await fetch(`/site_management/api/postEditVendor`, { + const response = await fetch(`/site-management/api/postEditVendor`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -671,7 +671,7 @@ let brands_current_page = 1 let brands_end_page = 10 let brands_limit = 25 async function fetchBrands(){ - const url = new URL('/site_management/api/getBrands', window.location.origin) + const url = new URL('/site-management/api/getBrands', window.location.origin) url.searchParams.append('page', brands_current_page) url.searchParams.append('limit', brands_limit) const response = await fetch(url) @@ -813,7 +813,7 @@ async function openEditBrandsModal(brand) { async function postAddBrand() { let brand_name = document.getElementById('BrandName').value - const response = await fetch(`/site_management/api/postAddBrand`, { + const response = await fetch(`/site-management/api/postAddBrand`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -843,7 +843,7 @@ async function postAddBrand() { async function postEditBrand(brand_id) { let brand_name = document.getElementById('BrandName').value - const response = await fetch(`/site_management/api/postEditBrand`, { + const response = await fetch(`/site-management/api/postEditBrand`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -876,7 +876,7 @@ let prefix_current_page = 1 let prefix_end_page = 10 let prefix_limit = 25 async function fetchPrefixes(){ - const url = new URL('/site_management/api/getPrefixes', window.location.origin) + const url = new URL('/site-management/api/getPrefixes', window.location.origin) url.searchParams.append('page', prefix_current_page) url.searchParams.append('limit', prefix_limit) const response = await fetch(url) @@ -1029,7 +1029,7 @@ async function postAddPrefix() { let prefix_name = document.getElementById('PrefixName').value let prefix_description = document.getElementById('PrefixDescription').value - const response = await fetch(`/site_management/api/postAddPrefix`, { + const response = await fetch(`/site-management/api/postAddPrefix`, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -1063,7 +1063,7 @@ async function postEditPrefix(prefix_id) { let prefix_name = document.getElementById('PrefixName').value let prefix_description = document.getElementById('PrefixDescription').value - const response = await fetch(`/site_management/api/postEditPrefix`, { + const response = await fetch(`/site-management/api/postEditPrefix`, { method: 'POST', headers: { 'Content-Type': 'application/json', diff --git a/webserver.py b/webserver.py index 4d6ac19..7bec48c 100644 --- a/webserver.py +++ b/webserver.py @@ -40,10 +40,10 @@ oauth.register( assets = Environment(app) app.secret_key = '11gs22h2h1a4h6ah8e413a45' app.register_blueprint(access_api.access_api, url_prefix="/access") -app.register_blueprint(administration_api.admin_api, url_prefix='/admin') +app.register_blueprint(administration_api.admin_api, url_prefix='/administration') app.register_blueprint(items_API.items_api, url_prefix='/items') app.register_blueprint(poe_api.point_of_ease, url_prefix='/poe') -app.register_blueprint(site_management_api.site_management_api, url_prefix="/site_management") +app.register_blueprint(site_management_api.site_management_api, url_prefix="/site-management") app.register_blueprint(receipts_api.receipt_api, url_prefix='/receipts') app.register_blueprint(shoplist_api.shopping_list_api, url_prefix="/shopping-lists") app.register_blueprint(recipes_api.recipes_api, url_prefix='/recipes')