From dce1a117151e56c08919c96bf135cdee5cd0a155 Mon Sep 17 00:00:00 2001 From: Justin Moy Date: Thu, 1 Sep 2022 17:28:31 -0500 Subject: [PATCH 01/10] changes --- config/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/.env b/config/.env index dbe126e0a..1e982be57 100644 --- a/config/.env +++ b/config/.env @@ -1,2 +1,2 @@ PORT = 2121 -DB_STRING = mongodb+srv://demo:demo@cluster0.hcds1.mongodb.net/todos?retryWrites=true&w=majority \ No newline at end of file +DB_STRING = mongodb+srv://zinger:ZyEvLFkPOSp38dI4@cluster0.f3yakar.mongodb.net/ToDoTasks-Demo?retryWrites=true&w=majority \ No newline at end of file From e151da7adfdd2240aac3d663c11583005c3465a3 Mon Sep 17 00:00:00 2001 From: Justin Moy Date: Thu, 1 Sep 2022 17:29:39 -0500 Subject: [PATCH 02/10] updating env --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3f8e1d990..22bbbe69c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules -.vscode/* \ No newline at end of file +.vscode/* +.env \ No newline at end of file From 517e206b38af2fa88f583baaed5345c5d71d56ed Mon Sep 17 00:00:00 2001 From: Justin Moy Date: Wed, 7 Sep 2022 15:21:46 -0500 Subject: [PATCH 03/10] updates --- controllers/todos.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/todos.js b/controllers/todos.js index b10950f93..e0c9df8bf 100644 --- a/controllers/todos.js +++ b/controllers/todos.js @@ -4,7 +4,7 @@ module.exports = { getTodos: async (req,res)=>{ console.log(req.user) try{ - const todoItems = await Todo.find({userId:req.user.id}) + const todoItems = await Todo.find({userId:req.user.id}) //find the todo in database with matching from models const itemsLeft = await Todo.countDocuments({userId:req.user.id,completed: false}) res.render('todos.ejs', {todos: todoItems, left: itemsLeft, user: req.user}) }catch(err){ From 5080b53364b927548e881609697a2f76fa92be55 Mon Sep 17 00:00:00 2001 From: Joe Ulyatt Date: Wed, 7 Sep 2022 21:42:43 +0100 Subject: [PATCH 04/10] changes --- server.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index b031c4cad..76fa2fb0e 100644 --- a/server.js +++ b/server.js @@ -43,4 +43,6 @@ app.use('/todos', todoRoutes) app.listen(process.env.PORT, ()=>{ console.log('Server is running, you better catch it!') -}) \ No newline at end of file +}) + +//changes \ No newline at end of file From 902f4ff2c6a1778d30c132608681b39ce9599e6e Mon Sep 17 00:00:00 2001 From: Joe Ulyatt Date: Wed, 7 Sep 2022 21:54:33 +0100 Subject: [PATCH 05/10] nothing --- server.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/server.js b/server.js index 76fa2fb0e..5a129addb 100644 --- a/server.js +++ b/server.js @@ -43,6 +43,4 @@ app.use('/todos', todoRoutes) app.listen(process.env.PORT, ()=>{ console.log('Server is running, you better catch it!') -}) - -//changes \ No newline at end of file +}) \ No newline at end of file From 4be0175cbadb81d9f4e028ad6cd57199a4f430d5 Mon Sep 17 00:00:00 2001 From: Joe Ulyatt Date: Thu, 8 Sep 2022 11:45:41 +0100 Subject: [PATCH 06/10] covert 'todo' naming to 'diary' --- controllers/auth.js | 10 +++---- controllers/diary.js | 55 ++++++++++++++++++++++++++++++++++ controllers/todos.js | 55 ---------------------------------- models/Diary.js | 14 +++++++++ models/Todo.js | 18 ----------- public/js/main.js | 44 ++++++++------------------- routes/diary.js | 14 +++++++++ routes/todos.js | 16 ---------- server.js | 6 ++-- views/{todos.ejs => diary.ejs} | 14 ++++----- views/index.ejs | 2 +- 11 files changed, 112 insertions(+), 136 deletions(-) create mode 100644 controllers/diary.js delete mode 100644 controllers/todos.js create mode 100644 models/Diary.js delete mode 100644 models/Todo.js create mode 100644 routes/diary.js delete mode 100644 routes/todos.js rename views/{todos.ejs => diary.ejs} (56%) diff --git a/controllers/auth.js b/controllers/auth.js index c434c3c3a..3af91c2fa 100644 --- a/controllers/auth.js +++ b/controllers/auth.js @@ -2,9 +2,9 @@ const passport = require('passport') const validator = require('validator') const User = require('../models/User') - exports.getLogin = (req, res) => { +exports.getLogin = (req, res) => { if (req.user) { - return res.redirect('/todos') + return res.redirect('/diary') } res.render('login', { title: 'Login' @@ -31,7 +31,7 @@ const User = require('../models/User') req.logIn(user, (err) => { if (err) { return next(err) } req.flash('success', { msg: 'Success! You are logged in.' }) - res.redirect(req.session.returnTo || '/todos') + res.redirect(req.session.returnTo || '/diary') }) })(req, res, next) } @@ -49,7 +49,7 @@ const User = require('../models/User') exports.getSignup = (req, res) => { if (req.user) { - return res.redirect('/todos') + return res.redirect('/diary') } res.render('signup', { title: 'Create Account' @@ -89,7 +89,7 @@ const User = require('../models/User') if (err) { return next(err) } - res.redirect('/todos') + res.redirect('/diary') }) }) }) diff --git a/controllers/diary.js b/controllers/diary.js new file mode 100644 index 000000000..6cff85552 --- /dev/null +++ b/controllers/diary.js @@ -0,0 +1,55 @@ +const Diary = require('../models/Diary') + +module.exports = { + getDiary: async (req,res)=>{ + console.log(req.user) + try{ + const diaryEntries = await Diary.find({userId:req.user.id}) //find the Diary in database with matching from models + const totalEntries = await Diary.countDocuments({userId:req.user.id}) + res.render('diary.ejs', {diary: diaryEntries, total: totalEntries, user: req.user}) + }catch(err){ + console.log(err) + } + }, + createDiary: async (req, res)=>{ + try{ + await Diary.create({diary: req.body.diaryEntry, userId: req.user.id}) + console.log('Diary entry has been added!') + res.redirect('/diary') + }catch(err){ + console.log(err) + } + }, + markComplete: async (req, res)=>{ + try{ + await Diary.findOneAndUpdate({_id:req.body.diaryIdFromJSFile},{ + completed: true + }) + console.log('Marked Complete') + res.json('Marked Complete') + }catch(err){ + console.log(err) + } + }, + updateDiary: async (req, res)=>{ + try{ + await Diary.findOneAndUpdate({_id:req.body.diaryIdFromJSFile},{ + completed: false + }) + console.log('Updated Diary') + res.json('Updated Diary') + }catch(err){ + console.log(err) + } + }, + deleteDiary: async (req, res)=>{ + console.log(req.body.diaryIdFromJSFile) + try{ + await Diary.findOneAndDelete({_id:req.body.diaryIdFromJSFile}) + console.log('Deleted Diary') + res.json('Deleted It') + }catch(err){ + console.log(err) + } + } +} \ No newline at end of file diff --git a/controllers/todos.js b/controllers/todos.js deleted file mode 100644 index e0c9df8bf..000000000 --- a/controllers/todos.js +++ /dev/null @@ -1,55 +0,0 @@ -const Todo = require('../models/Todo') - -module.exports = { - getTodos: async (req,res)=>{ - console.log(req.user) - try{ - const todoItems = await Todo.find({userId:req.user.id}) //find the todo in database with matching from models - const itemsLeft = await Todo.countDocuments({userId:req.user.id,completed: false}) - res.render('todos.ejs', {todos: todoItems, left: itemsLeft, user: req.user}) - }catch(err){ - console.log(err) - } - }, - createTodo: async (req, res)=>{ - try{ - await Todo.create({todo: req.body.todoItem, completed: false, userId: req.user.id}) - console.log('Todo has been added!') - res.redirect('/todos') - }catch(err){ - console.log(err) - } - }, - markComplete: async (req, res)=>{ - try{ - await Todo.findOneAndUpdate({_id:req.body.todoIdFromJSFile},{ - completed: true - }) - console.log('Marked Complete') - res.json('Marked Complete') - }catch(err){ - console.log(err) - } - }, - markIncomplete: async (req, res)=>{ - try{ - await Todo.findOneAndUpdate({_id:req.body.todoIdFromJSFile},{ - completed: false - }) - console.log('Marked Incomplete') - res.json('Marked Incomplete') - }catch(err){ - console.log(err) - } - }, - deleteTodo: async (req, res)=>{ - console.log(req.body.todoIdFromJSFile) - try{ - await Todo.findOneAndDelete({_id:req.body.todoIdFromJSFile}) - console.log('Deleted Todo') - res.json('Deleted It') - }catch(err){ - console.log(err) - } - } -} \ No newline at end of file diff --git a/models/Diary.js b/models/Diary.js new file mode 100644 index 000000000..b28450968 --- /dev/null +++ b/models/Diary.js @@ -0,0 +1,14 @@ +const mongoose = require('mongoose') + +const DiarySchema = new mongoose.Schema({ + diary: { + type: String, + required: true, + }, + userId: { + type: String, + required: true + } +}) + +module.exports = mongoose.model('Diary', DiarySchema) diff --git a/models/Todo.js b/models/Todo.js deleted file mode 100644 index 8698f6900..000000000 --- a/models/Todo.js +++ /dev/null @@ -1,18 +0,0 @@ -const mongoose = require('mongoose') - -const TodoSchema = new mongoose.Schema({ - todo: { - type: String, - required: true, - }, - completed: { - type: Boolean, - required: true, - }, - userId: { - type: String, - required: true - } -}) - -module.exports = mongoose.model('Todo', TodoSchema) diff --git a/public/js/main.js b/public/js/main.js index b4cfee075..c0c74700f 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,27 +1,27 @@ const deleteBtn = document.querySelectorAll('.del') -const todoItem = document.querySelectorAll('span.not') +const diaryEntry = document.querySelectorAll('span.not') const todoComplete = document.querySelectorAll('span.completed') Array.from(deleteBtn).forEach((el)=>{ - el.addEventListener('click', deleteTodo) + el.addEventListener('click', deleteDiary) }) -Array.from(todoItem).forEach((el)=>{ - el.addEventListener('click', markComplete) +Array.from(diaryEntry).forEach((el)=>{ + el.addEventListener('click', updateDiary) }) -Array.from(todoComplete).forEach((el)=>{ +Array.from(diaryComplete).forEach((el)=>{ el.addEventListener('click', markIncomplete) }) -async function deleteTodo(){ - const todoId = this.parentNode.dataset.id +async function deleteDiary(){ + const diaryId = this.parentNode.dataset.id try{ - const response = await fetch('todos/deleteTodo', { + const response = await fetch('diary/deleteDiary', { method: 'delete', headers: {'Content-type': 'application/json'}, body: JSON.stringify({ - 'todoIdFromJSFile': todoId + 'diaryIdFromJSFile': diaryId }) }) const data = await response.json() @@ -32,32 +32,14 @@ async function deleteTodo(){ } } -async function markComplete(){ - const todoId = this.parentNode.dataset.id +async function updateDiary(){ + const diaryId = this.parentNode.dataset.id try{ - const response = await fetch('todos/markComplete', { + const response = await fetch('diary/updateDiary', { method: 'put', headers: {'Content-type': 'application/json'}, body: JSON.stringify({ - 'todoIdFromJSFile': todoId - }) - }) - const data = await response.json() - console.log(data) - location.reload() - }catch(err){ - console.log(err) - } -} - -async function markIncomplete(){ - const todoId = this.parentNode.dataset.id - try{ - const response = await fetch('todos/markIncomplete', { - method: 'put', - headers: {'Content-type': 'application/json'}, - body: JSON.stringify({ - 'todoIdFromJSFile': todoId + 'diaryIdFromJSFile': diaryId }) }) const data = await response.json() diff --git a/routes/diary.js b/routes/diary.js new file mode 100644 index 000000000..7c7e3335a --- /dev/null +++ b/routes/diary.js @@ -0,0 +1,14 @@ +const express = require('express') +const router = express.Router() +const diaryController = require('../controllers/diary') +const { ensureAuth } = require('../middleware/auth') + +router.get('/', ensureAuth, diaryController.getDiary) + +router.post('/createDiary', diaryController.createDiary) + +router.put('/updateDiary', diaryController.updateDiary) + +router.delete('/deleteDiary', diaryController.deleteDiary) + +module.exports = router \ No newline at end of file diff --git a/routes/todos.js b/routes/todos.js deleted file mode 100644 index 03dcf42e4..000000000 --- a/routes/todos.js +++ /dev/null @@ -1,16 +0,0 @@ -const express = require('express') -const router = express.Router() -const todosController = require('../controllers/todos') -const { ensureAuth } = require('../middleware/auth') - -router.get('/', ensureAuth, todosController.getTodos) - -router.post('/createTodo', todosController.createTodo) - -router.put('/markComplete', todosController.markComplete) - -router.put('/markIncomplete', todosController.markIncomplete) - -router.delete('/deleteTodo', todosController.deleteTodo) - -module.exports = router \ No newline at end of file diff --git a/server.js b/server.js index 5a129addb..4482be066 100644 --- a/server.js +++ b/server.js @@ -8,7 +8,7 @@ const flash = require('express-flash') const logger = require('morgan') const connectDB = require('./config/database') const mainRoutes = require('./routes/main') -const todoRoutes = require('./routes/todos') +const diaryRoutes = require('./routes/diary') require('dotenv').config({path: './config/.env'}) @@ -39,8 +39,8 @@ app.use(passport.session()) app.use(flash()) app.use('/', mainRoutes) -app.use('/todos', todoRoutes) - +app.use('/diary', diaryRoutes) + app.listen(process.env.PORT, ()=>{ console.log('Server is running, you better catch it!') }) \ No newline at end of file diff --git a/views/todos.ejs b/views/diary.ejs similarity index 56% rename from views/todos.ejs rename to views/diary.ejs index d76747a08..4521ccf1b 100644 --- a/views/todos.ejs +++ b/views/diary.ejs @@ -8,20 +8,20 @@ -

