Subversion Repositories SmartDukaan

Rev

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

Rev 23343 Rev 23347
Line 1... Line 1...
1
$(function() {
1
$(function() {
2
	
-
 
3
	$(".schemes").live('click', function() {
-
 
4
		console.log("Active Schemes Button Clicked...")
-
 
5
		schemes("main-content");
-
 
6
	});
-
 
7
	
-
 
8
	$(".schemes-download-page").live('click', function() {
-
 
9
		console.log("Schemes Download Clicked...")
-
 
10
		loadSchemesDownloadPage("main-content");
-
 
11
	});
-
 
12
	
-
 
13
	$(".create-scheme").live('click', function() {
2
	$(".create-scheme").live('click', function() {
14
		loadScheme("main-content");
3
		loadScheme("main-content");
15
	});
4
	});
16
	
5
	
17
	
-
 
18
	$('#brands li a').live('click', function(){
-
 
19
		$('#brand-value').text($(this).text());
-
 
20
		loadItemsDescriptionByBrand("items-description-container", $(this).text());
-
 
21
	    console.log($(this).text());
-
 
22
	});
-
 
23
	
-
 
24
	$("#schemes-paginated .next").live('click', function() {
6
	$("#schemes-paginated .next").live('click', function() {
25
		var start = $( "#schemes-paginated .start" ).text();
7
		var start = $( "#schemes-paginated .start" ).text();
26
		var end = $( "#schemes-paginated .end" ).text();
8
		var end = $( "#schemes-paginated .end" ).text();
27
		getSchemesNextItems(start, end);
9
		getSchemesNextItems(start, end);
28
		$("#schemes-paginated .next").blur();
10
		$("#schemes-paginated .next").blur();
Line 40... Line 22...
40
		var schemeId = $(this).attr('data');
22
		var schemeId = $(this).attr('data');
41
		console.log("schemeId = "+schemeId);
23
		console.log("schemeId = "+schemeId);
42
		loadSchemeDetails(schemeId, "scheme-details-container");
24
		loadSchemeDetails(schemeId, "scheme-details-container");
43
	});
25
	});
44
	
26
	
45
	
-
 
46
	$(".active-scheme").live('click',function(){
27
	$(".active-scheme").live('click',function(){
47
		var schemeId = $(this).attr('data');
28
		var schemeId = $(this).attr('data');
48
		console.log("active-scheme id : "+schemeId);
29
		console.log("active-scheme id : "+schemeId);
49
		var start = $( "#schemes-paginated .start" ).text();
30
		var start = $( "#schemes-paginated .start" ).text();
50
		//var end = $( "#schemes-paginated .end" ).text();
31
		//var end = $( "#schemes-paginated .end" ).text();
Line 63... Line 44...
63
		if(confirm("Are you sure you want to Expire Scheme!") == true){
44
		if(confirm("Are you sure you want to Expire Scheme!") == true){
64
			expireScheme(schemeId, offset, "schemes-table");
45
			expireScheme(schemeId, offset, "schemes-table");
65
		}
46
		}
66
	});
47
	});
67
	
48
	
68
	
-
 
69
});
-
 
70
 
-
 
71
$().ready(function() {
49
	$(".schemes").live('click', function() {
72
	$("form#create-scheme-form input").each(function(){
50
		console.log("Active Schemes Button Clicked...")
73
		$(this).attr('autocomplete', 'off');
51
		schemes("main-content");
74
	});
52
	});
75
});
-
 
76
$().ready(function() {
-
 
77
        // validate the comment form when it is submitted
-
 
78
        $('#create-scheme-form').validate({
-
 
79
		rules:{
-
 
80
			schemeName:{
-
 
81
				required:true
-
 
82
			},
-
 
83
			schemeType:{
-
 
84
				required:true
-
 
85
			},
-
 
86
			amountType:{
-
 
87
				required:true
-
 
88
			},
-
 
89
			schemeAmount:{
-
 
90
				required:true
-
 
91
			},
-
 
92
			startDate:{
-
 
93
				required:true
-
 
94
			},
-
 
95
			endDate:{
-
 
96
				required:true
-
 
97
			},
-
 
98
			itemIdsDescription:{
-
 
99
				required:true
-
 
100
			},
-
 
101
			retailerIds:{
-
 
102
				required:true
-
 
103
			}
-
 
104
		},
-
 
105
		messages:{
-
 
106
			name:{
-
 
107
				required:"Please enter the name"
-
 
108
			},
-
 
109
			schemeType:{
-
 
110
				required:"Please choose type"
-
 
111
			},
-
 
112
			amountType:{
-
 
113
				required: "Please choose amount type"
-
 
114
			},
-
 
115
			schemeAmount:{
-
 
116
				required: "Please enter the amount"
-
 
117
			},
-
 
118
			startDate:{
-
 
119
				require: "Please choose start date"
-
 
120
			},
-
 
121
			endDate:{
-
 
122
				require: "Please choose end date"
-
 
123
			},
-
 
124
			itemIdsDescription:{
-
 
125
				required: "Please choose items"
-
 
126
			},
-
 
127
			retailerIds:{
-
 
128
				required: "Please enter retailer ids"
-
 
129
			}
-
 
130
		},
53
	
131
		submitHandler: function (form, event) {
54
	$(".schemes-download-page").live('click', function() {
132
			event.preventDefault();
-
 
133
			if(validateSchemeDetails()){
-
 
134
				alert("Please fix errors");
-
 
135
				return false;
-
 
136
			}
-
 
137
			var json = schemeDetailsJson();
-
 
138
			console.log("schemeJson = " + json);
55
		console.log("Schemes Download Clicked...")
139
			if(confirm("Are you sure you want to create Scheme!") == true){
-
 
140
	             $.ajax({
-
 
141
	                 type: "POST",
-
 
142
	                 url: "createScheme",
-
 
143
	                 data: json,
-
 
144
	                 contentType:'application/json',
-
 
145
					async: false,
-
 
146
					success: function (data) {
-
 
147
						$('#main-content').html(data);
56
		loadSchemesDownloadPage("main-content");
148
					},
-
 
149
					cache: false,
-
 
150
					processData: false
-
 
151
	             });
-
 
152
	             return false; // required to block normal submit since you used ajax
-
 
153
			}
-
 
154
         }
-
 
155
	});
57
	});
156
  
-
 
157
});
58
});
158
 
