diff --git a/migration.sql b/database_files/migration.sql similarity index 78% rename from migration.sql rename to database_files/migration.sql index a70d2eab38..a358a5370e 100644 --- a/migration.sql +++ b/database_files/migration.sql @@ -1,3 +1,5 @@ +CREATE DATABASE IF NOT EXISTS adlister_db; + USE adlister_db; DROP TABLE IF EXISTS ads; @@ -5,8 +7,8 @@ DROP TABLE IF EXISTS users; CREATE TABLE users ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, - username VARCHAR(240) NOT NULL, - email VARCHAR(240) NOT NULL, + username VARCHAR(240) NOT NULL UNIQUE , + email VARCHAR(240) NOT NULL UNIQUE , password VARCHAR(255) NOT NULL, PRIMARY KEY (id) ); diff --git a/database_files/seeder.sql b/database_files/seeder.sql new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pom.xml b/pom.xml index 22a2e9c039..480d2ad26b 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,9 @@ mysql mysql-connector-java - 6.0.5 + + 8.0.23 + diff --git a/src/main/java/com/codeup/adlister/controllers/CreateAdServlet.java b/src/main/java/com/codeup/adlister/controllers/CreateAdServlet.java index 38775bc6f7..a56c59cc2f 100644 --- a/src/main/java/com/codeup/adlister/controllers/CreateAdServlet.java +++ b/src/main/java/com/codeup/adlister/controllers/CreateAdServlet.java @@ -15,6 +15,7 @@ public class CreateAdServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (request.getSession().getAttribute("user") == null) { + request.getSession().setAttribute("redirectUrl", request.getRequestURI()); response.sendRedirect("/login"); return; } diff --git a/src/main/java/com/codeup/adlister/controllers/LoginServlet.java b/src/main/java/com/codeup/adlister/controllers/LoginServlet.java index e5c52723a2..74c7e42421 100644 --- a/src/main/java/com/codeup/adlister/controllers/LoginServlet.java +++ b/src/main/java/com/codeup/adlister/controllers/LoginServlet.java @@ -3,12 +3,14 @@ import com.codeup.adlister.dao.DaoFactory; import com.codeup.adlister.models.User; import com.codeup.adlister.util.Password; +import org.apache.taglibs.standard.tag.el.core.IfTag; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.swing.*; import java.io.IOException; @WebServlet(name = "controllers.LoginServlet", urlPatterns = "/login") @@ -27,16 +29,27 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) User user = DaoFactory.getUsersDao().findByUsername(username); if (user == null) { + JOptionPane.showMessageDialog(null,"Username not found. Please try again."); + request.setAttribute("userNameExists", true); response.sendRedirect("/login"); return; } boolean validAttempt = Password.check(password, user.getPassword()); + + if (validAttempt) { request.getSession().setAttribute("user", user); - response.sendRedirect("/profile"); + String redirectUrl = (String) request.getSession().getAttribute("redirectUrl"); + if (redirectUrl != null) { + response.sendRedirect(redirectUrl); + } else { + response.sendRedirect("/profile"); + } } else { + JOptionPane.showMessageDialog(null,"Invalid password. Please try again."); + request.setAttribute("validAttempt", true); response.sendRedirect("/login"); } } diff --git a/src/main/java/com/codeup/adlister/controllers/RegisterServlet.java b/src/main/java/com/codeup/adlister/controllers/RegisterServlet.java index e1e997c17a..b85d032b57 100644 --- a/src/main/java/com/codeup/adlister/controllers/RegisterServlet.java +++ b/src/main/java/com/codeup/adlister/controllers/RegisterServlet.java @@ -8,6 +8,7 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.swing.*; import java.io.IOException; @WebServlet(name = "controllers.RegisterServlet", urlPatterns = "/register") @@ -23,19 +24,31 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) String passwordConfirmation = request.getParameter("confirm_password"); // validate input + boolean userNameExists = DaoFactory.getUsersDao().findByUsername(username) != null; boolean inputHasErrors = username.isEmpty() || email.isEmpty() || password.isEmpty() || (! password.equals(passwordConfirmation)); - if (inputHasErrors) { + if (userNameExists){ + JOptionPane.showMessageDialog(null,"Please choose a new username that one exists already"); + request.setAttribute("userNameExists", true); response.sendRedirect("/register"); - return; + + }else if (inputHasErrors) { + JOptionPane.showMessageDialog(null,"Passwords do not match"); + request.setAttribute("inputHasErrors", true); + String message = "Passwords did not match"; + request.setAttribute("message", message); + response.sendRedirect("/register"); + + + }else{ + User user = new User(username, email, password); + DaoFactory.getUsersDao().insert(user); + request.getSession().setAttribute("user", user); + response.sendRedirect("/profile"); } - // create and save a new user - User user = new User(username, email, password); - DaoFactory.getUsersDao().insert(user); - response.sendRedirect("/login"); } } diff --git a/src/main/java/com/codeup/adlister/controllers/SearchServlet.java b/src/main/java/com/codeup/adlister/controllers/SearchServlet.java new file mode 100644 index 0000000000..140a534629 --- /dev/null +++ b/src/main/java/com/codeup/adlister/controllers/SearchServlet.java @@ -0,0 +1,32 @@ +package com.codeup.adlister.controllers; + +import com.codeup.adlister.dao.DaoFactory; +import com.codeup.adlister.models.Ad; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.sql.SQLException; +import java.util.List; + + +@WebServlet(name = "SearchServlet", urlPatterns = "/ads/search") +public class SearchServlet extends HttpServlet { + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + String searchString = req.getParameter("s"); + + try{ + List adlist =DaoFactory.getAdsDao().searchAds(searchString); + req.setAttribute("ads", adlist); + } catch (SQLException e){ + throw new RuntimeException("Error"); + } + + req.getRequestDispatcher("/WEB-INF/ads/index.jsp").forward(req, resp); + } +} diff --git a/src/main/java/com/codeup/adlister/controllers/UpdateAdServlet.java b/src/main/java/com/codeup/adlister/controllers/UpdateAdServlet.java new file mode 100644 index 0000000000..7ff034ea3a --- /dev/null +++ b/src/main/java/com/codeup/adlister/controllers/UpdateAdServlet.java @@ -0,0 +1,53 @@ +package com.codeup.adlister.controllers; + +import com.codeup.adlister.dao.Config; +import com.codeup.adlister.dao.DaoFactory; +import com.codeup.adlister.models.Ad; +import com.codeup.adlister.models.User; +import com.mysql.cj.jdbc.Driver; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.SQLException; + +@WebServlet(name = "controllers.UpdateAdServlet", urlPatterns = "/ads/update") +public class UpdateAdServlet extends HttpServlet { + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + long adId = Long.parseLong(request.getParameter("adId")); + Ad ad = DaoFactory.getAdsDao().findUniqueAdId(adId); + request.setAttribute("ad", ad); + request.getRequestDispatcher("/WEB-INF/ads/update.jsp").forward(request, response); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + if (request.getParameter("editButton") != null) { + + // Edit Process + long adId = Long.parseLong(request.getParameter("adId")); + Ad editAd = DaoFactory.getAdsDao().findUniqueAdId(adId); + String title = request.getParameter("title"); + String description = request.getParameter("description"); + editAd.setTitle(title); + editAd.setDescription(description); + DaoFactory.getAdsDao().update(editAd); + + } + if (request.getParameter("delete-ad") != null) { + + // Edit Process + long adId = Long.parseLong(request.getParameter("adId")); + Ad deleteAd = DaoFactory.getAdsDao().findUniqueAdId(adId); + DaoFactory.getAdsDao().delete(deleteAd); + } + response.sendRedirect("/ads"); + } + + } + diff --git a/src/main/java/com/codeup/adlister/controllers/UpdateInfoServlet.java b/src/main/java/com/codeup/adlister/controllers/UpdateInfoServlet.java new file mode 100644 index 0000000000..b22c4e3edc --- /dev/null +++ b/src/main/java/com/codeup/adlister/controllers/UpdateInfoServlet.java @@ -0,0 +1,76 @@ +package com.codeup.adlister.controllers; + +import com.codeup.adlister.dao.Config; +import com.codeup.adlister.dao.DaoFactory; +import com.codeup.adlister.models.User; +import com.mysql.cj.jdbc.Driver; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.swing.*; +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.SQLException; + +import static java.lang.Long.parseLong; + +@WebServlet(name = "UpdateInfoServlet", urlPatterns = "/updateinfo") +public class UpdateInfoServlet extends HttpServlet { + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + request.getRequestDispatcher("/WEB-INF/updateinfo.jsp").forward(request, response); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + if (request.getSession().getAttribute("user") == null) { + response.sendRedirect("/login"); + return; + + } else { + + if (request.getParameter("editButton") != null) { + + // Edit Process + User editUser = (User) request.getSession().getAttribute("user"); + Long userId = (long) editUser.getId(); + String username = request.getParameter("username"); + String email = request.getParameter("email"); + String password = request.getParameter("password"); + String passwordConfirmation = request.getParameter("confirm_password"); + + // Process Edit Action + boolean inputHasErrors = (!password.equals(passwordConfirmation)); + + + if (inputHasErrors) { + JOptionPane.showMessageDialog(null,"Passwords do not match"); + request.setAttribute("inputHasErrors", true); + String message = "Passwords did not match"; + request.setAttribute("message", message); + request.getRequestDispatcher("/WEB-INF/updateinfo.jsp").forward(request, response); + } else { + editUser.setUsername(username); + editUser.setEmail(email); + editUser.setPassword(password); + DaoFactory.getUsersDao().update(editUser); + } + + } + response.sendRedirect("/profile"); + } + if (request.getParameter("delete-account") != null) { + + // Edit Process + User user = (User) request.getSession().getAttribute("user"); + DaoFactory.getUsersDao().delete(user); + request.getSession().invalidate(); + } + + } + + } + diff --git a/src/main/java/com/codeup/adlister/controllers/ViewAdServlet.java b/src/main/java/com/codeup/adlister/controllers/ViewAdServlet.java new file mode 100644 index 0000000000..1448c5d58f --- /dev/null +++ b/src/main/java/com/codeup/adlister/controllers/ViewAdServlet.java @@ -0,0 +1,26 @@ +package com.codeup.adlister.controllers; +import com.codeup.adlister.dao.DaoFactory; +import com.codeup.adlister.models.Ad; +import com.codeup.adlister.models.User; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +@WebServlet(name = "controllers.ViewAdServlet", urlPatterns = "/adpage") +public class ViewAdServlet extends HttpServlet { + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + long adId = Long.parseLong(request.getParameter("adId")); + Ad ad = DaoFactory.getAdsDao().findUniqueAdId(adId); + User user = DaoFactory.getUsersDao().getUserByAd(adId); + request.setAttribute("ad", ad); + request.setAttribute("user", user); + request.getRequestDispatcher("/WEB-INF/adpage.jsp").forward(request, response); + } +} diff --git a/src/main/java/com/codeup/adlister/controllers/ViewProfileServlet.java b/src/main/java/com/codeup/adlister/controllers/ViewProfileServlet.java index e1b8941067..b385b3c347 100644 --- a/src/main/java/com/codeup/adlister/controllers/ViewProfileServlet.java +++ b/src/main/java/com/codeup/adlister/controllers/ViewProfileServlet.java @@ -1,11 +1,16 @@ package com.codeup.adlister.controllers; +import com.codeup.adlister.dao.DaoFactory; +import com.codeup.adlister.models.Ad; +import com.codeup.adlister.models.User; + import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.List; @WebServlet(name = "controllers.ViewProfileServlet", urlPatterns = "/profile") public class ViewProfileServlet extends HttpServlet { @@ -14,6 +19,13 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t response.sendRedirect("/login"); return; } + + User user =(User) request.getSession().getAttribute("user"); + Long userId = user.getId(); + + List userAds = DaoFactory.getAdsDao().getUserAds(userId); + request.setAttribute("ads", userAds); + request.getRequestDispatcher("/WEB-INF/profile.jsp").forward(request, response); } } diff --git a/src/main/java/com/codeup/adlister/dao/Ads.java b/src/main/java/com/codeup/adlister/dao/Ads.java index 79dc59f484..1e5cd96c85 100644 --- a/src/main/java/com/codeup/adlister/dao/Ads.java +++ b/src/main/java/com/codeup/adlister/dao/Ads.java @@ -2,6 +2,7 @@ import com.codeup.adlister.models.Ad; +import java.sql.SQLException; import java.util.List; public interface Ads { @@ -9,4 +10,14 @@ public interface Ads { List all(); // insert a new ad and return the new ad's id Long insert(Ad ad); + + List searchAds(String searchString) throws SQLException; + + Ad findUniqueAdId(Long ad); + + List getUserAds(long id); + + void update(Ad editAd); + + void delete(Ad deleteAd); } diff --git a/src/main/java/com/codeup/adlister/dao/ListAdsDao.java b/src/main/java/com/codeup/adlister/dao/ListAdsDao.java index 8d3baaa369..430adb3c0f 100644 --- a/src/main/java/com/codeup/adlister/dao/ListAdsDao.java +++ b/src/main/java/com/codeup/adlister/dao/ListAdsDao.java @@ -2,10 +2,11 @@ import com.codeup.adlister.models.Ad; +import java.sql.SQLException; import java.util.ArrayList; import java.util.List; -public class ListAdsDao implements Ads { +public class ListAdsDao { private List ads; public List all() { @@ -27,6 +28,16 @@ public Long insert(Ad ad) { return ad.getId(); } +// @Override +// public List searchAds(String searchString) throws SQLException { +// return null; +// } +// +// @Override +// public Ad findUniqueAdId(Long ad) { +// return null; +// } + private List generateAds() { List ads = new ArrayList<>(); ads.add(new Ad( diff --git a/src/main/java/com/codeup/adlister/dao/MySQLAdsDao.java b/src/main/java/com/codeup/adlister/dao/MySQLAdsDao.java index d58c45f985..fdf62e4c45 100644 --- a/src/main/java/com/codeup/adlister/dao/MySQLAdsDao.java +++ b/src/main/java/com/codeup/adlister/dao/MySQLAdsDao.java @@ -3,9 +3,7 @@ import com.codeup.adlister.models.Ad; import com.mysql.cj.jdbc.Driver; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; + import java.sql.*; import java.util.ArrayList; import java.util.List; @@ -18,7 +16,7 @@ public MySQLAdsDao(Config config) { DriverManager.registerDriver(new Driver()); connection = DriverManager.getConnection( config.getUrl(), - config.getUser(), + config.getUsername(), config.getPassword() ); } catch (SQLException e) { @@ -55,6 +53,61 @@ public Long insert(Ad ad) { } } + @Override + public List searchAds(String keyword) throws SQLException { + List adList = new ArrayList<>(); + String sqlQuery = "SELECT id FROM ads WHERE title LIKE ?"; + + PreparedStatement stmt = connection.prepareStatement(sqlQuery, Statement.NO_GENERATED_KEYS); + stmt.setString(1, "%" + keyword + "%"); + System.out.println(stmt); + stmt.executeQuery(); + ResultSet rs = stmt.getResultSet(); + while (rs.next()) { + adList.add(findUniqueAdId(rs.getLong("id"))); + } + return adList; + } + + @Override + public Ad findUniqueAdId(Long ad){ + String query = "SELECT * FROM ads WHERE id = ? LIMIT 1"; + try{ + PreparedStatement stmt = connection.prepareStatement(query); + stmt.setLong(1, ad); + ResultSet rs = stmt.executeQuery(); + if (! rs.next()) { + return null; + } + return extractAd(rs); + } catch(SQLException e) { + throw new RuntimeException("Error finding Ad ID", e); + } + } + + @Override + public List getUserAds(long id) { + List userAds = new ArrayList<>(); + + try{ + PreparedStatement stmt = connection.prepareStatement("SELECT * FROM ads WHERE user_id = ?"); + stmt.setLong(1, id); + ResultSet rs = stmt.executeQuery(); + + while (rs.next()){ + userAds.add(new Ad( + rs.getLong("id"), + rs.getLong("user_id"), + rs.getString("title"), + rs.getString("description") + )); + } + }catch(SQLException e) { + throw new RuntimeException("Error retrieving ads from database"); + } + return userAds; + } + private Ad extractAd(ResultSet rs) throws SQLException { return new Ad( rs.getLong("id"), @@ -71,4 +124,32 @@ private List createAdsFromResults(ResultSet rs) throws SQLException { } return ads; } + + @Override + public void update(Ad ad) { + String query = "UPDATE ads SET title = ?, description =? WHERE id =?"; + try{ + PreparedStatement stmt = connection.prepareStatement(query); + stmt.setString(1, ad.getTitle()); + stmt.setString(2, ad.getDescription()); + stmt.setLong(3, ad.getId()); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new RuntimeException("Error updating ad", e); + } + + } + + @Override + public void delete(Ad ad) { + String query = "DELETE FROM ads WHERE id=?"; + try{ + PreparedStatement stmt = connection.prepareStatement(query); + stmt.setLong(1, ad.getId()); + stmt.executeUpdate(); + }catch(SQLException e){ + throw new RuntimeException("Error deleting ad", e); + + } + } } diff --git a/src/main/java/com/codeup/adlister/dao/MySQLUsersDao.java b/src/main/java/com/codeup/adlister/dao/MySQLUsersDao.java index 4e69e57044..6fe8f8ac57 100644 --- a/src/main/java/com/codeup/adlister/dao/MySQLUsersDao.java +++ b/src/main/java/com/codeup/adlister/dao/MySQLUsersDao.java @@ -3,6 +3,8 @@ import com.codeup.adlister.models.User; import com.mysql.cj.jdbc.Driver; + + import java.sql.*; public class MySQLUsersDao implements Users { @@ -13,7 +15,7 @@ public MySQLUsersDao(Config config) { DriverManager.registerDriver(new Driver()); connection = DriverManager.getConnection( config.getUrl(), - config.getUser(), + config.getUsername(), config.getPassword() ); } catch (SQLException e) { @@ -51,6 +53,55 @@ public Long insert(User user) { } } + @Override + public User getUserByAd(long id) { + PreparedStatement stmt = null; + try { + stmt = connection.prepareStatement("SELECT * FROM users u JOIN ads a ON a.user_id = u.id WHERE a.id = ?"); + stmt.setLong(1, id); + ResultSet rs = stmt.executeQuery(); + rs.next(); + return new User( + rs.getLong("id"), + rs.getString("username"), + rs.getString("email"), + rs.getString("password") + ); + } catch (SQLException e) { + throw new RuntimeException("Error finding user.", e); + } + } + + @Override + public void update(User user) { + String query = "UPDATE users SET username = ?,email =?, password =? WHERE id =?"; + try{ + PreparedStatement stmt = connection.prepareStatement(query); + stmt.setString(1,user.getUsername()); + stmt.setString(2, user.getEmail()); + stmt.setString(3, user.getPassword()); + stmt.setLong(4, user.getId()); + stmt.executeUpdate(); + } catch (SQLException e) { + throw new RuntimeException("Error updating a user", e); + } + + } + + @Override + public void delete(User user) { + String query = "DELETE FROM users WHERE id=?"; + try{ + PreparedStatement stmt = connection.prepareStatement(query); + stmt.setLong(1, user.getId()); + stmt.executeUpdate(); + }catch(SQLException e){ + throw new RuntimeException("Error deleting user", e); + + } + } + + private User extractUser(ResultSet rs) throws SQLException { if (! rs.next()) { return null; @@ -63,4 +114,7 @@ private User extractUser(ResultSet rs) throws SQLException { ); } + } + + diff --git a/src/main/java/com/codeup/adlister/dao/Users.java b/src/main/java/com/codeup/adlister/dao/Users.java index 62da74d20b..41ddf1a976 100644 --- a/src/main/java/com/codeup/adlister/dao/Users.java +++ b/src/main/java/com/codeup/adlister/dao/Users.java @@ -2,9 +2,14 @@ import com.codeup.adlister.models.User; -import java.util.List; - public interface Users { User findByUsername(String username); + Long insert(User user); + + User getUserByAd(long id); + + void update(User editUser); + + void delete(User user); } diff --git a/src/main/webapp/WEB-INF/adpage.jsp b/src/main/webapp/WEB-INF/adpage.jsp new file mode 100644 index 0000000000..c995f2dca9 --- /dev/null +++ b/src/main/webapp/WEB-INF/adpage.jsp @@ -0,0 +1,70 @@ +<%@ page import="com.codeup.adlister.models.User" %> +<%@ page import="com.codeup.adlister.models.Ad" %> +<%@ page import="com.codeup.adlister.dao.DaoFactory" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + + + + + +
+ + +
+
+

