Skip to content

Instantly share code, notes, and snippets.

View vverbeek's full-sized avatar

Vincent Verbeek vverbeek

View GitHub Profile
@vverbeek
vverbeek / changeLogo
Created May 9, 2015 11:29
Javascript to change Site Logo URL
@vverbeek
vverbeek / gist:45666347356612b881df
Created April 16, 2015 06:24
Clean up after yourself
private void CleanUp(ClientContext ctx)
{
List _requestList = ctx.Web.Lists.GetByTitle(Lists.SiteRepositoryTitle);
ctx.Load(_requestList, p => p.EventReceivers);
ctx.ExecuteQuery();
var rer = _requestList.EventReceivers.Where(
e => e.ReceiverName == RECEIVER_NAME).FirstOrDefault();
try
@vverbeek
vverbeek / gist:42d6a10de6c062200d4b
Created April 16, 2015 06:21
HandleItemUpdated
private void HandleItemUpdated(SPRemoteEventProperties properties)
{
using (ClientContext clientContext = TokenHelper.CreateRemoteEventReceiverClientContext(properties))
{
if(clientContext != null)
{
List requestList = clientContext.Web.Lists.GetById(properties.ItemEventProperties.ListId);
ListItem item = requestList.GetItemById(properties.ItemEventProperties.ListItemId);
clientContext.Load(item);
clientContext.ExecuteQuery();
@vverbeek
vverbeek / gist:157d074edf040f513ccc
Created April 16, 2015 06:19
Process Oneway Event
public void ProcessOneWayEvent(SPRemoteEventProperties properties)
{
switch(properties.EventType)
{
case SPRemoteEventType.ItemUpdated:
HandleItemUpdated(properties);
break;
}
}
@vverbeek
vverbeek / gist:b3af5513d6687c9397d0
Created April 16, 2015 06:19
Attach Remote Event Receiver
EventReceiverDefinitionCreationInformation receiver = new EventReceiverDefinitionCreationInformation();
receiver.EventType = EventReceiverType.ItemUpdated;
//Get WCF URL where this message was handled
OperationContext op = OperationContext.Current;
Message msg = op.RequestContext.RequestMessage;
receiver.ReceiverUrl = msg.Headers.To.ToString();
receiver.ReceiverName = RECEIVER_NAME;
//Add the new event receiver to a list in the host web
@vverbeek
vverbeek / gist:1eda3596b3d615d3a06d
Created April 16, 2015 06:18
Create new list using CSOM
List requestList = ctx.Web.Lists.FirstOrDefault();
if(requestList == null)
{
var newList = new ListCreationInformation()
{
Title = Lists.SiteRepositoryTitle,
Description = Lists.SiteRepositoryDesc,
TemplateType = (int)ListTemplateType.GenericList,
Url = Lists.SiteRepositoryUrl
};
public SPRemoteEventResult ProcessEvent(SPRemoteEventProperties properties)
{
SPRemoteEventResult result = new SPRemoteEventResult();
switch (properties.EventType)
{
case SPRemoteEventType.AppInstalled:
this.HandleAppInstall(properties);
result.Status = SPRemoteEventServiceStatus.Continue;
break;
@vverbeek
vverbeek / peoplepickercontrol.js
Created April 10, 2015 10:04
peoplepickercontrol.js
// Remove resolved user from the array and updates the hidden field control with a JSON string
PeoplePicker.prototype.RemoveResolvedUser = function (lookupValue) {
var newResolvedUsers = [];
for (var i = 0; i < this._ResolvedUsers.length; i++) {
var resolvedLookupValue = this._ResolvedUsers[i].Login ? this._ResolvedUsers[i].Login : this._ResolvedUsers[i].LookupId;
if (resolvedLookupValue != lookupValue) {
newResolvedUsers.push(this._ResolvedUsers[i]);
}
}
this._ResolvedUsers = newResolvedUsers;
@vverbeek
vverbeek / gist:9f8abf668f89bd8f5bf5
Created April 10, 2015 10:03
ChangeSiteOwnerPlaceholder
function changeSiteOwnerPlaceholder() {
if (document.getElementById("hdnSiteOwner").value != '[]')
{
$('#inputSiteOwner').attr('placeholder', '');
}
else
{
$('#inputSiteOwner').attr('placeholder', 'Who will manage this site?');
}
}
@vverbeek
vverbeek / gist:9d72132aba2d23a8e412
Created April 10, 2015 10:01
ClientSidePeoplePickerHTML
<div id="divSiteOwner" class="cam-peoplepicker-userlookup ms-fullWidth">
<span id="spanSiteOwner"></span>
<asp:TextBox ID="inputSiteOwner" runat="server" CssClass="cam-peoplepicker-edit" Width="70"></asp:TextBox>
</div>
<div id="divSiteOwnerSearch" class="cam-peoplepicker-usersearch ms-emphasisBorder"></div>
<asp:HiddenField ID="hdnSiteOwner" runat="server" />