diff --git a/.gitignore b/.gitignore index 688bfd748e077cb97e871124214acc354eac801c..01f91ee8afd8089164614770818bf8c749e40ca9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,26 @@ /ChatService/nbproject/private/ /ChatService/dist/ -/ChatService/build/ \ No newline at end of file +/ChatService/build/ +/IdentService/nbproject/private/ +/IdentService/dist/ +/IdentService/build/ +/MarketPlaceService/nbproject/private/ +/MarketPlaceService/dist/ +/MarketPlaceService/build/ +/KAA-JSP/nbproject/private/ +/KAA-JSP/dist/ +/KAA-JSP/build/ +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +#config file +*.xml +*.properties \ No newline at end of file diff --git a/ChatService/nbproject/project.properties b/ChatService/nbproject/project.properties index 2f11d669f936992b33a10021baac1bfa9a2f2219..8935b2be2df1d8122b0949db06c744dcfd9cd822 100644 --- a/ChatService/nbproject/project.properties +++ b/ChatService/nbproject/project.properties @@ -34,7 +34,7 @@ j2ee.compile.on.save=true j2ee.copy.static.files.on.save=true j2ee.deploy.on.save=true j2ee.platform=1.7-web -j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar +j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar diff --git a/IdentService/dist/IdentService.war b/IdentService/dist/IdentService.war index 3f8440ad6c59a4b6ef74873792a554fe693495c8..aca869ce76fa8f717cca7de4c0ed2e95ef1201da 100644 Binary files a/IdentService/dist/IdentService.war and b/IdentService/dist/IdentService.war differ diff --git a/IdentService/nbproject/private/private.properties b/IdentService/nbproject/private/private.properties index 0f610372d1078b944a0531ab173b5f245cad22ab..f5d8512ef651056b1a9fbf14b6db98373bf8e011 100644 --- a/IdentService/nbproject/private/private.properties +++ b/IdentService/nbproject/private/private.properties @@ -4,4 +4,4 @@ j2ee.server.domain=C:/Users/Ali-pc/AppData/Roaming/NetBeans/8.0.2/config/GF_4.1/ j2ee.server.home=C:/Program Files/glassfish-4.1/glassfish j2ee.server.instance=[C:\\Program Files\\glassfish-4.1\\glassfish;C:\\Program Files\\glassfish-4.1\\glassfish\\domains\\domain1]deployer:gfv3ee6:localhost:4848 j2ee.server.middleware=C:/Program Files/glassfish-4.1 -user.properties.file=C:\\Users\\Ali-pc\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties +user.properties.file=C:\\Users\\Ali-pc\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties \ No newline at end of file diff --git a/KAA-JSP/build/web/catalog.jsp b/KAA-JSP/build/web/catalog.jsp index 7eff4290ce68368aa1f25c9e06c5df376d5c817e..fe8925356c481f048f6e255fa5fb31b6319b847e 100644 --- a/KAA-JSP/build/web/catalog.jsp +++ b/KAA-JSP/build/web/catalog.jsp @@ -311,7 +311,7 @@ out.print("<p>No product to be sold.</p>"); } else { for (int i = 0; i < result.size(); i++) { - out.print("<div ng-click=\"setReceiver('"+result.get(i).getUsername()+"')\"><p><b>" + result.get(i).getUsername() + "</b><br/>"); + out.print("<a href=\"\"><div ng-click=\"setReceiver('"+result.get(i).getUsername()+"')\"><p><b>" + result.get(i).getUsername() + "</a></b><br/>"); out.print("added this on " + result.get(i).getDate().getDate() + "</p></div>"); out.print("<hr/>"); out.print("<table>"); @@ -363,7 +363,7 @@ out.print("<p>Nothing matches your search.</p>"); } else { for (int i = 0; i < result.size(); i++) { - out.print("<div ng-click=\"setReceiver('"+result.get(i).getUsername()+"')\"><b>" + result.get(i).getUsername() + "</b></div><br/>"); + out.print("<a href=\"\"><div ng-click=\"setReceiver('"+result.get(i).getUsername()+"')\"><b>" + result.get(i).getUsername() + "</a></b></div><br/>"); out.print("added this on " + result.get(i).getDate().getDate() + "</p></div>"); out.print("<hr/>"); out.print("<table>"); @@ -398,10 +398,18 @@ %> <br> - {{user}} - {{receiver}} - - <div ng-show="isReceiverSet()">Aku ng-show lho</div> + <div class="popup-box chat-popup" id="1" ng-show="isReceiverSet()" style="right: 0px; display: block;"> + <div class="popup-head"> + <div class="popup-head-left">{{receiver}}</div> + <div class="popup-head-right" ng-click="setReceiver('')"><a href="">✕</a></div> + <div style="clear: both"></div> + </div> + <div class="popup-messages">Tes</div> + <div class="popup-input"> + <input type="text" style="height: 100%" name="chat" class="auto-style1" hidefocus="hidefocus" /> + </div> + + </div> <!-- <div ng-app="chatApp" ng-controller="chatController"> <p>Name: <input type="text" ng-model="newmessage.user"></p> diff --git a/KAA-JSP/build/web/css/style.css b/KAA-JSP/build/web/css/style.css index e2e7f0bb330b90ab78d38eb143b7b0cc484aaa11..b9ac050343e238a609c528ef23c3a5a4f26856c4 100644 --- a/KAA-JSP/build/web/css/style.css +++ b/KAA-JSP/build/web/css/style.css @@ -1,3 +1,61 @@ +@media only screen and (max-width : 540px) +{ + .chat-popup + { + display: none !important; + } +} + +.popup-box +{ + display: none; + position: fixed; + bottom: 0px; + right: 220px; + height: 285px; + background-color: rgb(237, 239, 244); + width: 300px; + border: 1px solid rgba(29, 49, 91, .3); +} + +.popup-box .popup-head +{ + background-color: #6d84b4; + padding: 5px; + color: white; + font-weight: bold; + font-size: 14px; + clear: both; +} + +.popup-box .popup-head .popup-head-left +{ + float: left; +} + +.popup-box .popup-head .popup-head-right +{ + float: right; + opacity: 0.5; +} + +.popup-box .popup-head .popup-head-right a +{ + text-decoration: none; + color: inherit; +} + +.popup-box .popup-messages +{ + height: 78%; + overflow-y: scroll; +} + +.popup-box .popup-input +{ + bottom: 0px; +} + body { align: center; } diff --git a/KAA-JSP/web/catalog.jsp b/KAA-JSP/web/catalog.jsp index 7eff4290ce68368aa1f25c9e06c5df376d5c817e..fe8925356c481f048f6e255fa5fb31b6319b847e 100644 --- a/KAA-JSP/web/catalog.jsp +++ b/KAA-JSP/web/catalog.jsp @@ -311,7 +311,7 @@ out.print("<p>No product to be sold.</p>"); } else { for (int i = 0; i < result.size(); i++) { - out.print("<div ng-click=\"setReceiver('"+result.get(i).getUsername()+"')\"><p><b>" + result.get(i).getUsername() + "</b><br/>"); + out.print("<a href=\"\"><div ng-click=\"setReceiver('"+result.get(i).getUsername()+"')\"><p><b>" + result.get(i).getUsername() + "</a></b><br/>"); out.print("added this on " + result.get(i).getDate().getDate() + "</p></div>"); out.print("<hr/>"); out.print("<table>"); @@ -363,7 +363,7 @@ out.print("<p>Nothing matches your search.</p>"); } else { for (int i = 0; i < result.size(); i++) { - out.print("<div ng-click=\"setReceiver('"+result.get(i).getUsername()+"')\"><b>" + result.get(i).getUsername() + "</b></div><br/>"); + out.print("<a href=\"\"><div ng-click=\"setReceiver('"+result.get(i).getUsername()+"')\"><b>" + result.get(i).getUsername() + "</a></b></div><br/>"); out.print("added this on " + result.get(i).getDate().getDate() + "</p></div>"); out.print("<hr/>"); out.print("<table>"); @@ -398,10 +398,18 @@ %> <br> - {{user}} - {{receiver}} - - <div ng-show="isReceiverSet()">Aku ng-show lho</div> + <div class="popup-box chat-popup" id="1" ng-show="isReceiverSet()" style="right: 0px; display: block;"> + <div class="popup-head"> + <div class="popup-head-left">{{receiver}}</div> + <div class="popup-head-right" ng-click="setReceiver('')"><a href="">✕</a></div> + <div style="clear: both"></div> + </div> + <div class="popup-messages">Tes</div> + <div class="popup-input"> + <input type="text" style="height: 100%" name="chat" class="auto-style1" hidefocus="hidefocus" /> + </div> + + </div> <!-- <div ng-app="chatApp" ng-controller="chatController"> <p>Name: <input type="text" ng-model="newmessage.user"></p> diff --git a/KAA-JSP/web/css/style.css b/KAA-JSP/web/css/style.css index e2e7f0bb330b90ab78d38eb143b7b0cc484aaa11..b9ac050343e238a609c528ef23c3a5a4f26856c4 100644 --- a/KAA-JSP/web/css/style.css +++ b/KAA-JSP/web/css/style.css @@ -1,3 +1,61 @@ +@media only screen and (max-width : 540px) +{ + .chat-popup + { + display: none !important; + } +} + +.popup-box +{ + display: none; + position: fixed; + bottom: 0px; + right: 220px; + height: 285px; + background-color: rgb(237, 239, 244); + width: 300px; + border: 1px solid rgba(29, 49, 91, .3); +} + +.popup-box .popup-head +{ + background-color: #6d84b4; + padding: 5px; + color: white; + font-weight: bold; + font-size: 14px; + clear: both; +} + +.popup-box .popup-head .popup-head-left +{ + float: left; +} + +.popup-box .popup-head .popup-head-right +{ + float: right; + opacity: 0.5; +} + +.popup-box .popup-head .popup-head-right a +{ + text-decoration: none; + color: inherit; +} + +.popup-box .popup-messages +{ + height: 78%; + overflow-y: scroll; +} + +.popup-box .popup-input +{ + bottom: 0px; +} + body { align: center; } diff --git a/MarketPlaceService/dist/MarketPlaceService.war b/MarketPlaceService/dist/MarketPlaceService.war index 560c3e09f19e3da13fe2a674090f0d3e28f1f875..eab95ace303cfd00707694ceea4941fdd43e01e8 100644 Binary files a/MarketPlaceService/dist/MarketPlaceService.war and b/MarketPlaceService/dist/MarketPlaceService.war differ diff --git a/login.java b/login.java deleted file mode 100644 index 028b71b1c0e71c73e191f1fe4daebf2318ef24d0..0000000000000000000000000000000000000000 --- a/login.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package org.IdentService; - -import java.io.IOException; -import java.io.PrintWriter; -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.Date; -import java.util.Calendar; -import java.sql.Timestamp; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.json.simple.JSONObject; - - -/** - * - * @author Ali-pc - */ -public class login extends HttpServlet { - - RandomString tokenGenerator = new RandomString(5); - /** - * Processes requests for both HTTP <code>GET</code> and <code>POST</code> - * methods. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - protected void processRequest(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - response.setContentType("text/html;charset=UTF-8"); - try (PrintWriter out = response.getWriter()) { - /* TODO output your page here. You may use following sample code. */ - out.println("<!DOCTYPE html>"); - out.println("<html>"); - out.println("<head>"); - out.println("<title>Servlet login</title>"); - out.println("</head>"); - out.println("<body>"); - out.println("<h1>Servlet login at " + request.getContextPath() + "</h1>"); - out.println("</body>"); - out.println("</html>"); - } - } - - // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> - /** - * Handles the HTTP <code>GET</code> method. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - response.setContentType("application/json"); - response.setCharacterEncoding("utf-8"); - JSONObject json = new JSONObject(); - try { - Connection conn = DBAccount.getConnection(); - if (conn != null){ - Statement stmt = conn.createStatement(); - String sql; - String username = request.getParameter("username"); - String password = request.getParameter("password"); - sql = "select * from account where (username=\""+username+"\" or email=\"" - +username+"\") and password=\""+password+"\""; - ResultSet rs = stmt.executeQuery(sql); - if (rs.next()){ - int user_id = rs.getInt("user_id"); - String generatedToken = generateToken(request); - Calendar cal = Calendar.getInstance(); - int hours = cal.get(Calendar.HOUR_OF_DAY); - int tanggal = cal.get(Calendar.DATE); - if(hours != 23){ - cal.set(Calendar.HOUR_OF_DAY, hours+1); - } - else{ - cal.set(Calendar.DATE, tanggal+1); - cal.set(Calendar.HOUR_OF_DAY, 0); - } - Date dt = cal.getTime(); - //token akan expire dalam 60 menit - Timestamp ts = new Timestamp(dt.getTime()); - sql = "insert into token values (\""+ user_id+ "\",\""+generatedToken+"\",\""+ts+"\")"; - stmt.executeUpdate(sql); - - PrintWriter out = response.getWriter(); - - json.put("status","OK"); - json.put("token",generatedToken); - json.put("user_id",user_id); - out.print(json.toString()); - } - else{ - PrintWriter out = response.getWriter(); - json.put("status","FAILED"); - out.print(json.toString()); - } - } - else{ - try (PrintWriter out = response.getWriter()) { - /* TODO output your page here. You may use following sample code. */ - out.println("<!DOCTYPE html>"); - out.println("<html>"); - out.println("<head>"); - out.println("<title>Servlet login</title>"); - out.println("</head>"); - out.println("<body>"); - out.println("<h1>Connection NULL!!</h1>"); - out.println("</body>"); - out.println("</html>"); - } - } - } catch (SQLException ex) { - Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex); - } - } - - /** - * Handles the HTTP <code>POST</code> method. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - //processRequest(request, response); - doGet(request,response); - } - - /** - * Returns a short description of the servlet. - * - * @return a String containing servlet description - */ - @Override - public String getServletInfo() { - return "Short description"; - }// </editor-fold> - - private static final String[] HEADERS_TO_TRY = { - "X-Forwarded-For", - "Proxy-Client-IP", - "WL-Proxy-Client-IP", - "HTTP_X_FORWARDED_FOR", - "HTTP_X_FORWARDED", - "HTTP_X_CLUSTER_CLIENT_IP", - "HTTP_CLIENT_IP", - "HTTP_FORWARDED_FOR", - "HTTP_FORWARDED", - "HTTP_VIA", - "REMOTE_ADDR" }; - - public String generateToken(HttpServletRequest request){ - String token; - String user_agent = request.getHeader("User-Agent"); - String ip = getClientIpAddress(request); - token = tokenGenerator.nextString() + "#" + user_agent + '#' + ip; - return token; - } - - public static String getClientIpAddress(HttpServletRequest request) { - for (String header : HEADERS_TO_TRY) { - String ip = request.getHeader(header); - if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { - return ip; - } - } - return request.getRemoteAddr(); - } -}