${ad.title}

+
+

${ad.description}

+
+

Ad created by: ${user.username}

+
+ <% User user =(User) request.getSession().getAttribute("user"); + + if (user == null) { + %> +

Own this ad? to update or delete this ad.

+ <% + } else { + Long currentUser = user.getId(); + long adId = Long.parseLong(request.getParameter("adId")); + User adUser = DaoFactory.getUsersDao().getUserByAd(adId); + Long adUserId = adUser.getId(); + if (currentUser == adUserId) { + %> Update Ad + <% + } + } + %> +
+
+ +<%--

${ad.title}

--%> +<%--

${ad.description}

--%> +<%--

Ad created by: ${user.username}

--%> + +<%-- <% User user =(User) request.getSession().getAttribute("user");--%> + +<%-- if (user == null) {--%> +<%-- %>--%> +<%--

Own this ad? Login to update or delete this ad.

--%> +<%-- <%--%> +<%-- } else {--%> +<%-- Long currentUser = user.getId();--%> +<%-- long adId = Long.parseLong(request.getParameter("adId"));--%> +<%-- User adUser = DaoFactory.getUsersDao().getUserByAd(adId);--%> +<%-- Long adUserId = adUser.getId();--%> +<%-- if (currentUser == adUserId) {--%> +<%-- %> Update Ad--%> +<%-- <%--%> +<%-- }--%> +<%-- }--%> +<%-- %>--%> +
+ + + diff --git a/src/main/webapp/WEB-INF/ads/create.jsp b/src/main/webapp/WEB-INF/ads/create.jsp index f6332692f7..56389bb11c 100644 --- a/src/main/webapp/WEB-INF/ads/create.jsp +++ b/src/main/webapp/WEB-INF/ads/create.jsp @@ -6,18 +6,19 @@
+
-

