PageSourceSearch

https://clipstoneparishcouncil.org/wp-content/plugins/ee-simple-file-list-pro/js/ee-uploader.js?ver=7.1.2

js clipstoneparishcouncil.org collected 2026-10-03 02:56:45 UTC 8,396 bytes, 282 lines download raw bytes

1// Simple File List Script: ee-uploader.js | Author: Mitchell Bennis | [email protected]
2
3
4
5console.log("ee-upload.js | ver 4.2.5");
6
7
8var eeSFL_FileSet = new Array(); // Names
9var eeSFL_FileObjects = new Array(); // File objects
10var eeSFL_FileCount = 0; // How many to upload
11var eeSFL_Uploaded = 0; // How many have uploaded
12var eeSFL_Error = false; // Bad things have happened
13var eeSFL_FormatsArray = eeSFL_FileFormats.split(","); // An array of the things.
14
15
16
17
18// Receive files from input[type=file]
19function eeSFL_FileInputHandler(eeEvent) {
20	
21	console.log("File Added via Input");
22	
23	var eeSFL_Files = document.getElementById("eeSFL_FileInput").files;
24	
25	eeSFL_ProcessFileInput(eeSFL_Files);
26
27}
28
29// Receive files from the drop zone
30function eeSFL_DropHandler(eeEvent) {
31  
32  	console.log('File Added via Drop Zone');
33
34	// Prevent default behavior (Prevent file from being opened)
35	eeEvent.preventDefault();
36	  
37	eeSFL_ProcessFileInput(eeEvent.dataTransfer.files); // The file object
38}
39
40// Prevent file from being opened in the browser window
41function eeSFL_DragOverHandler(eeEvent) {
42	eeEvent.preventDefault();
43}
44
45
46
47
48
49	
50// Check the files and prepare for upload
51function eeSFL_ProcessFileInput(eeSFL_Files) { // The files object
52    
53    // Make sure it's not too many
54    if(eeSFL_Files.length > eeSFL_FileLimit) { // If so, reset
55	    
56	    eeSFL_Error = false;
57	    eeSFL_File = false;
58	    jQuery("#eeSFL_FileInput").val("");
59	    alert(eesfl_vars['eeUploadLimitText'] + ': ' + eeSFL_FileLimit);
60	    return false;   
61	}
62    
63    // Loop through file object
64    for(var i = 0; i < eeSFL_Files.length; i++){
65        
66        var eeSFL_File =  eeSFL_Files[i];
67        
68        console.group("File # " + i);
69	        
70	        console.log("Name: " + eeSFL_File.name);
71	        
72	        // Validation
73	        
74	        // Size
75	        console.log("Size: " + eeSFL_File.size);
76	        
77	        if(eeSFL_File.size > eeSFL_UploadMaxFileSize) {
78		        eeSFL_Error = eesfl_vars['eeFileTooLargeText'] + ': ' + eeSFL_File.name;
79	        }
80	        
81	        // Type
82	        var eeSFL_Extension = eeSFL_File.name.split(".").pop();
83	        eeSFL_Extension = eeSFL_Extension.toLowerCase();
84	        
85	        if(eeSFL_FormatsArray.indexOf(eeSFL_Extension) == -1) {
86		        eeSFL_Error = eesfl_vars['eeFileNotAllowedText'] + ': ' + eeSFL_Extension;
87	        }
88	        
89	        console.log("Extension: " + eeSFL_Extension);
90	        console.log("Type: " + eeSFL_File.type);
91	        
92	        // Modified date
93	        console.log("Date: " + eeSFL_File.lastModified);
94        
95        console.groupEnd();
96        
97        if(!eeSFL_Error) { // If no errors
98        	
99			eeSFL_FileObjects.push(eeSFL_File); // Add this object
100			eeSFL_FileSet.push(eeSFL_File.name); // Add this name for the post-processor 
101			
102        } else {
103	        
104	        alert(eeSFL_Error); // Alert the user.
105	        
106	        eeSFL_Error = false;
107	        eeSFL_File = false;
108	        jQuery("#eeSFL_FileInput").val("");
109	        return false;
110        } 
111    }
112    
113    
114    eeSFL_FileCount = eeSFL_FileObjects.length; // Reset based on set
115    var eeSFL_FileQstring = JSON.stringify(eeSFL_FileSet);
116            
117    jQuery("#eeSFL_FileList").val(eeSFL_FileQstring); // Set the hidden inputs
118	jQuery("#eeSFL_FileCount").val(eeSFL_FileCount); // The number of files
119	
120	
121	jQuery('#eeSFL_FileInput').hide();
122	jQuery('#eeSFL_FilesDrug').text(eeSFL_FileCount + ' files selected.');
123	jQuery('#eeSFL_FilesDrug').show();
124    
125    // Helpful information
126    console.log("#eeSFL_FileList  Set: " + eeSFL_FileQstring);
127	console.log("#eeSFL_FileCount Set: " + eeSFL_FileCount);
128    console.log("Files: " + eeSFL_FileSet);
129    console.log("Count: " + eeSFL_FileCount);
130    
131}
132
133
134
135
136// The Upload Queue Processor - This runs when the Upload button is clicked
137function eeUploadProcessor(eeSFL_FileObjects) {
138	
139	eeSFL_FileCount = eeSFL_FileObjects.length;
140	
141	if(eeSFL_FileCount) {
142		
143		// Check if input fields have been completed, if they appear.
144		if(jQuery('#eeSFL_Comments').length >= 1) { // Get Uploader Info is ON
145			var eeSFL_Name = jQuery('#eeSFL_Name').val();
146			var eeSFL_Email = jQuery('#eeSFL_Email').val();
147			
148			if(eeSFL_Name.length < 1) {	
149				jQuery('#eeSFL_Name').css('border', '2px solid red');
150				return;
151			}
152			
153			if( eeSFL_ValidateEmail(eeSFL_Email) == 'BAD' ) {
154				jQuery('#eeSFL_Email').css('border', '2px solid red');
155				return;
156			}
157		}
158		
159		// Remove button and replace with progress bar
160	    jQuery("#eeSFL_UploadGo" ).hide();
161	
162		console.log("Uploading " + eeSFL_FileCount + " files...");
163		
164		for (var i = 0; i < eeSFL_FileCount; i++) { // Loop through and upload the files
165			
166			console.log("Processing File: " + eeSFL_FileObjects[i].name);
167						            
168            eeUploadFile(eeSFL_FileObjects[i]); // Upload the file using the function below...
169		}
170	}		
171}
172
173
174
175// File Upload AJAX Call
176function eeUploadFile(eeSFL_File) { // Pass in file object
177    
178    var eeXhr = new XMLHttpRequest();
179    
180    if(eeXhr.upload) { // Upload progress
181			
182		jQuery('#eeSFL_UploadProgress').css('display', 'block');
183	    
184	    console.log('Upload in progress ...');
185	    
186	    eeXhr.upload.addEventListener("progress", function(e) {
187		    
188			var percent = parseInt((e.loaded / e.total * 100)); // Percent completed
189			console.log('Upload Progress: ' + percent + '%' );
190			
191			// Progress Bar
192			if(percent < 100) {
193				jQuery('#eeSFL_UploadProgress').css('width', percent + '%'); // Width based on percent
194			} else {
195				jQuery('#eeSFL_UploadProgress').css('width', '100%');
196			}
197			
198		}, false);
199	}
200	
201	
202	// Add our form data
203	var eeFormData = new FormData();
204    
205    console.log("Uploading: " + eeSFL_File.name);
206    console.log("Calling Engine: " + eeSFL_UploadEngineURL);
207    
208    eeXhr.open("POST", eeSFL_UploadEngineURL, true); // URL set in ee-upload-form.php
209    
210    eeXhr.onreadystatechange = function() {
211        
212       if (eeXhr.readyState == 4 && eeXhr.status != 500) { // && eeXhr.status == 200 <-- Windows returns 404?
213	        
214	        eeSFL_Uploaded ++;
215            
216            console.log("File Uploaded (" + eeSFL_Uploaded + " of " + eeSFL_FileCount + ")");
217            
218			// Every thing ok, file uploaded
219            console.log("RESPONSE: " + eeXhr.responseText);
220            
221            // Submit the Form
222            if(eeSFL_Uploaded == eeSFL_FileCount) {
223	            
224	            if(eeXhr.responseText == "SUCCESS") {
225				
226					jQuery('#eeSFL_UploadProgress em').fadeIn(); // Show "Processing the Upload" message
227	            
228	            	console.log("--->>> SUBMITTING FORM ...");
229	            	
230	            	document.forms.eeSFL_UploadForm.submit(); // <<<----- FORM SUBMIT
231					
232		        } else {
233			    	console.log("XHR Status: " + eeXhr.status);
234			    	console.log("XHR State: " + eeXhr.readyState);
235			    	
236			    	var n = eeXhr.responseText.search("<");
236 // Error condition
237			    	if(n === 0) {
238				    	alert(eesfl_vars['eeUploadErrorText'] + ': ' + eeSFL_File.name);
239				    	jQuery( "#eeUploadingNow" ).fadeOut();
240				    }
241				    return false;
242		        }
243		        
244	        } else { // Not the last file, so reset the progress bar
245		        
246		        jQuery('#eeSFL_UploadProgress').css('width', '0%'); // Reset the progress bar
247	        }
248        
249        } else {
250	    	console.log("XHR Status: " + eeXhr.status);
251	    	console.log("XHR State: " + eeXhr.readyState);
252	    	return false;
253        }
254    };
255    
256    // Wordpress Action
257    eeFormData.append("action", "simplefilelistpro_upload_job");
258    
259    // These values are set in ee-upload-form.php
260    eeFormData.append("file", eeSFL_File);
261    eeFormData.append("eeSFL_ID", eeSFL_ListID);
262    eeFormData.append("eeSFL_FileUploadDir", eeSFL_FileUploadDir);
263    eeFormData.append("ee-simple-file-list-pro-upload", eeSFL_Nonce);
264    
265    // Add the file modification date/time
266    var eeDate = new Date(eeSFL_File.lastModified);
267    var eeDateString = eeDate.toISOString().split('T')[0]; // Get just the y-m-d part
268    eeFormData.append("eeSFL_FileDate", eeDateString);
269    console.log("Date: " + eeDateString);
270        
271    // Send the AJAX request...
272    eeXhr.send(eeFormData);
273}
274
275
276console.log("Waiting for files...");
277
278// Populate the action attribute in the form
279var eeSFL_CurrentURL = document.location.href;
280jQuery("#eeSFL_UploadForm").attr("action", eeSFL_CurrentURL);
281
282

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.