Кнопка для установки лайка в SharePoint 2013 через JS

В SharePoint 2013 CSOM есть недокументированная возможность установить Like для любого элемента списка или библиотеки Javascript’ом.
Сама возможность лайкать включается тут: Параметры списка (List Settings) -> Параметры оценок(Rating settings).

Код для установки лайка, для тестирования я добавлял его в Content Query Web Part:

<script type="text/javascript" src="/_layouts/15/Reputation.js"></script>

<script type="text/javascript">
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', UpdateLike);

function UpdateLike() {
	var itemId = 1;
	var listId = "B79D49E4-334D-42F3-8E43-5E7CB8ABCDD0";
	var setLike = true;
	
	var ctx = new SP.ClientContext("<yourSiteUrl>");
	Microsoft.Office.Server.ReputationModel.Reputation.setLike(ctx, listId, itemId, setLike);

	ctx.executeQueryAsync(Function.createDelegate(this, this.RatingSuccess), Function.createDelegate(this, this.RatingFailure));
};
  
function RatingSuccess(sender, args) {
	alert('Rating Done Successfully');
}

function RatingFailure(sender, args) {
	alert('SetRating failed:' + args.get_message());
}
</script>

У меня не получилось подключить скрипт Reputation.js через предназначенную для этого SP.SOD.executeFunc. Поэтому я подключил его обычным тегом script. Основной код содержится в функции UpdateLike. Его можно вызывать по клику на кнопку.

Основная идея взята тут: https://coderwall.com/p/urb8kg/custom-like-button-in-sharepoint-2013

Отдельное спасибо моему коллеге Алексею за помощь в поиске решения задачи!

Запись опубликована в рубрике Без рубрики. Добавьте в закладки постоянную ссылку.

2 комментария: Кнопка для установки лайка в SharePoint 2013 через JS

  1. Evgenii Vilkov говорит:

    Делал пример для SPTypeScript Definitions, там и правильный executeFunc есть:)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>