Todos

+

Diary

    - <% todos.forEach( el => { %> -
  • - '><%= el.todo %> + <% diary.forEach( el => { %> +
  • + <%= el.diary %> Delete
  • <% }) %>
-

<%= user.userName %> has <%= left %> things left to do.

+

<%= user.userName %> has <%= total %> total diary entries.

-
- + +
diff --git a/views/index.ejs b/views/index.ejs index 774fc9b53..06ee5f714 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -7,7 +7,7 @@ Document -

Create Your VERY OWN Todolist!

+

Create Your VERY OWN Diary!

Login Signup From 8236a1f6b44c82b51f0cb75f3663550a997abaaf Mon Sep 17 00:00:00 2001 From: Joe Ulyatt Date: Thu, 8 Sep 2022 14:01:00 +0100 Subject: [PATCH 07/10] add update button (logic not applied yet) --- controllers/diary.js | 13 +------------ public/js/main.js | 10 +++------- views/diary.ejs | 7 ++++++- 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/controllers/diary.js b/controllers/diary.js index 6cff85552..08b9f7c7c 100644 --- a/controllers/diary.js +++ b/controllers/diary.js @@ -20,21 +20,10 @@ module.exports = { console.log(err) } }, - markComplete: async (req, res)=>{ - try{ - await Diary.findOneAndUpdate({_id:req.body.diaryIdFromJSFile},{ - completed: true - }) - console.log('Marked Complete') - res.json('Marked Complete') - }catch(err){ - console.log(err) - } - }, updateDiary: async (req, res)=>{ try{ await Diary.findOneAndUpdate({_id:req.body.diaryIdFromJSFile},{ - completed: false + diary: req.body.diaryEntry }) console.log('Updated Diary') res.json('Updated Diary') diff --git a/public/js/main.js b/public/js/main.js index c0c74700f..70a9d34cb 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,19 +1,14 @@ const deleteBtn = document.querySelectorAll('.del') -const diaryEntry = document.querySelectorAll('span.not') -const todoComplete = document.querySelectorAll('span.completed') +const updateBtn = document.querySelectorAll('.update') Array.from(deleteBtn).forEach((el)=>{ el.addEventListener('click', deleteDiary) }) -Array.from(diaryEntry).forEach((el)=>{ +Array.from(updateBtn).forEach((el)=>{ el.addEventListener('click', updateDiary) }) -Array.from(diaryComplete).forEach((el)=>{ - el.addEventListener('click', markIncomplete) -}) - async function deleteDiary(){ const diaryId = this.parentNode.dataset.id try{ @@ -35,6 +30,7 @@ async function deleteDiary(){ async function updateDiary(){ const diaryId = this.parentNode.dataset.id try{ + console.log(`id is ${diaryId}`) const response = await fetch('diary/updateDiary', { method: 'put', headers: {'Content-type': 'application/json'}, diff --git a/views/diary.ejs b/views/diary.ejs index 4521ccf1b..1eea0012e 100644 --- a/views/diary.ejs +++ b/views/diary.ejs @@ -13,7 +13,12 @@ <% diary.forEach( el => { %>
  • <%= el.diary %> - Delete + + +
    + + +
  • <% }) %> From 488fdf30a61cf8112ef520019dd488a402f34ab3 Mon Sep 17 00:00:00 2001 From: Joe Ulyatt Date: Thu, 8 Sep 2022 14:54:32 +0100 Subject: [PATCH 08/10] add 'private' boolean to mongo schema and link to /createDiary controller --- controllers/diary.js | 24 +++++++++++------------- models/Diary.js | 4 ++++ public/js/main.js | 43 +++++++++++++++++++++---------------------- routes/diary.js | 2 +- views/diary.ejs | 9 +++++++-- 5 files changed, 44 insertions(+), 38 deletions(-) diff --git a/controllers/diary.js b/controllers/diary.js index 08b9f7c7c..071ee1a1e 100644 --- a/controllers/diary.js +++ b/controllers/diary.js @@ -13,24 +13,22 @@ module.exports = { }, createDiary: async (req, res)=>{ try{ - await Diary.create({diary: req.body.diaryEntry, userId: req.user.id}) - console.log('Diary entry has been added!') + await Diary.create({diary: req.body.diaryEntry, userId: req.user.id, private: req.body.private}) + console.log(req.body) res.redirect('/diary') }catch(err){ console.log(err) } }, - updateDiary: async (req, res)=>{ - try{ - await Diary.findOneAndUpdate({_id:req.body.diaryIdFromJSFile},{ - diary: req.body.diaryEntry - }) - console.log('Updated Diary') - res.json('Updated Diary') - }catch(err){ - console.log(err) - } - }, + // updateDiary: async (req, res)=>{ + // try{ + // await Diary.findOneAndUpdate({_id:req.body.diaryIdFromJSFile},{diary: 'something'}) + // console.log('Updated Diary') + // res.json('Updated Diary') + // }catch(err){ + // console.log(err) + // } + // }, deleteDiary: async (req, res)=>{ console.log(req.body.diaryIdFromJSFile) try{ diff --git a/models/Diary.js b/models/Diary.js index b28450968..70b5b1eeb 100644 --- a/models/Diary.js +++ b/models/Diary.js @@ -8,6 +8,10 @@ const DiarySchema = new mongoose.Schema({ userId: { type: String, required: true + }, + private: { + type: Boolean, + required: true } }) diff --git a/public/js/main.js b/public/js/main.js index 70a9d34cb..d09b9e3d1 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,16 +1,14 @@ const deleteBtn = document.querySelectorAll('.del') -const updateBtn = document.querySelectorAll('.update') +// const updateBtn = document.querySelectorAll('.update') Array.from(deleteBtn).forEach((el)=>{ el.addEventListener('click', deleteDiary) }) -Array.from(updateBtn).forEach((el)=>{ - el.addEventListener('click', updateDiary) -}) async function deleteDiary(){ const diaryId = this.parentNode.dataset.id + console.log(`id is ${diaryId}`) try{ const response = await fetch('diary/deleteDiary', { method: 'delete', @@ -27,21 +25,22 @@ async function deleteDiary(){ } } -async function updateDiary(){ - const diaryId = this.parentNode.dataset.id - try{ - console.log(`id is ${diaryId}`) - const response = await fetch('diary/updateDiary', { - method: 'put', - headers: {'Content-type': 'application/json'}, - body: JSON.stringify({ - 'diaryIdFromJSFile': diaryId - }) - }) - const data = await response.json() - console.log(data) - location.reload() - }catch(err){ - console.log(err) - } -} \ No newline at end of file +// async function updateDiary(){ +// const diaryId = this.parentNode.parentNode.dataset.id +// console.log(`value is ${this.parentNode}`) +// try{ +// const response = await fetch('diary/updateDiary', { +// method: 'put', +// headers: {'Content-type': 'application/json'}, +// body: JSON.stringify({ +// 'diaryIdFromJSFile': diaryId, +// 'diary': '' +// }) +// }) +// const data = await response.json() +// console.log(data) +// location.reload() +// }catch(err){ +// console.log(err) +// } +// } \ No newline at end of file diff --git a/routes/diary.js b/routes/diary.js index 7c7e3335a..9407a2027 100644 --- a/routes/diary.js +++ b/routes/diary.js @@ -7,7 +7,7 @@ router.get('/', ensureAuth, diaryController.getDiary) router.post('/createDiary', diaryController.createDiary) -router.put('/updateDiary', diaryController.updateDiary) +// router.put('/updateDiary', diaryController.updateDiary) router.delete('/deleteDiary', diaryController.deleteDiary) diff --git a/views/diary.ejs b/views/diary.ejs index 1eea0012e..a58a019ef 100644 --- a/views/diary.ejs +++ b/views/diary.ejs @@ -14,11 +14,12 @@
  • <%= el.diary %> + This entry is <%= el.private ? 'private' : 'public' %> -
    +
  • <% }) %> @@ -27,6 +28,10 @@ + + + + From 7251b258db6d4491e27a36b5587e5a68e6602e24 Mon Sep 17 00:00:00 2001 From: Joe Ulyatt Date: Thu, 8 Sep 2022 15:25:25 +0100 Subject: [PATCH 09/10] add ability to change privacy of diary entry --- controllers/diary.js | 19 +++++++++--------- public/js/main.js | 47 ++++++++++++++++++++++++-------------------- routes/diary.js | 2 +- views/diary.ejs | 10 +++++++--- 4 files changed, 44 insertions(+), 34 deletions(-) diff --git a/controllers/diary.js b/controllers/diary.js index 071ee1a1e..96f7ddac4 100644 --- a/controllers/diary.js +++ b/controllers/diary.js @@ -20,15 +20,16 @@ module.exports = { console.log(err) } }, - // updateDiary: async (req, res)=>{ - // try{ - // await Diary.findOneAndUpdate({_id:req.body.diaryIdFromJSFile},{diary: 'something'}) - // console.log('Updated Diary') - // res.json('Updated Diary') - // }catch(err){ - // console.log(err) - // } - // }, + changePrivacy: async (req, res)=>{ + try{ + await Diary.findOneAndUpdate({_id:req.body.diaryIdFromJSFile},{private: req.body.private}) + console.log('Updated Diary') + console.log(req.body.private) + res.json('Updated Diary') + }catch(err){ + console.log(err) + } + }, deleteDiary: async (req, res)=>{ console.log(req.body.diaryIdFromJSFile) try{ diff --git a/public/js/main.js b/public/js/main.js index d09b9e3d1..1ee4542de 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,14 +1,17 @@ const deleteBtn = document.querySelectorAll('.del') -// const updateBtn = document.querySelectorAll('.update') +const changePrivacyBtn = document.querySelectorAll('.changePrivacy') Array.from(deleteBtn).forEach((el)=>{ el.addEventListener('click', deleteDiary) }) +Array.from(changePrivacyBtn).forEach((el)=>{ + el.addEventListener('click', changePrivacy) +}) + async function deleteDiary(){ const diaryId = this.parentNode.dataset.id - console.log(`id is ${diaryId}`) try{ const response = await fetch('diary/deleteDiary', { method: 'delete', @@ -25,22 +28,24 @@ async function deleteDiary(){ } } -// async function updateDiary(){ -// const diaryId = this.parentNode.parentNode.dataset.id -// console.log(`value is ${this.parentNode}`) -// try{ -// const response = await fetch('diary/updateDiary', { -// method: 'put', -// headers: {'Content-type': 'application/json'}, -// body: JSON.stringify({ -// 'diaryIdFromJSFile': diaryId, -// 'diary': '' -// }) -// }) -// const data = await response.json() -// console.log(data) -// location.reload() -// }catch(err){ -// console.log(err) -// } -// } \ No newline at end of file +async function changePrivacy(){ + const diaryId = this.parentNode.dataset.id + const private = this.parentNode.dataset.private === "true" + console.log(`private value is ${private}`) + console.log(`pirvate is a ${typeof(private)}`) + try{ + const response = await fetch('diary/changePrivacy', { + method: 'put', + headers: {'Content-type': 'application/json'}, + body: JSON.stringify({ + 'diaryIdFromJSFile': diaryId, + 'private': !private, + }) + }) + const data = await response.json() + console.log(data) + location.reload() + }catch(err){ + console.log(err) + } +} \ No newline at end of file diff --git a/routes/diary.js b/routes/diary.js index 9407a2027..1915ade50 100644 --- a/routes/diary.js +++ b/routes/diary.js @@ -7,7 +7,7 @@ router.get('/', ensureAuth, diaryController.getDiary) router.post('/createDiary', diaryController.createDiary) -// router.put('/updateDiary', diaryController.updateDiary) +router.put('/changePrivacy', diaryController.changePrivacy) router.delete('/deleteDiary', diaryController.deleteDiary) diff --git a/views/diary.ejs b/views/diary.ejs index a58a019ef..f99fd7494 100644 --- a/views/diary.ejs +++ b/views/diary.ejs @@ -11,23 +11,27 @@

    Diary

      <% diary.forEach( el => { %> -
    • +
    • <%= el.diary %> +
      +

      This entry is <%= el.private ? 'Private ' : 'Public ' %>

      - This entry is <%= el.private ? 'private' : 'public' %> + +
    • +
      <% }) %>

    <%= user.userName %> has <%= total %> total diary entries.

    - + From dff86313311aa154d31f5630f3b1ac5ae62aaccb Mon Sep 17 00:00:00 2001 From: Joe Ulyatt Date: Thu, 8 Sep 2022 15:26:47 +0100 Subject: [PATCH 10/10] remove redundant console.logs --- controllers/diary.js | 1 - public/js/main.js | 2 -- 2 files changed, 3 deletions(-) diff --git a/controllers/diary.js b/controllers/diary.js index 96f7ddac4..e43f501e7 100644 --- a/controllers/diary.js +++ b/controllers/diary.js @@ -24,7 +24,6 @@ module.exports = { try{ await Diary.findOneAndUpdate({_id:req.body.diaryIdFromJSFile},{private: req.body.private}) console.log('Updated Diary') - console.log(req.body.private) res.json('Updated Diary') }catch(err){ console.log(err) diff --git a/public/js/main.js b/public/js/main.js index 1ee4542de..4eb0488bb 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -31,8 +31,6 @@ async function deleteDiary(){ async function changePrivacy(){ const diaryId = this.parentNode.dataset.id const private = this.parentNode.dataset.private === "true" - console.log(`private value is ${private}`) - console.log(`pirvate is a ${typeof(private)}`) try{ const response = await fetch('diary/changePrivacy', { method: 'put',