Widget:File upload: verschil tussen versies

Uit Dorpsbelang Den Hout
Ga naar:navigatie, zoeken
Regel 29: Regel 29:
 
var fileInput = document.getElementById('widget-file-upload-files');                                                                                               
 
var fileInput = document.getElementById('widget-file-upload-files');                                                                                               
 
                                                                                                
 
                                                                                                
console.log(createFilename('hoi'))
+
console.log(createWikitext('hoi'))
 
                                                                                                
 
                                                                                                
 
                                                                                                
 
                                                                                                
 
function createFilename(filename){
 
function createFilename(filename){
 
     var output = settingsFilename;                                                                                           
 
     var output = settingsFilename;                                                                                           
      var regex = /<(\w+)>/gm;
+
    var regex = /<(\w+)>/gm;
      var m;
+
    var m;
  
 
while ((m = regex.exec(settingsFilename)) !== null) {
 
while ((m = regex.exec(settingsFilename)) !== null) {
Regel 54: Regel 54:
 
           output = output.replace('<'+match+'>', val);
 
           output = output.replace('<'+match+'>', val);
 
       }
 
       }
       
+
 
 
       }
 
       }
 
       // console.log(`Found match, group ${groupIndex}: ${match}`);
 
       // console.log(`Found match, group ${groupIndex}: ${match}`);
Regel 62: Regel 62:
 
}                                                                                               
 
}                                                                                               
  
                                                                                             
+
function createWikitext(filename){
 +
    var output = settingsFilepageparameters;                                                                                         
 +
    var regex = /<(\w+)>/gm;
 +
    var m;
 +
 
 +
while ((m = regex.exec(settingsFilepageparameters)) !== null) {
 +
    // This is necessary to avoid infinite loops with zero-width matches
 +
    if (m.index === regex.lastIndex) {
 +
        regex.lastIndex++;
 +
    }
 +
   
 +
    // The result can be accessed through the `m`-variable.
 +
    m.forEach((match, groupIndex) => {
 +
     
 +
      if(match == "FILENAME"){
 +
        output = output.replace('<'+match+'>', filename);
 +
      }else{
 +
      var input = fileInput.closest('form').querySelector('[name="'+match+'"]');
 +
      if(input){
 +
        val = input.value;
 +
          output = output.replace('<'+match+'>', val);
 +
      }
 +
 
 +
      }
 +
      // console.log(`Found match, group ${groupIndex}: ${match}`);
 +
    });
 +
}
 +
  output = output.replace(':','=');
 +
  output = output.replace(';','|');
 +
  output = '{{'+settingsFilepagetemplate+'|'+output+'}}';
 +
return output;
 +
}                                                                                                   
 
                                                                                                
 
                                                                                                
 
function handleFileSelect() {
 
function handleFileSelect() {
Regel 90: Regel 121:
 
formdata = new FormData();  
 
formdata = new FormData();  
 
formdata.append("action", "upload");
 
formdata.append("action", "upload");
formdata.append("filename", filedate+fileName);
+
formdata.append("filename", createFilename(fileName));
 
//formdata.append("filename", fileName);
 
//formdata.append("filename", fileName);
 
formdata.append("token", mw.user.tokens.get( 'editToken' ) );
 
formdata.append("token", mw.user.tokens.get( 'editToken' ) );
Regel 131: Regel 162:
 
       var fileToLoad = filesSelected[i];
 
       var fileToLoad = filesSelected[i];
 
       var fname = fileToLoad.name;
 
       var fname = fileToLoad.name;
//counter = fname;
+
     
console.log(fname);
 
 
       if(fname.substr( fname.length -3 ) === "pdf"){
 
       if(fname.substr( fname.length -3 ) === "pdf"){
  
        document.getElementById("widget-file-upload-preview").innerHTML = document.getElementById("widget-file-upload-preview").innerHTML+'<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="file-pdf" class="svg-inline--fa fa-file-pdf fa-w-12" role="img" viewBox="0 0 384 512"><path fill="currentColor" d="M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"/></svg>';
+
        //add somthing here
 +
       
 
       }else{
 
       }else{
  
      var fileReader = new FileReader();
+
        var fileReader = new FileReader();
 
+
 
      fileReader.onload = function(fileLoadedEvent) {
+
        fileReader.onload = function(fileLoadedEvent) {
 
         var srcData = fileLoadedEvent.target.result; // <--- data: base64
 
         var srcData = fileLoadedEvent.target.result; // <--- data: base64
  
 
         var newImage = document.createElement('img');
 
         var newImage = document.createElement('img');
 
         newImage.src = srcData;
 
         newImage.src = srcData;
var dt = filesSelected[counter]
+
        var dt = filesSelected[counter]
counter = counter + 1;
+
        counter = counter + 1;
  
 
         document.getElementById("widget-file-upload-preview").innerHTML = document.getElementById("widget-file-upload-preview").innerHTML+'<div class="upload-group">'+newImage.outerHTML+'<input data="'+dt.name+'" type="text" placeholder="caption" class="form-control"  /></div>';
 
         document.getElementById("widget-file-upload-preview").innerHTML = document.getElementById("widget-file-upload-preview").innerHTML+'<div class="upload-group">'+newImage.outerHTML+'<input data="'+dt.name+'" type="text" placeholder="caption" class="form-control"  /></div>';
      //  alert("Converted Base64 version is " + document.getElementById("imgTest").innerHTML);
+
 
    //  console.log("Converted Base64 version is " + document.getElementById("imgTest").innerHTML);
 
 
         }
 
         }
 
        
 
        
Regel 161: Regel 191:
 
function editFilePage(file){
 
function editFilePage(file){
  
console.log(file)
 
  
 
var caption = document.querySelector('[data="'+file+'"]').value;
 
var caption = document.querySelector('[data="'+file+'"]').value;
Regel 175: Regel 204:
 
     var params = {
 
     var params = {
 
         action: 'edit',
 
         action: 'edit',
         title: 'File:'+filedate+file,
+
         title: 'File:'+createFilename(edit),
 
         text: newWikitextEdit,
 
         text: newWikitextEdit,
 
         format: 'json'
 
         format: 'json'

Versie van 7 sep 2020 09:40

Sjabloon:Managed

This is the Widget:Multi upload page. It should be called in the following format:

{{#widget:Multi upload }}