Create a new Ad

+

Create a new Ad

- +
- +
- +
diff --git a/src/main/webapp/WEB-INF/ads/index.jsp b/src/main/webapp/WEB-INF/ads/index.jsp index 6f4371f0bb..149e814342 100644 --- a/src/main/webapp/WEB-INF/ads/index.jsp +++ b/src/main/webapp/WEB-INF/ads/index.jsp @@ -6,19 +6,62 @@
- + -
-

Here Are all the ads!

+ +
+

Here Are all the ads!

+
+<%-- --%> +<%--
--%> +<%-- --%> +<%--

${ad.title}

--%> +<%--
--%> +<%--
--%> +<%--
--%> +
+ + +<%--
--%> +<%-- ...--%> +<%--
--%> +<%--
${ad.title}
--%> +<%--

Some quick example text to build on the card title and make up the bulk of the card's content.

--%> +<%-- View Ad--%> +<%--
--%> + + -
-

${ad.title}

-

${ad.description}

-
+<%-- --%> + +<%-- --%>
+ + + +
+ + + + + + +<%--
--%> +<%-- --%> +<%-- --%> +<%--
--%> + diff --git a/src/main/webapp/WEB-INF/ads/update.jsp b/src/main/webapp/WEB-INF/ads/update.jsp new file mode 100644 index 0000000000..804d189b94 --- /dev/null +++ b/src/main/webapp/WEB-INF/ads/update.jsp @@ -0,0 +1,41 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page import="com.codeup.adlister.models.User" %> +<%@ page import="com.codeup.adlister.models.Ad" %> +<%@ page import="com.codeup.adlister.dao.DaoFactory" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Update Ad + + + + +
+

