|
1 | 1 | var show_list; |
2 | 2 | var show_tree = false; |
3 | 3 | var sort_type = 'alphabetic'; |
4 | | -var multi_selection_enabled = true; |
| 4 | +var multi_selection_enabled = false; |
5 | 5 | var selected = []; |
6 | 6 | var items = []; |
7 | 7 |
|
@@ -31,14 +31,36 @@ $.fn.fab = function (options) { |
31 | 31 | }); |
32 | 32 | }; |
33 | 33 |
|
34 | | -Array.prototype.toggleElement = function (element) { |
35 | | - var element_index = this.indexOf(element); |
| 34 | +function toggleSelected (e) { |
| 35 | + if (!multi_selection_enabled) { |
| 36 | + selected = []; |
| 37 | + } |
| 38 | + |
| 39 | + var sequence = $(e.target).closest('a').data('id'); |
| 40 | + var element_index = selected.indexOf(sequence); |
36 | 41 | if (element_index === -1) { |
37 | | - this.push(element); |
| 42 | + selected.push(sequence); |
38 | 43 | } else { |
39 | | - this.splice(element_index, 1); |
| 44 | + selected.splice(element_index, 1); |
40 | 45 | } |
41 | | -}; |
| 46 | + |
| 47 | + updateSelectedStyle(); |
| 48 | +} |
| 49 | + |
| 50 | +function clearSelected () { |
| 51 | + selected = []; |
| 52 | + |
| 53 | + updateSelectedStyle(); |
| 54 | +} |
| 55 | + |
| 56 | +function updateSelectedStyle() { |
| 57 | + items.forEach(function (item, index) { |
| 58 | + $('[data-id=' + index + ']') |
| 59 | + .find('.square') |
| 60 | + .toggleClass('selected', selected.indexOf(index) > -1); |
| 61 | + }); |
| 62 | + toggleActions(); |
| 63 | +} |
42 | 64 |
|
43 | 65 | $(document).ready(function () { |
44 | 66 | $('#fab').fab({ |
@@ -98,6 +120,14 @@ $(document).ready(function () { |
98 | 120 |
|
99 | 121 | $('#multi_selection_toggle').click(function () { |
100 | 122 | multi_selection_enabled = !multi_selection_enabled; |
| 123 | + |
| 124 | + $('#multi_selection_toggle i') |
| 125 | + .toggleClass('fa-check-square', multi_selection_enabled) |
| 126 | + .toggleClass('fa-square', !multi_selection_enabled); |
| 127 | + |
| 128 | + if (!multi_selection_enabled) { |
| 129 | + clearSelected(); |
| 130 | + } |
101 | 131 | }); |
102 | 132 |
|
103 | 133 | $('#to-previous').click(function () { |
@@ -147,46 +177,36 @@ $(document).on('click', '[data-sortby]', function() { |
147 | 177 | }); |
148 | 178 |
|
149 | 179 | $(document).on('click', '[data-action]', function () { |
150 | | - if ($(this).data('multiple')) { |
151 | | - window[$(this).data('action')](getSelectedItems()); |
152 | | - } else { |
153 | | - window[$(this).data('action')](getOneSelectedElement()); |
154 | | - } |
| 180 | + var dataToProcess = $(this).data('multiple') ? getSelectedItems() : getOneSelectedElement(); |
| 181 | + |
| 182 | + window[$(this).data('action')](dataToProcess); |
155 | 183 | }); |
156 | 184 |
|
157 | 185 | // ====================== |
158 | 186 | // == Folder actions == |
159 | 187 | // ====================== |
160 | 188 |
|
161 | | -$(document).on('click', '#content a', function (e) { |
162 | | - var element = $(e.target).closest('a'); |
| 189 | +$(document).on('click', '#content a', toggleSelected); |
| 190 | + |
| 191 | +$(document).on('dblclick', '#content a', function (e) { |
| 192 | + var clickedElement = getOneSelectedElement($(e.target).closest('a').data('id')); |
163 | 193 |
|
164 | | - if (multi_selection_enabled) { |
165 | | - selected.toggleElement(element.data('id')); |
166 | | - element.find('.square').toggleClass('selected'); |
167 | | - toggleActions(); |
| 194 | + if (clickedElement.is_file) { |
| 195 | + use(getSelectedItems()); |
168 | 196 | } else { |
169 | | - if (element.is_file) { |
170 | | - use(getOneSelectedElement().url); |
171 | | - } else { |
172 | | - goTo(getOneSelectedElement().url); |
173 | | - } |
| 197 | + goTo(clickedElement.url); |
174 | 198 | } |
175 | 199 | }); |
176 | 200 |
|
177 | | -function getOneSelectedElement(item_id) { |
178 | | - if (item_id === undefined) { |
179 | | - item_id = selected[0]; |
180 | | - } |
181 | | - return items[item_id]; |
| 201 | +function getOneSelectedElement(orderOfItem) { |
| 202 | + return items[orderOfItem || selected[0]]; |
182 | 203 | } |
183 | 204 |
|
184 | 205 | function getSelectedItems() { |
185 | | - var arr_objects = []; |
186 | | - selected.forEach(function (id, index) { |
| 206 | + return selected.reduce(function (arr_objects, id) { |
187 | 207 | arr_objects.push(getOneSelectedElement(id)); |
188 | | - }); |
189 | | - return arr_objects; |
| 208 | + return arr_objects |
| 209 | + }, []); |
190 | 210 | } |
191 | 211 |
|
192 | 212 | function toggleActions() { |
@@ -454,9 +474,7 @@ function preview(items) { |
454 | 474 | } |
455 | 475 |
|
456 | 476 | function move(items) { |
457 | | - performLfmRequest('move', { |
458 | | - items: items.map(function (item) { return item.name; }) |
459 | | - }) |
| 477 | + performLfmRequest('move', { items: items.map(function (item) { return item.name; }) }) |
460 | 478 | .done(refreshFoldersAndItems); |
461 | 479 | } |
462 | 480 |
|
|
0 commit comments