123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- (function () {
- var origData;
- var setupButtonClickOnRefreshedProperties = function () {
- $('#formRefreshCAS button').on('click', function (e) {
- e.preventDefault();
-
- var myModal = $('#refreshModal').modal({
- keyboard: false,
- backdrop: 'static'
- });
- var primaryButton = myModal.find('.modal-footer button.btn-primary');
-
- primaryButton.prop('disabled', true).text('Refreshing...');
- $.post(e.target.parentNode.action, function (data) {
- if (data.length !== 0) {
- $('#refreshModal-label').text('Refreshed Properties');
- myModal.find('.modal-content .modal-body').html(
- '<pre>' + data + '</pre>' +
- '<p>Click "OK" to reload page.</p>'
- );
- } else {
- myModal.find('.modal-header .modal-title').text('Properties Refreshed');
- myModal.find('.modal-content .modal-body').html(
- '<p>Click "OK" to reload page.</p>'
- );
- }
- })
- .done(function () {
- primaryButton.prop('disabled', false).text('Reload page').on('click', function (e) {
- e.preventDefault();
- window.location.reload();
- });
- })
- .fail(function (jqXHR) {
- $('#refreshModal-label').text('Problem With Refreshing Properties');
- myModal.find('.modal-content .modal-body').html(
- '<div class="alert alert-warning"><strong>Status: ' + jqXHR.status + '</strong><p/>Unable to refresh the properties. Please try again.</div>'
- );
- primaryButton.prop('disabled', false).text('OK').on('click', function (e) {
- e.preventDefault();
- myModal.modal('hide');
- });
- });
- });
- };
- var createDataTable = function () {
- $('#viewConfigsTable').DataTable({
- 'autoWidth': false,
- 'initComplete': function (settings, json) {
- if (!json) {
- $('#loadingMessage').hide();
- $('#viewConfigError').show();
- $('#view-configuration').hide();
- } else {
- $('#loadingMessage').hide();
- $('#viewConfigError').hide();
- $('#view-configuration').show();
- }
- },
- 'drawCallback': function () {
- var api = this.api();
- if (api.page.info().pages > 1) {
- $('#' + $.fn.dataTable.tables()[0].id + '_paginate')[0].style.display = 'block';
- } else {
- $('#' + $.fn.dataTable.tables()[0].id + '_paginate')[0].style.display = 'none';
- }
- if (updateEnabled) {
- editTable();
- }
- },
- 'processing': true,
- 'ajax': {
- 'url': urls.getConfiguration,
- 'dataSrc': function (json) {
- var returnData = [];
- for (var item in json) {
- returnData.push({
- 'key': '<code>' + item + '</code>',
- 'value': '' + json[item] + ''
- });
- }
- return returnData;
- }
- },
- 'columns': [
- {'data': 'key', 'className': 'col-xs-6 key'},
- {'data': 'value', 'className': 'col-xs-6 value'}
- ],
- 'pageLength': 50
- });
- };
- var getRowData = function (row) {
- var tds = row.find('td');
- var tmp = {};
- $.each(tds, function (i) {
- if (i % 2 === 0) {
- tmp.key = $(this).text();
- } else {
- tmp.value = $(this).text();
- }
- });
- return tmp;
- };
- var editTable = function () {
- $('#viewConfigsTable').editableTableWidget({editor: $('<textarea>')});
- $('#viewConfigsTable td').on('focus', function () {
- origData = getRowData($(this).closest('tr'));
- });
- $('#viewConfigsTable tr').on('change', function () {
- var newChanges = getRowData($(this));
- var data = {old: origData, new: newChanges};
- $.ajax({url: urls.updateConfiguration, data: JSON.stringify(data), type: 'POST', contentType: 'application/json'})
- .fail(function () {
- var result = 'Failed to save settings.';
- $('#alertWrapper').addClass('alert-warning');
- $('#alertWrapper').removeClass('alert-success');
- $('#alertWrapper').text(result);
- $('#alertWrapper').show();
- })
- .success(function () {
- var result = 'Saved settings successfully.';
- $('#alertWrapper').removeClass('alert-warning');
- $('#alertWrapper').addClass('alert-success');
- $('#resultText').text(result);
- $('#alertWrapper').show();
- });
- });
- };
-
- (function init () {
- createDataTable();
- setupButtonClickOnRefreshedProperties();
- })();
-
- return {
-
- };
- })();
|