Update Ad

+
+
+ + +
+
+ + +
+ + +
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/login.jsp b/src/main/webapp/WEB-INF/login.jsp index 83ce2d0a1f..bd2e022811 100644 --- a/src/main/webapp/WEB-INF/login.jsp +++ b/src/main/webapp/WEB-INF/login.jsp @@ -8,18 +8,19 @@
-

Please Log In

+

Please Log In

- +
- +
- +
+
diff --git a/src/main/webapp/WEB-INF/partials/head.jsp b/src/main/webapp/WEB-INF/partials/head.jsp index a33443d65c..dc85d9724f 100644 --- a/src/main/webapp/WEB-INF/partials/head.jsp +++ b/src/main/webapp/WEB-INF/partials/head.jsp @@ -1,2 +1,4 @@ ${param.title} - + +<%----%> + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/partials/navbar.jsp b/src/main/webapp/WEB-INF/partials/navbar.jsp index 8e1f98f662..e61b43adcc 100644 --- a/src/main/webapp/WEB-INF/partials/navbar.jsp +++ b/src/main/webapp/WEB-INF/partials/navbar.jsp @@ -1,13 +1,92 @@ -
--%> +<%----%> + + + +<%--Bootstrap JS--%> + +<%--Fontawesome JS--%> + diff --git a/src/main/webapp/WEB-INF/partials/search.jsp b/src/main/webapp/WEB-INF/partials/search.jsp new file mode 100644 index 0000000000..97b7b0c987 --- /dev/null +++ b/src/main/webapp/WEB-INF/partials/search.jsp @@ -0,0 +1,4 @@ +
+ + +
diff --git a/src/main/webapp/WEB-INF/profile.jsp b/src/main/webapp/WEB-INF/profile.jsp index 05e3fa7a91..24ce36c76e 100644 --- a/src/main/webapp/WEB-INF/profile.jsp +++ b/src/main/webapp/WEB-INF/profile.jsp @@ -1,3 +1,4 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> @@ -8,9 +9,54 @@ -
-

