diff --git a/ChatService/src/java/org/ChatService/RetrieveStatus.java b/ChatService/src/java/org/ChatService/RetrieveStatus.java new file mode 100644 index 0000000000000000000000000000000000000000..be0ba341b53328339957096fe0b243002b3b86da --- /dev/null +++ b/ChatService/src/java/org/ChatService/RetrieveStatus.java @@ -0,0 +1,120 @@ +/* + * 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.ChatService; + +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 javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.json.simple.JSONObject; + +/** + * + * @author Azka Hanif Imtiyaz + */ +@WebServlet(name = "RetrieveStatus", urlPatterns = {"/RetrieveStatus"}) +public class RetrieveStatus extends HttpServlet { + + /** + * 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("application/json"); + response.setCharacterEncoding("utf-8"); + JSONObject json = new JSONObject(); + try { + Connection conn = DBChatToken.getConnection(); + if (conn != null) { + Statement stmt = conn.createStatement(); + String sql; + String user_id = request.getParameter("user_id"); + sql = "SELECT * FROM chattoken WHERE user_id =" + user_id; + ResultSet rs = stmt.executeQuery(sql); + + if (rs.next()){ + json.put("status", "ON"); + } else { + json.put("status", "OFF"); + } + + PrintWriter out = response.getWriter(); + + 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(TokenSaver.class.getName()).log(Level.SEVERE, null, ex); + } + } + + // <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 { + processRequest(request, response); + } + + /** + * 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); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// </editor-fold> + +} diff --git a/ChatService/src/java/org/ChatService/TokenSaver.java b/ChatService/src/java/org/ChatService/TokenSaver.java index 0b7682185ec68fe0aaf7a0335aa2837f4cc093bb..1163e51216df118edc4c9420fcaf61bd4f6fd05d 100644 --- a/ChatService/src/java/org/ChatService/TokenSaver.java +++ b/ChatService/src/java/org/ChatService/TokenSaver.java @@ -5,7 +5,6 @@ package org.ChatService; * To change this template file, choose Tools | Templates * and open the template in the editor. */ - import org.ChatService.DBChatToken; import java.io.IOException; import java.io.PrintWriter; @@ -21,7 +20,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.simple.JSONObject; - /** * * @author khrs @@ -46,21 +44,25 @@ public class TokenSaver extends HttpServlet { JSONObject json = new JSONObject(); try { Connection conn = DBChatToken.getConnection(); - if (conn != null){ + if (conn != null) { Statement stmt = conn.createStatement(); String sql; String user_id = request.getParameter("user_id"); String chattoken = request.getParameter("chattoken"); - sql = "insert into chattoken values (\""+ chattoken+ "\",\""+user_id+"\")"; + sql = "insert into chattoken values (\"" + chattoken + "\",\"" + user_id + "\")"; stmt.executeUpdate(sql); - } - else{ + + PrintWriter out = response.getWriter(); + + json.put("status", "ON"); + 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("<title>Servlet login</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Connection NULL!!</h1>"); @@ -85,7 +87,6 @@ public class TokenSaver extends HttpServlet { out.println("</body>"); out.println("</html>"); }*/ - } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> diff --git a/KAA-JSP/build/web/catalog.jsp b/KAA-JSP/build/web/catalog.jsp index de004adf246654b2290fdbb5843eaa4e6a0a4c44..0ea015e3ff0a376d82c7ad10d2b3053dacac0a6b 100644 --- a/KAA-JSP/build/web/catalog.jsp +++ b/KAA-JSP/build/web/catalog.jsp @@ -22,11 +22,11 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> - <title>Sale Project - Catalog</title> - <link href="css/style.css" rel="stylesheet" type="text/css"> + <title>Sale Project - Catalog</title> + <link href="css/style.css" rel="stylesheet" type="text/css"> <!-- Firebase --> <script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script> - <!--Angular --> + <!--Angular --> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <!--<script src="https://cdn.firebase.com/js/client/2.0.4/firebase.js"></script>--> <!--<script src="https://www.gstatic.com/firebasejs/3.6.1/firebase-app.js"></script> @@ -35,400 +35,407 @@ <script src="https://www.gstatic.com/firebasejs/3.6.1/firebase-messaging.js"></script> <!-- <script src="https://www.gstatic.com/firebasejs/3.6.1/firebase-storage.js"></script> --> <!-- AngularFire --> -<!-- <script src="https://cdn.firebase.com/libs/angularfire/0.9.2/angularfire.min.js"></script>--> - + <!-- <script src="https://cdn.firebase.com/libs/angularfire/0.9.2/angularfire.min.js"></script>--> + <script> - // Initialize Firebase + // Initialize Firebase + + /*var config = { + apiKey: "AIzaSyAN43gCcqFx095nCBy-4abeRGkoZB1-Rok", + authDomain: "kaa-saleproject.firebaseapp.com", + databaseURL: "https://kaa-saleproject.firebaseio.com", + storageBucket: "kaa-saleproject.appspot.com", + messagingSenderId: "815161898662" + };*/ + /* var config = { + apiKey: "AIzaSyAQ2WIB6GWOxmtwMdGd8eHawL4PWxK8evU", + authDomain: "tugas-besar-wbd.firebaseapp.com", + databaseURL: "https://tugas-besar-wbd.firebaseio.com", + storageBucket: "tugas-besar-wbd.appspot.com", + messagingSenderId: "1049009619420" + }; + firebase.initializeApp(config); + + const messaging = firebase.messaging(); + messaging.requestPermission() + .then(function() { + console.log('Notification permission granted.'); + return messaging.getToken(); + // TODO(developer): Retrieve an Instance ID token for use with FCM. + // ... + }) + .then(function(token){ + console.log(token); + }) + .catch(function(err) { + console.log('Unable to get permission to notify.', err); + });*/ + - /*var config = { - apiKey: "AIzaSyAN43gCcqFx095nCBy-4abeRGkoZB1-Rok", - authDomain: "kaa-saleproject.firebaseapp.com", - databaseURL: "https://kaa-saleproject.firebaseio.com", - storageBucket: "kaa-saleproject.appspot.com", - messagingSenderId: "815161898662" - };*/ -/* var config = { - apiKey: "AIzaSyAQ2WIB6GWOxmtwMdGd8eHawL4PWxK8evU", - authDomain: "tugas-besar-wbd.firebaseapp.com", - databaseURL: "https://tugas-besar-wbd.firebaseio.com", - storageBucket: "tugas-besar-wbd.appspot.com", - messagingSenderId: "1049009619420" - }; - firebase.initializeApp(config); - - const messaging = firebase.messaging(); - messaging.requestPermission() - .then(function() { - console.log('Notification permission granted.'); - return messaging.getToken(); - // TODO(developer): Retrieve an Instance ID token for use with FCM. - // ... - }) - .then(function(token){ - console.log(token); - }) - .catch(function(err) { - console.log('Unable to get permission to notify.', err); - });*/ - - - /*messaging.requestPermission().then(function(){ - console.log('Notification permission granted'); - messaging.getToken().then(function(){ - if(currentToken){ - sendTokenToServer(currentToken); - updateUIForPushEnabled(currentToken); - console.log('Token retrieved, ',currentToken); - //abis itu send ke tokensaver chatservice di sini atau di bawah - } else { - console.log('No Instance ID token available. Request permission to generate one'); - updateUIForPushPermissionRequired(); - setTokenToServer(false); - } - }).catch(function(err){ - console.log('An error occured while retrieving token. ',err); - showToken('Error retrieving Instance ID token. ',err); - setTokenToServer(false); - }); - }).catch(function(err){ - console.log('Unable to get permission to notify',err); - }); - - messaging.onTokenRefresh(function(){ - mesagging.getToken().then(function(refreshedToken){ - console.log('Token refreshed.'); - setTokenSentToServer(false); - sendTokenToServer(refreshedToken); - }); - }).catch(function(err){ - console.log('Unable to retrieve refreshed token. ',err); - showToken('Unable to retrieve refreshed token. ',err); - }); - - messaging.onMessage(function(payload){ - console.log("Message received. ",payload); - });*/ + /*messaging.requestPermission().then(function(){ + console.log('Notification permission granted'); + messaging.getToken().then(function(){ + if(currentToken){ + sendTokenToServer(currentToken); + updateUIForPushEnabled(currentToken); + console.log('Token retrieved, ',currentToken); + //abis itu send ke tokensaver chatservice di sini atau di bawah + } else { + console.log('No Instance ID token available. Request permission to generate one'); + updateUIForPushPermissionRequired(); + setTokenToServer(false); + } + }).catch(function(err){ + console.log('An error occured while retrieving token. ',err); + showToken('Error retrieving Instance ID token. ',err); + setTokenToServer(false); + }); + }).catch(function(err){ + console.log('Unable to get permission to notify',err); + }); + + messaging.onTokenRefresh(function(){ + mesagging.getToken().then(function(refreshedToken){ + console.log('Token refreshed.'); + setTokenSentToServer(false); + sendTokenToServer(refreshedToken); + }); + }).catch(function(err){ + console.log('Unable to retrieve refreshed token. ',err); + showToken('Unable to retrieve refreshed token. ',err); + }); + + messaging.onMessage(function(payload){ + console.log("Message received. ",payload); + });*/ </script> <!--Application --> <script src="scripts/app.js"></script> - + </head> <body ng-app="chatApp" ng-controller="chatController"> - <div class="catalog_content"> - <div class="logo"> - <span id="red">Sale</span><span id="blue">Project</span> - </div> - <div class="information"> - <span> - <% -/* FirebaseOptions options = new FirebaseOptions.Builder() - .setServiceAccount(new FileInputStream("path/to/serviceAccountKey.json")) - .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/") - .build(); + <div class="catalog_content"> + <div class="logo"> + <span id="red">Sale</span><span id="blue">Project</span> + </div> + <div class="information"> + <span> + <% + /* FirebaseOptions options = new FirebaseOptions.Builder() + .setServiceAccount(new FileInputStream("path/to/serviceAccountKey.json")) + .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/") + .build(); - FirebaseApp.initializeApp(options);*/ - - JSONObject responseJSON = new JSONObject(); - JSONObject responseJSON1 = new JSONObject(); - org.kaa.marketplaceservice.service.MarketPlaceService_Service service = new org.kaa.marketplaceservice.service.MarketPlaceService_Service(); - org.kaa.marketplaceservice.service.MarketPlaceService port = service.getMarketPlaceServicePort(); - String query; - String APIURL; - String ParameterURL; - - /* Showing username of user */ - String user_token = request.getParameter("token"); - if (request.getParameter("like") != null){ - String productId = request.getParameter("product_id"); - boolean like; - if (request.getParameter("like").equals("yes")){ - like = true; - } else { - like = false; - } - ProcedureStatus result = port.processLike(user_token, productId, like); - if (result.getStatus().equals("OK")){ - //Do nothing - } else if (result.getStatus().equals("EXPIRED")) { - response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" - + "message=Expired"); - } else { - response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." - + "jsp?token="+user_token+"&message=error"); - } - } - - if ((request.getParameter("logout") == null) && - (request.getParameter("token")!= null)){ - /* Consume REST API */ - ParameterURL = "token="+ request.getParameter("token"); - APIURL = "http://localhost:8080/IdentService/validate?"; - RestAPI_consumer consumer = new RestAPI_consumer(APIURL,ParameterURL); - consumer.execute(); - responseJSON = consumer.getOutput(); - - /* Checking the response */ - String status = (String)responseJSON.get("status"); - if (status.equals("OK")){ - String user = (String)responseJSON.get("user_name"); - out.println("Hello, " + user); - //out.println("<script>setUser('"+user+"');</script>"); - } - else{ - response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." - + "jsp?token="+user_token); - } - } - /* Logout */ - else if ((request.getParameter("logout") != null) && - (request.getParameter("token")!= null)){ - URL obj1 = null; - try{ - /* Consume REST API */ - ParameterURL = "token="+ user_token; - APIURL = "http://localhost:8080/IdentService/logout?"; - RestAPI_consumer consumer1 = new RestAPI_consumer(APIURL,ParameterURL); - consumer1.execute(); - responseJSON1 = consumer1.getOutput(); - - /* Checking the response */ - String status1 = (String)responseJSON1.get("status"); - if (status1.equals("OK")){ - response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" - + "message=logout"); - } - else{ - response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." - + "jsp?token="+user_token); - } - } - catch(Exception e){ - e.printStackTrace(); - } - } + FirebaseApp.initializeApp(options);*/ - /* Firebase here - String uid = "some-uid"; + JSONObject responseJSON = new JSONObject(); + JSONObject responseJSON1 = new JSONObject(); + org.kaa.marketplaceservice.service.MarketPlaceService_Service service = new org.kaa.marketplaceservice.service.MarketPlaceService_Service(); + org.kaa.marketplaceservice.service.MarketPlaceService port = service.getMarketPlaceServicePort(); + String query; + String APIURL; + String ParameterURL; - FirebaseAuth.getInstance().createCustomToken(uid) - .addOnSuccessListener(new OnSuccessListener<String>() { - @Override - public void onSuccess(String customToken) { - // Send token back to client - } - });*/ - %> - </span> + String urlParamChat; + String urlRequest2 = "http://localhost:8080/ChatService/RetrieveStatus?"; - </br> - <a href=" - <% - String logoutURL = "http://localhost:8080/KAA-JSP/catalog.jsp?token="+user_token+"&logout=on"; - out.println(logoutURL); - %> - " class="logout"><span class="link">Logout</span> - </a><br/> - </div> - <table class="menu"> - <th class="menupart" id="active"> - <a href=" - <% - out.println("http://localhost:8080/KAA-JSP/catalog.jsp?token="+user_token); - %> - "> - Catalog - </a> - </th> - <th class="menupart"> - <a href=" - <% - out.println("http://localhost:8080/KAA-JSP/yourproduct.jsp?token="+user_token); - %> - "> - Your Products - </a> - </th> - <th class="menupart"> - <a href=" - <% - out.println("http://localhost:8080/KAA-JSP/addproduct.jsp?token="+user_token); - %> - "> - Add Product - </a> - </th> - <th class="menupart"> - <a href=" - <% - out.println("http://localhost:8080/KAA-JSP/sales.jsp?token="+user_token); - %> - "> - Sales - </a> - </th> - <th class="menupart"> + /* Showing username of user */ + String user_token = request.getParameter("token"); + if (request.getParameter("like") != null) { + String productId = request.getParameter("product_id"); + boolean like; + if (request.getParameter("like").equals("yes")) { + like = true; + } else { + like = false; + } + ProcedureStatus result = port.processLike(user_token, productId, like); + if (result.getStatus().equals("OK")) { + //Do nothing + } else if (result.getStatus().equals("EXPIRED")) { + response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" + + "message=Expired"); + } else { + response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." + + "jsp?token=" + user_token + "&message=error"); + } + } + + if ((request.getParameter("logout") == null) + && (request.getParameter("token") != null)) { + /* Consume REST API */ + ParameterURL = "token=" + request.getParameter("token"); + APIURL = "http://localhost:8080/IdentService/validate?"; + RestAPI_consumer consumer = new RestAPI_consumer(APIURL, ParameterURL); + consumer.execute(); + responseJSON = consumer.getOutput(); + + /* Checking the response */ + String status = (String) responseJSON.get("status"); + if (status.equals("OK")) { + String user = (String) responseJSON.get("user_name"); + out.println("Hello, " + user); + //out.println("<script>setUser('"+user+"');</script>"); + } else { + response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." + + "jsp?token=" + user_token); + } + } /* Logout */ else if ((request.getParameter("logout") != null) + && (request.getParameter("token") != null)) { + URL obj1 = null; + try { + /* Consume REST API */ + ParameterURL = "token=" + user_token; + APIURL = "http://localhost:8080/IdentService/logout?"; + RestAPI_consumer consumer1 = new RestAPI_consumer(APIURL, ParameterURL); + consumer1.execute(); + responseJSON1 = consumer1.getOutput(); + + /* Checking the response */ + String status1 = (String) responseJSON1.get("status"); + if (status1.equals("OK")) { + response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" + + "message=logout"); + } else { + response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." + + "jsp?token=" + user_token); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /* Firebase here + String uid = "some-uid"; + + FirebaseAuth.getInstance().createCustomToken(uid) + .addOnSuccessListener(new OnSuccessListener<String>() { + @Override + public void onSuccess(String customToken) { + // Send token back to client + } + });*/ + %> + </span> + + </br> <a href=" - <% - out.println("http://localhost:8080/KAA-JSP/purchases.jsp?token="+user_token); + <% String logoutURL = "http://localhost:8080/KAA-JSP/catalog.jsp?token=" + user_token + "&logout=on"; + out.println(logoutURL); %> - ">Purchases - </a> - </th> - </table> - <br/> - <p class="title">What are you going to buy today?</p> - <hr/> - <br/> - <div class="add_product_content"> + " class="logout"><span class="link">Logout</span> + </a><br/> + </div> + <table class="menu"> + <th class="menupart" id="active"> + <a href=" + <% + out.println("http://localhost:8080/KAA-JSP/catalog.jsp?token=" + user_token); + %> + "> + Catalog + </a> + </th> + <th class="menupart"> + <a href=" + <% + out.println("http://localhost:8080/KAA-JSP/yourproduct.jsp?token=" + user_token); + %> + "> + Your Products + </a> + </th> + <th class="menupart"> + <a href=" + <% + out.println("http://localhost:8080/KAA-JSP/addproduct.jsp?token=" + user_token); + %> + "> + Add Product + </a> + </th> + <th class="menupart"> + <a href=" + <% + out.println("http://localhost:8080/KAA-JSP/sales.jsp?token=" + user_token); + %> + "> + Sales + </a> + </th> + <th class="menupart"> + <a href=" + <% + out.println("http://localhost:8080/KAA-JSP/purchases.jsp?token=" + user_token); + %> + ">Purchases + </a> + </th> + </table> + <br/> + <p class="title">What are you going to buy today?</p> + <hr/> + <br/> + <div class="add_product_content"> <form method="GET" enctype="multipart/form-data"> - <div class="input_catalog"> - <input type="hidden" name="token" value=<% - out.println(user_token); - %> > - <input type="text" placeholder="Search catalog ..." - name="search" style="width:90%; height: 35px; border:none;" - class="auto-style1" hidefocus="hidefocus"> - <input type="submit" value="GO" style="width: 10%; height: 35px; font-weight: bold"><br/> - by - <input class="radio" type="radio" name="choice" value="product" checked="checked" /> - <label><span>product</span></label><br /> - <input class="radio" type="radio" name="choice" value="store" style="margin-left:25px;" /> - <label><span>store</span></label> - </div> + <div class="input_catalog"> + <input type="hidden" name="token" value=<% + out.println(user_token); + %> > + <input type="text" placeholder="Search catalog ..." + name="search" style="width:90%; height: 35px; border:none;" + class="auto-style1" hidefocus="hidefocus"> + <input type="submit" value="GO" style="width: 10%; height: 35px; font-weight: bold"><br/> + by + <input class="radio" type="radio" name="choice" value="product" checked="checked" /> + <label><span>product</span></label><br /> + <input class="radio" type="radio" name="choice" value="store" style="margin-left:25px;" /> + <label><span>store</span></label> + </div> </form> - </div> - <% - if(request.getParameter("search") == null){ - // Ketika pertama kali membuka catalog (tidak ada parameter search) - List<Product> result = port.retrieveAllProduct(user_token); - - // Ketika token sudah expired - if (result == null){ - response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" - + "message=expired"); - } else { - if (result.size() == 0){ - out.print("<p>No product to be sold.</p>"); - } else { - for (int i = 0; i < result.size(); i++) { - 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>"); - out.print("<tr class = \"container\">"); - out.print("<td>"); - out.print("<img \" width=120px height=120px src=\"" + result.get(i).getImage() + "\">"); - out.print("</td>"); - out.print("<td class=\"product_description\">"); - out.print("<p class=\"catalog_title\">" + result.get(i).getName() + " <br/></p>"); - out.print("<p class=\"catalog_price\">IDR " + result.get(i).getPrice() + "<br/></p>"); - out.print("<p class=\"catalog_desc\">" + result.get(i).getDescription() + "</p>"); - out.print("</td>"); - out.print("<td class=\"product_misc\">"); - out.print("<br/>"); - out.print("<p>" + port.getLikes(result.get(i).getProductId()) + " likes </p><br/>"); - out.print("<p>" + port.getPurchases(result.get(i).getProductId()) + " purchases <br/>"); - out.print(port.isLiked(user_token, result.get(i).getProductId())); - out.print("<a href=\"http://localhost:8080/KAA-JSP/confirmation_purchase.jsp?token=" + user_token + "&product_id=" + result.get(i).getProductId() + "\"><p id=\"buy\">BUY</a></p>"); - out.print("</td>"); - out.print("</tr>"); - out.print("</table>"); - out.print("<hr/>"); - out.print("<br/>"); - out.print("<br/>"); - } - } - } - } else { - // Ketika ada parameter untuk search - String search = request.getParameter("search"); - String choice = request.getParameter("choice"); - /* Melakukan Searching dengan Method search_product pada MarketService */ - try{ - int choice_int = 0; - if (choice.equals("product")){ - choice_int = 0; - } else if (choice.equals("store")) { - choice_int = 1; - } - - List<Product> result = port.searchProduct(search, user_token, choice_int); - - /* Jika expired */ - if (result == null){ + </div> + <% + if (request.getParameter("search") == null) { + // Ketika pertama kali membuka catalog (tidak ada parameter search) + List<Product> result = port.retrieveAllProduct(user_token); + + // Ketika token sudah expired + if (result == null) { response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" + "message=expired"); } else { - if (result.size() == 0){ - out.print("<p>Nothing matches your search.</p>"); + if (result.size() == 0) { + out.print("<p>No product to be sold.</p>"); } else { for (int i = 0; i < result.size(); i++) { - out.print("<a href=\"\"><div ng-click=\"setReceiver('"+result.get(i).getUsername()+"')\"><b>" + result.get(i).getUsername() + "</a></b></div><br/>"); + urlParamChat = "user_id=" + result.get(i).getUserId(); + RestAPI_consumer consumer2 = new RestAPI_consumer(urlRequest2, urlParamChat); + consumer2.execute(); + responseJSON = consumer2.getOutput(); + if (responseJSON.get("status").equals("ON")) { + out.print("<img style=\"border: none; padding: 0px 10px 0px 0px; float:left\" height=15px width=15px src=\"img/on.png\">"); + out.print("<a href=\"\"><div ng-click=\"setReceiver('" + result.get(i).getUsername() + "')\"><p><b>" + result.get(i).getUsername() + "</a></b><br/>"); + } else { + out.print("<img style=\"border: none; padding: 0px 10px 0px 0px; float:left\" height=15px width=15px src=\"img/off.png\">"); + 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>"); out.print("<tr class = \"container\">"); out.print("<td>"); - out.print("<img \" width=120px height=120px src=\"" + result.get(i).getImage() + "\">"); - out.print("</td>"); - out.print("<td class=\"product_description\">"); - out.print("<p class=\"catalog_title\">" + result.get(i).getName() + " <br/></p>"); - out.print("<p class=\"catalog_price\">IDR " + result.get(i).getPrice() + "<br/></p>"); - out.print("<p class=\"catalog_desc\">" + result.get(i).getDescription() + "</p>"); - out.print("</td>"); - out.print("<td class=\"product_misc\">"); - out.print("<br/>"); - out.print("<p>" + port.getLikes(result.get(i).getProductId()) + " likes </p><br/>"); - out.print("<p>" + port.getPurchases(result.get(i).getProductId()) + " purchases <br/>"); - out.print(port.isLiked(user_token, result.get(i).getProductId())); - out.print("<a href=\"http://localhost:8080/KAA-JSP/confirmation_purchase.jsp?token=" + user_token + "&product_id=" + result.get(i).getProductId() + "\"><p id=\"buy\">BUY</a></p>"); - out.print("</td>"); - out.print("</tr>"); - out.print("</table>"); - out.print("<hr/>"); - out.print("<br/>"); + out.print("<img \" width=120px height=120px src=\"" + result.get(i).getImage() + "\">"); + out.print("</td>"); + out.print("<td class=\"product_description\">"); + out.print("<p class=\"catalog_title\">" + result.get(i).getName() + " <br/></p>"); + out.print("<p class=\"catalog_price\">IDR " + result.get(i).getPrice() + "<br/></p>"); + out.print("<p class=\"catalog_desc\">" + result.get(i).getDescription() + "</p>"); + out.print("</td>"); + out.print("<td class=\"product_misc\">"); + out.print("<br/>"); + out.print("<p>" + port.getLikes(result.get(i).getProductId()) + " likes </p><br/>"); + out.print("<p>" + port.getPurchases(result.get(i).getProductId()) + " purchases <br/>"); + out.print(port.isLiked(user_token, result.get(i).getProductId())); + out.print("<a href=\"http://localhost:8080/KAA-JSP/confirmation_purchase.jsp?token=" + user_token + "&product_id=" + result.get(i).getProductId() + "\"><p id=\"buy\">BUY</a></p>"); + out.print("</td>"); + out.print("</tr>"); + out.print("</table>"); + out.print("<hr/>"); + out.print("<br/>"); out.print("<br/>"); } } } - } catch (Exception ex) { - // TODO handle custom exceptions here + } else { + // Ketika ada parameter untuk search + String search = request.getParameter("search"); + String choice = request.getParameter("choice"); + /* Melakukan Searching dengan Method search_product pada MarketService */ + try { + int choice_int = 0; + if (choice.equals("product")) { + choice_int = 0; + } else if (choice.equals("store")) { + choice_int = 1; + } + + List<Product> result = port.searchProduct(search, user_token, choice_int); + + /* Jika expired */ + if (result == null) { + response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" + + "message=expired"); + } else { + if (result.size() == 0) { + out.print("<p>Nothing matches your search.</p>"); + } else { + for (int i = 0; i < result.size(); i++) { + 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>"); + out.print("<tr class = \"container\">"); + out.print("<td>"); + out.print("<img \" width=120px height=120px src=\"" + result.get(i).getImage() + "\">"); + out.print("</td>"); + out.print("<td class=\"product_description\">"); + out.print("<p class=\"catalog_title\">" + result.get(i).getName() + " <br/></p>"); + out.print("<p class=\"catalog_price\">IDR " + result.get(i).getPrice() + "<br/></p>"); + out.print("<p class=\"catalog_desc\">" + result.get(i).getDescription() + "</p>"); + out.print("</td>"); + out.print("<td class=\"product_misc\">"); + out.print("<br/>"); + out.print("<p>" + port.getLikes(result.get(i).getProductId()) + " likes </p><br/>"); + out.print("<p>" + port.getPurchases(result.get(i).getProductId()) + " purchases <br/>"); + out.print(port.isLiked(user_token, result.get(i).getProductId())); + out.print("<a href=\"http://localhost:8080/KAA-JSP/confirmation_purchase.jsp?token=" + user_token + "&product_id=" + result.get(i).getProductId() + "\"><p id=\"buy\">BUY</a></p>"); + out.print("</td>"); + out.print("</tr>"); + out.print("</table>"); + out.print("<hr/>"); + out.print("<br/>"); + out.print("<br/>"); + } + } + } + } catch (Exception ex) { + // TODO handle custom exceptions here + } } - } - %> + %> - {{user}} - <br> - <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> + {{user}} + <br> + <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 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> - <p>Message: <input type="text" ng-model="newmessage.text"></p> - <button ng-click="insert(newmessage)">Send</button> - - <ul> - <li ng-repeat="message in messages"> - {{message.user}} send: {{message.text}} - </li> - </ul> - </div> --> - - <script> - /*document.getElementById("catalog").style.background="#0066ff"; - document.getElementById("catalog").style.color="#ffffff";*/ - </script> + <!-- <div ng-app="chatApp" ng-controller="chatController"> + <p>Name: <input type="text" ng-model="newmessage.user"></p> + <p>Message: <input type="text" ng-model="newmessage.text"></p> + <button ng-click="insert(newmessage)">Send</button> + + <ul> + <li ng-repeat="message in messages"> + {{message.user}} send: {{message.text}} + </li> + </ul> + </div> --> + + + <script> + /*document.getElementById("catalog").style.background="#0066ff"; + document.getElementById("catalog").style.color="#ffffff";*/ + </script> </body> </html> diff --git a/KAA-JSP/build/web/css/style.css b/KAA-JSP/build/web/css/style.css index 60760a094129686c425a4591b7d7fe92a43401a8..2a859c39e58a65c97f18ba49d19034f2c381c01d 100644 --- a/KAA-JSP/build/web/css/style.css +++ b/KAA-JSP/build/web/css/style.css @@ -337,11 +337,17 @@ ul { margin: 0px 0px 0px 20px; padding: 0px 0px 0px 10px; } -ul li { + +ul li .on { color: green; list-style-type: disc; } +ul li .off { + color: gray; + list-style-type: disc; +} + ul li span{ color: black; } \ No newline at end of file diff --git a/KAA-JSP/web/catalog.jsp b/KAA-JSP/web/catalog.jsp index de004adf246654b2290fdbb5843eaa4e6a0a4c44..0ea015e3ff0a376d82c7ad10d2b3053dacac0a6b 100644 --- a/KAA-JSP/web/catalog.jsp +++ b/KAA-JSP/web/catalog.jsp @@ -22,11 +22,11 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> - <title>Sale Project - Catalog</title> - <link href="css/style.css" rel="stylesheet" type="text/css"> + <title>Sale Project - Catalog</title> + <link href="css/style.css" rel="stylesheet" type="text/css"> <!-- Firebase --> <script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script> - <!--Angular --> + <!--Angular --> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <!--<script src="https://cdn.firebase.com/js/client/2.0.4/firebase.js"></script>--> <!--<script src="https://www.gstatic.com/firebasejs/3.6.1/firebase-app.js"></script> @@ -35,400 +35,407 @@ <script src="https://www.gstatic.com/firebasejs/3.6.1/firebase-messaging.js"></script> <!-- <script src="https://www.gstatic.com/firebasejs/3.6.1/firebase-storage.js"></script> --> <!-- AngularFire --> -<!-- <script src="https://cdn.firebase.com/libs/angularfire/0.9.2/angularfire.min.js"></script>--> - + <!-- <script src="https://cdn.firebase.com/libs/angularfire/0.9.2/angularfire.min.js"></script>--> + <script> - // Initialize Firebase + // Initialize Firebase + + /*var config = { + apiKey: "AIzaSyAN43gCcqFx095nCBy-4abeRGkoZB1-Rok", + authDomain: "kaa-saleproject.firebaseapp.com", + databaseURL: "https://kaa-saleproject.firebaseio.com", + storageBucket: "kaa-saleproject.appspot.com", + messagingSenderId: "815161898662" + };*/ + /* var config = { + apiKey: "AIzaSyAQ2WIB6GWOxmtwMdGd8eHawL4PWxK8evU", + authDomain: "tugas-besar-wbd.firebaseapp.com", + databaseURL: "https://tugas-besar-wbd.firebaseio.com", + storageBucket: "tugas-besar-wbd.appspot.com", + messagingSenderId: "1049009619420" + }; + firebase.initializeApp(config); + + const messaging = firebase.messaging(); + messaging.requestPermission() + .then(function() { + console.log('Notification permission granted.'); + return messaging.getToken(); + // TODO(developer): Retrieve an Instance ID token for use with FCM. + // ... + }) + .then(function(token){ + console.log(token); + }) + .catch(function(err) { + console.log('Unable to get permission to notify.', err); + });*/ + - /*var config = { - apiKey: "AIzaSyAN43gCcqFx095nCBy-4abeRGkoZB1-Rok", - authDomain: "kaa-saleproject.firebaseapp.com", - databaseURL: "https://kaa-saleproject.firebaseio.com", - storageBucket: "kaa-saleproject.appspot.com", - messagingSenderId: "815161898662" - };*/ -/* var config = { - apiKey: "AIzaSyAQ2WIB6GWOxmtwMdGd8eHawL4PWxK8evU", - authDomain: "tugas-besar-wbd.firebaseapp.com", - databaseURL: "https://tugas-besar-wbd.firebaseio.com", - storageBucket: "tugas-besar-wbd.appspot.com", - messagingSenderId: "1049009619420" - }; - firebase.initializeApp(config); - - const messaging = firebase.messaging(); - messaging.requestPermission() - .then(function() { - console.log('Notification permission granted.'); - return messaging.getToken(); - // TODO(developer): Retrieve an Instance ID token for use with FCM. - // ... - }) - .then(function(token){ - console.log(token); - }) - .catch(function(err) { - console.log('Unable to get permission to notify.', err); - });*/ - - - /*messaging.requestPermission().then(function(){ - console.log('Notification permission granted'); - messaging.getToken().then(function(){ - if(currentToken){ - sendTokenToServer(currentToken); - updateUIForPushEnabled(currentToken); - console.log('Token retrieved, ',currentToken); - //abis itu send ke tokensaver chatservice di sini atau di bawah - } else { - console.log('No Instance ID token available. Request permission to generate one'); - updateUIForPushPermissionRequired(); - setTokenToServer(false); - } - }).catch(function(err){ - console.log('An error occured while retrieving token. ',err); - showToken('Error retrieving Instance ID token. ',err); - setTokenToServer(false); - }); - }).catch(function(err){ - console.log('Unable to get permission to notify',err); - }); - - messaging.onTokenRefresh(function(){ - mesagging.getToken().then(function(refreshedToken){ - console.log('Token refreshed.'); - setTokenSentToServer(false); - sendTokenToServer(refreshedToken); - }); - }).catch(function(err){ - console.log('Unable to retrieve refreshed token. ',err); - showToken('Unable to retrieve refreshed token. ',err); - }); - - messaging.onMessage(function(payload){ - console.log("Message received. ",payload); - });*/ + /*messaging.requestPermission().then(function(){ + console.log('Notification permission granted'); + messaging.getToken().then(function(){ + if(currentToken){ + sendTokenToServer(currentToken); + updateUIForPushEnabled(currentToken); + console.log('Token retrieved, ',currentToken); + //abis itu send ke tokensaver chatservice di sini atau di bawah + } else { + console.log('No Instance ID token available. Request permission to generate one'); + updateUIForPushPermissionRequired(); + setTokenToServer(false); + } + }).catch(function(err){ + console.log('An error occured while retrieving token. ',err); + showToken('Error retrieving Instance ID token. ',err); + setTokenToServer(false); + }); + }).catch(function(err){ + console.log('Unable to get permission to notify',err); + }); + + messaging.onTokenRefresh(function(){ + mesagging.getToken().then(function(refreshedToken){ + console.log('Token refreshed.'); + setTokenSentToServer(false); + sendTokenToServer(refreshedToken); + }); + }).catch(function(err){ + console.log('Unable to retrieve refreshed token. ',err); + showToken('Unable to retrieve refreshed token. ',err); + }); + + messaging.onMessage(function(payload){ + console.log("Message received. ",payload); + });*/ </script> <!--Application --> <script src="scripts/app.js"></script> - + </head> <body ng-app="chatApp" ng-controller="chatController"> - <div class="catalog_content"> - <div class="logo"> - <span id="red">Sale</span><span id="blue">Project</span> - </div> - <div class="information"> - <span> - <% -/* FirebaseOptions options = new FirebaseOptions.Builder() - .setServiceAccount(new FileInputStream("path/to/serviceAccountKey.json")) - .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/") - .build(); + <div class="catalog_content"> + <div class="logo"> + <span id="red">Sale</span><span id="blue">Project</span> + </div> + <div class="information"> + <span> + <% + /* FirebaseOptions options = new FirebaseOptions.Builder() + .setServiceAccount(new FileInputStream("path/to/serviceAccountKey.json")) + .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/") + .build(); - FirebaseApp.initializeApp(options);*/ - - JSONObject responseJSON = new JSONObject(); - JSONObject responseJSON1 = new JSONObject(); - org.kaa.marketplaceservice.service.MarketPlaceService_Service service = new org.kaa.marketplaceservice.service.MarketPlaceService_Service(); - org.kaa.marketplaceservice.service.MarketPlaceService port = service.getMarketPlaceServicePort(); - String query; - String APIURL; - String ParameterURL; - - /* Showing username of user */ - String user_token = request.getParameter("token"); - if (request.getParameter("like") != null){ - String productId = request.getParameter("product_id"); - boolean like; - if (request.getParameter("like").equals("yes")){ - like = true; - } else { - like = false; - } - ProcedureStatus result = port.processLike(user_token, productId, like); - if (result.getStatus().equals("OK")){ - //Do nothing - } else if (result.getStatus().equals("EXPIRED")) { - response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" - + "message=Expired"); - } else { - response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." - + "jsp?token="+user_token+"&message=error"); - } - } - - if ((request.getParameter("logout") == null) && - (request.getParameter("token")!= null)){ - /* Consume REST API */ - ParameterURL = "token="+ request.getParameter("token"); - APIURL = "http://localhost:8080/IdentService/validate?"; - RestAPI_consumer consumer = new RestAPI_consumer(APIURL,ParameterURL); - consumer.execute(); - responseJSON = consumer.getOutput(); - - /* Checking the response */ - String status = (String)responseJSON.get("status"); - if (status.equals("OK")){ - String user = (String)responseJSON.get("user_name"); - out.println("Hello, " + user); - //out.println("<script>setUser('"+user+"');</script>"); - } - else{ - response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." - + "jsp?token="+user_token); - } - } - /* Logout */ - else if ((request.getParameter("logout") != null) && - (request.getParameter("token")!= null)){ - URL obj1 = null; - try{ - /* Consume REST API */ - ParameterURL = "token="+ user_token; - APIURL = "http://localhost:8080/IdentService/logout?"; - RestAPI_consumer consumer1 = new RestAPI_consumer(APIURL,ParameterURL); - consumer1.execute(); - responseJSON1 = consumer1.getOutput(); - - /* Checking the response */ - String status1 = (String)responseJSON1.get("status"); - if (status1.equals("OK")){ - response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" - + "message=logout"); - } - else{ - response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." - + "jsp?token="+user_token); - } - } - catch(Exception e){ - e.printStackTrace(); - } - } + FirebaseApp.initializeApp(options);*/ - /* Firebase here - String uid = "some-uid"; + JSONObject responseJSON = new JSONObject(); + JSONObject responseJSON1 = new JSONObject(); + org.kaa.marketplaceservice.service.MarketPlaceService_Service service = new org.kaa.marketplaceservice.service.MarketPlaceService_Service(); + org.kaa.marketplaceservice.service.MarketPlaceService port = service.getMarketPlaceServicePort(); + String query; + String APIURL; + String ParameterURL; - FirebaseAuth.getInstance().createCustomToken(uid) - .addOnSuccessListener(new OnSuccessListener<String>() { - @Override - public void onSuccess(String customToken) { - // Send token back to client - } - });*/ - %> - </span> + String urlParamChat; + String urlRequest2 = "http://localhost:8080/ChatService/RetrieveStatus?"; - </br> - <a href=" - <% - String logoutURL = "http://localhost:8080/KAA-JSP/catalog.jsp?token="+user_token+"&logout=on"; - out.println(logoutURL); - %> - " class="logout"><span class="link">Logout</span> - </a><br/> - </div> - <table class="menu"> - <th class="menupart" id="active"> - <a href=" - <% - out.println("http://localhost:8080/KAA-JSP/catalog.jsp?token="+user_token); - %> - "> - Catalog - </a> - </th> - <th class="menupart"> - <a href=" - <% - out.println("http://localhost:8080/KAA-JSP/yourproduct.jsp?token="+user_token); - %> - "> - Your Products - </a> - </th> - <th class="menupart"> - <a href=" - <% - out.println("http://localhost:8080/KAA-JSP/addproduct.jsp?token="+user_token); - %> - "> - Add Product - </a> - </th> - <th class="menupart"> - <a href=" - <% - out.println("http://localhost:8080/KAA-JSP/sales.jsp?token="+user_token); - %> - "> - Sales - </a> - </th> - <th class="menupart"> + /* Showing username of user */ + String user_token = request.getParameter("token"); + if (request.getParameter("like") != null) { + String productId = request.getParameter("product_id"); + boolean like; + if (request.getParameter("like").equals("yes")) { + like = true; + } else { + like = false; + } + ProcedureStatus result = port.processLike(user_token, productId, like); + if (result.getStatus().equals("OK")) { + //Do nothing + } else if (result.getStatus().equals("EXPIRED")) { + response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" + + "message=Expired"); + } else { + response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." + + "jsp?token=" + user_token + "&message=error"); + } + } + + if ((request.getParameter("logout") == null) + && (request.getParameter("token") != null)) { + /* Consume REST API */ + ParameterURL = "token=" + request.getParameter("token"); + APIURL = "http://localhost:8080/IdentService/validate?"; + RestAPI_consumer consumer = new RestAPI_consumer(APIURL, ParameterURL); + consumer.execute(); + responseJSON = consumer.getOutput(); + + /* Checking the response */ + String status = (String) responseJSON.get("status"); + if (status.equals("OK")) { + String user = (String) responseJSON.get("user_name"); + out.println("Hello, " + user); + //out.println("<script>setUser('"+user+"');</script>"); + } else { + response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." + + "jsp?token=" + user_token); + } + } /* Logout */ else if ((request.getParameter("logout") != null) + && (request.getParameter("token") != null)) { + URL obj1 = null; + try { + /* Consume REST API */ + ParameterURL = "token=" + user_token; + APIURL = "http://localhost:8080/IdentService/logout?"; + RestAPI_consumer consumer1 = new RestAPI_consumer(APIURL, ParameterURL); + consumer1.execute(); + responseJSON1 = consumer1.getOutput(); + + /* Checking the response */ + String status1 = (String) responseJSON1.get("status"); + if (status1.equals("OK")) { + response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" + + "message=logout"); + } else { + response.sendRedirect("http://localhost:8080/KAA-JSP/catalog." + + "jsp?token=" + user_token); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /* Firebase here + String uid = "some-uid"; + + FirebaseAuth.getInstance().createCustomToken(uid) + .addOnSuccessListener(new OnSuccessListener<String>() { + @Override + public void onSuccess(String customToken) { + // Send token back to client + } + });*/ + %> + </span> + + </br> <a href=" - <% - out.println("http://localhost:8080/KAA-JSP/purchases.jsp?token="+user_token); + <% String logoutURL = "http://localhost:8080/KAA-JSP/catalog.jsp?token=" + user_token + "&logout=on"; + out.println(logoutURL); %> - ">Purchases - </a> - </th> - </table> - <br/> - <p class="title">What are you going to buy today?</p> - <hr/> - <br/> - <div class="add_product_content"> + " class="logout"><span class="link">Logout</span> + </a><br/> + </div> + <table class="menu"> + <th class="menupart" id="active"> + <a href=" + <% + out.println("http://localhost:8080/KAA-JSP/catalog.jsp?token=" + user_token); + %> + "> + Catalog + </a> + </th> + <th class="menupart"> + <a href=" + <% + out.println("http://localhost:8080/KAA-JSP/yourproduct.jsp?token=" + user_token); + %> + "> + Your Products + </a> + </th> + <th class="menupart"> + <a href=" + <% + out.println("http://localhost:8080/KAA-JSP/addproduct.jsp?token=" + user_token); + %> + "> + Add Product + </a> + </th> + <th class="menupart"> + <a href=" + <% + out.println("http://localhost:8080/KAA-JSP/sales.jsp?token=" + user_token); + %> + "> + Sales + </a> + </th> + <th class="menupart"> + <a href=" + <% + out.println("http://localhost:8080/KAA-JSP/purchases.jsp?token=" + user_token); + %> + ">Purchases + </a> + </th> + </table> + <br/> + <p class="title">What are you going to buy today?</p> + <hr/> + <br/> + <div class="add_product_content"> <form method="GET" enctype="multipart/form-data"> - <div class="input_catalog"> - <input type="hidden" name="token" value=<% - out.println(user_token); - %> > - <input type="text" placeholder="Search catalog ..." - name="search" style="width:90%; height: 35px; border:none;" - class="auto-style1" hidefocus="hidefocus"> - <input type="submit" value="GO" style="width: 10%; height: 35px; font-weight: bold"><br/> - by - <input class="radio" type="radio" name="choice" value="product" checked="checked" /> - <label><span>product</span></label><br /> - <input class="radio" type="radio" name="choice" value="store" style="margin-left:25px;" /> - <label><span>store</span></label> - </div> + <div class="input_catalog"> + <input type="hidden" name="token" value=<% + out.println(user_token); + %> > + <input type="text" placeholder="Search catalog ..." + name="search" style="width:90%; height: 35px; border:none;" + class="auto-style1" hidefocus="hidefocus"> + <input type="submit" value="GO" style="width: 10%; height: 35px; font-weight: bold"><br/> + by + <input class="radio" type="radio" name="choice" value="product" checked="checked" /> + <label><span>product</span></label><br /> + <input class="radio" type="radio" name="choice" value="store" style="margin-left:25px;" /> + <label><span>store</span></label> + </div> </form> - </div> - <% - if(request.getParameter("search") == null){ - // Ketika pertama kali membuka catalog (tidak ada parameter search) - List<Product> result = port.retrieveAllProduct(user_token); - - // Ketika token sudah expired - if (result == null){ - response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" - + "message=expired"); - } else { - if (result.size() == 0){ - out.print("<p>No product to be sold.</p>"); - } else { - for (int i = 0; i < result.size(); i++) { - 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>"); - out.print("<tr class = \"container\">"); - out.print("<td>"); - out.print("<img \" width=120px height=120px src=\"" + result.get(i).getImage() + "\">"); - out.print("</td>"); - out.print("<td class=\"product_description\">"); - out.print("<p class=\"catalog_title\">" + result.get(i).getName() + " <br/></p>"); - out.print("<p class=\"catalog_price\">IDR " + result.get(i).getPrice() + "<br/></p>"); - out.print("<p class=\"catalog_desc\">" + result.get(i).getDescription() + "</p>"); - out.print("</td>"); - out.print("<td class=\"product_misc\">"); - out.print("<br/>"); - out.print("<p>" + port.getLikes(result.get(i).getProductId()) + " likes </p><br/>"); - out.print("<p>" + port.getPurchases(result.get(i).getProductId()) + " purchases <br/>"); - out.print(port.isLiked(user_token, result.get(i).getProductId())); - out.print("<a href=\"http://localhost:8080/KAA-JSP/confirmation_purchase.jsp?token=" + user_token + "&product_id=" + result.get(i).getProductId() + "\"><p id=\"buy\">BUY</a></p>"); - out.print("</td>"); - out.print("</tr>"); - out.print("</table>"); - out.print("<hr/>"); - out.print("<br/>"); - out.print("<br/>"); - } - } - } - } else { - // Ketika ada parameter untuk search - String search = request.getParameter("search"); - String choice = request.getParameter("choice"); - /* Melakukan Searching dengan Method search_product pada MarketService */ - try{ - int choice_int = 0; - if (choice.equals("product")){ - choice_int = 0; - } else if (choice.equals("store")) { - choice_int = 1; - } - - List<Product> result = port.searchProduct(search, user_token, choice_int); - - /* Jika expired */ - if (result == null){ + </div> + <% + if (request.getParameter("search") == null) { + // Ketika pertama kali membuka catalog (tidak ada parameter search) + List<Product> result = port.retrieveAllProduct(user_token); + + // Ketika token sudah expired + if (result == null) { response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" + "message=expired"); } else { - if (result.size() == 0){ - out.print("<p>Nothing matches your search.</p>"); + if (result.size() == 0) { + out.print("<p>No product to be sold.</p>"); } else { for (int i = 0; i < result.size(); i++) { - out.print("<a href=\"\"><div ng-click=\"setReceiver('"+result.get(i).getUsername()+"')\"><b>" + result.get(i).getUsername() + "</a></b></div><br/>"); + urlParamChat = "user_id=" + result.get(i).getUserId(); + RestAPI_consumer consumer2 = new RestAPI_consumer(urlRequest2, urlParamChat); + consumer2.execute(); + responseJSON = consumer2.getOutput(); + if (responseJSON.get("status").equals("ON")) { + out.print("<img style=\"border: none; padding: 0px 10px 0px 0px; float:left\" height=15px width=15px src=\"img/on.png\">"); + out.print("<a href=\"\"><div ng-click=\"setReceiver('" + result.get(i).getUsername() + "')\"><p><b>" + result.get(i).getUsername() + "</a></b><br/>"); + } else { + out.print("<img style=\"border: none; padding: 0px 10px 0px 0px; float:left\" height=15px width=15px src=\"img/off.png\">"); + 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>"); out.print("<tr class = \"container\">"); out.print("<td>"); - out.print("<img \" width=120px height=120px src=\"" + result.get(i).getImage() + "\">"); - out.print("</td>"); - out.print("<td class=\"product_description\">"); - out.print("<p class=\"catalog_title\">" + result.get(i).getName() + " <br/></p>"); - out.print("<p class=\"catalog_price\">IDR " + result.get(i).getPrice() + "<br/></p>"); - out.print("<p class=\"catalog_desc\">" + result.get(i).getDescription() + "</p>"); - out.print("</td>"); - out.print("<td class=\"product_misc\">"); - out.print("<br/>"); - out.print("<p>" + port.getLikes(result.get(i).getProductId()) + " likes </p><br/>"); - out.print("<p>" + port.getPurchases(result.get(i).getProductId()) + " purchases <br/>"); - out.print(port.isLiked(user_token, result.get(i).getProductId())); - out.print("<a href=\"http://localhost:8080/KAA-JSP/confirmation_purchase.jsp?token=" + user_token + "&product_id=" + result.get(i).getProductId() + "\"><p id=\"buy\">BUY</a></p>"); - out.print("</td>"); - out.print("</tr>"); - out.print("</table>"); - out.print("<hr/>"); - out.print("<br/>"); + out.print("<img \" width=120px height=120px src=\"" + result.get(i).getImage() + "\">"); + out.print("</td>"); + out.print("<td class=\"product_description\">"); + out.print("<p class=\"catalog_title\">" + result.get(i).getName() + " <br/></p>"); + out.print("<p class=\"catalog_price\">IDR " + result.get(i).getPrice() + "<br/></p>"); + out.print("<p class=\"catalog_desc\">" + result.get(i).getDescription() + "</p>"); + out.print("</td>"); + out.print("<td class=\"product_misc\">"); + out.print("<br/>"); + out.print("<p>" + port.getLikes(result.get(i).getProductId()) + " likes </p><br/>"); + out.print("<p>" + port.getPurchases(result.get(i).getProductId()) + " purchases <br/>"); + out.print(port.isLiked(user_token, result.get(i).getProductId())); + out.print("<a href=\"http://localhost:8080/KAA-JSP/confirmation_purchase.jsp?token=" + user_token + "&product_id=" + result.get(i).getProductId() + "\"><p id=\"buy\">BUY</a></p>"); + out.print("</td>"); + out.print("</tr>"); + out.print("</table>"); + out.print("<hr/>"); + out.print("<br/>"); out.print("<br/>"); } } } - } catch (Exception ex) { - // TODO handle custom exceptions here + } else { + // Ketika ada parameter untuk search + String search = request.getParameter("search"); + String choice = request.getParameter("choice"); + /* Melakukan Searching dengan Method search_product pada MarketService */ + try { + int choice_int = 0; + if (choice.equals("product")) { + choice_int = 0; + } else if (choice.equals("store")) { + choice_int = 1; + } + + List<Product> result = port.searchProduct(search, user_token, choice_int); + + /* Jika expired */ + if (result == null) { + response.sendRedirect("http://localhost:8080/KAA-JSP/login.jsp?" + + "message=expired"); + } else { + if (result.size() == 0) { + out.print("<p>Nothing matches your search.</p>"); + } else { + for (int i = 0; i < result.size(); i++) { + 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>"); + out.print("<tr class = \"container\">"); + out.print("<td>"); + out.print("<img \" width=120px height=120px src=\"" + result.get(i).getImage() + "\">"); + out.print("</td>"); + out.print("<td class=\"product_description\">"); + out.print("<p class=\"catalog_title\">" + result.get(i).getName() + " <br/></p>"); + out.print("<p class=\"catalog_price\">IDR " + result.get(i).getPrice() + "<br/></p>"); + out.print("<p class=\"catalog_desc\">" + result.get(i).getDescription() + "</p>"); + out.print("</td>"); + out.print("<td class=\"product_misc\">"); + out.print("<br/>"); + out.print("<p>" + port.getLikes(result.get(i).getProductId()) + " likes </p><br/>"); + out.print("<p>" + port.getPurchases(result.get(i).getProductId()) + " purchases <br/>"); + out.print(port.isLiked(user_token, result.get(i).getProductId())); + out.print("<a href=\"http://localhost:8080/KAA-JSP/confirmation_purchase.jsp?token=" + user_token + "&product_id=" + result.get(i).getProductId() + "\"><p id=\"buy\">BUY</a></p>"); + out.print("</td>"); + out.print("</tr>"); + out.print("</table>"); + out.print("<hr/>"); + out.print("<br/>"); + out.print("<br/>"); + } + } + } + } catch (Exception ex) { + // TODO handle custom exceptions here + } } - } - %> + %> - {{user}} - <br> - <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> + {{user}} + <br> + <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 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> - <p>Message: <input type="text" ng-model="newmessage.text"></p> - <button ng-click="insert(newmessage)">Send</button> - - <ul> - <li ng-repeat="message in messages"> - {{message.user}} send: {{message.text}} - </li> - </ul> - </div> --> - - <script> - /*document.getElementById("catalog").style.background="#0066ff"; - document.getElementById("catalog").style.color="#ffffff";*/ - </script> + <!-- <div ng-app="chatApp" ng-controller="chatController"> + <p>Name: <input type="text" ng-model="newmessage.user"></p> + <p>Message: <input type="text" ng-model="newmessage.text"></p> + <button ng-click="insert(newmessage)">Send</button> + + <ul> + <li ng-repeat="message in messages"> + {{message.user}} send: {{message.text}} + </li> + </ul> + </div> --> + + + <script> + /*document.getElementById("catalog").style.background="#0066ff"; + document.getElementById("catalog").style.color="#ffffff";*/ + </script> </body> </html> diff --git a/KAA-JSP/web/css/style.css b/KAA-JSP/web/css/style.css index 60760a094129686c425a4591b7d7fe92a43401a8..2a859c39e58a65c97f18ba49d19034f2c381c01d 100644 --- a/KAA-JSP/web/css/style.css +++ b/KAA-JSP/web/css/style.css @@ -337,11 +337,17 @@ ul { margin: 0px 0px 0px 20px; padding: 0px 0px 0px 10px; } -ul li { + +ul li .on { color: green; list-style-type: disc; } +ul li .off { + color: gray; + list-style-type: disc; +} + ul li span{ color: black; } \ No newline at end of file diff --git a/KAA-JSP/web/img/off.png b/KAA-JSP/web/img/off.png new file mode 100644 index 0000000000000000000000000000000000000000..ab25ccd0ba6ebcd24761b13779cfd0a0065d4356 Binary files /dev/null and b/KAA-JSP/web/img/off.png differ diff --git a/KAA-JSP/web/img/on.png b/KAA-JSP/web/img/on.png new file mode 100644 index 0000000000000000000000000000000000000000..25325bda7c1e388b2cd709242f7e16268f078c31 Binary files /dev/null and b/KAA-JSP/web/img/on.png differ