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"


method: "POST"

and for the actual data package to post, instead of

data: JSON.stringify(item)


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\"}"

Tuesday, July 09, 2013

Google Site Template for IntelliTask and IntelliGantt

We just published a Google Site template to the Google Site public template list that you can use to quickly get started with our IntelliTask for Google and IntelliGantt for Google solutions. We put IntelliTask for Google on the site's home page and IntelliGantt for Google on a separate page we called 'Project Manager'. The idea behind this is team members can go the the home page of a Google Site and view what their tasks are with respect to that site. Project Managers can also go to the site and use the IntelliTask for Google, or they can go the the special 'Project Manager' page where IntelliGantt for Google is available to create tasks, update schedules, make assignments and do all the things necessary for a healthy project. Also, because we put IntelliGantt for Google on its own page, you can 'lock it down' if you prefer so that only project managers can view (and therefore work with) it.

Here's how it works. First we will go to our Google Sites page so that we may create a new Google Site.

Next we will browse in the gallery for more templates.

Since it's not the most recent entry into the template list, we will need to search for it. We placed the template in the 'Business Collaboration' category. After this is selected, type 'IntelliTask' into the search box and click the magnifying glass. The 'IntelliGantt Starter Template' should appear.

Finish creating the Google Site as you normally would. One finish, on the Home page you will see an instance of our IntelliTask for Google. This is a Google Site aware and Google+ User aware task list designed to show whomever is viewing the page all their assigned tasks within the context of this Google Site. Of course, it looks a little empty right now, but we will change that shortly.

The template also has another page for our IntelliGantt for Google application. Here we will be able to create tasks, assignments, schedules, and even define what the column names are and if they are visible or editable for everyone.

Let's do just that. First we will add three tasks.

And then assign one we called 'Two' to Julia Windsor.

When we navigate back to the Home page, you'll see the IntelliTask for Google application, only this time, because it is Julia who is logged it, we see all of Julia's assigned tasks.

If Julia puts on her 'Team Member' hat, she may wish to report she is down with 'Two'. She mouse-clicks or touches the 'Done' cell to mark her task completed. This field is editable by default, but you can change which fields are visible and/or editable in the IntelliGantt for Google app. Speaking of which, if we navigate to the 'Project Manager' page we will see Julia's update in the context of the entire project.

Note that IntelliGantt for Google shows you which columns are visible in IntelliTask for Google by displaying a small 'world' image in the header column cell. Similarly, if the header column cell has a little pencil as well, then IntelliTask users can update assigned tasks for these fields.

You can change these settings by moving the mouse into the column header or selecting the column header by touching it, then clicking on the configuration cog image.

This gives you the ability to change the visibility or editability for a data column.

You can also change the display name for a data column by clicking or touch on its current display name. This brings up the editor for you to change as you wish.

Monday, July 08, 2013

Adding Hyperlinks to Tasks

New features are continuing to roll out for IntelliGantt for Basecamp, IntelliGantt for Google and IntelliGantt for Facebook. You'll see a steady stream of new column types that become available over the next few months, but first we have not a column type but a bit of metadata-- associating web hyperlinks with tasks. With this feature you can frame the context of your task with links to SharePoint documents, YouTube videos or PDF files on your internal network.

First select the task you wish to add the hyperlink to. Here we will select 'Change 2'.

Click the '+' button since we will be adding a hyperlink. What will popup is our 'super add' dialog that lets you add both new tasks and hyperlinks using the current selection as a point of reference. Note that 'Change 2' is bounded above and below. The 'Add Task Above' boundary lets you add a sibling task or a child of a sibling task above, depending if you click the left or right '+' button. The 'Add Task Below' boundary lets you add a sibling task or a child task below, depending if you click the left or right '+'.

But we are focusing on hyperlinks in this post. For that please note the 'Add Web Link' area consisting of two text boxes, two buttons ('+' and '-') and a dropdown select box. This is a multi-function control that lets you add hyperlinks by typing in the title and the link (or more likely pasting the link) and then either hitting the 'enter' key or clicking the '+' button. When this happens the title/link pairing is added to the list of hyperlinks for the selected task.

You can immediately view the hyperlink you just added in the dropdown .

You can use this dropdown to select any of the hyperlinks associated with a task. If you don't like one, simply remove it by clicking the '-' button. When you dismiss the add dialog you will now see a paperclip next to the task in the task list. When you see this paperclip it means the task has one or more hyperlinks associated with it.

To see all the hyperlinks associated with a task, simply click on the paperclip or, if using a tablet, touch the paperclip with your finger. A dialog appears listing all the hyperlinks for the task.

Each hyperlink has the actual link, the title supplied when creating the hyperlink and, if you're running the IntelliGantt project manager tool (as seen in these screenshots) the ability to remove the link by clicking the '-'. You'll most likely click the 'link', though, and see a new tab open up with the url.