From 520c9ecd37cfef8bd5a878897ddadbf19eb3a2d2 Mon Sep 17 00:00:00 2001 From: Gini24mp Date: Sat, 1 Jun 2024 14:26:45 +0200 Subject: [PATCH 1/2] edit organisation modal added --- src/client/bun.lockb | Bin 136986 -> 136986 bytes .../lib/components/admin/+Organisation.svelte | 48 +----------- .../src/lib/components/modals/+EditOrg.svelte | 69 ++++++++++++++++++ .../src/routes/lecturers/+page.server.js | 36 +++++++++ .../src/routes/organisation/+page.server.js | 36 +++++++++ 5 files changed, 144 insertions(+), 45 deletions(-) create mode 100644 src/client/src/lib/components/modals/+EditOrg.svelte create mode 100644 src/client/src/routes/lecturers/+page.server.js create mode 100644 src/client/src/routes/organisation/+page.server.js diff --git a/src/client/bun.lockb b/src/client/bun.lockb index 6f24adbfaa809e36203d3d4219422ccd451b61ad..086dc0b29f93c2d329636a928c6ddc3e12540dcc 100755 GIT binary patch delta 27 jcmbQWj$_t3j)pCaPxCk#;|%l+%}n(Sw!h0`)L8)lkaP*r delta 27 dcmbQWj$_t3j)pCaPxCmL7@%PLyF5mn6##wn2pj+a diff --git a/src/client/src/lib/components/admin/+Organisation.svelte b/src/client/src/lib/components/admin/+Organisation.svelte index 79e1de5c..e2e747fb 100644 --- a/src/client/src/lib/components/admin/+Organisation.svelte +++ b/src/client/src/lib/components/admin/+Organisation.svelte @@ -1,5 +1,6 @@
@@ -64,51 +66,7 @@
- - +
diff --git a/src/client/src/lib/components/modals/+EditOrg.svelte b/src/client/src/lib/components/modals/+EditOrg.svelte new file mode 100644 index 00000000..203a9c65 --- /dev/null +++ b/src/client/src/lib/components/modals/+EditOrg.svelte @@ -0,0 +1,69 @@ + + + + + +
+

Edit Your Profile

+ + + + + + + + + +
+
\ No newline at end of file diff --git a/src/client/src/routes/lecturers/+page.server.js b/src/client/src/routes/lecturers/+page.server.js new file mode 100644 index 00000000..67691fa8 --- /dev/null +++ b/src/client/src/routes/lecturers/+page.server.js @@ -0,0 +1,36 @@ +/** @type {import('./$types').Actions} */ + +// Mock edit details function +async function editDetails(org_name, image_file) { + if(org_name){ + console.log(org_name); + } + if(image_file){ + console.log(image_file.name); + } +} + +export const actions = { + default: async ({ request }) => { + const formData = await request.formData(); + const orgName = formData.get('org_name'); + const imageFile = formData.get('image'); + + console.log('Organisation Name: ', orgName); + + if (imageFile instanceof File) { + console.log('Received file'); + console.log('File name: ', imageFile.name); + console.log('File type: ', imageFile.type); + console.log('File size: ', imageFile.size); + } else { + console.log('No file received'); + } + + await editDetails(orgName, imageFile); + + return { + status: 200 + }; + } +}; \ No newline at end of file diff --git a/src/client/src/routes/organisation/+page.server.js b/src/client/src/routes/organisation/+page.server.js new file mode 100644 index 00000000..67691fa8 --- /dev/null +++ b/src/client/src/routes/organisation/+page.server.js @@ -0,0 +1,36 @@ +/** @type {import('./$types').Actions} */ + +// Mock edit details function +async function editDetails(org_name, image_file) { + if(org_name){ + console.log(org_name); + } + if(image_file){ + console.log(image_file.name); + } +} + +export const actions = { + default: async ({ request }) => { + const formData = await request.formData(); + const orgName = formData.get('org_name'); + const imageFile = formData.get('image'); + + console.log('Organisation Name: ', orgName); + + if (imageFile instanceof File) { + console.log('Received file'); + console.log('File name: ', imageFile.name); + console.log('File type: ', imageFile.type); + console.log('File size: ', imageFile.size); + } else { + console.log('No file received'); + } + + await editDetails(orgName, imageFile); + + return { + status: 200 + }; + } +}; \ No newline at end of file From f5389d509c974c68258842c35c87a81355ebf7ec Mon Sep 17 00:00:00 2001 From: Gini24mp Date: Sat, 1 Jun 2024 20:33:11 +0200 Subject: [PATCH 2/2] added organisation modals --- .../lib/components/admin/+Organisation.svelte | 203 +++++++++--------- .../lib/components/modals/+AddLecturer.svelte | 0 .../src/lib/components/modals/+AddOrg.svelte | 96 +++++++++ .../components/modals/+EditLecturer.svelte | 0 .../src/lib/components/modals/+EditOrg.svelte | 86 ++++---- .../lib/components/modals/+RemoveOrg.svelte | 37 ++++ src/client/src/lib/stores/store.js | 3 + .../src/routes/lecturers/+page.server.js | 79 +++++-- .../src/routes/organisation/+page.server.js | 117 ++++++++-- 9 files changed, 447 insertions(+), 174 deletions(-) create mode 100644 src/client/src/lib/components/modals/+AddLecturer.svelte create mode 100644 src/client/src/lib/components/modals/+AddOrg.svelte create mode 100644 src/client/src/lib/components/modals/+EditLecturer.svelte create mode 100644 src/client/src/lib/components/modals/+RemoveOrg.svelte create mode 100644 src/client/src/lib/stores/store.js diff --git a/src/client/src/lib/components/admin/+Organisation.svelte b/src/client/src/lib/components/admin/+Organisation.svelte index e2e747fb..202a15f5 100644 --- a/src/client/src/lib/components/admin/+Organisation.svelte +++ b/src/client/src/lib/components/admin/+Organisation.svelte @@ -1,112 +1,121 @@ -
-
-
-
-

