0

SharePoint Online: I have multiple people picker columns and enter in a number of places people. I get the people OK but it won't update. It says it the entry is undefined. I thought maybe separating each out would work but obviously not. I hope I get some help on this one. What I want to do is to allow users to enter names into where the div entries are and as a people picker. I accomplished that but when you submit the form it says that any entry other than the first is undefined.

<script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js" > < /script>
<script type="text/javascript" src="/_layouts/15/sp.core.js"></script>
<script type="text/javascript" src="/_layouts/15/clienttemplates.js"></script>
<script type="text/javascript" src="/_layouts/15/clientforms.js"></script>
<script type="text/javascript" src="/_layouts/15/clientpeoplepicker.js"></script>
<script type="text/javascript" src="/_layouts/15/autofill.js"></script>
<script type="text/javascript" src="/_layouts/15/1033/sts_strings.js"></script>
<script type="text/javascript">
    var prim5 = 0;var sec4 = 0;var auth5 = 0;
    var EorB25 = "";var BorE25 = "";var BorE35 = "";var siteUrl = "https://sp-cloud.kp.org/sites/MedicaidRepository";var cat25 = "";var regimpact = "";var regimpact1 = "";var prim25="";var sec25="";
    var auth25="";var s1 = "";var soxD1 = "";var k1 = 'No';var com2 = "";var sDate1 = "";var sSever = "";var kDate1 = "";var finalusersP = [];var finalusers22 = [];var finalusersK = [];var user22 = [];var userK = [];var userP = [];var  users22 = [];var usersK = [];var usersP = [];var userPemail = "";var userKemail = "";var user22email = "";
                        
    var tDay = new Date();
    var dd = tDay.getDate();
    var mm = tDay.getMonth()+1;
    var yy = tDay.getFullYear();
    var sDate = mm+ '/' +dd+ '/' +yy;
    $(document).ready(function() {
        prim5 = 1;
        initializePeoplePickerP('peoplePickerDivP');
        registerPPOnChangeEventP($('#peoplePickerDivP'));
    });
     $(document).ready(function() {
        sec5 = 1;
        initializePeoplePickerS('peoplePickerDivS');
        registerPPOnChangeEventS($('#peoplePickerDivS'));
    });
     $(document).ready(function() {
        auth5 = 1;
        initializePeoplePickerK('peoplePickerDivK');
        registerPPOnChangeEventK($('#peoplePickerDivK'));
    });
    function initializePeoplePickerP(peoplePickerElementIdP, UsersP) {
        if (typeof(UsersP) == 'undefined') UsersP = null;
        console.log('UsersP: ' +UsersP);
        // Create a schema to store picker properties, and set the properties.
        var schema = {};
        schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup';
        schema['SearchPrincipalSource'] = 15;
        schema['ResolvePrincipalSource'] = 15;
        schema['AllowMultipleValues'] = true;
        schema['MaximumEntitySuggestions'] = 50;
        schema['Width'] = '280px';
        this.SPClientPeoplePicker_InitStandaloneControlWrapper(peoplePickerElementIdP, null, schema);
    }
    function initializePeoplePickerS(peoplePickerElementIdS,  Users22) {
        if (typeof(Users22) == 'undefined') Users22 = null;
        console.log('Users22: ' +Users22);
        // Create a schema to store picker properties, and set the properties.
        var schema = {};
        schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup';
        schema['SearchPrincipalSource'] = 15;
        schema['ResolvePrincipalSource'] = 15;
        schema['AllowMultipleValues'] = true;
        schema['MaximumEntitySuggestions'] = 50;
        schema['Width'] = '280px';
        this.SPClientPeoplePicker_InitStandaloneControlWrapper(peoplePickerElementIdS, null, schema);
    }
    function initializePeoplePickerK(peoplePickerElementIdK, UsersK) {
        if (typeof(UsersK) == 'undefined') UsersK = null;
        // Create a schema to store picker properties, and set the properties.
        var schema = {};
        schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup';
        schema['SearchPrincipalSource'] = 15;
        schema['ResolvePrincipalSource'] = 15;
        schema['AllowMultipleValues'] = true;
        schema['MaximumEntitySuggestions'] = 50;
        schema['Width'] = '280px';
        this.SPClientPeoplePicker_InitStandaloneControlWrapper(peoplePickerElementIdK, null, schema);
    }
    function registerPPOnChangeEventP(ppElement) {
        var ppId = ppElement.attr('id') + "_TopSpan";
        console.log('ppID: ' +ppId);
        //var addOnChanged = function(ctx) {
        if (SPClientPeoplePicker &&
            SPClientPeoplePicker.SPClientPeoplePickerDict &&
            SPClientPeoplePicker.SPClientPeoplePickerDict[ppId]) {

            console.log("In registerPPOnChangeEvent if");

            var picker = SPClientPeoplePicker.SPClientPeoplePickerDict[ppId];
            picker.oldChanged = picker.OnControlResolvedUserChanged;
            //var ppidTest = picker.toString();
            console.log("picker: " +picker);
        
            //OnControlResolvedUserChanged
            picker.OnControlResolvedUserChanged = function () {
                if (picker.TotalUserCount == 0) {
                    $('#resolvedUsers').html("");
                    $('#userKeys').html("");
                    $('#userProfileProperties').html("");
                    $('#userID').html("");
                } else {
                    setTimeout(function () {
                            getUserInfoP();
                        },
                        100);
                }
                picker.oldChanged();
            }
        } else {
           // setTimeout(function () { addOnChanged(ctx); }, 100);
            console.log("In registerPPOnChangeEvent else");
        }
        //}
    }
    function registerPPOnChangeEventS(ppElement) {
        var ppId = ppElement.attr('id') + "_TopSpan";
        console.log('ppID: ' +ppId);
        //var addOnChanged = function(ctx) {
        if (SPClientPeoplePicker &&
            SPClientPeoplePicker.SPClientPeoplePickerDict &&
            SPClientPeoplePicker.SPClientPeoplePickerDict[ppId]) {

            console.log("In registerPPOnChangeEvent if");

            var picker = SPClientPeoplePicker.SPClientPeoplePickerDict[ppId];
            picker.oldChanged = picker.OnControlResolvedUserChanged;
            var ppidTest = picker.toString();
            console.log("picker: " +ppidTest);
        
            //OnControlResolvedUserChanged
            picker.OnControlResolvedUserChanged = function () {
                if (picker.TotalUserCount == 0) {
                    $('#resolvedUsers22').html("");
                    $('#user22Keys').html("");
                    $('#user22ProfileProperties').html("");
                    $('#user22ID').html("");
                } else {
                    setTimeout(function () {
                            getUserInfoS();
                        },
                        100);
                }
                picker.oldChanged();
            }
        } else {
            //setTimeout(function () { addOnChanged(ctx); }, 100);
            console.log("In registerPPOnChangeEvent else");
        }
        //}
    }
    function registerPPOnChangeEventK(ppElement) {
        var ppId = ppElement.attr('id') + "_TopSpan";
        console.log('ppID: ' +ppId);
        //var addOnChanged = function(ctx) {
        if (SPClientPeoplePicker &&
            SPClientPeoplePicker.SPClientPeoplePickerDict &&
            SPClientPeoplePicker.SPClientPeoplePickerDict[ppId]) {

            console.log("In registerPPOnChangeEvent if");

            var picker = SPClientPeoplePicker.SPClientPeoplePickerDict[ppId];
            picker.oldChanged = picker.OnControlResolvedUserChanged;
            var ppidTest = picker.toString();
            console.log("picker: " +ppidTest);
        
            //OnControlResolvedUserChanged
            picker.OnControlResolvedUserChanged = function () {
                if (picker.TotalUserCount == 0) {
                    $('#resolvedUsers').html("");
                    $('#userKeys').html("");
                    $('#userProfileProperties').html("");
                    $('#userID').html("");
                } else {
                    setTimeout(function () {
                            getUserInfoK();
                        },
                        100);
                }
                picker.oldChanged();
            }
        } else {
           // setTimeout(function () { addOnChanged(ctx); }, 100);
            console.log("In registerPPOnChangeEvent else");
        }
        //}
    }
    // Query the picker for user information.
    var userPropertyP = "";
    var userPropertyS = "";
    var userPropertyK ="";
    
    var userPemail = "";
    var i = 0;
    var j = 0;
    var m = 0;
    var keysP = "";
    var keysS = "";
    var keysK = "";
    function getUserInfoP() {
        // Get the people picker object from the page.
        var peoplePickerP = this.SPClientPeoplePicker.SPClientPeoplePickerDict.peoplePickerDivP_TopSpan;
        // Get information about all users.
        var usersP = peoplePickerP.GetAllUserInfo();
        //var keysP = peoplePickerP.GetAllUserKeys();
        //finalusersP = new Array();
        console.log('Users: ' +usersP);
        var ownerP = usersP[0];
        for(i = 0; i < usersP.length; i++){
            userPemail = usersP[i];
        }
        console.log('Owner: ' +ownerP);
        $("#siteOwenerEmail").val(ownerP.AutoFillSubDisplayText);
        $("#siteOwenerClaim").val(ownerP.Key);
        $("#siteOwnerName").val(ownerP.DisplayText);
        $("#siteOwnerLogin").val(ownerP.Description);console.log('Get People Picker NameP: ' +ownerP.DisplayText);
        
        var userInfo = '';
        if(prim5 > 0){
            for (var i = 0; i < usersP.length; i++) {
                userP = usersP[i];
                if(userP !== null){
                    //userPemail = userP.EntityData.Email;
                    userPemail = ownerP.DisplayText;
                }
                console.log("userPemail: " +userPemail);
                return userPemail;
                console.log('i= ' +i+ 'User= ' +userP);
                for (userPropertyP in userP) {
                    prim25 += userPropertyP + ':  ' + userP[userPropertyP] + '<br>';
                }
            }
            $('#resolvedUsers').html(prim25);
             // Get user keys.
            keysP = peoplePickerP.GetAllUserKeys();
            $('#userKeys').html(keysP);
            // Get the first user's ID by using the login name.
            getUserIdP(usersP[0].Key);
            console.log('Initial: ' +prim25);
        }
    }
    function getUserInfoS() {
        // Get the people picker object from the page.
        var peoplePickerS = this.SPClientPeoplePicker.SPClientPeoplePickerDict.peoplePickerDivS_TopSpan;
        // Get information about all users.
         users22 = peoplePickerS.GetAllUserInfo();
        //var keysP = peoplePickerP.GetAllUserKeys();
        //finalusersS = new Array();
        
        console.log('Users: ' + users22);
        var ownerS =  users22[0];
       
        /*for(i = 0; i < usersS.length; j++){
            userSemail = usersS[i];
        }*/
        console.log('Owner: ' +ownerS);
        $("#siteOwenerEmail").val(ownerS.AutoFillSubDisplayText);
        $("#siteOwenerClaim").val(ownerS.Key);
        $("#siteOwnerName").val(ownerS.DisplayText);
        $("#siteOwnerLogin").val(ownerS.Description);console.log('Get People Picker NameS: ' +ownerS.DisplayText);
        
        var userInfo = '';
        if(sec4 > 0){
            for (j = 0; j <  users22.length; j++) {
                user22 =  users22[j];
                if(user22 !== null){
                    //userPemail = userP.EntityData.Email;
                    user22email = ownerS.DisplayText;
                }
                for (userPropertyS in user22) {
                    sec25 += userPropertyS + ':  ' + user22[userPropertyS] + '<br>';
                }
            }
            $('#resolvedUsers').html(sec25);
             // Get user keys.
            keysS = peoplePickerS.GetAllUserKeys();
            $('#user22Keys').html(keysS);
            // Get the first user's ID by using the login name.
            getUserIdS( users22[0].Key);
        }
    }
    function getUserInfoK() {
        // Get the people picker object from the page.
        var peoplePickerK = this.SPClientPeoplePicker.SPClientPeoplePickerDict.peoplePickerDivK_TopSpan;
        // Get information about all users.
        usersK = peoplePickerK.GetAllUserInfo();
        //var keysP = peoplePickerP.GetAllUserKeys();
        //finalusersK = new Array();
        console.log('Users: ' +usersK);
        var ownerK = usersK[0];
        /*for(i = 0; i < usersK.length; i++){
            userKemail = usersK[i];
        }*/
        console.log('Owner: ' +ownerK);
        $("#siteOwenerEmail").val(ownerK.AutoFillSubDisplayText);
        $("#siteOwenerClaim").val(ownerK.Key);
        $("#siteOwnerName").val(ownerK.DisplayText);
        $("#siteOwnerLogin").val(ownerK.Description);console.log('Get People Picker NameK: ' +ownerK.DisplayText);
        
        var userInfo = '';
        if(auth5 > 0){
            for (m = 0; m < usersK.length; m++) {
                userK = usersK[m];
                if(userK !== null){
                    //userPemail = userP.EntityData.Email;
                    userKemail = ownerK.DisplayText;
                }
                for (userPropertyK in userK) {
                    auth25 += userPropertyK + ':  ' + userK[userPropertyK] + '<br>';
                }
            }
            $('#resolvedUsers').html(auth25);
             // Get user keys.
            keysK = peoplePickerK.GetAllUserKeys();
            $('#userKeys').html(keysK);
            // Get the first user's ID by using the login name.
            getUserIdK(usersK[0].Key);
        }
    }
    // Get the user ID.
    function getUserIdP(loginName) {
        console.log('Get User ID-P');
        var context = new SP.ClientContext.get_current();
        this.userP = context.get_web().ensureUser(loginName);
        context.load(this.userP);
        context.executeQueryAsync(
            Function.createDelegate(null, ensureUserSuccessP),
            Function.createDelegate(null, onFail)
        );
    }
    function ensureUserSuccessP() {
        $('#userId').html(this.userP.get_id());
        $("#siteOwenerId").val(this.userP.get_id());
        userP = $("#siteOwenerId").val(this.userP.get_id());
    }
    function getUserIdS(loginName) {
        console.log("Get User ID-S");
        var context = new SP.ClientContext.get_current();
        this.user22 = context.get_web().ensureUser(loginName);
        context.load(this.user22);
        context.executeQueryAsync(
            Function.createDelegate(null, ensureUserSuccessS),
            Function.createDelegate(null, onFail)
        );
    }
    function ensureUserSuccessS() {
        $('#userId').html(this.user22.get_id());
        $("#siteOwenerId").val(this.user22.get_id());
        userS = $("#siteOwenerId").val(this.user22.get_id());
    }
    function getUserIdK(loginName) {
        console.log('Get User ID-K');
        var context = new SP.ClientContext.get_current();
        this.userK = context.get_web().ensureUser(loginName);
        context.load(this.userK);
        context.executeQueryAsync(
            Function.createDelegate(null, ensureUserSuccessK),
            Function.createDelegate(null, onFail)
        );
    }
    function ensureUserSuccessK() {
        $('#userId').html(this.userK.get_id());
        $("#siteOwenerId").val(this.userK.get_id());
        userK = $("#siteOwenerId").val(this.userK.get_id());
    }

    function onFail(sender, args) {
        alert('Query failed. Error: ' + args.get_message());
    }

    
    function addNewIntake(){
        
        SP.SOD.executeFunc('sp.js', 'SP.ClientContext',updateListItem1);

    }
    function updateListItem1() {
        finalusersP.push(SP.FieldUserValue.fromUser(userP.Key));
        finalusers22.push(SP.FieldUserValue.fromUser(user22.Key));
        finalusersK.push(SP.FieldUserValue.fromUser(userK.Key));
                    
        var clientContext = new SP.ClientContext(siteUrl);
        var oList = 
        clientContext.get_web().get_lists().getByTitle('Issue_Tracker_List');
        this.oListItem = oList.addItem(); 
        //console.log('primary person info: ' + finalusersP);
        oListItem.set_item('MainContact2',finalusersP);
        if(finalusers22 !== ""){
            //console.log('secondary person info: ' +finalusers22); 
            oListItem.set_item('AdditionalContact_x0028_s_x0029_',finalusersS);
        }
        if(finalusersK !== ""){
            oListItem.set_item('ITSupportOwner',finalusersK);
        }
        
        oListItem.update(); 
        clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
        
        
    }
    function onQuerySucceeded() {
        document.getElementById('main12').style.display="none";
        document.getElementById('main22').style.display="block";
        setTimeout(CloseDlg, 2000);
    }
    function CloseDlg() {
        SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.Cancel);
    }
    function onQueryFailed(sender, args) {
        alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace());  
    }       
</script>

0 Answers0