diff --git a/services/readDeleteUser.js b/services/readDeleteUser.js new file mode 100644 index 0000000..16d16ba --- /dev/null +++ b/services/readDeleteUser.js @@ -0,0 +1,31 @@ +const fs = require('fs'); + +class readDeleteUser { + constructor() { + this.filePath = "users.json"; + } + + // Helper function to read users from JSON file + readUsers() { + try { + const data = fs.readFileSync(this.filePath, 'utf8'); + return JSON.parse(data); + } catch (err) { + console.error('Error reading users:', err); + return []; + } + } + + // Delete a user by ID + deleteUser(id) { + const users = this.readUsers(); + const userIndex = users.findIndex(user => user.id === id); + if (userIndex === -1) return null; + + const deletedUser = users.splice(userIndex, 1); + this.writeUsers(users); + return deletedUser[0]; + } +} + +module.exports = readDeleteUser; diff --git a/services/readWriteUser.js b/services/readWriteUser.js new file mode 100644 index 0000000..4ff3729 --- /dev/null +++ b/services/readWriteUser.js @@ -0,0 +1,27 @@ +const fs = require('fs'); + +class readWriteUser { + constructor() { + this.filePath = "users.json"; + } + + // Helper function to write users to JSON file + writeUsers(users) { + try { + fs.writeFileSync(this.filePath, JSON.stringify(users, null, 2), 'utf8'); + } catch (err) { + console.error('Error writing users:', err); + } + } + + // Create a new user + createUser(newUser) { + const users = this.readUsers(); + newUser.id = users.length ? users[users.length - 1].id + 1 : 1; + users.push(newUser); + this.writeUsers(users); + return newUser; + } +} + +module.exports = readWriteUser; diff --git a/users.json b/users.json index 3ac2a5b..7b10e8a 100644 --- a/users.json +++ b/users.json @@ -5,7 +5,6 @@ "email": "shaun@test.com", "role": "Software Engineer", "salary": "40,000" - }, { "id": 2, @@ -34,7 +33,28 @@ "email": "noah@test.com", "role": "DevOps Engineer", "salary": "48,000" + }, + { + "name": "John Doe", + "address": "14 Malone Road", + "salary": "46000", + "role": "Employee", + "employeenumber": "46582", + "id": 6 + }, + { + "name": "Dave Smith", + "address": "24 Street Street", + "salary": "39000", + "role": "", + "employeenumber": "1234567", + "id": 7 + }, + { + "name": "James Clulow", + "address": "14 Malone Road", + "salary": "100000", + "employeenumber": "678786", + "id": 8 } -] - - +] \ No newline at end of file diff --git a/views/addUser.ejs b/views/addUser.ejs index 3f556f6..bf8f723 100644 --- a/views/addUser.ejs +++ b/views/addUser.ejs @@ -1,26 +1,75 @@ + Add New User - + + + -

Add New User

-
-
-
+
+
+ kainos_logo +
+ + + + +
+

Add New User

+
+ +
+ +
+
-
-
+
+
-
-
+
+
- - +
+
+ + +
+ +
+
+ +
+
+ + + + + +
+ + + +
- + + \ No newline at end of file diff --git a/views/deleteUser.ejs b/views/deleteUser.ejs index 4da5af6..7650c78 100644 --- a/views/deleteUser.ejs +++ b/views/deleteUser.ejs @@ -5,12 +5,12 @@ Delete User - +

Delete User

-
+

Are you sure you want to delete <%= user.name %>?

diff --git a/views/index.ejs b/views/index.ejs index c76a814..053c7d2 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -2,7 +2,7 @@ <%= title %> - +

<%= title %>

diff --git a/views/media/Kainos 800x250 Logo (Transparent BG).png b/views/media/Kainos 800x250 Logo (Transparent BG).png new file mode 100644 index 0000000..0dff4eb Binary files /dev/null and b/views/media/Kainos 800x250 Logo (Transparent BG).png differ diff --git a/views/media/favicon.png b/views/media/favicon.png new file mode 100644 index 0000000..5c022c8 Binary files /dev/null and b/views/media/favicon.png differ diff --git a/views/updateUser.ejs b/views/updateUser.ejs index 6132846..cc516a0 100644 --- a/views/updateUser.ejs +++ b/views/updateUser.ejs @@ -5,7 +5,7 @@ Update User - +

Update User

diff --git a/views/user.ejs b/views/user.ejs index 4478e45..08be78e 100644 --- a/views/user.ejs +++ b/views/user.ejs @@ -5,7 +5,7 @@ User Information - +

User Information

diff --git a/views/users.ejs b/views/users.ejs index 2b73d79..621a9fa 100644 --- a/views/users.ejs +++ b/views/users.ejs @@ -5,8 +5,7 @@ User List - - +

User List

@@ -45,7 +44,7 @@ <% } %> - +
diff --git a/views/viewDesign.css b/views/viewDesign.css new file mode 100644 index 0000000..93977d8 --- /dev/null +++ b/views/viewDesign.css @@ -0,0 +1,67 @@ +.adduserpage { + width: 100%; + } + + body { + background-image: url("https://media.istockphoto.com/id/1390799493/vector/turquoise-gradation-background.jpg?s=612x612&w=0&k=20&c=7CgX9ySU7SkuZ-idIZh3xNuvYqokFuJCA3i7hN7rmVY="); + display: flex; + flex-direction: row; + justify-content: center; + background-repeat: no-repeat; + background-size: 2000px 2000px; + font-family: Verdana, Geneva, Tahoma, sans-serif; + } + + .infoboxes { + display: flex; + flex-wrap: wrap; + justify-content: center; + margin-bottom: 25px; + } + + .addnewuser { + display: flex; + flex-wrap: wrap; + justify-content: center; + } + + .spacebelowinfo { + margin-bottom: 25px; + } + + nav a { + display: flex; + color: black; + text-decoration: none; + padding-bottom: 15px; + width: 200px; + padding-left: 100px; + } + + a :hover { + color: blue; + } + + nav { + width: auto; + display: flex; + justify-content: center; + } + + .logoimage { + margin-left: 370px; + } + + footer { + font-size: small; + display: flex; + justify-content: center; + background-color: #1e1342; + color: white; + width: 100%; + } + + footer p { + margin-left: 20px; + margin-right: 20px; + } \ No newline at end of file