function GenerateReports(reportOptions) { var opts = reportOptions; var elements = { indicator: $('#indicator'), customReportForm: $('#customReportInput'), saveDialog: $('#saveDialog'), saveReportForm: $('#saveReportForm'), resultsDiv: $('#resultsDiv') }; GenerateReports.prototype.init = function () { $('#selectDiv input').click(function () { $('div.select-toggle').hide(); var selectedItem = $(this).attr('id'); if (selectedItem == 'results_list') { $('#listOfDiv').show(); } else if (selectedItem != 'results_utilization'){ $('#aggregateDiv').show(); } }); wireUpAutocompleteFilters(); $('.dateinput').click(function () { $('#range_within').attr('checked', 'checked'); }); $('#btnCustomReport').click(function (e) { e.preventDefault(); var before = function () { elements.indicator.show().insertBefore(elements.resultsDiv); elements.resultsDiv.html(''); }; var after = function (data) { elements.indicator.hide(); elements.resultsDiv.html(data); }; ajaxPost(elements.customReportForm, opts.customReportUrl, before, after); }); $('#showHideCustom').click(function (e) { e.preventDefault(); $('#customReportInput-container').toggle(); }); $(document).on('click', '#btnPrint', function (e) { e.preventDefault(); var url = opts.printUrl + elements.customReportForm.serialize(); window.open(url); }); $(document).on('click', '#btnCsv', function (e) { e.preventDefault(); var url = opts.csvUrl + elements.customReportForm.serialize(); window.open(url); }); elements.saveDialog.on('shown.bs.modal', function () { $('#saveReportName').focus(); }); $(document).on('click', '#btnSaveReportPrompt', function (e) { e.preventDefault(); e.stopPropagation(); elements.saveDialog.find(':text').val(''); elements.saveDialog.modal('show'); }); $('.save').on('click', function () { $(this).closest('form').submit(); }); $('#saveReportForm').submit(function (e) { handleSave(e); }); $('#btnSaveReport').click(function (e) { handleSave(e); }); }; function wireUpAutocompleteFilters() { var selectFilterItem = function (filterDiv, selectedId, selectedName) { filterDiv.find('.filter-id').val(selectedId); filterDiv.find('.selected').text(selectedName).show(); filterDiv.find('.filter-input').hide(); }; $("#user-filter").userAutoComplete(opts.userAutocompleteUrl, function (ui) { selectFilterItem($('#user-filter-div'), ui.item.value, ui.item.label); }); $("#participant-filter").userAutoComplete(opts.userAutocompleteUrl, function (ui) { selectFilterItem($('#participant-filter-div'), ui.item.value, ui.item.label); }); } var handleSave = function (e) { e.preventDefault(); var before = function () { }; var after = function (data) { elements.saveDialog.modal('hide'); $('#saveMessage').show().delay(3000).fadeOut(1000); }; ajaxPost($('#customReportInput, #saveReportForm'), opts.saveUrl, before, after); }; }