Welcome, ${sessionScope.user.username}!

+
+ +
+
+

Welcome, ${sessionScope.user.username}!

+
+

Username: ${sessionScope.user.username}

+

Email: ${sessionScope.user.email}

+ Update Info + +
+
+ +<%--

Welcome, ${sessionScope.user.username}!

--%> +<%--

Username: ${sessionScope.user.username}

--%> +<%--

Email: ${sessionScope.user.email}

--%> +<%-- Update Info--%> +
+ + + + + + +<%--
--%> +<%-- --%> +<%--
--%> +<%-- --%> +<%--

${ad.title}

--%> +<%--
--%> +<%--
--%> +<%--
--%> + +<%--
--%> diff --git a/src/main/webapp/WEB-INF/register.jsp b/src/main/webapp/WEB-INF/register.jsp index 4b64e10a43..8a8761b5d5 100644 --- a/src/main/webapp/WEB-INF/register.jsp +++ b/src/main/webapp/WEB-INF/register.jsp @@ -2,31 +2,31 @@ - +
-

Please fill in your information.

+

Please fill in your information

- +
- +
- +
- +
- +
diff --git a/src/main/webapp/WEB-INF/updateinfo.jsp b/src/main/webapp/WEB-INF/updateinfo.jsp new file mode 100644 index 0000000000..1ebbcf2805 --- /dev/null +++ b/src/main/webapp/WEB-INF/updateinfo.jsp @@ -0,0 +1,46 @@ + +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Update Info + + + + +
+

