Subversion Repositories SmartDukaan

Rev

Rev 4639 | Rev 4932 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4639 Rev 4816
Line 1... Line -...
1
<%@page import="java.util.Hashtable"%>
-
 
2
<%@ page language="java" contentType="text/html; charset=UTF-8"
1
<%@ page language="java" contentType="text/html; charset=UTF-8"
3
    pageEncoding="UTF-8"%>
2
    pageEncoding="UTF-8"%>
4
<%@ page import="com.google.appengine.api.datastore.DatastoreServiceFactory" %>
3
<%@ page import="com.google.appengine.api.datastore.DatastoreServiceFactory" %>
5
<%@ page import="com.google.appengine.api.datastore.DatastoreService" %>
4
<%@ page import="com.google.appengine.api.datastore.DatastoreService" %>
6
<%@ page import="com.google.appengine.api.datastore.Query" %>
5
<%@ page import="com.google.appengine.api.datastore.Query" %>
7
<%@ page import="com.google.appengine.api.datastore.Entity" %>
6
<%@ page import="com.google.appengine.api.datastore.Entity" %>
8
<%@ page import="com.google.appengine.api.datastore.PreparedQuery" %>
7
<%@ page import="com.google.appengine.api.datastore.PreparedQuery" %>
9
<%@	page import="com.google.appengine.api.datastore.Query.SortDirection"%>
8
<%@	page import="com.google.appengine.api.datastore.Query.SortDirection"%>
10
<%@	page import="java.util.Calendar"%>
9
<%@	page import="java.util.Calendar"%>
11
<%@ page import="java.util.Map"%>
10
<%@ page import="java.util.Map"%>
-
 
11
<%@ page import="java.util.LinkedHashMap"%>
12
<%@	page import="java.util.Map.Entry"%>
12
<%@	page import="java.util.Map.Entry"%>
13
<%@	page import="java.text.ParseException"%>
13
<%@	page import="java.text.ParseException"%>
14
<%@	page import="java.util.TimeZone"%>
14
<%@	page import="java.util.TimeZone"%>
15
<%@	page import="java.util.Date"%>
15
<%@	page import="java.util.Date"%>
-
 
16
<%@	page import="java.util.Set"%>
-
 
17
<%@	page import="java.util.Calendar"%>
16
<%@	page import="java.text.SimpleDateFormat"%>
18
<%@	page import="java.text.SimpleDateFormat"%>
17
<%@	page import="in.shop2020.model.Category"%>
19
<%@	page import="in.shop2020.model.Category"%>
18
 
20
 
19
 
21
 
20
<html>
22
<html>
21
<head>
23
<head>
-
 
24
 
-
 
25
<script>
-
 
26
var dataArray = [];
-
 
27
</script>
-
 
28
<script type="text/javascript" language="javascript" src="/DataTables/media/js/jquery.js"></script>
-
 
29
<script type="text/javascript" language="javascript" src="/DataTables/media/js/jquery.dataTables.min.js"></script>
-
 
30
<script type="text/javascript" charset="utf-8" src="/DataTables/extras/TableTools/media/js/ZeroClipboard.js"></script>
-
 
31
<script type="text/javascript" charset="utf-8" src="/DataTables/extras/TableTools/media/js/TableTools.js"></script>
-
 
32
<script src="/js/flot/jquery.flot.js" ></script>
-
 
33
<script type="text/javascript" src = "/js/flot/jquery.flot.navigate.js"></script>
-
 
34
 
22
<link rel="stylesheet" href="/DataTables/media/css/demo_table.css" type="text/css" />
35
<link rel="stylesheet" href="/DataTables/media/css/demo_table.css" type="text/css" />
23
<link rel="stylesheet" href="/DataTables/extras/TableTools/media/css/TableTools.css" type="text/css" /> 
36
<link rel="stylesheet" href="/DataTables/extras/TableTools/media/css/TableTools.css" type="text/css" /> 
24
<title>Search Analysis</title>
37
<title>Search Analysis</title>
25
</head>
38
</head>
26
<body>
39
<body>
Line 62... Line 75...
62
        <span>Invalid Date Format</span>
75
        <span>Invalid Date Format</span>
