Showing posts with label REST. Show all posts
Showing posts with label REST. Show all posts

Wednesday, July 24, 2013

IntelliGantt for SharePoint 2013

Current IntelliGantt Web Part users have been asking about SharePoint 2013 support and I'm able to offer the first peek at things going forward. First, though, you should know that the IntelliGantt Web Part 2010 Farm and Sandbox installation work exactly the same for SharePoint 2013. As such you can install and run the IntelliGantt Web Part on your new SharePoint 2013 instance, or you can upgrade your SharePoint 2010 instance to SharePoint 2013 and the IntelliGantt Web Part will run just fine.

But, SharePoint 2013 does offer some new, very interesting things that we are taking advantage of. First and foremost is that client-side applications downloaded via the browser are now the preferred way to work with SharePoint 2013. This is great news because we've been doing this since 2007 with SharePoint web services. Second and penultimate-most, SharePoint 2013 fully supports a REST api like most other services on the internet today. As such, we are now able to place our IntelliGantt for SharePoint 2013 solution into any web browser on any platform. This means in addition to desktops and laptops, you can also run IntelliGantt for SharePoint 2013 on Surfaces, iPads and Android devices-- including touch gestures!

We're pretty excited by what this opens up for us, both for interoperability on the web and across devices. The features will be coming fast and furious as we listen to customer requests and enhance IntelliGantt everyday. The speed and ease that you can update via the web is nonpareil, which in general is a good thing. But we have heard a few resellers worried that we might update IntelliGantt for SharePoint 2013 too often. It's important for them to have a well-known, robust offering that training materials will be good for a set amount of time.

Since we always listen to customers, we are creating two pipelines' of IntelliGantt for SharePoint 2013 offerings. The first is the latest and greatest-- that one that has the newest features as a result of ideas or requests. The second is a measured release that we will be updating twice a year. It won't have the very latest but will allow you to plan updates on a set schedule.

You will see these two products appear in the Windows Store by the end of September. If we need more release tracks, then we will look at adding a third track.

In the meantime, here are two screenshots, one showing the new task list in SharePoint, and the second showing IntelliGantt for SharePoint 2013 rendering and providing extra functionality.

The out of the box Task List:

The IntelliGantt for SharePoint 2013 App linked to that list providing interactive updates:

Wednesday, July 17, 2013

Fun with SharePoint REST and Javascript

Quick Update -- We've released our IntelliGantt for SharePoint 2013 pure HTML5+Javascript gantt chart. Install it and let us know what you think!

Exciting news as we are prepping the new web-based successor to IntelliGantt specifically for SharePoint 2013. We just passed a hurdle that other SharePoint 2013 developers using rest with javascript and the SP.RequestExecutor for cross domain calls should now. It's quite a mouthful, but if you are doing a SharePoint 2013 Provider Hosted App, then you'll know exactly what I'm talking about.


The crux of the issue seems to be that while you use one parameter set for straight ajax calls, when you use the SP.RequestExecutor, that object expects slightly different parameters. To wit:
instead of



type: "POST"

use

method: "POST"

and for the actual data package to post, instead of

data: JSON.stringify(item)

use

body: JSON.stringify(item)

For completeness, here is the block that I used to update via rest using javascript across a domain with the SP.RequestExecutor object:


  new SP.RequestExecutor(closureThis.appweburl).executeAsync(
     {
     url: closureThis.appweburl + "/_api/SP.AppContextSite(@target)/web/lists(guid\'" + listIdGuid + "\')/items(" + itemId + ")?@target='" + closureThis.hostweburl + "'",
     method: "POST",
     headers: {
       "accept": "application/json;odata=verbose",
       "content-type": "application/json;odata=verbose",
       "X-RequestDigest": closureThis.getDigestValue(),
       "X-HTTP-Method": "MERGE",
       "If-Match": "*"
     },
     body: updateBlock,
     success: function (data) { closureThis.updateDataObjectCallback(data); },
     error: spRequestorErrorHandler
     }
     );


Where closureThis is an object I use to store SharePoint variables and handle callbacks
Where updateBlock is the JSON.stringify(data) value



My updateBlock value looks like this:



"{\"__metadata\":{\"type\":\"SP.Data.TasksListItem\"},\"Title\":\"First Task\"}"