diff --git a/README.md b/README.md index 3af77f3..44b4af6 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ This is where you can talk about code questions, the app, or anything. You can g * Levels of perms to users. - [x] Room Kicks * Kick a user from the room. -- [ ] Owner Crown +- [x] Owner/Owner Crown * Adds a crown to the owner in chat, and in the member list. - [ ] API for the chat * A api for devs that want to make bots. diff --git a/public/script.js b/public/script.js index ae4096a..62dce1c 100644 --- a/public/script.js +++ b/public/script.js @@ -6,6 +6,7 @@ const roomContaner = document.getElementById('room-contaner'); const userContaner = document.getElementById('user-contaner'); const messageForm = document.getElementById('send-message-form') const messageInput = document.getElementById('message-input') +const settings = document.getElementById('settings') //start if (messageForm != null) { let name = prompt('What is your name?') @@ -37,6 +38,11 @@ if (messageForm != null) { socket.emit('leave') }); + settings.addEventListener('click', e => { + console.log('clicked') + window.location.href = `/${roomName}` +'/settings' + }); + } socket.on('user-changed-name', () => { diff --git a/public/settings.js b/public/settings.js new file mode 100644 index 0000000..470ae41 --- /dev/null +++ b/public/settings.js @@ -0,0 +1,12 @@ +const socket = io('http://localhost:3000') +const settingsForm = document.getElementById('settings'); +const back = document.getElementById('back') + +back.addEventListener('click', () => { + window.location.href = `/${roomName}/owner`; +}); + +settingsForm.addEventListener('submit', e => { + e.preventDefault() + socket.emit('privacy-change', roomName, document.getElementById('private').value) +}) \ No newline at end of file diff --git a/server.js b/server.js index 316268d..5cac4e3 100644 --- a/server.js +++ b/server.js @@ -20,7 +20,7 @@ app.post('/room', (req, res) => { } console.log(req.body.private + '/room') rooms[req.body.room] = { users: {}, public: req.body.private } - res.redirect(req.body.room) + res.redirect(req.body.room + '/owner') io.emit('room-created', req.body.room) }) @@ -32,6 +32,22 @@ app.get('/:room', (req, res) => { res.render('room', { roomName: req.params.room }) }) +app.get('/:room/settings', (req, res) => { + if (rooms[req.params.room] == null) { + return res.render('error') + } + console.log(req.params.room) + res.render('settings', { roomName: req.params.room }) +}) + +app.get('/:room/owner', (req, res) => { + if (rooms[req.params.room] == null) { + return res.render('error') + } + console.log(req.params.room) + res.render('owner-room', { roomName: req.params.room }) +}) + server.listen(3000) io.on('connection', socket => { @@ -97,6 +113,9 @@ io.on('connection', socket => { socket.emit("user-list", rooms[room].users[user]) } }) + socket.on('privacy-change', (room, value) => { + rooms[room].public = value; + }) }) function getUserRooms(soket) { diff --git a/views/owner-room.ejs b/views/owner-room.ejs new file mode 100644 index 0000000..4fa2123 --- /dev/null +++ b/views/owner-room.ejs @@ -0,0 +1,41 @@ + + + + + + + + Chat App + + + + + + + + +
+
+

Members In <%= roomName %>

+
+
+
+

Start Of Chat

+
+
+ + + +
+ + + \ No newline at end of file diff --git a/views/room.ejs b/views/room.ejs index 66a8dec..6ffe6fe 100644 --- a/views/room.ejs +++ b/views/room.ejs @@ -20,7 +20,6 @@ Back To Home Change Your Name -
diff --git a/views/settings.ejs b/views/settings.ejs new file mode 100644 index 0000000..66e547b --- /dev/null +++ b/views/settings.ejs @@ -0,0 +1,41 @@ + + + + + + + + Chat App + + + + + + + + +
+
+
+
+ +
+
+ +
+
+ + + \ No newline at end of file