Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

<%@page import="java.util.Date"%>
<%@page import="java.util.TimeZone"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="com.google.appengine.api.datastore.Query.SortDirection"%>
<%@page import="java.util.Map.Entry"%>
<%@ page import="java.util.List" %>
<%@ page import="com.google.appengine.api.datastore.DatastoreServiceFactory" %>
<%@ page import="com.google.appengine.api.datastore.DatastoreService" %>
<%@ page import="com.google.appengine.api.datastore.Query" %>
<%@ page import="com.google.appengine.api.datastore.Entity" %>
<%@ page import="com.google.appengine.api.datastore.PreparedQuery" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>
  <head>
      <link rel="stylesheet" href="/DataTables/media/css/demo_table.css" type="text/css" />
      <link rel="stylesheet" href="/DataTables/extras/TableTools/media/css/TableTools.css" type="text/css" /> 
  </head>
  <body>
<%
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("IST"));
    SimpleDateFormat iSdf = new SimpleDateFormat("yyyyMMdd");
    iSdf.setTimeZone(TimeZone.getTimeZone("IST"));
    DatastoreService datastore = DatastoreServiceFactory
            .getDatastoreService();
    String eventType = request.getParameter("eventType");
    
    if (eventType == null || eventType.isEmpty()) {
        return;
    }
    Date shortDate = iSdf.parse(request.getParameter("shortDate"));
    Long catalogId = Long.parseLong(request.getParameter("catalogId"));
    
    Query query = new Query("DataLog");
    query.addFilter("eventType", Query.FilterOperator.EQUAL,
            eventType);
    if (eventType.equals("PRODUCT_VIEW")) {
        query.addFilter("itemId", Query.FilterOperator.EQUAL,
                catalogId);
    }
    else {
        query.addFilter("itemIds", Query.FilterOperator.EQUAL,
                catalogId);
    }
    query.addFilter("shortdate", Query.FilterOperator.EQUAL,
            shortDate);
    PreparedQuery pq = datastore.prepare(query);
%>
        <table cellpadding="0" cellspacing="0" border="0" class="display"
                id="product-access">
                <thead>
                        <tr>
                                <th>Date</th>
                                <th>First Source</th>
                                <th>Session Source</th>
                                <th>User Id</th>
                                <th>View Session</th>
                        </tr>
                </thead>
                <tbody>

<%
        for (Entity result : pq.asIterable()) {
            Query sessionQuery = new Query("DataLog");
            sessionQuery.addFilter("sessionId", Query.FilterOperator.EQUAL,
                    result.getProperty("sessionId").toString());
            sessionQuery.addFilter("eventType", Query.FilterOperator.EQUAL,
                    "NEW_SESSION");
            PreparedQuery sessionPq = datastore.prepare(sessionQuery);
            Entity sessionResult = sessionPq.asIterable().iterator().next();
            String firstSource = "";
            String sessionSource ="";
            if (sessionResult != null) {
                    if(sessionResult.hasProperty("firstSource")) {
                        firstSource = sessionResult.getProperty("firstSource").toString();
                    }
                    if(sessionResult.hasProperty("source")) {
                        sessionSource = sessionResult.getProperty("source").toString();
                    }
            }
%>
                        <tr>
                                <td><%=sdf.format((Date) (result.getProperty("date")))%></td>
                                <td><%=firstSource%></td>
                <td><%=sessionSource%></td>
                <td><a href="/jsp/user-activity.jsp?email=<%=result.getProperty("email").toString()%>"><%= result.getProperty("email").toString() %></a></td>
                                <td><a href="/jsp/session-activity.jsp?sessionId=<%=result.getProperty("sessionId").toString()%>"><%=result.getProperty("sessionId").toString()%></a></td>
                        </tr>
<%
    }
%>
                </tbody>
        </table>
    <script type="text/javascript" language="javascript" src="/DataTables/media/js/jquery.js"></script>
    <script type="text/javascript" language="javascript" src="/DataTables/media/js/jquery.dataTables.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="/DataTables/extras/TableTools/media/js/ZeroClipboard.js"></script>
    <script type="text/javascript" charset="utf-8" src="/DataTables/extras/TableTools/media/js/TableTools.js"></script>
    <script type="text/javascript" charset="utf-8">
        $(document).ready(function() {
            $('#product-access').dataTable({
                "sPaginationType": "full_numbers",
                "bProcessing": true,
                "bStateSave": true,
                "sDom": 'T<"clear">lfrtip',
                "oTableTools": {
                    "sSwfPath": "/DataTables/extras/TableTools/media/swf/copy_cvs_xls_pdf.swf"
                },
                "aoColumns": [ 
                              null,
                              { "bSearchable": false },
                              null,
                              null,
                              null
                    ]
            });
        } );
    </script>
  </body>
</html>