Organisation

+{#if org_exists} +
+
+
+
+

Organisation

+
-
-
- +
+ + +
-
-
-
-
-
- - - - +
+
+
+
+
- -
+ + + - - - - - - - - - -
+ + - Value -
-
-

Orgnisation Name

-
-
- {organisation.organisationname} -
+ + Value + + + + + + +
+

Orgnisation Name

+
+ + + {$organisationName} + + + + +
+
+{:else} +
+
+
+

{$organisationName}

+
+
+ +
+ +
-
+{/if} diff --git a/src/client/src/lib/components/modals/+AddLecturer.svelte b/src/client/src/lib/components/modals/+AddLecturer.svelte new file mode 100644 index 00000000..e69de29b diff --git a/src/client/src/lib/components/modals/+AddOrg.svelte b/src/client/src/lib/components/modals/+AddOrg.svelte new file mode 100644 index 00000000..31ef915d --- /dev/null +++ b/src/client/src/lib/components/modals/+AddOrg.svelte @@ -0,0 +1,96 @@ + + + + + +
+

Create New Organisation

+ + + + + + + + +
+
diff --git a/src/client/src/lib/components/modals/+EditLecturer.svelte b/src/client/src/lib/components/modals/+EditLecturer.svelte new file mode 100644 index 00000000..e69de29b diff --git a/src/client/src/lib/components/modals/+EditOrg.svelte b/src/client/src/lib/components/modals/+EditOrg.svelte index 203a9c65..469ee085 100644 --- a/src/client/src/lib/components/modals/+EditOrg.svelte +++ b/src/client/src/lib/components/modals/+EditOrg.svelte @@ -1,18 +1,21 @@ - + -
-

Edit Your Profile

- - - + +

Edit Your Profile

- - + + - + + -
-
\ No newline at end of file + + + diff --git a/src/client/src/lib/components/modals/+RemoveOrg.svelte b/src/client/src/lib/components/modals/+RemoveOrg.svelte new file mode 100644 index 00000000..a7a29db8 --- /dev/null +++ b/src/client/src/lib/components/modals/+RemoveOrg.svelte @@ -0,0 +1,37 @@ + + + + + +
+ +

+ Are you sure you want to delete this organisation? +

+ + +
+
diff --git a/src/client/src/lib/stores/store.js b/src/client/src/lib/stores/store.js new file mode 100644 index 00000000..f7895c67 --- /dev/null +++ b/src/client/src/lib/stores/store.js @@ -0,0 +1,3 @@ +import { writable } from 'svelte/store'; + +export const organisationName = writable('Organisation'); diff --git a/src/client/src/routes/lecturers/+page.server.js b/src/client/src/routes/lecturers/+page.server.js index 67691fa8..53e8481f 100644 --- a/src/client/src/routes/lecturers/+page.server.js +++ b/src/client/src/routes/lecturers/+page.server.js @@ -1,36 +1,71 @@ /** @type {import('./$types').Actions} */ -// Mock edit details function -async function editDetails(org_name, image_file) { - if(org_name){ - console.log(org_name); - } - if(image_file){ - console.log(image_file.name); - } +// Mock add, edit, and delete functions +async function addDetails(name, email, role) { + console.log(name); + console.log(email); + console.log(role); +} + +async function editDetails(name, email, role) { + console.log(name); + console.log(email); + console.log(role); +} + +async function deleteDetails(name, email, role) { + console.log(name); + console.log(email); + console.log(role); } export const actions = { default: async ({ request }) => { const formData = await request.formData(); - const orgName = formData.get('org_name'); - const imageFile = formData.get('image'); + const name = formData.get('org_name'); + const email = formData.get('email'); + const role = formData.get('role'); - console.log('Organisation Name: ', orgName); + console.log(name); + console.log(email); + console.log(role); + + addDetails(name, email, role); + + return { + status: 200 + }; + }, + edit: async ({ request }) => { + const formData = await request.formData(); + const name = formData.get('org_name'); + const email = formData.get('email'); + const role = formData.get('role'); + + console.log(name); + console.log(email); + console.log(role); + + editDetails(name, email, role); + + return { + status: 200 + }; + }, + delete: async ({ request }) => { + const formData = await request.formData(); + const name = formData.get('org_name'); + const email = formData.get('email'); + const role = formData.get('role'); - if (imageFile instanceof File) { - console.log('Received file'); - console.log('File name: ', imageFile.name); - console.log('File type: ', imageFile.type); - console.log('File size: ', imageFile.size); - } else { - console.log('No file received'); - } + console.log(name); + console.log(email); + console.log(role); - await editDetails(orgName, imageFile); + deleteDetails(name, email, role); return { status: 200 - }; + }; } -}; \ No newline at end of file +}; diff --git a/src/client/src/routes/organisation/+page.server.js b/src/client/src/routes/organisation/+page.server.js index 67691fa8..2c9a86a7 100644 --- a/src/client/src/routes/organisation/+page.server.js +++ b/src/client/src/routes/organisation/+page.server.js @@ -1,20 +1,49 @@ /** @type {import('./$types').Actions} */ // Mock edit details function -async function editDetails(org_name, image_file) { - if(org_name){ - console.log(org_name); - } - if(image_file){ - console.log(image_file.name); - } +async function editDetails(org_name, image_file, orgID) { + if (org_name) { + console.log(org_name); + } + if (image_file) { + console.log(image_file.name); + } + if (orgID) { + console.log(orgID); + } +} + +async function createOrg(org_name, image_file) { + if (org_name) { + console.log(org_name); + } + if (image_file) { + console.log(image_file.name); + } + + return { + organisationID: '12345678910' + }; +} + +async function getOrgDetails(orgId) { + console.log(orgId); + return { + organisationName: 'University Of Pretoria', + organisationImage: 'https://www.up.ac.za/' + }; +} + +async function removeOrg(orgId) { + console.log(orgId); } export const actions = { - default: async ({ request }) => { + edit: async ({ request }) => { const formData = await request.formData(); const orgName = formData.get('org_name'); const imageFile = formData.get('image'); + const OrgId = formData.get('orgID'); console.log('Organisation Name: ', orgName); @@ -27,10 +56,72 @@ export const actions = { console.log('No file received'); } - await editDetails(orgName, imageFile); + await editDetails(orgName, imageFile, OrgId); + + return JSON.stringify({ + success: true, + body: { + newOrgName: orgName + } + }); + }, + create: async ({ request }) => { + const formData = await request.formData(); + const orgName = formData.get('org_name'); + const imageFile = formData.get('image'); - return { - status: 200 - }; + console.log('Organisation Name: ', orgName); + + if (imageFile instanceof File) { + console.log('Received file'); + console.log('File name: ', imageFile.name); + console.log('File type: ', imageFile.type); + console.log('File size: ', imageFile.size); + } else { + console.log('No file received'); + } + + const res = await createOrg(orgName, imageFile); + + console.log(res); + + return JSON.stringify({ + success: true, + body: { + organisationID: res.organisationID + } + }); + }, + getOrganisationDetails: async ({ request }) => { + const { body } = request; + if (body) { + const formData = await request.formData(); + const orgId = formData.get('organisationID'); + + if (orgId) { + const details = await getOrgDetails(orgId); + return JSON.stringify({ + success: true, + body: { + organisationName: details.organisationName, + organisationImage: details.organisationImage + } + }); + } + } + }, + remove: async ({ request }) => { + const { body } = request; + if (body) { + const formData = await request.formData(); + const orgId = formData.get('organisationID'); + + if (orgId) { + await removeOrg(orgId); + return JSON.stringify({ + success: true + }); + } + } } -}; \ No newline at end of file +};