Skip to content

Instantly share code, notes, and snippets.

@KarlBaumann
Created October 30, 2016 21:43
Show Gist options
  • Save KarlBaumann/0be4bb0e445ba46e4466630c56b66664 to your computer and use it in GitHub Desktop.
Save KarlBaumann/0be4bb0e445ba46e4466630c56b66664 to your computer and use it in GitHub Desktop.
var apiUrl = ajaxurl + '?action=MediaAccessManager&process=loadMatrix&page={page+1}&size={size}&{sortList:sort}&{filterList:filter}';
jQuery(function ($) {
var UserTracking = {
commonSetup: function () {
$('#confirm-delete').on('click', '.btn-ok', function (e) {
var $modalDiv = $(e.delegateTarget);
var data = {
'action': 'MediaAccessManager',
'process': 'autoAssignRights'
};
$(this).addClass('disabled');
$.post(ajaxurl, data).done(function () {
$('table').trigger('pagerUpdate');
$modalDiv.modal('hide').removeClass('loading');
});
$modalDiv.addClass('loading');
});
},
initTablesorter: function () {
var tab = $('#tab1');
var table = tab.find('table');
if (table[0].config) {
table.trigger('applyWidgets');
} else {
table.tablesorter({
//debug: true,
theme: 'blue',
dateFormat: "yyyy-mm-dd",
initialized: function () {
// don't remove busy icon on sortEnd
table.off('sortEnd' + table[0].config.namespace);
setTimeout(function () {
$(window).resize();
}, 500);
},
showProcessing: true,
widthFixed: true,
sortLocaleCompare: true,
widgets: ["columnSelector", "filter", "zebra", "pager", 'stickyHeaders'],
widgetOptions: {
resizable_throttle: true,
columnSelector_saveColumns: true,
columnSelector_mediaquery: false,
columnSelector_container: tab.find('.popover-target'),
pager_selectors: {
container: tab.find('.pager')
},
pager_ajaxUrl: apiUrl,
pager_customAjaxUrl: function (table, url) {
var c = table.config;
c.$tbodies.eq(0).empty();
$.tablesorter.isProcessing(c.table, true);
return url;
},
pager_ajaxProcessing: function (result, table, xhr) {
if (result) {
result.rows = $(result.rows);
return result;
}
},
pager_processAjaxOnInit: true,
pager_output: 'Displaying page {page} (row {startRow} to {endRow}) ' +
'from {filteredRows} filtered (total {totalRows}) rows.',
pager_updateArrows: true,
pager_page: 0,
pager_size: 25,
pager_savePages: false,
pager_storageKey: 'tablesorter-pager',
pager_pageReset: 0,
pager_fixedHeight: false,
pager_removeRows: true,
pager_countChildRows: false,
filter_serversideFiltering: false,
filter_reset: 'button.reset',
stickyHeaders_offset : 30,
stickyHeaders_cloneId : ''
}
}).on('filterStart', function () {
$('button.reset').fadeIn();
}).on('click', 'td.truncate', function () {
$(this).toggleClass('show');
}).on('pagerComplete', function () {
//updating media rights on clicks
$('td:not(.no-select)').click(function () {
$(this).toggleClass('green');
var row = $(this).closest('tr');
var mediaID = row.children().eq(0).text();
var selectedCells = row.find('td.green');
var selectedRightArray = [];
selectedCells.each(function (idx) {
var rightID = table.find("th").eq($(this).index()).attr('data-id');
selectedRightArray.push(rightID);
});
var data = {
"attachment-rights": selectedRightArray,
action: 'MediaAccessManager',
itemID: $.trim(mediaID),
nonce: MediaAccessManager.nonce,
process: 'save',
source: 'matrix'
};
$.post(MediaAccessManager.ajaxurl, data);
});
//Highlighting column headers of hovered cells
$("table").delegate('td', 'mouseover mouseleave', function (e) {
var cell = $(this);
var column = table.find('th,td').eq(cell.index() + 1);
if (e.type == 'mouseover') {
column.addClass("hover");
} else {
column.removeClass("hover");
}
});
}
);
}
}
};
UserTracking.commonSetup();
UserTracking.initTablesorter();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment