1"use strict"; 2 3kQuery(function($) { 4 5 //delete items button 6 var delete_items_btn = '#toolbar-delete'; 7 8 //use the toolbar delete button data for all delete buttons 9 var request_params = $(delete_items_btn).data('params'); 10 var request_prompt = $(delete_items_btn).data('prompt'); 11 12 //delete item button 13 var delete_item_btn = 'a[data-action="delete-item"]'; 14 15 //checkboxes 16 var item_checkbox = 'input[name="item-select"]'; 17 18 var deletable, deletable_container; 19 20 var getTreeDeletableContainers = function(elem) 21 { 22 var containers = []; 23 24 if (elem.data('document')) 25 { 26 var uuid = elem.data('document'); 27 28 if ($('tr.footable-row-detail [data-document="' + uuid + '"]').length) { 29 containers.push($('tr.footable-row-detail [data-document="' + uuid + '"]').closest('tr')); 30 } 31 32 if ($('tr.docman_item').find('[data-document="' + uuid + '"]').length) { 33 containers.push($('tr.docman_item').filter('[data-document="' + uuid + '"]')); 34 } 35 } 36 37 return containers; 38 }; 39 40 var getTableDeletableContainers = function(elem) 41 { 42 var containers = []; 43 44 if (elem.data('document')) 45 { 46 var uuid = elem.data('document'); 47 48 if ($('tr.docman_item[data-document="' + uuid + '"]').next().hasClass('footable-row-detail')) { 49 containers.push($('tr.docman_item[data-document="' + uuid + '"]').next()); 50 } 51 52 if ($('tr.docman_item').find('[data-document="' + uuid + '"]').length) { 53 containers.push($('tr.docman_item').filter('[data-document="' + uuid + '"]')); 54 } 55 } 56 57 return containers; 58 } 59 60 //gallery view 61 if($('.k-ui-namespace.com_docman .koowa_media--gallery').length) { 62 deletable = delete_item_btn; 63 deletable_container = '.koowa_media__item'; 64 // tree table layout 65 } else if($('.k-ui-namespace.com_docman .docman_list_layout--tree .docman_table_layout').length) { 66 deletable = delete_item_btn; 67 deletable_container = getTreeDeletableContainers; 68 // table layout 69 } else if ($('.k-ui-namespace.com_docman .docman_table_layout').length) { 70 deletable = delete_item_btn; 71 deletable_container = getTableDeletableContainers; 72 } else { 73 deletable = delete_item_btn; 74 deletable_container = null; 75 } 76 77 $(delete_items_btn).addClass('k-is-disabled disabled').data('prompt', false); 78 79 var deleteItem = function(element) { 80 81 var elem = $(element), 82 path = elem.data('url') || elem.find(item_checkbox).data('url') || elem.next().find(item_checkbox).data('url'), 83 data = elem.data('params') || request_params; 84 85 if (path) { 86 if (elem.data('ajax') === false) { 87 new Koowa.Form({ 88 'method': 'post', 89 'url' : path, 90 'params': data 91 }).submit(); 92 } else { 93 $.ajax({ 94 method : 'post', 95 url : path, 96 data : data, 97 beforeSend : function () { 98 elem.addClass('k-is-disabled disabled'); 99 } 100 }).done(function() 101 { 102 var containers = []; 103 104 if(deletable_container) 105 { 106 if (typeof deletable_container !== 'function') 107 { 108 var selectors = deletable_container; 109 110 if (!Array.isArray(selectors)) { 111 selectors = [selectors]; 112 } 113 114 $.each(selectors, function(idx, selector) { 115 containers.push(elem.closest(selector)); 116 }); 117 } 118 else containers = deletable_container(elem); 119 } 120 else containers.push(elem); 121 122 $.each(containers, function (idx, container) { 123 container.fadeOut(300, function () { 124 container.remove(); 125 }); 126 }); 127 }); 128 } 129 } 130 }; 131 132 //checkbox event handler 133 $('body').on('click', item_checkbox, function( event ){ 134 135 $(this).closest(deletable).toggleClass('selected'); 136 137 if($(item_checkbox + ':checked').length) { 138 $(delete_items_btn).removeClass('k-is-disabled disabled'); 139 } else { 140 $(delete_items_btn).addClass('k-is-disabled disabled'); 141 } 142 }).on('click', delete_item_btn, function( event ){ 143 //delete item event handler 144 145 event.preventDefault(); 146 147 var $this = $(this), 148 elem = $this.closest(deletable), 149 prompt = request_prompt || $this.data('prompt'); 150 151 if ($this.hasClass('k-is-disabled') || $this.hasClass('disabled')) { 152 return; 153 } 154 155 if (confirm(prompt)) { 156 deleteItem(elem); 157 } 158 }).on('click', delete_items_btn, function ( event ) { 159 160 event.preventDefault(); 161 162 var items = $(item_checkbox + ':checked'); 163 164 if(items.length && confirm(request_prompt)) { 165 $.each(items, function(index, checkbox){ 166 var elem; 167 if (deletable_container) 168 { 169 if (typeof deletable_container === 'function') 170 { 171 elem = $(checkbox).closest('tr'); 172 173 if (!elem.hasClass('docman_item')) { 174 elem = elem.prev(); 175 } 176 } 177 else elem = $(checkbox).parents(deletable_container).find(deletable); 178 } 179 else elem = $(checkbox).closest(deletable); 180 181 deleteItem(elem); 182 }); 183 } 184 185 $(delete_items_btn).addClass('k-is-disabled disabled'); 186 }); 187});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.