Wednesday 29 November 2017

Get choice from list

function GetDropDown(success,failure)
 {
 debugger;
     $.ajax({
        url: siteURL + "/_api/web/lists/getbytitle('listname')/fields?$filter=EntityPropertyName eq 'column1' or EntityPropertyName eq 'column2' or EntityPropertyName eq 'column3'",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
           //success(data.d.results);
            success(data.d.results);   
        },       
        error: function (data) {
        debugger;
            failure(data);
           
        }
        });
 }
/* Function to getting all dropdown items from library success*/
function DropDownvaluessuccess(Dropdownarray)
{
    debugger;   
     if(Dropdownarray.length>0)
     {
        var cln1dd='<option selected value="Select">Select</option>';
        var cln2dd='<option selected value="Select">Select</option>';
        var cln3dd='<option selected value="Select">Select</option>';
           
            var cln1=Dropdownarray[0].Choices.results;
            var cln2=Dropdownarray[1].Choices.results;
            var cln3=Dropdownarray[2].Choices.results;
           
            for(var i=0;i<cln1.length;i++)
            {             
                cln1dd+='<option value='+i+'>'+cln1[i]+'</option>';
            }
            for(var i=0;i<cln2.length;i++)
            {             
                cln2dd+='<option value='+i+'>'+cln2[i]+'</option>';             
            }
            for(var i=0;i<cln3.length;i++)
            {
                cln3dd+='<option value='+i+'>'+cln3[i]+'</option>';
            }
           
            $("#TaxType").empty().append(cln1dd);
            $("#cln2").empty().append(cln2dd);
            $("#TaxCountry").empty().append(cln3dd);
                   
     }     
}
/* Function to getting all dropdown items from library on failure*/
function DropDownvaluesfailure()
{
    debugger;
}

creating a csv dynamically

function WriteToFile() {
debugger;
      var data0 = [
        ["A","B","C","D"],
        ["a","b","c","d"]
      ];
      var docTitle = "SupplierBusinessClassification.csv";   
        download_csv(data0,docTitle)           
}

function download_csv(data,docName) {
    var csv;
    data.forEach(function(row) {
        csv += row.join(',');
        csv += "\n";
    });

    console.log(csv);
    var hiddenElement = document.createElement('a');
    hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);
    hiddenElement.target = '_parent';
    hiddenElement.download = docName;
    hiddenElement.click();
}

Multiple Attachment into list

<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.js"></script>
<input type="text" id="Title">
<input type="textarea" id="Body">
<input type="file" id="file_input">
<script type="text\javascript">
var vendorList = "list name";

