PageSourceSearch

https://fogsl.org/media/com_docman/js/site/items.js?54d09f91

js fogsl.org collected 2026-10-02 08:33:28 UTC 6,076 bytes, 187 lines download raw bytes

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.