Subversion Repositories SmartDukaan

Rev

Rev 26054 | Rev 26089 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
26053 amit.gupta 1
$(document).on('click', 'a.list-group-item', function() {
26054 amit.gupta 2
	startDate=undefined;
3
	endDate=undefined;
26063 amit.gupta 4
	reportTitle = $(this).find('h4').html();
5
	reportUrl = this.href;
26054 amit.gupta 6
	$reportModal = $('#report-modal');
26063 amit.gupta 7
	$reportModal.find('h4.modal-title').html(reportTitle);
26053 amit.gupta 8
	if($(this).data("paramslist") == undefined) {
26054 amit.gupta 9
		return true;
26053 amit.gupta 10
	} else {
11
		var paramsList = $(this).data("paramslist");
12
		paramsMap = {};
13
		renderInputDialog(paramsList);
14
		$reportModal.modal('show');
15
		return false;
16
	}
17
});
26063 amit.gupta 18
$(document).on('click', 'button.download-report', function(){
26054 amit.gupta 19
	var reportParams = {};
26063 amit.gupta 20
	$inputContainer.find("input").each(function(idx, inputElement){
26054 amit.gupta 21
		var inputName = $(inputElement).attr("name");
22
		if($(inputElement).val()=="") {
23
			bootbox.alert(`${params.displayName} is required`);
24
			return false;
25
		}
26
		param = paramsMap[inputName];
27
		if(param.type=='DATE') {
28
			reportParams[`MANUAL_${inputName}`] = startDate;
29
		} else if(param.type=='DATE_RANGE') {
30
			reportParams[`MANUAL_${inputName}_FROMDATE`] = startDate;
31
			reportParams[`MANUAL_${inputName}_TODATE`] = endDate;
32
		} else {
33
			reportParams[`MANUAL_${inputName}`] = $(inputElement).val();
34
		}
35
	});
26063 amit.gupta 36
	var jsonParams = JSON.stringify(reportParams);
37
	doAjaxPostDownload(reportUrl, jsonParams, `${reportTitle}.csv`);
38
 
26054 amit.gupta 39
});
26053 amit.gupta 40
function renderInputDialog(paramsList) {
26054 amit.gupta 41
	$reportModal = $('div#report-modal');
42
	$inputContainer = $reportModal.find('div.modal-body');
43
	//Clear container first
44
	$inputContainer.html('');
26053 amit.gupta 45
	paramsList.forEach(function(value) {
46
		paramsMap[value.name] = value;
47
		renderInput($inputContainer, value);
48
	});
49
}
50
 
26054 amit.gupta 51
function renderInput($inputContainer, param) {
52
	console.log(param.type);
26053 amit.gupta 53
	switch (param.type) {
54
		case "DATE": {
26054 amit.gupta 55
			$inputContainer.append(`<div class="form-group">
26053 amit.gupta 56
									<label>${param.displayText}</label> 
57
				   	  				<input name="${param.name}" type="text" value="" class="form-control input-sm">
58
								</div>`);
26063 amit.gupta 59
			$inputContainer.find(`input[name="${param.name}"]`).daterangepicker(getSingleDatePicker(),reporticoDRCallback);
60
			reporticoDRCallback(moment(), moment());
26054 amit.gupta 61
			return;
26053 amit.gupta 62
		}
63
		case "DATE_RANGE" : {
26054 amit.gupta 64
			$inputContainer.append(`<div class="form-group">
26053 amit.gupta 65
					<label>${param.displayText}</label> 
66
					<input name="${param.name}" type="text" value="" class="form-control input-sm">
67
			</div>`);
26063 amit.gupta 68
			$inputContainer.find(`input[name="${param.name}"]`).daterangepicker(getRangedDatePicker(true),reporticoDRCallback);
69
			reporticoDRCallback(moment(), moment());
26054 amit.gupta 70
			return;
26053 amit.gupta 71
		}
72
		case "STRING": {
26054 amit.gupta 73
			$inputContainer.append(`<div class="form-group">
26053 amit.gupta 74
					<label>${param.displayText}</label> 
75
					<input name="${param.name}" type="text" value="" class="form-control input-sm">
76
			</div>`);
26054 amit.gupta 77
			return;
26053 amit.gupta 78
		}
79
		case "LIST" : {
26054 amit.gupta 80
			$inputContainer.append(`<div class="form-group">
81
					<label>${param.displayText}(Comma Separated)</label> 
26053 amit.gupta 82
					<input name="${param.name}" type="text" value="" class="form-control input-sm">
83
			</div>`);
26054 amit.gupta 84
			return;
26053 amit.gupta 85
		}
86
	}
87
}