Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $(function () {
- dimensionJS.global_init.start();
- });
- var dimensionJS = {
- global_init: {
- start: function () {
- for (var section in dimensionJS.global_init.sections) {
- dimensionJS.global_init.sections[section]();
- }
- },
- sections: {
- navBar: function () {
- $('.nav > li > a[href="' + window.location.pathname + '"]').parent().addClass('active');
- $('.left-nav-toggle a').on('click', function (event) {
- event.preventDefault();
- $('body').toggleClass('nav-toggle');
- });
- $(window).resize(_.debounce(function () {
- if ($(window).width() > 767) {
- $('body').removeClass('nav-toggle');
- }
- }, 500));
- $('.nav-second').on('show.bs.collapse', function () {
- $('.nav-second.in').collapse('hide');
- });
- $('.panel-toggle').on('click', function (event) {
- event.preventDefault();
- var hpanel = $(event.target).closest('div.panel');
- var icon = $(event.target).closest('i');
- var body = hpanel.find('div.panel-body');
- var footer = hpanel.find('div.panel-footer');
- body.slideToggle(300);
- footer.slideToggle(200);
- icon.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');
- hpanel.toggleClass('').toggleClass('panel-collapse');
- setTimeout(function () {
- hpanel.resize();
- hpanel.find('[id^=map-]').resize();
- }, 50);
- });
- $('.panel-close').on('click', function (event) {
- event.preventDefault();
- var hpanel = $(event.target).closest('div.panel');
- hpanel.remove();
- });
- },
- formValidator: function () {
- $('form').bind('invalid-form.validate', function (form, validator) {
- var msg = '';
- for (var i = 0; i < validator.errorList.length; i++) {
- msg += validator.errorList[i].message + ((i < validator.errorList.length) ? '<br />' : '');
- }
- toastr['warning'](msg, 'Warning');
- });
- },
- toastr: function () {
- toastr.options = {
- positionClass: 'toast-bottom-right',
- progressBar: true,
- showEasing: 'swing',
- timeOut: 2500
- };
- },
- dataTables: function () {
- $.extend(true, $.fn.dataTable.defaults, {
- dom: '<"panel panel-filled"<"panel-body"<"row"<"col-sm-2"l><"col-sm-10"B>>>><"panel panel-filled"<"panel-body"<"table-responsive"t>>><"panel panel-filled"<"panel-body"<"row"<"col-sm-5"i><"col-sm-7"p>>>>',
- lengthMenu: [[5, 10, 25, 50, 100, 200, 400], [5, 10, 25, 50, 100, 200, 400]],
- pageLength: 25,
- language: {
- paginate: {
- next: '<i class="fa fa-chevron-right"></i>',
- previous: '<i class="fa fa-chevron-left"></i>'
- },
- aria: {
- paginate: {
- next: 'Next',
- previous: 'Previous'
- }
- }
- },
- buttons: [
- { extend: 'copy', className: 'btn-sm' },
- { extend: 'csv', className: 'btn-sm' },
- { extend: 'excel', className: 'btn-sm' },
- { extend: 'pdf', className: 'btn-sm' },
- { extend: 'print', className: 'btn-sm' }
- ],
- processing: true,
- paging: true,
- deferRender: true,
- responsive: true,
- autoWidth: false,
- serverSide: true,
- ajax: {
- contentType: 'application/json; charset=utf-8',
- },
- initComplete: function (settings) {
- var self = dimensionJS.dataTables.initiated[settings.sInstance];
- self['jsonPostExtension'] = {};
- self.jsonPostExtension['dimensionJSON'] = {};
- self.columns().every(function (index) {
- self.jsonPostExtension.dimensionJSON[self.settings().init().columns[index].data] = {};
- currColumn = this;
- if ($(currColumn.footer()).find('.searchtype-string').length != 0) {
- dimensionJS.helpers.dataTables.searchTypes.string(currColumn);
- }
- else if ($(currColumn.footer()).find('.searchtype-daterange').length != 0) {
- alert('datetime'); //wip
- }
- });
- }
- });
- for (var dataTable in dimensionJS.dataTables) {
- if ($('#' + dataTable).length) {
- dimensionJS.dataTables.initiated[dataTable] = dimensionJS.dataTables[dataTable]();
- }
- }
- }
- }
- },
- dataTables: {
- initiated: {}, // Initialisatiion container for datatables on screen
- auditLogEntries: function () {
- return $('#auditLogEntries').DataTable({
- ajax: {
- type: 'POST',
- url: '/Administration/AuditLog/DataHandler',
- data: function (data) {
- return dimensionJS.helpers.dataTables.jsonPostDataExtender('auditLogEntries', data);
- }
- },
- columns: [
- {
- data: 'Timestamp',
- render: function (value) {
- return dimensionJS.helpers.formatUnixDateTime(value);
- }
- },
- { data: 'UserName' },
- { data: 'IPAddress' },
- { data: 'AreaAccessed' },
- { data: 'ControllerAccessed' },
- { data: 'ActionAccessed' },
- ],
- order: [[0, 'desc']]
- });
- },
- versionLogEntries: function () {
- return $('#versionLogEntries').DataTable({
- ajax: {
- type: 'POST',
- url: '/Administration/VersionLog/DataHandler',
- data: function (data) {
- return dimensionJS.helpers.dataTables.jsonPostDataExtender('versionLogEntries', data);
- }
- },
- columns: [
- {
- data: 'Timestamp',
- render: function (value) {
- return dimensionJS.helpers.formatUnixDateTime(value);
- }
- },
- { data: 'UserName' },
- {
- data: 'VersionNumber',
- render: function (value) {
- return dimensionJS.helpers.twoDecimalPlaces(value);
- }
- },
- {
- data: 'Details',
- render: function (value) {
- return dimensionJS.helpers.replaceLineBreaks(value);
- }
- }
- ],
- order: [[0, 'desc']]
- });
- }
- },
- ajaxFormActions: {
- onBegin: function (obj) {
- $(obj).find(':input').prop('disabled', true);
- },
- onComplete: function (obj) {
- $(obj).find(':input').prop('disabled', false);
- },
- onFailure: function (msg) {
- toastr['error'](msg, 'Error');
- },
- onSuccess: function (obj, dataTable, msg) {
- toastr['success'](msg, 'Success');
- dimensionJS.dataTables.initiated[dataTable].draw();
- $('.modal.in').modal('hide');
- $(obj).trigger('reset');
- }
- },
- helpers: {
- raiseAlert: function () {
- alert('Alert');
- },
- returnTestString: function () {
- return 'TestString';
- },
- returnTestObj: function () {
- var testObj = {
- testItem1: {
- subItem1: 1,
- subItem2: 2,
- subItem3: 3
- }
- };
- return testObj;
- },
- twoDecimalPlaces: function (value) {
- if (value === null) {
- return '';
- }
- else {
- return parseFloat(value).toFixed(2);
- }
- },
- formatUnixDateTime: function (value) {
- if (value === null) {
- return '';
- }
- else {
- var pattern = /Date\(([^)]+)\)/;
- var result = pattern.exec(value);
- var dateTime = parseFloat(result[1]);
- return moment(dateTime).format('DD/MM/YYYY HH:mm:ss');
- }
- },
- replaceLineBreaks: function (value) {
- if (value === null) {
- return '';
- }
- else {
- return value.replace(/\r\n|\r|\n/g, '<br />');
- }
- },
- dataTables: {
- jsonPostDataExtender: function (dataTable, obj) {
- if (dataTable in dimensionJS.dataTables.initiated) {
- obj = $.extend({}, obj, dimensionJS.dataTables.initiated[dataTable].jsonPostExtension);
- }
- return JSON.stringify(obj);
- },
- searchTypes: {
- string: function (obj) {
- $('input', obj.footer()).on('keyup change', function () {
- if (obj.search() !== this.value) {
- obj.search(this.value).draw();
- }
- });
- },
- dateRange: function (dataTable, obj, column) {
- $(obj).find('.to, .from').each(function () {
- $(this).datetimepicker({
- inline: true,
- useCurrent: false,
- format: 'DD/MM/YYYY HH:mm',
- minDate: moment('2017-01-01'),
- maxDate: moment().endOf('day')
- });
- $(this).datetimepicker().on('dp.change', function (value) {
- if ($(this).hasClass('from')) {
- $(obj).find('.to').data('DateTimePicker').minDate(value.date);
- dataTable.jsonPostExtension.dimensionJSON[column]['from'] = value.date;
- }
- else if ($(this).hasClass('to')) {
- $(obj).find('.from').data('DateTimePicker').maxDate(value.date);
- dataTable.jsonPostExtension.dimensionJSON[column]['to'] = value.date;
- }
- });
- });
- }
- }
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement