none
Как получить e-mail текущего пользователя SharePoint ? RRS feed

  • Вопрос

  • Добрый день.

    Возникла необходимость получить e-mail текущего залогиненного пользователя в SharePoint но я не знаю как...

    Нашел пример как получить ИМЯ пользователя при помощи JQuery:

    var userName = jQuery().SPServices.SPGetCurrentUser({
        fieldName: "Title"
    });
    
    alert(userName);
    
    Подскажите пожалуйста как получить мыло у такого юзера? 

Ответы

Все ответы

  • var userName = jQuery().SPServices.SPGetCurrentUser({
        fieldName: "EMail"
    });
    
    alert(userName);

    $().SPServices.SPGetCurrentUser

    • Изменено Mikhail Zhuikov 30 мая 2017 г. 6:16
    • Помечено в качестве ответа VARD32 30 мая 2017 г. 6:19
  • Благодарю, Михаил!

    Скажите, а как Вы узнали про "EMail"?

    Где можно посмотреть список всех свойств этого объекта?

    Очень надо!!! 

    Спасибо.

  • Благодарю, Михаил!

    Скажите, а как Вы узнали про "EMail"?

    Где можно посмотреть список всех свойств этого объекта?

    Очень надо!!! 

    Спасибо.

    Так я же ссылку добавил в ответ, см. ниже кода.
  • Видимо просмотрел я. Спасибо ещё раз!

  • Не подскажете, почему, когда я обращаюсь к полю элемента списка при пом. этого кода:

    var s = $("input[title='Имя']").val();
    alert(s);

    Мне возвращается значение "undefined"?

    В списке точно есть такое текстовое поле "Имя" и оно точно заполнено.

    Или может я в корне неправильно получаю значение поля текущего элемента списка?
    • Изменено VARD32 30 мая 2017 г. 6:40
  • Не подскажете, почему, когда я обращаюсь к полю элемента списка при пом. этого кода:

    var s = $("input[title='Имя']").val();
    alert(s);

    Мне возвращается значение "undefined"?

    В списке точно есть такое текстовое поле "Имя" и оно точно заполнено.

    Или может я в корне неправильно получаю значение поля текущего элемента списка?

    а точно "Имя"? возможно DisplayName у поля совсем другой...попробуй внести изменения в это поле через такой код и поймешь к нему обращаешься или нет:

    $("input[title='Имя']").keyup(function (e){
    
    alert($(this).val());	
    
    }); 
  • Выполнил Ваш код. Ничего не произошло.

  • Выполнил Ваш код. Ничего не произошло.

    Тогда нужно посмотреть его реальный DisplayName, с русскоязычными названиями столбцов в SharePoint не все так просто:

    jQuery(function() {
    var thisStaticName = $().SPServices.SPGetStaticFromDisplay ({
    //URL
      webURL: "http://sharepoint/sites/im",
    //List
      listName: "Test",
    //Column
      columnDisplayName: "Должность"
    });
    console.log(thisStaticName);
    });
  • Добрый день

    предлагаю использовать следующий код, данное решение будет работать при изменении отображающего название поля

    jQuery("[id='Title']").val("Новое название")

    или

    jQuery("input[id='Title']").val("Новое название")


    что бы узнать интернал нейм нужно перейти в параметры списка, кликнуть на поле и в адресной строке есть его id (intrernal name)


    мой блог не много о SharePoint




    Модератор
  • Поясните, что мне писать в WebURL и listName 

    если такой код:

    jQuery(function() {
    var thisStaticName = $().SPServices.SPGetStaticFromDisplay ({
    	//URL
    	webURL: "http://portal/projects",
    	//List
    	listName: "Справочник проектов",
    	//Column
    	columnDisplayName: "Имя"
    	});
    	alert(thisStaticName);
    	});
    выдает "FileLeafRef"

  • Или мне в webURL указать прямую ("километровую") ссылку на элемент списка?
  • Владимир, я пытаюсь просто вывести поля:

    jQuery("input[id='Title']").val()

    Но в обоих случаях мне выводится "undefined"

    Названия "внешних" полей подсмотрел уже. Они действительно называются по дугому.

  • Или мне в webURL указать прямую ("километровую") ссылку на элемент списка?

    В вашем случае нужно указать если этот код вы делайте в текущем сайте, то достаточно так:

    jQuery(function() {
    var thisStaticName = $().SPServices.SPGetStaticFromDisplay ({
    	//List
    	listName: "ListName",
    	//Column
    	columnDisplayName: "Имя"
    	});
    	alert(thisStaticName);
    	});

  • Михаил, правильное имя теперь я знаю, но почему то мне выдает всегда "undefined"
  • Подскажите, может быть я где-то не там делаю?

    У меня веб-часть "редактор контента" расположена на самой форме редактирования элемента списка и

    содержит основной код.

    Там в том числе есть это:

    var userName = jQuery().SPServices.SPGetCurrentUser({
        fieldName: "Title"
    });
    
    var userEMail = jQuery().SPServices.SPGetCurrentUser({
        fieldName: "EMail"
    });
    
    alert(userName);	
    alert(userEMail);
    
    Вот это работает отлично.

    а вот это уже не работает:

    var s = jQuery("input[title='Title']").val();
    alert(s);
    

     
  • Скажите, а форма случайно не кастомизирована через дизайнер?

    если меняли, то код предложенный Михаилом или мной работать не будет.

    если же форма стандартная, то можно еще посмотреть id так


    мой блог не много о SharePoint

    Модератор
  • Владимир, я практически уверен, что кастомизирована.

    Уверен хотя бы потому, что EditForm.aspx скрывает некоторые поля, которые видны, например, во ViewForm.aspx

    Кастомизировал не я. Поэтому так тяжело у меня идёт "каменный цветок"

    Как быть в моем случае?

  • для начала я бы посмотрел через браузер (скрин выше) что же у вас на выходе в html



    мой блог не много о SharePoint

    Модератор
  • Поле "Имя", которое возвращает вам "undefined" относится к какому типу (однострочный текст и т.д.)?
  • Владимир, Михаил спасибо за наводку!

    Появились результаты. Я посмотрел в консоли хрома, что там на выходе в HTML?!

    И подсмотрел ID этого поля. К примеру ID Поля "Имя" (как оно представлено в конечном виде)

    имеет значение: "FileLeafRef_8553196d-ec8d-4564-9861-3dbe931050c8_$onetidIOFile"

    Ну я взял и вывел не по Title а по ID:

    var s = jQuery("input[id='FileLeafRef_8553196d-ec8d-4564-9861-3dbe931050c8_$onetidIOFile']").val();

    И заработало!!!

    Теперь (видимо) самое сложное мне предстоит...

    Нужно вывести значение поля "Код" которое есть в форме ViewForm.aspx и которое скрыто в EditForm.aspx 

    Попытка "подсмотреть" таким же образом ID-шник этого скрытого поля ни к чему не приводит. 

    Я навожу на него мышью в форме просмотра, а там только конечное значение "1280_00" т.е. код. А мне надо ID этого поля как то высмотреть, чтобы потом также по id вывести его значение.



    • Изменено VARD32 30 мая 2017 г. 9:05
  • если поле скрыто через дизайнер, то оно не запрашивается у сервера. вы ничего не получите в форме редактирования.

    варианта два:

    1. добавить поле в форму редактирования и скрыть другими средствами (к примеру css)

    2. сделать запрос к элементу списка и получить значение поля через js (не совсем логичное решение)


    мой блог не много о SharePoint


    Модератор
  • Владимир, спасибо.

    Получилось!

    Не подскажете, существует ли в природе редактор JavaScript в котором бы после указания точки, вываливались все свойства и методы?

  • можно посмотреть Visual Studio Code, но до полноценной версии при работе C# ей далеко.


    мой блог не много о SharePoint

    Модератор
  • Владимир, спасибо.

    Получилось!

    Не подскажете, существует ли в природе редактор JavaScript в котором бы после указания точки, вываливались все свойства и методы?

    Если библиотеки (фреймворки) JS подключены корректно, то можно использовать Sublime Text.