PageSourceSearch

https://nabu-bergstrasse.de/wp-content/plugins/ee-simple-file-list-pro/js/ee-footer.js?ver=6.1.12

js nabu-bergstrasse.de collected 2026-09-26 09:55:32 UTC 9,754 bytes, 334 lines download raw bytes

1// Simple File List Pro - Copyright 2022
2// Author: Mitchell Bennis | [email protected] | https://simplefilelist.com
3// License: EULA | https://simplefilelist.com/end-user-license-agreement/
4// All changes to, modifications to, or re-uses of this script are prohibited without prior consent.
5
6// Used in front-side and back-side file list display
7
8console.log('ee-footer.js Loaded');
9
10// Upon page load completion...
11jQuery(document).ready(function() {	
12
13	console.log('eeSFL Document Ready');
14	
15	jQuery('#eeSFL_MoveToFolder').hide();
16	jQuery('.eeSFL_BulkDownloadBar').hide();
17	
18	window.addEventListener('touchstart', function() {
19		eeSFL_isTouchscreen = true;
20	});
21	
22	
23	jQuery('.eeSFL_ModalClose').on('click', function() {
24		jQuery('.eeSFL_Modal').hide();
25	});
26	
27	
28	// The File Operations Bar -----------------
29	
30	jQuery('#eeSFL_FileOpsAction').val('Folder'); // Make sure this gets reset if the page is reloaded.
31	
32	// Get translated text items
33	var eeSFL_NewFolderNamePlaceholder = jQuery('#eeSFL_NewFolderNamePlaceholder').text();
34	jQuery('#eeSFL_FileOpsActionInput').attr('placeholder', eeSFL_NewFolderNamePlaceholder); // Place this right away
35	var eeSFL_ZipFileName = jQuery('#eeSFL_ZipFileName').text();
36	var eeSFL_DeleteText = jQuery('#eeSFL_DeleteText').text();
37	var eeSFL_DescriptionPlaceholder = jQuery('#eeSFL_DescriptionPlaceholder').html();
38	
39	// Required Inputs per Action
40	jQuery('#eeSFL_FileOpsAction').on('change', function() {
41		
42		if(jQuery(this).val() == 'Delete') {
43			
44			console.log('Deleting Files');
45			
46			jQuery('#eeSFL_MoveToFolder').hide();
47			jQuery('#eeSFL_FileOpsActionInput').show();
48			jQuery('#eeSFL_FileOpsActionInput').attr('name', 'eeSFL_DeletingFiles');
49			jQuery('#eeSFL_FileOpsActionInput').attr('value', '');
50			jQuery('#eeSFL_FileOpsActionInput').attr('placeholder', eeSFL_DeleteText);
51			jQuery('#eeSFL_FileOpsActionInput').attr('disabled', 'disabled');
52			jQuery('#eeSFL_FileOpsActionInput').removeAttr('required');
53		
54		} else if(jQuery(this).val() == 'Move') {
55			
56			console.log('Moving Files');
57			
58			jQuery('#eeSFL_FileOpsActionInput').removeAttr('required');
59			jQuery('#eeSFL_FileOpsActionInput').hide();
60			jQuery('#eeSFL_MoveToFolder').show();
61		
62		} else if(jQuery(this).val() == 'Description') {
63			
64			console.log('Adding Description');
65			
66			jQuery('#eeSFL_MoveToFolder').hide();
67			jQuery('#eeSFL_FileOpsActionInput').show();
68			jQuery('#eeSFL_FileOpsActionInput').attr('name', 'eeSFL_Description');
69			jQuery('#eeSFL_FileOpsActionInput').attr('value', '');
70			jQuery('#eeSFL_FileOpsActionInput').attr('placeholder', eeSFL_DescriptionPlaceholder);
71			jQuery('#eeSFL_FileOpsActionInput').attr('required', 'required');
72			jQuery('#eeSFL_FileOpsActionInput').removeAttr('disabled');
73		
74		} else if(jQuery(this).val() == 'Download') {
75			
76			console.log('Downloading Files');
77			
78			jQuery('#eeSFL_MoveToFolder').hide();
79			jQuery('#eeSFL_FileOpsActionInput').show();
80			jQuery('#eeSFL_FileOpsActionInput').attr('name', 'eeSFL_ZipFileName');
81			jQuery('#eeSFL_FileOpsActionInput').attr('value', eeSFL_ZipFileName + '.zip');
82			jQuery('#eeSFL_FileOpsActionInput').attr('required', 'required');
83			jQuery('#eeSFL_FileOpsActionInput').removeAttr('disabled');
84		
85		} else { // Create Folder
86		
87			jQuery('#eeSFL_MoveToFolder').hide();
88			jQuery('#eeSFL_FileOpsActionInput').show();
89			jQuery('#eeSFL_FileOpsActionInput').attr('name', 'eeSFL_NewFolderName');
90			jQuery('#eeSFL_FileOpsActionInput').attr('value', '');
91			jQuery('#eeSFL_FileOpsActionInput').attr('placeholder', eeSFL_NewFolderNamePlaceholder);
92			jQuery('#eeSFL_FileOpsActionInput').attr('required', 'required');
93			jQuery('#eeSFL_FileOpsActionInput').removeAttr('disabled');
94		}
95		
96	});
97	
98	// Bulk Editing Checkboxes
99	
100	// Check / Uncheck All
101	jQuery('#eeSFL_BulkEditAll').on('click', function() {
102			
103		if( ! jQuery('.eeSFL_BulkDownloadBar').is(":visible") ) {
104			jQuery('.eeSFL_BulkDownloadBar').slideDown();
105		}
106		
107		var eeSFL_FileOpsFiles = '';
108		
109		if(jQuery('#eeSFL_BulkEditAll').is(':checked')) {
110			
111			// console.log('Checking all ...');
112			jQuery('.eeSFL_BulkEditCheck').prop('checked', jQuery(this).prop('checked'));
113			
114			
115			// Loop through all checkboxes
116			jQuery('.eeSFL_BulkEditCheck').each(function () {
117				
118				eeSFL_FileOpsFiles += ',' + jQuery(this).val();
119			});
120			
121		} else {
122			
123			// console.log('Unchecking all ...');
124			jQuery('.eeSFL_BulkEditCheck').removeAttr('checked');
125			
126			
127			
128			jQuery('.eeSFL_BulkDownloadBar').slideUp();
129		}
130		
131		jQuery('#eeSFL_FileOpsFiles').val(eeSFL_FileOpsFiles); // Fill the hidden input
132	});
133	
134	
135	
136	
137	
138	// Add Files to Bulk Edit List
139	jQuery('.eeSFL_BulkEditCheck').on('click', function() {
140		
141		var eeSFL_BulkFileID = jQuery(this).val(); // This checkbox
142		var eeSFL_FileOpsFiles = jQuery('#eeSFL_FileOpsFiles').val(); // The files we're working with
143		
144		if(eeSFL_BulkFileID) {
145			
146			if(jQuery('#eeSFL_BulkEdit_' + eeSFL_BulkFileID).is(':checked') ) {
147				
148				console.log('Bulk Edit File ID ADD: ' + eeSFL_BulkFileID);
149				
150				if( ! jQuery('.eeSFL_BulkDownloadBar').is(":visible") ) {
151					jQuery('.eeSFL_BulkDownloadBar').slideDown();
152				}
153				
154				eeSFL_FileOpsFiles = eeSFL_FileOpsFiles + ',' + eeSFL_BulkFileID;
155
156			} else {
157				
158				console.log('Bulk Edit File ID REMOVE: ' + eeSFL_BulkFileID);
159				
160				eeSFL_FileOpsFiles = eeSFL_FileOpsFiles.replace(',' + eeSFL_BulkFileID, ''); // Remove this ID
161				
162				if( ! jQuery('.eeSFL_BulkEditCheck').is(':checked') ) {
163					jQuery('.eeSFL_BulkDownloadBar').slideUp();
164				}
165			}
166		}
167		
168		jQuery('#eeSFL_FileOpsFiles').val(eeSFL_FileOpsFiles);
169		console.log('#eeSFL_FileOpsFiles = ' + eeSFL_FileOpsFiles);
170	
171	});
172
173}); // END Ready Function
174
175
176// Strip Slashes
177String.prototype.eeSFL_StripSlashes = function(){
178    return this.replace(/\\(.)/mg, "$1");
179}
180
181
182// Copy File URL to Clipboard
183function eeSFL_CopyLinkToClipboard(eeSFL_FileURL) {
184	
185	var eeTemp = jQuery('<input name="eeTemp" value="' + eeSFL_FileURL + '" type="url" class="" id="eeTemp" />'); // Create a temporary input
186	jQuery("body").append(eeTemp); // Add it to the bottom of the page
187	
188	var eeTempInput = jQuery('#eeTemp');
189	eeTempInput.focus();
190	eeTempInput.select(); // Select the temp input
191	// eeTempInput.setSelectionRange(0, 99999); /* For mobile devices <<<------------ TO DO */
192	document.execCommand("copy"); // Copy to clipboard
193	eeTemp.remove(); // Remove the temp input
194    
195    alert(eesfl_vars['eeCopyLinkText'] + "\r\n" + eeSFL_FileURL); // Alert the user
196}
197
198
199
200
201
202function eeSFL_DownloadFolder(eeSFL_FolderID, eeSFL_FolderName) {
203	
204	var eeToday = new Date();
205	var eeDay = String(eeToday.getDate()).padStart(2, '0');
206	var eeMonth = String(eeToday.getMonth() + 1).padStart(2, '0'); //January is 0!
207	var eeYear = eeToday.getFullYear();
208	
209	jQuery('#eeSFL_FolderToDownload').val(eeSFL_FolderID);
210	jQuery('#eeSFL_FolderDownloadZipFileName').val(eeSFL_FolderName + '_' + eeYear + '-' + eeMonth + '-' + eeDay);
211	
212	// Disable all the links to prevent re-clicks
213	jQuery('#eeSFL_RowID-' + eeSFL_FolderID + ' a.eeSFL_FolderDownload').css('color', '#666');
214	jQuery('#eeSFL_RowID-' + eeSFL_FolderID + ' a.eeSFL_FolderDownload').text(eesfl_vars['eePleaseWaitText'] + ' ......');
215	jQuery('a.eeSFL_FolderDownload').removeAttr('href'); // All of them
216	
217	jQuery('#eeSFL_DownloadFolderForm').submit();
218}
219
220
221
222
223
224function eeSFL_EditFile(eeSFL_FileID) {
225	
226	event.preventDefault(); // Don't follow the link
227	
228	if( jQuery('#eeSFL_EditFileWrap_' + eeSFL_FileID).is(':visible') ) {
229		
230		jQuery('#eeSFL_EditFileWrap_' + eeSFL_FileID).slideUp();
231		jQuery('#eeSFL_EditFile_' + eeSFL_FileID).text(eesfl_vars['eeEditText']);
232	
233	} else {
234		
235		jQuery('#eeSFL_EditFileWrap_' + eeSFL_FileID).slideDown();
236		jQuery('#eeSFL_EditFile_' + eeSFL_FileID).text(eesfl_vars['eeCancelText']);
237	}
238}
239
240
241
242
243// Triggered when you click the Delete link
244function eeSFL_Delete(eeSFL_FileID) {
245	
246	event.preventDefault(); // Don't follow the link
247	
248	console.log('Deleting File ID #' + eeSFL_FileID);
249	
250	// Get the File Name
251    var eeSFL_FileName = jQuery('#eeSFL_RowID-' + eeSFL_FileID + ' .eeSFL_RealFileName').text();
252    
253    console.log(eeSFL_FileName);
254	
255	if( confirm( eesfl_vars['eeConfirmDeleteText'] + "\r\n\r\n" + eeSFL_FileName ) ) {
256	
257		eeSFL_FileAction(eeSFL_FileID, 'Delete');
258	
259	}
260
261}
262
263
264
265
266
267// Extract an Archive
268function eeSFL_ExtractArchive(FolderName) {
269	
270	var response = confirm(eesfl_vars.eeExtractConfirm1 + "\n" + eesfl_vars.eeExtractConfirm2 + "\n" + FolderName + "\n" + eesfl_vars.eeExtractConfirm3);
271	
272	if (response != true) {
273	    
274	    // Do No-thing, uuuu NOTHING!
275	    event.preventDefault(); 
276	
277	} else {
278		
279		// Guard against clickity-clickers
280		jQuery('a.eeSFL_ExtractArchive').hide();
281	}
282}
283
284
285
286
287// Confirm or cancel folder delete
288function eeSFLF_ConfirmFolderDelete() {
289    
290    var response = confirm("Are You Sure?\nAll Contents Will Be Deleted");
291	
292	if (response != true) {
293	    
294	    event.preventDefault(); 
295	}
296}
297
298
299
300
301function eeSFL_ValidateEmail(eeSFL_CheckEmail) {
302
303	var eeSFL_EmailFormat = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
304	
305	if (eeSFL_CheckEmail.match(eeSFL_EmailFormat)) {
306    	return 'GOOD';
307  	} else {
308	  	return "BAD";
309  	}
310}
311
312
313
314// File Size Formatting
315function eeSFL_GetFileSize(bytes, si) {
316    
317    var thresh = si ? 1000 : 1024;
318    
319    if(Math.abs(bytes) < thresh) {
320        return bytes + ' B';
321    }
322    
323    var units = si
324        ? ['kB','MB','GB','TB','PB','EB','ZB','YB']
325        : ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];
326    var u = -1;
327    
328    do {
329        bytes /= thresh;
330        ++u;
331    } while(Math.abs(bytes) >= thresh && u < units.length - 1);
332    
333    return bytes.toFixed(1)+' '+units[u];
334}

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.