среда, 28 ноября 2018 г.

Заполнение текущего пользователя в PeoplePicker

В этой статье я расскажу, как можно заполнять текущего пользователя в поле PeoplePicker
Для этого нам понадобятся две функции:
1. Получает текущего пользователя
2. Меняет значение в поле PeoplePicker

конечный резульрат
код решения

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<script type="text/javascript" src="/tasks/Style Library/js/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
function setPPUser(fieldId)
{
 //debugger
 if (SP.ClientContext != null) {
    
   SP.SOD.executeOrDelayUntilScriptLoaded(getCurrentUser, 'sp.js');
    
 }
 else {
  SP.SOD.executeFunc('clientpeoplepicker.js','SP.ClientContext',function(){
   SP.SOD.executeFunc('sp.js','',  getCurrentUser);
  });
 }
  
 var currentUser;
 function getCurrentUser() {
   
   var context = new SP.ClientContext.get_current();
   var web = context.get_web();
   currentUser = web.get_currentUser();
   context.load(currentUser);
   context.executeQueryAsync(onSuccessMethod, onRequestFail);
 }
 
 function onSuccessMethod(sender, args) {
   var account = currentUser.get_loginName();
   var currentUserAccount = account.substring(account.indexOf("|") + 1);
   // заполение поля
   SetPeoplePickerValue(fieldId, currentUserAccount ) ;  
 }
 function onRequestFail(sender, args) {
   console.log('request failed' + args.get_message() + '\n' + args.get_stackTrace());
 }
  
};
function SetPeoplePickerValue(fieldId, userName) {
 var peoplePickerDiv = $("[id^='" +fieldId+"_']")
 var peoplePickerEditor = $("input[id^='" + fieldId + "']");
 var spPeoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict[peoplePickerDiv[0].id];
    jQuery("[id ^='" +fieldId+"_]  a.sp-peoplepicker-delImage").click();
 peoplePickerEditor.val(userName);
 spPeoplePicker.AddUnresolvedUserFromEditor(true);
};
 
 _spBodyOnLoadFunctionNames.push("WorkingWithFields");
function WorkingWithFields()
{
 setPPUser("User");
}
 
 
</script>

Комментариев нет:

Отправить комментарий