Friday, January 10, 2014

SharePoint - Check File Name in Upload form in Document Library con Javascript

Se si desidera controllare il nome del file di un nuovo documento in un Upload form, possiamo farlo con del buon Javascript !

Ho creato una funzione che controlla il nome del file e poi disattiva il bottone OK se la condizione non è verificata


Ho eseguito un override della funzione CheckAssetLibMediaExtension sull'evento "onchange" del controllo input file nel file Upload.aspx.

Se vediamo il codice HTML del file Upload.aspx (da browser), troviamo:

<input name="ctl00$PlaceHolderMain$UploadDocumentSection$ctl05$InputFile" type="file" id="ctl00_PlaceHolderMain_UploadDocumentSection_ctl05_InputFile" class="ms-fileinput ms-fullWidth" size="35" onfocus="ResetSpFormOnSubmitCalled();" onchange="CheckAssetLibMediaExtension()" title="Scegliere un file" />

Cercando la funzione, troviamo:

function CheckAssetLibMediaExtension()
{

}

Così, possiamo farne l'override!

Creiamo nella masterpage la referenza al jQuery e aggiungiamo la funzione seguente:

function CheckAssetLibMediaExtension(){
var inputFile = $("input[name$='InputFile']");
var nomeFile = inputFile.val().split('\\').pop();
if(!(nomeFile.indexOf('STRINGTOAVOID')>-1)){
           alert('Warning: file name not must contains "STRINGTOAVOID"!!');
   $("input[name$='btnOK']").attr('disabled','disabled');
   return;
}
        $("input[name$='btnOK']").removeAttr('disabled');
}

Quando l'utente seleziona un file, l'Input File cambia e la funzione viene chiamata.
La funzione mostra un alert se nel nome file c'è la stringa "STRINGTOAVOID".
Quindi, disabilita il bottone OK, e l'utente è obbligato a cambiare il nome del file prima di selezionarlo.