59
 
159
function validateSchemeDetails(){
60
function configureItemsDescriptionDropDown(){
160
	console.log("validating Scheme Details...");
-
 
161
	var error = false;
-
 
162
	var name = $("form#create-scheme-form input[name=schemeName]").val();
-
 
163
	console.log("schemeName = " + name);
-
 
164
	$("#schemeName").removeClass("border-highlight");
-
 
165
	if(name ==""){
-
 
166
		alert("Name is required");
-
 
167
		$("#schemeName").addClass("border-highlight");
-
 
168
		error = true;
-
 
169
		return error;
-
 
170
	}
-
 
171
	var schemeType = $("#schemeType option:selected").val();
-
 
172
	console.log("schemeType = " + schemeType);
-
 
173
	$("#schemeType").removeClass("border-highlight");
-
 
174
	if(schemeType == ""){
-
 
175
		alert("Please choose Scheme Type");
-
 
176
		$("#schemeType").addClass("border-highlight");
-
 
177
		error = true;
-
 
178
		return error;
-
 
179
	}
-
 
180
	var amountType = $("#amountType option:selected").val();
-
 
181
	console.log("amountType = " + amountType);
-
 
182
	$("#amountType").removeClass("border-highlight");
-
 
183
	if(amountType == ""){
-
 
184
		alert("Please choose Amount Type");
-
 
185
		$("#amountType").addClass("border-highlight");
-
 
186
		error = true;
-
 
187
		return error;
-
 
188
	}
-
 
189
	var amount = $("form#create-scheme-form input[name=schemeAmount]").val();
-
 
190
	console.log("amount = " + amount);
-
 
191
	$("#schemeAmount").removeClass("border-highlight");
-
 
192
	if (amount == ""){
-
 
193
		$("form#create-scheme-form input[name=schemeAmount]").val(0);
-
 
194
	}else if(amount <= 0){
-
 
195
		alert("Amount should be greater than 0");
-
 
196
		$("#schemeAmount").addClass("border-highlight");
-
 
197
		error = true;
-
 
198
		return error;
-
 
199
	}
-
 
200
	
-
 
201
	
-
 
202
	var startDateTimeString = $("form#create-scheme-form input[name=startDateTime]").val();
-
 
203
	var endDateTimeString = $("form#create-scheme-form input[name=endDateTime]").val();
-
 
204
	$("#startDateTime").removeClass("border-highlight");
-
 
205
	$("#endDateTime").removeClass("border-highlight");
-
 
206
	
-
 
207
	
-
 
208
	if(Date.parse(endDateTimeString) < Date.parse(startDateTimeString)){
-
 
209
		alert("End date Time [" + endDateTimeString + "] can not be greater than equal to Start date Time [" + startDateTimeString + "]");
-
 
210
		$("#startDateTime").addClass("border-highlight");
-
 
211
		$("#endDateTime").addClass("border-highlight");
-
 
212
		error = true;
-
 
213
		return error;
-
 
214
	}
-
 
215
	
-
 
216
	//$('#brand-value').text($(this).text());
61
	$(document).ready(function() {
217
	$("#brand-value").removeClass("border-highlight");
-
 
218
	if($("#brand-value").text() == "Brands"){
-
 
219
		alert("Please choose Brand");
-
 
220
		$("#brand-value").addClass("border-highlight");
-
 
221
		error = true;
-
 
222
		return error;
-
 
223
	}
-
 
224
	
-
 
225
	$("#itemsDescription").removeClass("border-hightlight");
62
        $('#itemsDescription').multiselect({
226
	var itemIdsString = $("#itemsDescription").val();
63
        	includeSelectAllOption: true,
227
	if(itemIdsString == null){
64
        	maxHeight: 200,
228
		alert("Please choose items");
65
        	buttonWidth: '180px',
229
		$("#itemsDescription").addClass("border-highlight");
-
 
230
		error = true;
-
 
231
		return error;
-
 
232
	}
-
 
233
	
-
 
234
	var retailerIdsString = $("#retailerIds").val();
-
 
235
	if(retailerIdsString != undefined){
-
 
236
		var retailerIdsPattern = "^[0-9]{1,10}(?:,[0-9]{1,10})*$";
-
 
237
		if(retailerIdsString.match(retailerIdsPattern) == null){
-
 
238
			alert("Invalid retailerIds["+retailerIdsString+"] pattern");
-
 
239
			$("#retailerIds").addClass("border-highlight");
-
 
240
			error = true;
-
 
241
			return error;
-
 
242
		}
-
 
243
	}
-
 
244
	
-
 
245
	console.log("validation scheme error = " + error);
-
 
246
	return error;
-
 
247
}
-
 
248
 
-
 
249
function schemeDetailsJson(){
66
        	numberDisplayed: 1,
250
	console.log("schemeDetailsJson")
67
        	nonSelectedText: 'Items',
251
	var schemeObject = {};
-
 
252
	schemeObject['name'] = $("form#create-scheme-form input[name=schemeName]").val();
-
 
253
	schemeObject['description'] = $("form#create-scheme-form input[name=description]").val();
-
 
254
	schemeObject['type'] = $("#schemeType option:selected").val();
-
 
255
	schemeObject['amountType'] = $("#amountType option:selected").val();
-
 
256
	schemeObject['amount'] = $('#schemeAmount').val();
-
 
257
	//var startEndDateTime = $("form#create-scheme-form input[name=startEndDateTime]").val().split("-");
-
 
258
	var startDateTimeString = $("form#create-scheme-form input[name=startDateTime]").val();
-
 
259
	console.log("startDateTimeString : "+startDateTimeString);
-
 
260
	var endDateTimeString = $("form#create-scheme-form input[name=endDateTime]").val();
-
 
261
	console.log("endDateTimeString : "+endDateTimeString);
68
        	nSelectedText: ' - Items Selected',
262
	
-
 
263
	schemeObject['startDateTimeString'] = startDateTimeString;
-
 
264
	schemeObject['endDateTimeString'] = endDateTimeString;
69
        	allSelectedText: 'All Items Selected',
265
	schemeObject['itemIds'] = [];
-
 
266
	var itemIds = $("#itemsDescription").val();
-
 
267
	//var itemIds = itemIdsString.substring(1, itemIdsString.length - 1).split(",");
-
 
268
	for(var i = 0; i < itemIds.length; i++){
-
 
269
		schemeObject['itemIds'].push(parseInt(itemIds[i]));
-
 
270
	}
-
 
271
	schemeObject['retailerAll'] = $("form#create-scheme-form input[name=retailerAll]").val();
-
 
272
	if($("#retailerAll").val() == 'true'){
70
        	enableFiltering: true
273
		schemeObject['retailerIds'] = [];
-
 
274
	}else{
71
        });
275
		schemeObject['retailerIds'] = []
-
 
276
		var retailerIds = $("#retailerIds").val().split(",");
-
 
277
		for(var retailerId of retailerIds){
-
 
278
			schemeObject['retailerIds'].push(parseInt(retailerId));
-
 
279
		}
72
    });
280
	}
-
 
281
	return JSON.stringify(schemeObject);
-
 
282
}
73
}
283
 