63
<%
76
<%
64
    }
77
    }
65
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
78
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
66
    sdf.setTimeZone(TimeZone.getTimeZone("IST"));
79
    sdf.setTimeZone(TimeZone.getTimeZone("IST"));
-
 
80
    
-
 
81
    //Initializing Date variables for calculation of graph data
-
 
82
    Map<Long, Long> graphData = new LinkedHashMap<Long, Long>();
-
 
83
    long previousDate = fromDate.getTime();
-
 
84
    graphData.put(previousDate, new Long(0));
-
 
85
    Calendar currentRecordDate = Calendar.getInstance();
-
 
86
    currentRecordDate.setTimeInMillis(fromDate.getTime());
-
 
87
    Calendar previousrecordDate = Calendar.getInstance();
-
 
88
    previousrecordDate.setTimeInMillis(fromDate.getTime());
-
 
89
    
67
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
90
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
68
    Query query = new Query("DataLog");
91
    Query query = new Query("DataLog");
69
    query.addFilter("eventType", Query.FilterOperator.EQUAL, "PRODUCT_SEARCH");
92
    query.addFilter("eventType", Query.FilterOperator.EQUAL, "PRODUCT_SEARCH");
70
    query.addFilter("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, fromDate);
93
    query.addFilter("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, fromDate);
71
    query.addFilter("date", Query.FilterOperator.LESS_THAN_OR_EQUAL, toDate);
94
    query.addFilter("date", Query.FilterOperator.LESS_THAN_OR_EQUAL, toDate);
Line 87... Line 110...
87
		</tr>
110
		</tr>
88
	</thead>
111
	</thead>
89
	<tbody>
112
	<tbody>
90
<%
113
<%
91
        for (Entity result : pq.asIterable()) {
114
        for (Entity result : pq.asIterable()) {
-
 
115
        	
-
 
116
        	currentRecordDate.setTime((Date)(result.getProperty("date")));
-
 
117
        	
-
 
118
        	if((currentRecordDate.getTimeInMillis() - previousDate) >= 86400000)	{
-
 
119
        		
-
 
120
        		long dayDiff = (currentRecordDate.getTimeInMillis() - previousrecordDate.getTimeInMillis()) / 86400000;
-
 
121
        		
-
 
122
        		for(int i = 1; i <= dayDiff; i ++)	{
-
 
123
					previousDate = previousDate + 86400000;
-
 
124
					previousrecordDate.add(Calendar.DAY_OF_MONTH, 1);
-
 
125
					graphData.put(previousDate, new Long(0));
-
 
126
        		}
-
 
127
				graphData.put(previousDate, new Long(1));
-
 
128
        	} else	{
-
 
129
    			graphData.put(previousDate, graphData.get(previousDate) + 1);
-
 
130
        	}
92
%>			
131
%>			
93
			<tr>
132
			<tr>
94
				<td><%=sdf.format((Date) (result.getProperty("date")))%></td>
133
				<td><%=sdf.format((Date) (result.getProperty("date")))%></td>
95
				<td><a href="/jsp/user-activity.jsp?email=<%=result.getProperty("email").toString()%>"><%= result.getProperty("email").toString() %></a></td>
134
				<td><a href="/jsp/user-activity.jsp?email=<%=result.getProperty("email").toString()%>"><%= result.getProperty("email").toString() %></a></td>
96
            	<td><a href="/jsp/session-activity.jsp?sessionId=<%=result.getProperty("sessionId").toString()%>">View Session</a></td>
135
            	<td><a href="/jsp/session-activity.jsp?sessionId=<%=result.getProperty("sessionId").toString()%>">View Session</a></td>
Line 100... Line 139...
100
            </tr>    
139
            </tr>    
101
            <%}%>
140
            <%}%>
102
			
141
			
103
	</tbody>
142
	</tbody>
104
</table>
143
</table>
-
 
144
<br/>
-
 
145
<br/>
-
 
146
<br/>
-
 
147
<div id = "zoombuttonholder"></div>
-
 
148
 
-
 
149
<%Set<Long> dateSet = graphData.keySet();
-
 
150
	for(Long date : dateSet){%>
-
 
151
	<script>
-
 
152
		//Putting Graph data in javascript array
-
 
153
		dataArray.push([<%=date%>,<%=graphData.get(date)%>]);	
-
 
154
	</script>
-
 
155
<%} %>
-
 
156
<div id="placeholder" style="position:relative;width:950px;height:300px"></div>
-
 
157
<br>
105
 
158
 
106
<h3><a href= "/jsp/productSearchFrequency.jsp?toDate=<%=toDateStr%>&fromDate=<%=fromDateStr%>">Go back to Product Search Frequencies</h3>
159
<h3><a href= "/jsp/productSearchFrequency.jsp?toDate=<%=toDateStr%>&fromDate=<%=fromDateStr%>">Go back to Product Search Frequencies</a></h3>
107
 
160
 
108
<script type="text/javascript" language="javascript" src="/DataTables/media/js/jquery.js"></script>
-
 
109
    <script type="text/javascript" language="javascript" src="/DataTables/media/js/jquery.dataTables.min.js"></script>
-
 
110
    <script type="text/javascript" charset="utf-8" src="/DataTables/extras/TableTools/media/js/ZeroClipboard.js"></script>
-
 
111
    <script type="text/javascript" charset="utf-8" src="/DataTables/extras/TableTools/media/js/TableTools.js"></script>
-
 
-
 
161
    
112
    <script type="text/javascript" charset="utf-8">
162
    <script type="text/javascript" charset="utf-8">
-
 
163
	    
113
        $(document).ready(function() {
164
        $(document).ready(function() {
114
            $('#searchData').dataTable({
165
            $('#searchData').dataTable({
115
            	"sPaginationType": "full_numbers",
166
            	"sPaginationType": "full_numbers",
116
            	"bProcessing": true,
167
            	"bProcessing": true,
117
                "bStateSave": true,
168
                "bStateSave": true,
Line 127... Line 178...
127
                          null,
178
                          null,
128
                          null,
179
                          null,
129
                          null
180
                          null
130
                ] 
181
                ] 
131
            });
182
            });
-
 
183
            var options = {
-
 
184
            		legend: {
-
 
185
            			show: true,
-
 
186
            			margin: 10,
-
 
187
            			backgroundOpacity: 0.5
-
 
188
            		},
-
 
189
            		points: {
-
 
190
            			show: true,
-
 
191
            		},
-
 
192
            		lines: {
-
 
193
            			show: true,
-
 
194
            			lineWidth: 1,
-
 
195
            			fill: true,
-
 
196
            			fillColor: { colors: [ "#87CEFA",{ opacity: 0.05 } ] }
-
 
197
            		},
-
 
198
            		xaxis: {
-
 
199
            			mode:"time",
-
 
200
            			timeformat: "%y/%m/%d",
-
 
201
            			panRange: [<%=fromDate.getTime()%>,<%=toDate.getTime()%>]
-
 
202
            		},
-
 
203
            		yaxis: {
-
 
204
            			panRange: [0,5000]
-
 
205
            		},
-
 
206
            		fill: true,
-
 
207
            		zoom: {
-
 
208
                        interactive: true
-
 
209
                    },
-
 
210
                    pan: {
-
 
211
                        interactive: true
-
 
212
                    },
-
 
213
            	};
-
 
214
 
-
 
215
            var data = [
-
 
216
            	{
-
 
217
            			label: "Product Search Frequency",
-
 
218
            			data: dataArray,
-
 
219
            	}
-
 
220
            ];
-
 
221
            //Generating the graph with specified "data" & "options" in div "placeholder"
-
 
222
            var plot = $.plot($("#placeholder"),data,options);
-
 
223
           	
-
 
224
           	// add zoom out button 
-
 
225
            $('<div class="button" style="width:75px;color:#999;left:800px;cursor:pointer;background-color:#eee;padding:2px">zoom out</div>').appendTo($('#zoombuttonholder')).click(function (e) {
-
 
226
                   e.preventDefault();
-
 
227
                     plot.zoomOut();
-
 
228
                   });
132
        } );
229
        } );
133
    </script>
230
    </script>
134
</body>
231
</body>
135
</html>
232
</html>
136
233