Добавить пользователей из поля выбора людей с несколькими вариантами выбора в группу SP - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть пользовательский SharePoint онлайн. Здесь есть 4 поля выбора людей, которые допускают ввод нескольких пользователей.

Для каждого поля выбора людей имеются 4 группы СП.

При сохранении (PreSaveAction) я хочу добавить пользователей из каждого средства выбора людей в соответствующие группы SP. (используя Javascript / jQuery REST) ​​

Возможно ли это?

1 Ответ

0 голосов
/ 15 ноября 2018

Я следовал нижеследующему подходу для достижения моего требования:

var AppUsrs =[]; // array to store email ID of multiple users from people picker field

function PreSaveItem(){

    //SP group 1
    var SecVal = getPickerInputElement('ff171');// As there was multiple people picker fields, I took the position. 

    for(var k=0;k<SecVal.length;k++) // loop through number of users in people field and add each of them in SP group 
    {
        AddUserToSPGrp(SecVal[k]);  
    }       
    return true;
}

function getPickerInputElement(identifier) 
{
    AppUsrs =[];
    var tags = document.getElementsByTagName('DIV');
    for (var i=0; i < tags.length; i++)
    {    
       var tempString = tags[i].id;    
       if ((tempString.indexOf(identifier) > 0) && (tempString.indexOf('UserField_upLevelDiv') > 0))
       {
         var innerSpans = tags[i].getElementsByTagName("SPAN");
         for(var j=0; j < innerSpans.length; j++) 
          {          
            if(innerSpans[j].id != 'content') 
             {   AppUsrs.push(innerSpans[j].id.split('|')[2]);  // get email ID of users                        
             }                      
           }     
        return AppUsrs;
        }   
     }   
    return null;  
  }

function AddUserToSPGrp(emailIDUsr) {  
    var clientContext = new SP.ClientContext.get_current();  
    var siteGroups = clientContext.get_web().get_siteGroups();  
    var web = clientContext.get_web();  
    spGroup = siteGroups.getByName('SP group Name');  
    user = web.ensureUser(emailIDUsr);  
    var userCollection = spGroup.get_users();  
    userCollection.addUser(user);  
    clientContext.load(user);  
    clientContext.load(spGroup);  
    clientContext.executeQueryAsync(onQuerySucceeded, onQueryFailed);  
}  

function onQuerySucceeded() {  
    console.log('success');  
}  

function onQueryFailed() {  
     console.log('Request failed.');  
}  

Я повторил то же самое для добавления пользователей из поля других людей в другие группы SP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...