// Run your custom code when the DOM is ready.
var currentUser;
var cardUrl = "";
var cardId = "";
var employees = [];
var emailIDs = [];
$(document).ready(function () {
//$(".birthdayCC").autocomplete({
// source: searchUsers,
// minLength: 2,
// select: function (event, ui) {
// var terms = split(this.value);
// terms.pop();
// terms.push(ui.item.value);
// terms.push("");
// this.value = terms.join(", ");
// return false;
// }
//});
// Specify the unique ID of the DOM element where the
// picker will render.
$(".inputPeoplePicker").peoplePicker();
$("#MSOWebPart_Header").css("display", "none");
$(".ms-entity-resolved").empty();
$("#birthdayMsg").empty();
//initializePeoplePicker('ccpeoplePickerDiv');
emailIDs = [];
bindBirthdayCards('BirthdayCards');
// $('#recipient_email').multipleInput();
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', getCurrentUserBirthday);
});
//function extractLast(term) {
// return split(term).pop();
//}
//function split(val) {
// return val.split(/,s*/);
//}
//function searchUsers(request, response) {
// //var appweburl = decodeURIComponent(getQueryStringParameter('SPAppWebUrl'));
// //var hostweburl = decodeURIComponent(getQueryStringParameter('SPHostUrl'));
// var restSource = "http://cbspkcppdev/_api/SP.UI.ApplicationPages.ClientPeoplePickerWebServiceInterface.clientPeoplePickerSearchUser";
// //var principalType = this.element[0].getAttribute('principalType');
// $.ajax(
// {
// 'url': restSource,
// 'method': 'POST',
// 'data': JSON.stringify({
// 'queryParams': {
// '__metadata': {
// 'type': 'SP.UI.ApplicationPages.ClientPeoplePickerQueryParameters'
// },
// 'AllowEmailAddresses': true,
// 'AllowMultipleEntities': true,
// 'AllUrlZones': false,
// 'MaximumEntitySuggestions': 10,
// 'PrincipalSource': 15,
// 'PrincipalType': 15,
// 'QueryString': extractLast(request.term)
// //'Required':false,
// //'SharePointGroupID':null,
// //'UrlZone':null,
// //'UrlZoneSpecified':false,
// //'Web':null,
// //'WebApplicationID':null
// }
// }),
// 'headers': {
// 'accept': 'application/json;odata=verbose',
// 'content-type': 'application/json;odata=verbose',
// 'X-RequestDigest': $("#__REQUESTDIGEST").val()
// },
// 'success': function (data) {
// var d = data;
// var results = JSON.parse(data.d.ClientPeoplePickerSearchUser);
// if (results.length > 0) {
// response($.map(results, function (item) {
// return { label: item.EntityData.Email, value: item.EntityData.Email }
// }));
// }
// },
// 'error': function (err) {
// alert(JSON.stringify(err));
// }
// }
// );
//}
function loadBirthdayPopup(empDetails) { // To Load the Popupbox
//alert(empDetails.length);
$(".emailsDiv").html("");
employees = empDetails;
//alert(employees.length);
for (var i = 0; i < empDetails.length; i++) {
$(".emailsDiv").append(empDetails[i].FirstName + ";");
}
$("#birthdayMsg").val("");
$('input[name="cardType"]:checked').attr('checked', false);
$('.ImageThumb').each(function () {
$('input[name="cardType"]:last', this).prop('checked', true);
});
}
function bindBirthdayCards(BirthdayCardsElementId) {
$.ajax({
url: getRelativeUrl() + "/_api/web/lists/getbytitle('BirthdayCards')/Items?$select=ID,FileRef,FileLeafRef,FileDirRef,Title,Description",
type: "GET",
headers: { "accept": "application/json;odata=verbose" },
success: function (data) {
if (data.d.results && data.d.results.length > 0) {
// TODO: handle the data
//alert('handle the data');
var cards = data.d.results;
var CardsArray = new Array();
var iCnt = 0;
if (cards.length != null) {
for (var i = 0; i < cards.length; i++) {
CardsArray[iCnt] = new Object();
CardsArray[iCnt].Title = cards[i].Title;
CardsArray[iCnt].OrigUrl = cards[i].FileRef;
var dir = cards[i].FileDirRef;
var filename = cards[i].FileLeafRef;
filename = filename.replace('.', '_');
filename += '.jpg';
filename = dir + '/_t/' + filename;
CardsArray[iCnt].Url = filename;
CardsArray[iCnt].ID = cards[i].ID;
iCnt++;
}
}
$("#CardsTemplate").tmpl(CardsArray).appendTo(".BirthdayCardsDiv");
}
},
error: function (xhr) {
//alert(xhr.status + ': ' + xhr.statusText);
}
});
function onDataReturned(data) {
// TODO: handle the data
}
function onError(err) {
// TODO: handle the error
}
}
function GetBirthdayCardUrl(cardId) {
$.ajax({
url: getRelativeUrl() + "/_api/web/lists/getbytitle('BirthdayCards')/Items?$select=ID,FileRef,Title,Description&$filter=ID eq '" + cardId + "'",
type: "GET",
async: false,
headers: { "accept": "application/json;odata=verbose" },
success: function (data) {
if (data.d.results) {
// TODO: handle the data
//alert('handle the data');
// cardUrl = _spPageContextInfo.siteAbsoluteUrl + data.d.results[0].FileRef;
// cardUrl = location.href.toLowerCase().split('/pages/')[0] + data.d.results[0].FileRef;
cardUrl = _spPageContextInfo.webAbsoluteUrl + data.d.results[0].FileRef;
}
},
error: function (xhr) {
//alert(xhr.status + ': ' + xhr.statusText);
}
});
function onDataReturned(data) {
// TODO: handle the data
}
}
function submitBirthday() {
cardUrl = "";
cardId = $('input[name="cardType"]:checked').val();
if (cardId == undefined || $('#birthdayMsg').val() == "") {
alert('Please select a Card and enter your Message');
}
if ($('#regards').val() == "") {
alert('Please enter your regards');
}
else {
GetBirthdayCardUrl(cardId);
getUserInfo();
for (var i = 0; i < employees.length; i++) {
var body = "Dear " + employees[i].FirstName + " (Unit-" + employees[i].Unit + "),
";
body = body + $('#birthdayMsg').val() + "
";
sendBirthdayEmail(employees[i].Email, "Wish you Happy Birthday", currentUser.get_email(), employees[i].FirstName, cardUrl, body, employees[i].Unit, $('#regards').val());
}
alert("Birthday Card has been sent successfully.");
location.reload();
}
}
function getCurrentUserBirthday() {
this.clientContext = new SP.ClientContext.get_current();
this.oWeb = clientContext.get_web();
currentUser = this.oWeb.get_currentUser();
clientContext.load(currentUser);
this.clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededUser), Function.createDelegate(this, this.onQueryFailedUser));
}
function onQuerySucceededUser() {
//currentUser = currentUser.get_loginName();
// alert('owner of grp :' + currGrp);
}
function onQueryFailedUser() {
alert('Query failed. Error: ' + args.get_message());
// alert('owner of grp :' + currGrp);
}
function sendBirthdayEmail(to, subject, fromAddress, firstname, imageUrl, body, unit, signature) {
var urlTemplate = '';
signature = signature.replace("/\n/g", "
");
if (body.length < 300) {
var siteurl = _spPageContextInfo.webAbsoluteUrl;
urlTemplate = getRelativeUrl() + "/_vti_bin/CorpService.svc/SendBirthdayMailWithImage";
var myObject =
{
"emailEntity":
{
"UserName": firstname,
"ToAddress": to,
"FromAddress": fromAddress,
"MessageBody": body,
"Subject": subject,
"ImageURL": imageUrl,
"Unit": unit,
"CC": emailIDs,
"signature": signature
}
};
$.ajax({
url: urlTemplate,
type: "POST",
data: JSON.stringify(myObject),
dataType: "json",
contentType: "application/json ",
success: function (data) {
//clear input fields
$("#ToemailShare").val("");
$("#SubjectShare").val("");
//$('.Popup').fadeOut("slow");
//$(".feedbackBtn").css("z-index", "1");
//$("#links").css("z-index", "1");
//$("#ctl00_masterLinks_units").css("z-index", "1");
//$(".wrapperPopup").css({ // this is just for style
// "opacity": "1",
// "display": "none"
//});
},
error: function (data) {
alert("Failure");
}
});
}
else {
alert("Message must be less than 300 characters.");
}
}
//function initializePeoplePicker(peoplePickerElementId) {
// // 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'] = '100%';
// this.SPClientPeoplePicker_InitStandaloneControlWrapper(peoplePickerElementId, null, schema);
//}
function getUserInfo() {
var users = $('.inputPeoplePicker').val().split(';');
for (var i = 0; i < users.length; i++) {
var user = users[i];
//alert(user.split('|')[1]);
var requestHeaders = {
"Accept": "application/json;odata=verbose",
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val()
};
jQuery.ajax({
url: getRelativeUrl() + "/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='" + encodeURIComponent(user.split('|')[1]) + "'",
type: "GET",
async: false,
contentType: "application/json;odata=verbose",
headers: requestHeaders,
success: function (data) {
emailIDs.push(data.d.Email);
},
error: function (jqxr, errorCode, errorThrown) {
console.log(jqxr.responseText);
}
});
}
}
//function validateEmail(email) {
// var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
// return re.test(email);
//}
//(function ($) {
// $.fn.multipleInput = function () {
// return this.each(function () {
// // list of email addresses as unordered list
// $list = $('