// Table page $(document).ready(function() { // ------------------------------ // Settings // ------------------------------ // var AJAX_URL = 'https://localhost:3002'; var selectAllChk = '#select-all'; var chkExport = '.checkbox-export'; var chkDelete = '.checkbox-delete'; var counter = '.actions-counter'; var counterExport = '.actions-export-counter'; var deleteBtn = '.js-delete-items'; var exportBtn = '.js-export-items' // Action block var actionView = '.action-block-view'; var actionEdit = '.action-block-edit'; var actionDelete = '.action-block-delete'; function actionData(element) { var id = parseInt($(element).closest('tr').find('.checkbox').prop('id')); var type = $(element).data().type; var elementDetails = { id: id, type: type }; return elementDetails; } function updateCounter(chkBoxSelector, button) { var count = 0; var presentSelected = $(chkBoxSelector + ':checked').length > 0 ? false : true; var selectedLength = $(chkBoxSelector).each(function(index, item) { $(item).prop('checked') === true ? count++ : '' }); $(button).find(counter).text(count); $(button).prop('disabled', presentSelected); } function deleteData() { var items = { id: [], type: 'deleteAll' }; var selectedLength = $('.checkbox-delete').each(function(index, item) { $(item).prop('checked') === true ? items.id.push($(item).closest('tr').prop('id')) : '' }); return items; } function exportData() { var items = { id: [], type: 'exportAll' }; var selectedLength = $('.checkbox-export').each(function(index, item) { $(item).prop('checked') === true ? items.id.push($(item).closest('tr').prop('id')) : '' }); console.log(items); return items; } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function ajaxPost(url, data) { $.ajax({ headers: { 'X-CSRFToken': getCookie('csrftoken') }, type: "POST", //rest Type dataType: 'json', //mispelled data: JSON.stringify(data), url: url, async: true, contentType: "application/json; charset=utf-8", success: function (msg) { var ids = data.id console.log(ids) if (data.type === 'deleteAll') { removeItems(ids) updateButtons() } if (data.type === 'exportAll') { removeItems(ids) updateButtons() } // window.location.reload() // window.location.replace(window.location.href); } }) } function removeItems (ids) { ids.forEach(function(item) { $('.form').find('tr').each(function(index, itemRow) { $(itemRow).attr('id') === item ? $(itemRow).remove() : '' }) }) } function updateButtons () { updateCounter(chkExport, exportBtn); updateCounter(chkDelete, deleteBtn); } updateButtons() // $(selectAllChk).click(function () { // $(chk).prop('checked', $(this).prop('checked')); // updateCounter(); // }); $(chkDelete).on('click', updateButtons); $(chkExport).on('click', updateButtons); $(deleteBtn).on('click', function(e) { var data = deleteData(); ajaxPost('/news/', data); }); $(exportBtn).on('click', function(e) { var data = exportData(); ajaxPost('/news/', data); }); $(actionDelete).on('click', function(e) { // e.preventDefault(); updateCounter(); // var data = actionData(this); // console.log(data); // ajaxPost('/news/', data); }); }); function getUrlParameter(name) { name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); var results = regex.exec(location.search); return results === null ? null : decodeURIComponent(results[1].replace(/\+/g, ' ')); }; $('.text-white').on('click', function(e) { e.preventDefault(); var from = getUrlParameter('from_date'); var to = getUrlParameter('to_date'); var media = getUrlParameter('media'); var word = getUrlParameter('search'); var order = getUrlParameter('order_by'); var reverse = getUrlParameter('reverse'); var res = '?'; if (from){res += 'from_date=' + from + '&'} if (to){res += 'to_date=' + to + '&'} if (media){res += 'media=' + media + '&'} if (word){res += 'search=' + word + '&'} var orderName = $(this).attr('href').replace("?order_by=", "") if (order == orderName){res +='order_by=' + orderName + '&' + 'reverse=' + '1&'} else { res += 'order_by=' + orderName + '&' } window.location.href = res; }) // Index Page $(document).ready(function() { $('.multiselect').fastselect(); $('#publish-date').datepicker(); });