Update Info :

+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ + +
+<%--
--%> +<%-- --%> +<%-- Sorry, that username is already taken.--%> +<%-- --%> +<%-- --%> +<%-- Please make sure your password and password confirmation are the same.--%> +<%-- --%> +<%--
--%> +
+ + diff --git a/src/main/webapp/css/landingPg.css b/src/main/webapp/css/landingPg.css new file mode 100644 index 0000000000..97986d77b7 --- /dev/null +++ b/src/main/webapp/css/landingPg.css @@ -0,0 +1,88 @@ +body { + /*background: url("../imgs/Wave.jpeg");*/ + background: url("https://iili.io/HG2MPpa.md.png"); + background-size: cover; +} + +.text{ + color: lime; + text-align: center +} + +.img-center { + display: block; + margin-left: auto; + margin-right: auto; + border-radius: 50px; + width: 700px; + height: 350px; +} + +.logo-image{ + width: 46px; + height: 46px; + border-radius: 50%; + overflow: hidden; + margin-top: -6px; +} + +.search-btn{ + border-color: lime; + color: lime; +} + +.nav-txt{ + display: block; + padding: 0.5rem 1rem; + text-decoration: none; + color: lime; +} + +.center { + margin-right: 10%; + margin-left: 10%; + display: flex; + flex-wrap: wrap; + justify-content: center; +} + +.card-bg{ + background-color: black; + width: 18rem; +} + +.card-txt{ + color: lime; +} + +.card-border{ + border-style: solid; + border-color: lime; + border-width: 4px; +} + +.card-btn{ + color: lime; + background-color: #631c6c +} + +.delete-btn{ + background-color: red; + color: black; +} + +.ad-card{ + background-color: black; + width: 30rem; +} + +.update-redirect{ + background-color: #631c6c; + color: lime; +} + +.adPage-login{ + color: deeppink; +} + + diff --git a/src/main/webapp/imgs/Screen_Shot_2023-02-16_at_12_48_53_PM-transformed.png b/src/main/webapp/imgs/Screen_Shot_2023-02-16_at_12_48_53_PM-transformed.png new file mode 100644 index 0000000000..56dec4733f Binary files /dev/null and b/src/main/webapp/imgs/Screen_Shot_2023-02-16_at_12_48_53_PM-transformed.png differ diff --git a/src/main/webapp/imgs/Wave.jpeg b/src/main/webapp/imgs/Wave.jpeg new file mode 100644 index 0000000000..b16fb83746 Binary files /dev/null and b/src/main/webapp/imgs/Wave.jpeg differ diff --git a/src/main/webapp/imgs/adlister_bg.png b/src/main/webapp/imgs/adlister_bg.png new file mode 100644 index 0000000000..bf7a5d8e29 Binary files /dev/null and b/src/main/webapp/imgs/adlister_bg.png differ diff --git a/src/main/webapp/imgs/images.png b/src/main/webapp/imgs/images.png new file mode 100644 index 0000000000..c5bd146a92 Binary files /dev/null and b/src/main/webapp/imgs/images.png differ diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 68cf346ec9..66a0848037 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -5,11 +5,26 @@ +<%-- --%> +
-

Welcome to the Adlister!

+

Welcome to UFO-Lister!

+ +
+ + "> + +
+ + +<%--
--%> +<%-- --%> +<%-- --%> +<%--
--%> +