Skip to content
This repository has been archived by the owner on Oct 30, 2018. It is now read-only.

Commit

Permalink
Merged rating with head
Browse files Browse the repository at this point in the history
  • Loading branch information
Ale authored and Ale committed Apr 20, 2012
2 parents 5053224 + dfedab3 commit 45bd576
Show file tree
Hide file tree
Showing 22 changed files with 418 additions and 34 deletions.
3 changes: 1 addition & 2 deletions .gitignore
@@ -1,3 +1,2 @@
target/

target/
src/main/resources/database.xml
Expand Up @@ -8,9 +8,9 @@
import it.redoddity.portfolios.dao.UserDAO;
import it.redoddity.portfolios.model.User;
import it.redoddity.utils.ServletUtils;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.Cookie;
import org.springframework.beans.factory.annotation.Autowired;

Expand All @@ -27,13 +27,17 @@ public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}

protected User getCurrentUser() throws SQLException {
protected User getCurrentUser() {

User user = (User) request.getSession().getAttribute("user");
if (user == null) {
Cookie cookie = ServletUtils.getCookieByName(request, "portfolios.userid");
if (cookie != null) {
user = userDAO.findById(cookie.getValue());
try {
user = userDAO.findById(cookie.getValue());
} catch (SQLException ex) {
Logger.getLogger(ApplicationController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
return user;
Expand Down
Expand Up @@ -34,13 +34,10 @@ public void setProjectDAO(ProjectDAO projectDAO) {

@Override
public void index() throws ServletException, IOException {
try {

User user = getCurrentUser();
List<Project> ownProjects = projectDAO.findUserProjects(user);
request.setAttribute("ownProjects", ownProjects);
render("index");
} catch (SQLException ex) {
Logger.getLogger(DashboardController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Expand Up @@ -38,6 +38,7 @@ public void login() throws ServletException, IOException {
try {
String email = request.getParameter("email");
String password = request.getParameter("password");


User user = userDAO.findByEmail(email);

Expand Down
Expand Up @@ -73,4 +73,26 @@ public void view() throws ServletException, IOException {
Logger.getLogger(ProjectController.class.getName()).log(Level.SEVERE, null, ex);
}
}

public void delete() throws SQLException, ServletException, IOException {
String projectId = (String) request.getAttribute("id");
Project project = projectDAO.findById(projectId);
projectDAO.delete(project);
render("delete");
}

public void edit() throws ServletException, IOException, SQLException {
String projectId = (String) request.getAttribute("id");
Project project = projectDAO.findById(projectId);
request.setAttribute("project", project);
render("edit");
}

public void update() throws SQLException, ServletException, IOException {
User user = getCurrentUser();
Project project = new Project(user);
project.bind(request.getParameterMap(), validator);
projectDAO.update(project);
redirect("dashboard");
}
}
Expand Up @@ -10,6 +10,8 @@
import java.io.IOException;
import java.sql.SQLException;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;

import org.springframework.beans.factory.annotation.Autowired;
Expand Down Expand Up @@ -52,17 +54,22 @@ public void register()
request.getParameter("passwordConfirm"))) {
user.addError("Passwords don't match");
} else {
if (userDAO.exists(user.getEmail())) {
user.addError("email", user.getEmail()
+ " is already present in repository");
} else {
try {
userDAO.create(user);
response.sendRedirect(request.getContextPath());
return;
} catch (SQLException sqle) {
user.addError("Errore creating user: " + sqle.getMessage());
try {
User u = userDAO.findByEmail(user.getEmail());
if (u != null && !user.equals(u)) {
user.addError("email", user.getEmail()
+ " is already present in repository");
} else {
try {
userDAO.create(user);
response.sendRedirect(request.getContextPath());
return;
} catch (SQLException sqle) {
user.addError("Errore creating user: " + sqle.getMessage());
}
}
} catch (SQLException ex) {
Logger.getLogger(RegistrationController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Expand Down
116 changes: 116 additions & 0 deletions src/main/java/it/redoddity/portfolios/controller/UserController.java
@@ -0,0 +1,116 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package it.redoddity.portfolios.controller;

import it.redoddity.controller.BaseController;
import it.redoddity.portfolios.dao.UserDAO;
import it.redoddity.portfolios.model.User;
import it.redoddity.utils.ServletUtils;
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

/**
*
* @author maurizio
*/
@Controller(value = "user")
@Scope("prototype")
public class UserController extends ApplicationController {

@Autowired
private UserDAO userDAO;

public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}

@Override
public void index() throws ServletException, IOException {
try {
request.setAttribute("allUsers", userDAO.findAll());
} catch (SQLException ex) {
Logger.getLogger(UserController.class.getName()).log(Level.SEVERE, null, ex);
}
render();

}

public void view() throws ServletException, IOException {
try {
String userId = (String) request.getAttribute("id");
request.setAttribute("user", userDAO.findById(userId));
render("view");
} catch (SQLException ex) {
Logger.getLogger(UserController.class.getName()).log(Level.SEVERE, null, ex);
}

}

public void profile() throws ServletException, IOException {
User user = null;
try {
user = userDAO.findById((String)request.getAttribute("id"));
} catch (SQLException ex) {
Logger.getLogger(UserController.class.getName()).log(Level.SEVERE, null, ex);
}
if (user == null) {
redirect("home");
} else {
request.setAttribute("theUser", user);
render();
}
}

public void edit() throws ServletException, IOException {
User user = getCurrentUser();
request.setAttribute("user", user);
if (user == null) {
redirect("login");
} else {
render();
}
}

public void update()
throws ServletException, IOException {

User user = new User();
if (method.equals("post")) {
user.bind(request.getParameterMap(), validator);

if (user.isValid()) {
if (!user.getPassword().equals(
request.getParameter("passwordConfirm"))) {
user.addError("Passwords don't match");
} else {
try {
User u = userDAO.findByNichNamel(user.getNickName());
if (!u.equals(getCurrentUser())) {
user.addError("email", user.getEmail()
+ " is already present in repository");
} else {
user.setId(getCurrentUser().getId());
userDAO.update(user);
request.getSession().setAttribute("user", user);
redirect("dashboard");
return;
}
} catch (SQLException ex) {
Logger.getLogger(UserController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
request.setAttribute("user", user);
render("profile");
}
}
7 changes: 7 additions & 0 deletions src/main/java/it/redoddity/portfolios/dao/UserDAO.java
Expand Up @@ -9,6 +9,7 @@
import it.redoddity.portfolios.model.User;
import it.redoddity.utils.DatabaseConnectionInfo;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Expand All @@ -33,6 +34,11 @@ public User findByEmail(String email) throws SQLException {
List<User> users = findByProperty("email", email);
return users.size() == 1 ? users.get(0) : null;
}

public User findByNichNamel(String nickName) throws SQLException {
List<User> users = findByProperty("nickName", nickName);
return users.size() == 1 ? users.get(0) : null;
}

public List<User> findCollaboratorsForProject(Project project) throws SQLException {
return select("select * from user join user_projects on user.id = user_projects.user_id where user_projects.project_id =?", project.getId());
Expand All @@ -45,5 +51,6 @@ public boolean exists(String email) {
log.error(ex, ex);
}
return false;

}
}
6 changes: 5 additions & 1 deletion src/main/java/it/redoddity/portfolios/dao/VoteDAO.java
Expand Up @@ -20,6 +20,7 @@
*/
@Repository
public class VoteDAO extends BaseDAO<Vote> {

@Autowired
public VoteDAO(DatabaseConnectionInfo db) {
super(Vote.class, db);
Expand All @@ -30,5 +31,8 @@ public Vote getUserVoteForProject(User user, Project project) throws SQLExceptio
List<Vote> votes = select("select * from vote where userId = ? and projectId = ?", user.getId(), project.getId());
return (votes.size() == 1) ? votes.get(0) : null;
}


public List<Vote> findVotesByProject(Project project) throws SQLException {
return select("select * from vote where projectId =?", project.getId());
}
}
4 changes: 2 additions & 2 deletions src/main/resources/database.xml
Expand Up @@ -6,14 +6,14 @@
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<bean id="connectionInfo" class="it.redoddity.utils.DatabaseConnectionInfo">
<constructor-arg type="java.util.Properties">
<props>
<prop key="jdbc.driver">com.mysql.jdbc.Driver</prop>
<prop key="jdbc.url">jdbc:mysql://localhost:3306/portfolios</prop>
<prop key="jdbc.username">root</prop>
<prop key="jdbc.password"></prop>
<prop key="jdbc.password">redoddityjsp</prop>
</props>
</constructor-arg>
</bean>
Expand Down
5 changes: 3 additions & 2 deletions src/main/webapp/WEB-INF/views/dashboard/index.jsp
Expand Up @@ -9,17 +9,18 @@
<div class="page-header">
<h1>
Dashboard
<small>Here you'll find your own projects</small>
<small>Welcome ${user.nickName}, here you'll find your own projects</small>
<a class="btn btn-success" href="${root}/project/newproject"><i class="icon-plus icon-white"></i> Add Project</a>
</h1>

</div>
<c:forEach items="${ownProjects}" var="ownProject">
<div class="row">
<div class="span12">
<h2><a href="${root}/project/view/${ownProject.id}">${ownProject.name}</a></h2>
<p>${ownProject.description}</p>
<p>
<a class="btn" href="${root}/project/view/${ownProject.id}"><i class="icon-eye-open"></i>View Details</a>
<a class="btn" href="${root}/project/view/${ownProject.id}">View Details &rarr;</a>
</p>
</div>
</div>
Expand Down
1 change: 1 addition & 0 deletions src/main/webapp/WEB-INF/views/login/index.jsp
Expand Up @@ -21,6 +21,7 @@
<button type="submit" class="btn btn-primary">Login</button>
</form>
<p><a href="${root}/registration">Not yet registered?</a></p>
<p><a href="${root}/user">list users</a></p>

</div>
</body>
Expand Down
24 changes: 24 additions & 0 deletions src/main/webapp/WEB-INF/views/project/delete.jsp
@@ -0,0 +1,24 @@
<%--
Document : delete
Created on : 20-apr-2012, 11.22.44
Author : daniel
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<div class="row">
<div class="span4">
<div class="alert alert-success">
<a class="close" data-dismiss="alert">x</a>
<strong>Well Done!</strong> You successfully delete your project!
</div>
</div>
</div>
</body>
</html>

0 comments on commit 45bd576

Please sign in to comment.