From 447d69ce898b645a8d2ea0145d69216fb657453a Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Fri, 15 Jun 2018 23:49:28 -0500 Subject: [PATCH 01/11] Update Resource.java --- src/model/Resource.java | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/model/Resource.java b/src/model/Resource.java index caeec7f..0c3c353 100644 --- a/src/model/Resource.java +++ b/src/model/Resource.java @@ -1,4 +1,47 @@ package model; public class Resource { + + @Persistent + @PrimaryKey + private String id; + + //URL del recurso + @Persistent + private String Url; + + //Estado del recurso + @Persistent + private boolean status; + + //Fecha de creacion del recurso + @Persistent + private Date created; + + //Constructor + public Resource(String id,String url,boolean status,Date create){ + this.id=id; + this.Url=url; + this.status=status; + this.created=create; + } + + public void setId(String id){ + this.id=id; + } + public String getId(){ + return this.id; + } + public void setUrl(String url){ + this.Url=url; + } + public String getUrl(){ + return this.Url; + } + public void setStatus(boolean status){ + this.status=status; + } + public boolean getStatus(){ + return this.status; + } } From 1fac144c9ad44b55a936158addbb2435a6806c09 Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Sat, 16 Jun 2018 00:20:39 -0500 Subject: [PATCH 02/11] Update ResourcesControllerAdd.java --- .../resources/ResourcesControllerAdd.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/controller/resources/ResourcesControllerAdd.java b/src/controller/resources/ResourcesControllerAdd.java index 04100e8..94c06a8 100644 --- a/src/controller/resources/ResourcesControllerAdd.java +++ b/src/controller/resources/ResourcesControllerAdd.java @@ -1,15 +1,73 @@ package controller.resources; +import javax.jdo.JDOObjectNotFoundException; +import javax.jdo.PersistenceManager; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import java.io.IOException; @SuppressWarnings("serial") public class ResourcesControllerAdd extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + PersistenceManager pm = controller.PMF.get().getPersistenceManager(); + //Accion a realizar + String action = request.getParameter("action"); + + if (action == null) + action = ""; + + switch (action){ + //Crea + case "create": + + String url = request.getParameter("url"); + Boolean status = Boolean.parseBoolean(request.getParameter("status")); + + Resource resource = new Resource(url,status); + + try{ + pm.makePersistent(resource); + } finally { + System.out.println("Recurso creado"); + } + + break; + + case "redirect": + HttpSession sesion= request.getSession(); + RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Resources/add.jsp"); + request.setAttribute("User",UsersControllerView.getUser(sesion.getAttribute("userID").toString())); + dispatcher.forward(request, response); + break; + + case "update": + + Key a = KeyFactory.stringToKey(request.getParameter("key")); + + Resource resource = pm.getObjectById(Resource.class, a); + + resource.setName(request.getParameter("url")); + resource.setStatus(Boolean.parseBoolean(request.getParameter("status"))); + break; + + } + + pm.close(); + try{ + response.sendRedirect("/resource"); + } + //Al redirigr al jsp para crear, se usa RequestDispatcher, y este entra en conflicto con sendRedirect. + catch (IllegalStateException e){ + System.err.println("IllegalStateException: There was a double redirect."); + } + + } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { From 46c025356226ac064052551b76fbbd05cbe5d3a8 Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Sat, 16 Jun 2018 00:32:25 -0500 Subject: [PATCH 03/11] Update Resource.java --- src/model/Resource.java | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/model/Resource.java b/src/model/Resource.java index 0c3c353..2fcd872 100644 --- a/src/model/Resource.java +++ b/src/model/Resource.java @@ -1,10 +1,22 @@ package model; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import javax.jdo.annotations.IdGeneratorStrategy; +import javax.jdo.annotations.PersistenceCapable; +import javax.jdo.annotations.Persistent; +import javax.jdo.annotations.PrimaryKey; + +import com.google.appengine.api.datastore.Key; +import com.google.appengine.api.datastore.KeyFactory; public class Resource { - @Persistent + @PrimaryKey - private String id; + @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) + private Key key; //URL del recurso @Persistent @@ -16,21 +28,18 @@ public class Resource { //Fecha de creacion del recurso @Persistent - private Date created; + private String created; //Constructor - public Resource(String id,String url,boolean status,Date create){ - this.id=id; + public Resource(String url,boolean status){ this.Url=url; this.status=status; - this.created=create; + DateFormat df = new SimpleDateFormat("HH:mm:ss dd/MM/yy"); + created = df.format(Calendar.getInstance().getTime()); } - public void setId(String id){ - this.id=id; - } - public String getId(){ - return this.id; + public String getKey() { + return KeyFactory.keyToString(key); } public void setUrl(String url){ this.Url=url; @@ -44,4 +53,7 @@ public class Resource { public boolean getStatus(){ return this.status; } + public String toString(){ + return "Recurso url: " + Url +"\n"; + } } From 44b926e57d70b6790a60ce78e1c6c3463f96cd57 Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Sat, 16 Jun 2018 00:39:42 -0500 Subject: [PATCH 04/11] Update ResourcesControllerDelete.java --- .../resources/ResourcesControllerDelete.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/controller/resources/ResourcesControllerDelete.java b/src/controller/resources/ResourcesControllerDelete.java index ea5af20..7640b22 100644 --- a/src/controller/resources/ResourcesControllerDelete.java +++ b/src/controller/resources/ResourcesControllerDelete.java @@ -1,15 +1,40 @@ package controller.resources; +import com.google.appengine.api.datastore.Key; +import com.google.appengine.api.datastore.KeyFactory; +import model.Resource; + +import javax.jdo.JDOObjectNotFoundException; +import javax.jdo.PersistenceManager; + import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; + @SuppressWarnings("serial") public class ResourcesControllerDelete extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + PersistenceManager pm = controller.PMF.get().getPersistenceManager(); + try { + Key k = KeyFactory.stringToKey(request.getParameter("key")); + try{ + pm.deletePersistent(pm.getObjectById(Role.class, k)); + } catch (JDOObjectNotFoundException e){ + System.err.println("Exception catched -> " + e.getMessage()); + } + + + } catch (NullPointerException e){ + System.err.println("Exception captured -> " + e.getMessage()); + } + + response.sendRedirect("/resource"); + } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { From f022c7de4e56ed66e9cf9b137a3e9311283855e1 Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Sat, 16 Jun 2018 00:42:55 -0500 Subject: [PATCH 05/11] Update ResourcesControllerIndex.java --- .../resources/ResourcesControllerIndex.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/controller/resources/ResourcesControllerIndex.java b/src/controller/resources/ResourcesControllerIndex.java index 29e617b..b0b1836 100644 --- a/src/controller/resources/ResourcesControllerIndex.java +++ b/src/controller/resources/ResourcesControllerIndex.java @@ -1,15 +1,41 @@ package controller.resources; +import controller.users.UsersControllerView; +import model.User; + +import javax.jdo.PersistenceManager; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import java.io.IOException; @SuppressWarnings("serial") public class ResourcesControllerIndex extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + //Se usa para revisar si hay una sesion activa + HttpSession sesion= request.getSession(); + //Intenta hallar una sesion activa + try{ + User user = UsersControllerView.getUser(sesion.getAttribute("userID").toString()); + if (user == null) throw new NullPointerException("UsersControllerIndex: El usuario recibido es nulo."); + + request.setAttribute("User",user); + request.setAttribute("ResourceList",RolesControllerView.getAllRoles()); + RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Resource/index.jsp"); + dispatcher.forward(request,response); + + } + //Si no la encuentra, redirige a la pagina inicial. + catch (Exception e){ + e.printStackTrace(); + response.getWriter().println(""); + } + } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { From 33c07875b027d31e2fa32cb4f08f8219700983f9 Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Sat, 16 Jun 2018 00:50:26 -0500 Subject: [PATCH 06/11] Update ResourcesControllerView.java --- .../resources/ResourcesControllerView.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/src/controller/resources/ResourcesControllerView.java b/src/controller/resources/ResourcesControllerView.java index 08be4db..66dd12c 100644 --- a/src/controller/resources/ResourcesControllerView.java +++ b/src/controller/resources/ResourcesControllerView.java @@ -1,18 +1,94 @@ package controller.resources; +import com.google.appengine.api.datastore.Key; +import com.google.appengine.api.datastore.KeyFactory; +import controller.users.UsersControllerView; +import model.Resource; + +import javax.jdo.PersistenceManager; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.List; @SuppressWarnings("serial") public class ResourcesControllerView extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + String action = request.getParameter("action"); + //Para evitar errores, si no hay ninguna accion, se establece a vacio. + if (action == null) + action = ""; + + String key = request.getParameter("key"); + + //Redirige al formulario para editar un Resource (resource/view) + if (action.equals("editRedirect") && key != null){ + RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Resource/view.jsp"); + request.setAttribute("Resource",getRole(key)); + request.setAttribute("UserLogged",UsersControllerView.getUser(request.getSession().getAttribute("userID").toString())); + + //Ya que se quiere editar, el atributo permitirEdicion es verdadero. Este atributo se comprueba en el JSP. + request.setAttribute("editAllowed",true); + request.setAttribute("action","Edit"); + try{ + dispatcher.forward(request,response); + } catch (javax.servlet.ServletException e){ + System.err.println("Exception captured -> " + e.getMessage()); + } + } + //Redirige al formulario para ver un usuario (user/view) + else if (action.equals("viewRedirect") && key != null){ + RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Resource/view.jsp"); + request.setAttribute("Resource",getRole(key)); + request.setAttribute("UserLogged",UsersControllerView.getUser(request.getSession().getAttribute("userID").toString())); + + //Ya que no quiere editar, el atributo permitirEdicion es falso. Este atributo se comprueba en el JSP. + request.setAttribute("editAllowed",false); + request.setAttribute("action","View"); + try{ + dispatcher.forward(request,response); + } catch (javax.servlet.ServletException e){ + System.err.println("Exception captured -> " + e.getMessage()); + } + + } + //Si no se encontró acción, regresa al inicio + else { + response.getWriter().println(""); + } + + } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } + + /** + * Metodo Estatico getAllResources + * + * Devuelve un list con todos los Recursos que existen desde cualquier parte del codigo. + * + * @return Un List con todos los Recursos + * */ + @SuppressWarnings("unchecked") + public static List getAllRoles(){ + PersistenceManager pm = controller.PMF.get().getPersistenceManager(); + List users = (List) pm.newQuery("select from " + Resource.class.getName()).execute(); + pm.close(); + return users; + } + + public static Resource getResource(String key){ + PersistenceManager pm = controller.PMF.get().getPersistenceManager(); + Key k = KeyFactory.stringToKey(key); + Resource resource = pm.getObjectById(Resource.class, k); + pm.close(); + return resource; + } } From cd58396e69fc028180521974e09b29363a230093 Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Sat, 16 Jun 2018 01:01:07 -0500 Subject: [PATCH 07/11] Update add.jsp --- war/WEB-INF/View/Resources/add.jsp | 149 ++++++++++++++++++++++++++++- 1 file changed, 146 insertions(+), 3 deletions(-) diff --git a/war/WEB-INF/View/Resources/add.jsp b/war/WEB-INF/View/Resources/add.jsp index b07451b..5cd294a 100644 --- a/war/WEB-INF/View/Resources/add.jsp +++ b/war/WEB-INF/View/Resources/add.jsp @@ -1,3 +1,5 @@ +<%@ page import="model.User" %> +<%@ page import="java.util.List" %> <%-- Created by IntelliJ IDEA. User: Fernando @@ -6,11 +8,152 @@ To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - Title +<% User user = (User) request.getAttribute("User"); %> + + + Add a Resource - Hotel Services + + + + + + + + + + + + + + + + +
+
+ Add a Resource +
+
+ +
+ + + Url of the Resource:
+
+ Status of the Resource:
+ +
+ + + +
+
+
+ arrow_backGo Back + + +
+ + + + + + From 2baa14d9fea9223d4a23af3c320c083c6914b91c Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Sat, 16 Jun 2018 01:10:51 -0500 Subject: [PATCH 08/11] Update index.jsp --- war/WEB-INF/View/Resources/index.jsp | 165 ++++++++++++++++++++++++++- 1 file changed, 162 insertions(+), 3 deletions(-) diff --git a/war/WEB-INF/View/Resources/index.jsp b/war/WEB-INF/View/Resources/index.jsp index b07451b..604d839 100644 --- a/war/WEB-INF/View/Resources/index.jsp +++ b/war/WEB-INF/View/Resources/index.jsp @@ -1,16 +1,175 @@ +<%@ page import="model.Resource" %> +<%@ page import="model.User" %> +<%@ page import="java.util.List" %> <%-- Created by IntelliJ IDEA. - User: Fernando + User: Jose Date: 07/06/2018 Time: 16:39 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - +<% User usuario = (User) request.getAttribute("User"); %> +<% List recourseList = (List) request.getAttribute("ResourceList");%> + - Title + Resources - Hotel Services + + + + + + + + + + + + + + + + +
+
+ Roles +
+
+ + addCreate +
+
+ + + + + + + + + + + + + <% for (int i = 0; i < recourseList.size(); i++) {%> + <% Recourse recourse = recourseList.get(i); %> + <% String key = recourse.getKey(); + String[] arr = key.split(""); + key = ""; + for (String a : arr) { + if (a.equals("\"")){ + key += """; + } else{ + key += a; + } + } + %> + + + + + + + <% } %> + + + + + +
URLStatusDate created
<%= recourse.getName()%><%= recourse.getStatus()%><%= recourse.getCreateDate()%> + View + | Edit + | Delete
+ +
+ + + From 2cf37c25daf937320cfc2a250117f4dbf9bf871f Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Sat, 16 Jun 2018 01:13:34 -0500 Subject: [PATCH 09/11] Update index.jsp --- war/WEB-INF/View/Resources/index.jsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/WEB-INF/View/Resources/index.jsp b/war/WEB-INF/View/Resources/index.jsp index 604d839..2326308 100644 --- a/war/WEB-INF/View/Resources/index.jsp +++ b/war/WEB-INF/View/Resources/index.jsp @@ -10,7 +10,7 @@ --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <% User usuario = (User) request.getAttribute("User"); %> -<% List recourseList = (List) request.getAttribute("ResourceList");%> +<% List resourceList = (List) request.getAttribute("ResourceList");%> Resources - Hotel Services From 7cff02be28b97e62c69399173c5b7a7164c76128 Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Sat, 16 Jun 2018 01:13:57 -0500 Subject: [PATCH 10/11] Update add.jsp --- war/WEB-INF/View/Resources/add.jsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/war/WEB-INF/View/Resources/add.jsp b/war/WEB-INF/View/Resources/add.jsp index 5cd294a..5da1871 100644 --- a/war/WEB-INF/View/Resources/add.jsp +++ b/war/WEB-INF/View/Resources/add.jsp @@ -2,7 +2,7 @@ <%@ page import="java.util.List" %> <%-- Created by IntelliJ IDEA. - User: Fernando + User: Jose Date: 07/06/2018 Time: 16:39 To change this template use File | Settings | File Templates. From 1d05fad47305b280013d7f4a17f762c29f1c3bff Mon Sep 17 00:00:00 2001 From: aqpcalel <40297662+aqpcalel@users.noreply.github.com> Date: Sat, 16 Jun 2018 01:22:51 -0500 Subject: [PATCH 11/11] Update view.jsp --- war/WEB-INF/View/Resources/view.jsp | 159 +++++++++++++++++++++++++++- 1 file changed, 157 insertions(+), 2 deletions(-) diff --git a/war/WEB-INF/View/Resources/view.jsp b/war/WEB-INF/View/Resources/view.jsp index b07451b..fc1fe74 100644 --- a/war/WEB-INF/View/Resources/view.jsp +++ b/war/WEB-INF/View/Resources/view.jsp @@ -1,16 +1,171 @@ +<%@ page import="model.User" %> +<%@ page import="model.Resource" %> <%-- Created by IntelliJ IDEA. - User: Fernando + User: Jose Date: 07/06/2018 Time: 16:39 To change this template use File | Settings | File Templates. --%> +<% Resource = (Resource) request.getAttribute("Resource"); + User userLogged = (User) request.getAttribute("UserLogged"); + boolean editAllowed = (Boolean) request.getAttribute("editAllowed"); + String action = (String) request.getAttribute("action"); +%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - Title + <%=action%> a User - Hotel Services + + + + + + + + + + + + + + + +
+
+ <%=action%> a User +
+
+ + <% if (editAllowed) {%> + +
+ + + + + Name:
+
+
+ Status:
+ +
+ + + +
+ + <% } else {%> + + +
+ Url: <%=resource.getUrl()%>
+ Email: <%=resource.getStatus()%>
+
+ + + <% } %> + +
+
+ arrow_backGo Back + + +
+ + +