74
 
284
$('#retailerAll').on('change', function() { 
-
 
285
    if (this.checked) {
-
 
286
    	$('#retailerAll').val('true');
-
 
287
    	$('#retailer-ids').html('');
-
 
288
    }else{
-
 
289
    	$('#retailerAll').val('false');
-
 
290
    	$('#retailer-ids').html('<input placeholder="Retailer Ids" id="retailerIds" name="retailerIds" type="text" value="" pattern="^[0-9]{1,10}(?:,[0-9]{1,10})*$" title="Comma Seperated Positive Integer Retailer Ids" class="form-control input-sm">');
-
 
291
    }
-
 
292
});
-
 
293
 
-
 
294
 
-
 
295
function schemesDownload(){
75
function schemesDownload(){
296
	
-
 
297
	console.log("downloadItemLedgerReport Button clicked")
76
	console.log("downloadItemLedgerReport Button clicked")
298
	
-
 
299
	var startEndDateTime = $('input[name="startEndDateTime"]').val().split("-");
77
	var startDateTime = $('input[name="startDateTime"]').val();
300
	var startDateTime = $.trim(startEndDateTime[0]);
-
 
301
	console.log("startDateTime : "+startDateTime);
78
	console.log("startDateTime : "+startDateTime);
302
	var endDateTime = $.trim(startEndDateTime[1]);
79
	var endDateTime = $('input[name="endDateTime"]').val();
303
	console.log("endDateTime : "+endDateTime);
80
	console.log("endDateTime : "+endDateTime);
304
	doAjaxGetDownload(context+"/schemes/download?startDateTime="+startDateTime+"&endDateTime="+endDateTime,
81
	doAjaxGetDownload(context+"/schemes/download?startDateTime="+startDateTime+"&endDateTime="+endDateTime,
305
			 "SchemesReport.xlsx");
82
			"SchemesReport.xlsx");
306
}
83
}
307
 
