Subversion Repositories SmartDukaan

Rev

Rev 26054 | Rev 26089 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

$(document).on('click', 'a.list-group-item', function() {
        startDate=undefined;
        endDate=undefined;
        reportTitle = $(this).find('h4').html();
        reportUrl = this.href;
        $reportModal = $('#report-modal');
        $reportModal.find('h4.modal-title').html(reportTitle);
        if($(this).data("paramslist") == undefined) {
                return true;
        } else {
                var paramsList = $(this).data("paramslist");
                paramsMap = {};
                renderInputDialog(paramsList);
                $reportModal.modal('show');
                return false;
        }
});
$(document).on('click', 'button.download-report', function(){
        var reportParams = {};
        $inputContainer.find("input").each(function(idx, inputElement){
                var inputName = $(inputElement).attr("name");
                if($(inputElement).val()=="") {
                        bootbox.alert(`${params.displayName} is required`);
                        return false;
                }
                param = paramsMap[inputName];
                if(param.type=='DATE') {
                        reportParams[`MANUAL_${inputName}`] = startDate;
                } else if(param.type=='DATE_RANGE') {
                        reportParams[`MANUAL_${inputName}_FROMDATE`] = startDate;
                        reportParams[`MANUAL_${inputName}_TODATE`] = endDate;
                } else {
                        reportParams[`MANUAL_${inputName}`] = $(inputElement).val();
                }
        });
        var jsonParams = JSON.stringify(reportParams);
        doAjaxPostDownload(reportUrl, jsonParams, `${reportTitle}.csv`);
        
});
function renderInputDialog(paramsList) {
        $reportModal = $('div#report-modal');
        $inputContainer = $reportModal.find('div.modal-body');
        //Clear container first
        $inputContainer.html('');
        paramsList.forEach(function(value) {
                paramsMap[value.name] = value;
                renderInput($inputContainer, value);
        });
}

function renderInput($inputContainer, param) {
        console.log(param.type);
        switch (param.type) {
                case "DATE": {
                        $inputContainer.append(`<div class="form-group">
                                                                        <label>${param.displayText}</label> 
                                                                        <input name="${param.name}" type="text" value="" class="form-control input-sm">
                                                                </div>`);
                        $inputContainer.find(`input[name="${param.name}"]`).daterangepicker(getSingleDatePicker(),reporticoDRCallback);
                        reporticoDRCallback(moment(), moment());
                        return;
                }
                case "DATE_RANGE" : {
                        $inputContainer.append(`<div class="form-group">
                                        <label>${param.displayText}</label> 
                                        <input name="${param.name}" type="text" value="" class="form-control input-sm">
                        </div>`);
                        $inputContainer.find(`input[name="${param.name}"]`).daterangepicker(getRangedDatePicker(true),reporticoDRCallback);
                        reporticoDRCallback(moment(), moment());
                        return;
                }
                case "STRING": {
                        $inputContainer.append(`<div class="form-group">
                                        <label>${param.displayText}</label> 
                                        <input name="${param.name}" type="text" value="" class="form-control input-sm">
                        </div>`);
                        return;
                }
                case "LIST" : {
                        $inputContainer.append(`<div class="form-group">
                                        <label>${param.displayText}(Comma Separated)</label> 
                                        <input name="${param.name}" type="text" value="" class="form-control input-sm">
                        </div>`);
                        return;
                }
        }
}