From b2ead521c84f52c8574c93dc54bb2e67691a4c76 Mon Sep 17 00:00:00 2001 From: Hajar RAHMOUNI Date: Sat, 7 Oct 2023 21:03:29 +0200 Subject: [PATCH] some cleaning --- database/connection.js | 2 +- public/stylesheets/style.css | 20 ++++-- routes/announcement.js | 10 +-- routes/index.js | 5 -- views/announcement_details.pug | 121 +++++++++++++++++---------------- views/announcements.pug | 5 +- views/dashboard.pug | 9 --- views/layout.pug | 10 +-- views/register.pug | 32 --------- views/update_announcement.pug | 2 +- 10 files changed, 90 insertions(+), 126 deletions(-) delete mode 100644 views/dashboard.pug delete mode 100644 views/register.pug diff --git a/database/connection.js b/database/connection.js index 5c201cb..ce08f68 100644 --- a/database/connection.js +++ b/database/connection.js @@ -2,7 +2,7 @@ const mongoose = require('mongoose'); require('dotenv').config(); const dbName = process.env.DB_NAME; -const url = `mongodb://mongodb:27017/${dbName}`; +const url = `mongodb://mongo:27017/${dbName}`; const connectToDatabase = async () => { try { diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 516b534..06d8596 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -1,5 +1,5 @@ body { - padding: 50px; + padding: 0; font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; } @@ -15,12 +15,22 @@ a { } .container { - margin-top: 20px; + max-width: 60%; } .username { - color: #00ccff; + color: #111415; font-weight: bold; - font-size: 25px; - margin: 10px; + font-size: 15px; + margin-right: 10px; + border: 2px solid #000; + padding: 10px; + border-radius: 10px; } +.my-site-title { + font-size: 24px; + font-weight: bold; + color: #333; + text-decoration: none; +} + diff --git a/routes/announcement.js b/routes/announcement.js index 2ea2c07..1b4f256 100644 --- a/routes/announcement.js +++ b/routes/announcement.js @@ -50,7 +50,7 @@ router.get('/:id', async (req, res) => { const user = req.user; const announcementDetails = await Announcement.findById(announcementId); if ((user && user.username !== announcementDetails.userName || !user) && announcementDetails.publicationStatus !== 'Publiée') { - return res.status(403).json({ message: 'Cette annance est non disponible.' }); + return res.status(403).json({ message: 'Cette annonce est non disponible.' }); } if (user && user.username !== announcementDetails.userName && user.isAgent) { return res.status(403).json({ message: 'User non autorisée.' }); @@ -104,7 +104,7 @@ router.post('/:id/question/:questionId/answer', isAuthenticated, isAgent, async } if (user.username !== announcement.userName) { - return res.status(404).json({ message: 'User non autorisée' }); + return res.status(404).json({ message: 'User non autorisé' }); } const question = announcement.questions.id(questionId); @@ -154,7 +154,7 @@ router.post('/add-announcement', isAuthenticated, isAgent, upload.array('photos' } }); - // Route to display form to update an ad +// Route to display form to update an ad router.get('/update/:id', isAuthenticated, isAgent, async (req, res) => { try { const user = req.user; @@ -231,7 +231,7 @@ router.get('/delete/:id', isAuthenticated, isAgent, async (req, res) => { return res.status(404).json({ message: 'annonce non trouvée' }); } if (user.username !== deletedAnnouncement.userName) { - return res.status(404).json({ message: 'User non autorisée' }); + return res.status(404).json({ message: 'User non autorisé' }); } res.redirect('/announcements'); } catch (error) { @@ -257,7 +257,7 @@ router.delete('/delete-photo/:announcementId/:filename', isAuthenticated, isAgen } if (user.username !== announcement.userName) { - return res.status(404).json({ message: 'User non autorisée' }); + return res.status(404).json({ message: 'User non autorisé' }); } const filePath = path.join('public', 'uploads', filename); diff --git a/routes/index.js b/routes/index.js index b98ed99..c3971f6 100644 --- a/routes/index.js +++ b/routes/index.js @@ -39,11 +39,6 @@ router.post('/login',(req, res, next) => { })(req, res, next); }); -router.get('/dashboard', isAuthenticated, function(req, res, next) { - res.render('dashboard', { user: req.user }); -}); - - router.get('/register', function(req, res) { res.render('register', { user : req.user }); }); diff --git a/views/announcement_details.pug b/views/announcement_details.pug index 7a7c87f..d3c8bb1 100644 --- a/views/announcement_details.pug +++ b/views/announcement_details.pug @@ -1,71 +1,74 @@ extends layout block content - .container.mt-5 - .row - .col-md-8.offset-md-2 - .card - .card-body - h5.card-title= announcement.title - p.card-text Type de Bien: #{announcement.propertyType} - p.card-text Prix: #{announcement.price}€ - p.card-text Description: #{announcement.description} - p.card-text Statut Publication: #{announcement.publicationStatus} - p.card-text Statut Bien: #{announcement.propertyStatus} - - var date = new Date(announcement.availabilityDate); - - var options = { year: 'numeric', month: 'long', day: 'numeric' }; - - var frenchDate = date.toLocaleDateString('fr-FR', options) - p.card-text Date de Disponibilité: #{frenchDate} + .container.mt-5 + .row + .col-md-8.offset-md-2 + .card + .card-body + h5.card-title= announcement.title + p.card-text Type de Bien: #{announcement.propertyType} + p.card-text Prix: #{announcement.price}€ + p.card-text Description: #{announcement.description} + p.card-text Statut Publication: #{announcement.publicationStatus} + p.card-text Statut Bien: #{announcement.propertyStatus} - if announcement.photos.length > 0 - each photo in announcement.photos - img.card-img-top(src=`/uploads/${photo}`, alt=announcement.title) + - var date = new Date(announcement.availabilityDate); + - var options = { year: 'numeric', month: 'long', day: 'numeric' }; + - var frenchDate = date.toLocaleDateString('fr-FR', options) + p.card-text Date de Disponibilité: #{frenchDate} - .mt-3 + if announcement.photos.length > 0 + each photo in announcement.photos + img.card-img-top(src=`/uploads/${photo}`, alt=announcement.title) - if user && user.isAgent - a.btn.btn-primary(href=`/announcements/update/${announcement._id}`) Modifier l'annonce - a.btn.btn-danger(href=`/announcements/delete/${announcement._id}`) Supprimer l'annonce - a.btn.btn-secondary(href="/announcements") Annuler - - .mt-3 + .mt-3 - if user && !user.isAgent - h2.card-title.mb-4 Mes Questions et Réponses - each question in announcement.questions - if question.user === user.username - .card.mb-3 - .card-body - h5.card-title Question - p.card-text= question.question - if question.answers.length > 0 - h5.card-title Réponses - each answer in question.answers - p.card-text Réponse : #{answer.answer} + if user && user.isAgent + .d-flex.justify-content-between.mt-3 + a.btn.btn-primary(href=`/announcements/update/${announcement._id}`) Modifier l'annonce + a.btn.btn-danger(href=`/announcements/delete/${announcement._id}`) Supprimer l'annonce + a.btn.btn-secondary(href="/announcements") Annuler - if announcement.propertyStatus == 'Disponible' - form(action=`/announcements/${announcement._id}/ask`, method="post") - .form-group.mt-3 - label(for="question") Poser une question - input#question.form-control(type="text", name="question", required) .mt-3 - button.btn.btn-primary(type="submit") Poser la question - if user && user.isAgent && announcement.questions.length > 0 - h2.card-title.mb-4 Questions et Réponses - each question in announcement.questions - .card.mb-3 - .card-body - h5.card-title Question de #{question.user} - p.card-text Question : #{question.question} - each answer in question.answers - h5.card-title Réponse - p.card-text Réponse : #{answer.answer} + if user && !user.isAgent + h2.card-title.mb-4 Mes Questions et Réponses + each question in announcement.questions + if question.user === user.username + .card.mb-3 + .card-body + h5.card-title Question + p.card-text= question.question + + if question.answers.length > 0 + h5.card-title Réponses + each answer in question.answers + p.card-text Réponse : #{answer.answer} + + if announcement.propertyStatus == 'Disponible' + form(action=`/announcements/${announcement._id}/ask`, method="post") + .form-group.mt-3 + label(for="question") Poser une question + input#question.form-control(type="text", name="question", required) + .mt-3 + button.btn.btn-primary(type="submit") Poser la question + + if user && user.isAgent && announcement.questions.length > 0 + h2.card-title.mb-4 Questions et Réponses + each question in announcement.questions + .card.mb-3 + .card-body + h5.card-title Question de #{question.user} + p.card-text Question : #{question.question} + each answer in question.answers + h5.card-title Réponse + p.card-text Réponse : #{answer.answer} - form(action=`/announcements/${announcement._id}/question/${question._id}/answer`, method="post") - .form-group.mt-3 - label(for="answer") Répondre - input#answer.form-control(type="text", name="answer", required) - .mt-3 - button.btn.btn-primary(type="submit") Répondre + form(action=`/announcements/${announcement._id}/question/${question._id}/answer`, method="post") + .form-group.mt-3 + label(for="answer") Répondre + input#answer.form-control(type="text", name="answer", required) + .mt-3 + button.btn.btn-primary(type="submit") Répondre diff --git a/views/announcements.pug b/views/announcements.pug index bb2b2a2..e9d6cca 100644 --- a/views/announcements.pug +++ b/views/announcements.pug @@ -6,10 +6,7 @@ block content h1 Liste des Annonces Immobilières form(action="/announcements/add-announcement", method="get") .d-flex - button.btn.btn-primary.mr-2(type="submit") Add an announcement - //if isAuthenticated - a.btn.btn-danger(href="/logout") Déconnexion - + button.btn.btn-primary.mr-2(type="submit") Publier une annonce .row if user && user.isAgent each announcement in announcements diff --git a/views/dashboard.pug b/views/dashboard.pug deleted file mode 100644 index 24bc9ad..0000000 --- a/views/dashboard.pug +++ /dev/null @@ -1,9 +0,0 @@ -extends layout - -block content - .row.justify-content-center.mt-5 - .col-md-6 - .card - .card-body - .card-title - h1 Authentification réussie ! diff --git a/views/layout.pug b/views/layout.pug index 87a7121..5a51f25 100644 --- a/views/layout.pug +++ b/views/layout.pug @@ -8,18 +8,18 @@ html body nav.navbar.navbar-expand-lg.navbar-light.bg-light.my-navbar .container.d-flex.justify-content-between - a.navbar-brand(href='\\') Real Estate Adverts Platform + h1.my-site-title.navbar-brand(href='\\') Espaces Immobiliers Plateforme ul.nav.navbar-nav if (!user) li.nav-item - a.btn.btn-primary(href='/login', style='margin-right: 8px;') Login + a.btn.btn-primary(href='/login', style='margin-right: 8px;') Se connecter li.nav-item - a.btn.btn-secondary(href='/register', style='margin-right: 8px;') Register + a.btn.btn-secondary(href='/register', style='margin-right: 8px;') Créer un compte if (user) li.nav-item - p.username #{user.username} + p.username User : #{user.username} li.nav-item - a.btn.btn-danger(href="/logout") Logout + a.btn.btn-danger(href="/logout") Se déconnecter block content script(src='https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js') diff --git a/views/register.pug b/views/register.pug deleted file mode 100644 index cd6e8f2..0000000 --- a/views/register.pug +++ /dev/null @@ -1,32 +0,0 @@ -extends layout - -block content - .container - .row.justify-content-center.align-items-center(style='margin-top:10%;') - .col-md-6 - .card - .card-body - .card-title - h1 Register - p.lead Créez votre compte - br - //- Display error message if it exists - if error - .alert.alert-danger - strong Error: - | #{error} - form(role='form', action="/register", method="post", style='max-width: 300px;') - .form-group.mb-3 - label(style='padding: 0.5rem 0;') Username - input.form-control(type='text', name="username", placeholder='Username') - .form-group.mb-3 - label(style='padding: 0.5rem 0;') Password - input.form-control(type='password', name="password", placeholder='Password') - .form-group.mb-3 - label(style='padding: 0.5rem 0;') Are you an agent or a consultant? - select.form-control(name='role') - option(value='consultant') Consultant - option(value='agent') Agent - button.btn.btn-primary(type='submit', style='margin-right: 2rem;') Créer un compte - a(href='/') - button.btn.btn-secondary(type="button") Annuler diff --git a/views/update_announcement.pug b/views/update_announcement.pug index 4d2c671..947afdf 100644 --- a/views/update_announcement.pug +++ b/views/update_announcement.pug @@ -57,7 +57,7 @@ block content button.delete-photo.btn.btn-danger(type="button", data-photo-filename=`${photo}`, data-announcement-id=`${announcement._id}`) Supprimer button.btn.btn-primary(type="submit") Modifier l'annonce - a.btn.btn-secondary(href=`/announcements/${announcement._id}`) Annuler + a.btn.btn-secondary.m-3(href=`/announcements/${announcement._id}`) Annuler include drag_drop_script.pug -- GitLab