84
 
308
function getSchemesNextItems(start, end){
85
function getSchemesNextItems(start, end){
309
	console.log(start);
86
	console.log(start);
310
	console.log(end);
87
	console.log(end);
Line 321... Line 98...
321
		}
98
		}
322
	    $('#schemes-table').html(response);
99
	    $('#schemes-table').html(response);
323
	    $('#scheme-details-container').html('');
100
	    $('#scheme-details-container').html('');
324
	    $("#schemes-paginated .previous").prop('disabled', false);
101
	    $("#schemes-paginated .previous").prop('disabled', false);
325
	});
102
	});
326
	
-
 
327
    
103
    
328
}
104
}
329
 
105
 
330
 
106
 
331
function getSchemesPreviousItems(start, end, pre){
107
function getSchemesPreviousItems(start, end, pre){
Line 340... Line 116...
340
		{
116
		{
341
			$("#schemes-paginated .previous").prop('disabled', true);
117
			$("#schemes-paginated .previous").prop('disabled', true);
342
		}
118
		}
343
	});
119
	});
344
	
120
	
-
 
121
	
345
}
122
}
346
 
123
 
347
function loadSchemeDetails(schemeId, domId){
124
function loadSchemeDetails(schemeId, domId){
348
	doAjaxRequestHandler(context+"/getSchemeById?schemeId="+schemeId, "GET", function(response){
125
	doAjaxRequestHandler(context+"/getSchemeById?schemeId="+schemeId, "GET", function(response){
349
		$('#' + domId).html(response);
126
		$('#' + domId).html(response);
Line 355... Line 132...
355
	doAjaxRequestHandler(context+"/activeSchemeById?schemeId="+schemeId
132
	doAjaxRequestHandler(context+"/activeSchemeById?schemeId="+schemeId
356
	        +"&offset="+offset, "PUT", function(response){
133
	        +"&offset="+offset, "PUT", function(response){
357
		$('#' + domId).html(response);
134
		$('#' + domId).html(response);
358
		$('#scheme-details-container').html('');
135
		$('#scheme-details-container').html('');
359
	});
136
	});
-
 
137
	
360
}
138
}
361
 
139
 
362
function expireScheme(schemeId, offset, domId){
140
function expireScheme(schemeId, offset, domId){
363
	doAjaxRequestHandler(context+"/expireSchemeById?schemeId="+schemeId
141
	doAjaxRequestHandler(context+"/expireSchemeById?schemeId="+schemeId
364
	        +"&offset="+offset, "PUT", function(response){
142
	        +"&offset="+offset, "PUT", function(response){
365
		$('#' + domId).html(response);
143
		$('#' + domId).html(response);
366
		$('#scheme-details-container').html('');
144
		$('#scheme-details-container').html('');
367
	});
145
	});
368
	
-
 
369
}
146
}
370
 
147
 
371
function loadScheme(domId){
148
function loadScheme(domId){
372
	doAjaxRequestHandler(context+"/createScheme", "GET", function(response){
149
	doAjaxRequestHandler(context+"/createScheme", "GET", function(response){
373
		$('#' + domId).html(response);
150
		$('#' + domId).html(response);
374
	});
151
	});
-
 
152
	 
375
}
153
}
376
 
154
 
377
function loadItemsDescriptionByBrand(domId, brand){
155
function loadItemsDescriptionByBrand(domId, brand){
378
	doAjaxRequestHandler(context+"/getItemsByBrand?brand="+brand, "GET", function(response){
156
	doAjaxRequestHandler(context+"/getItemsByBrand?brand="+brand, "GET", function(response){
379
		$('#' + domId).html(response);
157
		$('#' + domId).html(response);
380
		configureItemsDescriptionDropDown();
158
		configureItemsDescriptionDropDown();
381
	});
159
	});
382
	
160
	
383
}
161
}
384
 
162
 
385
function configureItemsDescriptionDropDown(){
-
 
386
	$(document).ready(function() {
-
 
387
        $('#itemsDescription').multiselect({
-
 
388
        	includeSelectAllOption: true,
-
 
389
        	maxHeight: 200,
-
 
390
        	buttonWidth: '180px',
-
 
391
        	numberDisplayed: 1,
-
 
392
        	nonSelectedText: 'Items',
-
 
393
        	nSelectedText: ' - Items Selected',
-
 
394
        	allSelectedText: 'All Items Selected',
-
 
395
        	enableFiltering: true
-
 
396
        });
-
 
397
    });
-
 
398
}
-
 
399
 
-
 
400
function schemes(domId){
163
function schemes(domId){
401
	doAjaxRequestHandler(context+"/getSchemes", "GET", function(response){
164
	doAjaxRequestHandler(context+"/getSchemes", "GET", function(response){
402
		$('#' + domId).html(response);
165
		$('#' + domId).html(response);
403
	});
166
	});
404
}
167
}