function CreateVendor() {

var data = []; 
var fileArray = [];   
fileArray.push({ "Attachment": $('#file_input')[0].files[0]})
fileArray.push({ "Attachment": $('#file_input')[0].files[1]})
fileArray.push({ "Attachment": $('#file_input')[0].files[2]})

createNewItemWithAttachments(vendorList, fileArray).then( 
function () {                         
}, 
function (sender, args) { 
console.log('Error occured' + args.get_message()); 

)   
}

 var createNewItemWithAttachments = function (vendorList, fileArray) {
    debugger;
        var fileCountCheck = 0; 
        var fileNames; 
        var context = new SP.ClientContext.get_current(); 
        var dfd = $.Deferred(); 
        var targetList = context.get_web().get_lists().getByTitle(vendorList); 
        context.load(targetList); 
        var itemCreateInfo = new SP.ListItemCreationInformation(); 
        var listItem = targetList.addItem(itemCreateInfo); 
        listItem.set_item('Title', $("#Title").val());
listItem.set_item('Body', $("#Body").val());
        listItem.update(); 
        context.executeQueryAsync( 
            function () {
            debugger;
                var id = listItem.get_id(); 
                if (fileArray.length != 0) { 
                    if (fileCountCheck <= fileArray.length - 1) { 
                        loopFileUpload(vendorList, id, fileArray, fileCountCheck).then( 
                            function () { 
                            }, 
                            function (sender, args) { 
                                console.log("Error uploading"); 
                                dfd.reject(sender, args); 
                            } 
                        ); 
                    } 
                } 
                else { 
                    dfd.resolve(fileCountCheck); 
                } 
            }, 
            function (sender, args) { 
            debugger;
                console.log('Error occured' + args.get_message()); 
            } 
        ); 
        return dfd.promise(); 
    } 
 
    function loopFileUpload(vendorList, id, fileArray, fileCountCheck) {
    debugger; 
        var dfd = $.Deferred(); 
        uploadFileHolder(vendorList, id, fileArray[fileCountCheck].Attachment).then( 
            function (data) { 
                var objcontext = new SP.ClientContext(); 
                var targetList = objcontext.get_web().get_lists().getByTitle(vendorList); 
                var listItem = targetList.getItemById(id); 
                objcontext.load(listItem); 
                objcontext.executeQueryAsync(function () { 
                    console.log("Reload List Item- Success"); 
                    fileCountCheck++; 
                    if (fileCountCheck <= fileArray.length - 1) { 
                        loopFileUpload(vendorList, id, fileArray, fileCountCheck); 
                    } else { 
                        console.log(fileCountCheck + ": Files uploaded"); 
                       } 
                }, 
                function (sender, args) { 
                    console.log("Reload List Item- Fail" + args.get_message()); 
                }); 
            }, 
            function (sender, args) { 
                console.log("Not uploaded"); 
                dfd.reject(sender, args); 
            } 
       ); 
        return dfd.promise(); 
    } 
 
    function uploadFileHolder(vendorList, id, file) { 
    debugger;
        var deferred = $.Deferred(); 
        var fileName = file.name; 
        getFileBuffer(file).then( 
            function (buffer) { 
                var bytes = new Uint8Array(buffer); 
                var binary = ''; 
                for (var b = 0; b < bytes.length; b++) { 
                    binary += String.fromCharCode(bytes[b]); 
                } 
                var scriptbase = _spPageContextInfo.webServerRelativeUrl + "/_layouts/15/"; 
                console.log(' File size:' + bytes.length); 
                $.getScript(scriptbase + "SP.RequestExecutor.js", function () { 
                    var createitem = new SP.RequestExecutor(_spPageContextInfo.webServerRelativeUrl); 
                    createitem.executeAsync({ 
                        url: _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/GetByTitle('" +vendorList+ "')/items(" + id + ")/AttachmentFiles/add(FileName='" + file.name + "')", 
                        method: "POST", 
                        binaryStringRequestBody: true, 
                        body: binary, 
                        success: fsucc, 
                        error: ferr, 
                        state: "Update" 
                    }); 
                    function fsucc(data) { 
                        console.log(data + ' uploaded successfully'); 
                        deferred.resolve(data); 
                    } 
                    function ferr(data) { 
                        console.log(fileName + "not uploaded error"); 
                        deferred.reject(data); 
                    } 
                }); 
            }, 
            function (err) { 
                deferred.reject(err); 
            } 
        ); 
        return deferred.promise(); 
    } 
    function getFileBuffer(file) {
    debugger;
        var deferred = $.Deferred(); 
        var reader = new FileReader(); 
        reader.onload = function (e) { 
            deferred.resolve(e.target.result); 
        } 
        reader.onerror = function (e) { 
            deferred.reject(e.target.error); 
        } 
        reader.readAsArrayBuffer(file); 
        return deferred.promise(); 
    } 

</script>

Multiple document upload

Uploading Multiple documents into a SharePoint document library using Javascript

<script src="https://code.jquery.com/jquery-3.2.1.js" type="text\javascript"></script>
<input type="file" id="inputFile" />
<script type="text\javascript">
var DocumentlistName="YourDocumentLibraryName";
var serverUrl = _spPageContextInfo.webAbsoluteUrl;
function uploadFile() {
debugger;
    // Define the folder path for this example.
   

    // Get test values from the file input and text input page controls.
    var fileInput = $('#inputFile');
    var newName = $('#displayName').val();
    fileCount = fileInput[0].files.length;
    // Get the server URL.
   
    var filesUploaded = 0;
    for(var i = 0; i < fileCount; i++){
        // Initiate method calls using jQuery promises.
        // Get the local file as an array buffer.
        var getFile = getFileBuffer(i);
        getFile.done(function (arrayBuffer,i) {

            // Add the file to the SharePoint folder.
            var addFile = addFileToFolder(arrayBuffer,i);
            addFile.done(function (file, status, xhr) {
                //$("#msg").append("<div>File : "+file.d.Name+" ... uploaded sucessfully</div>");
                filesUploaded++;
                if(fileCount == filesUploaded){
                    alert("All files uploaded successfully");
                    //$("#msg").append("<div>All files uploaded successfully</div>");
                    GetListItems(getListItemssuccess,getListItemsfailure);
                    $("#inputFile").value = null;
                    filesUploaded = 0;
                }
            });
            addFile.fail(onError);
        });
        getFile.fail(onError);

    }

    // Get the local file as an array buffer.
    function getFileBuffer(i) {
    debugger;
        var deferred = jQuery.Deferred();
        var reader = new FileReader();
        reader.onloadend = function (e) {
            deferred.resolve(e.target.result,i);
        }
        reader.onerror = function (e) {
            deferred.reject(e.target.error);
        }
        reader.readAsArrayBuffer(fileInput[0].files[i]);
        return deferred.promise();
    }

    // Add the file to the file collection in the Shared Documents folder.
    function addFileToFolder(arrayBuffer,i) {
    debugger;
    var index = i;

        // Get the file name from the file input control on the page.
        var fileName = fileInput[0].files[index].name;

        // Construct the endpoint.
        var fileCollectionEndpoint = String.format(
                "{0}/_api/web/getfolderbyserverrelativeurl('{1}')/files" +
                "/add(overwrite=true, url='{2}')",
                serverUrl, DocumentlistName, fileName);

        // Send the request and return the response.
        // This call returns the SharePoint file.
        return jQuery.ajax({
            url: fileCollectionEndpoint,
            type: "POST",
            data: arrayBuffer,
            processData: false,
            headers: {
                "accept": "application/json;odata=verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                "content-length": arrayBuffer.byteLength
            }
        });
    }
}

// Display error messages.
function onError(error) {
    alert(error.responseText);
}

</script>

Featured post

Data connections in Infopath forms

https://www.qdoscc.com/blog/how-automatically-retrieve-current-username-infopath-sharepoint-list-form

Popular Posts