ICS Export Plugin

    Summary

    This plugin aims to make awareness of SBS Tasks and Project information more abundant, but allowing users to Subscribe to an ICS feed (a.k.a. iCal) from Jive SBS, that will always have an updated list of their task information.

     

    Note:  Google Calendar, if used, would need access to see this URL, so may be problematic outside the firewall depending on your network configuration.

     

    Official plugin of Plugins by ryanrutan

     

    Plugin Support

    This plugin IS NOT supported by Jive, and use of this plugin should be done at the user's discretion, or as advised by their Jive Support representative.


    Copyright / License

    Copyright 2012 Ryan Rutan under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

    Features

    The following are a list of features that are included in the plugin:

    • Feed Configuration Interface
      • by Profile (Your Profile => Actions => Export Calendar)
        • All Tasks you are assigned across ALL Projects!
        • This is the primary use-case for this plugin.
      • by Project (Project Actions => Export Calendar)
        • All Tasks in a Project: Yours, Others, or Both!
    • ICS Feed Generation Service
      • Filter on the number of days out (due date) tasks should be displayed: (30,60,90)
      • Filter on Tags to reduce task list:
        • Multiple Tags imply AND logical comparison
      • Filter by Project
      • Filter by Personal Tasks
      • Filter by Incomplete
      • Tasks exposed as ICS VToDo:
        • URL link back to the Task in Jive SBS (i.e. /tasks/xxxx)
        • Description is Plain Text content of the Description Field
        • Priority in ICS via Social Tags for High, Medium, Low
          • Tag mappings per priority configurable at the System Level
        • Subject / Due Date are in their appropriate places
    • Disable Plugin from Admin Console, System Property
    Installation / Configuration / Getting Started in iCal
    Install plugin through standard Admin plugin interface.
    Configuration options (System Properties):
    • icsexport.enabled (true|false) - If not presented, [default: true]
    • Priority (precedence, high => low)
      • icsexport.tag.priority.high - Value is the tag that represents High Priority [default: priority-high]
      • icsexport.tag.priority.medium - Value is the tag that represents Medium Priority [default: priority-medium]
      • icsexport.tag.priority.low - Value is the tag that represents Low Priority [default: priority-low]
    • icsexport.param.numDays.default - (30|60|90) - Default number of days to look forward [default: 30]

    • icsexport.feedLabel.default - Value is placed in the ICS GUID as part of the Label [default: ics-export-sbs-plugin]

     

    In iCal, simply:

    • Subscribe to a new calendar
    • Paste in the URL from the Generator
    • Enter your Username/Password when prompted
    • When naming your Calendar, be sure to "uncheck" the option to Remove ToDo's, otherwise your calendar will be empty.
    • Press OK.
      • I've noticed that getting it to work for the 1st time, takes a minute...or 3 refreshes...depending on your patience level.

     

    Limitations

    The following are known limitations to this plugin:

    • Task Description contents are not Rich-Text, at first glance, it doesn't look like this is supported by iCal, but need to research if this is limiting of the ICS specification (do not think so)
    • ICS VToDo Sequence Header is not supported.
      • This would require me maintaining a sequence state for every time a task was updated.  If SBS adds a Sequence column to the Task Object, and maintains revision #'s, this would be more ideal; however, I am reluctant to track this in the Task Metadata due to the overhead.  As it stands, iCal picks up the changes.
    • User Interfaces are not my speciality, as such, the configuration screen is very simple.  I may get around to making a better one, but it is functional and relatively clean.
    • Currently, there is an issue with CheckPoint persistance that would make it difficult to implement CheckPoints, without a ghosting scenario. When ready, CheckPoints will be exposed as non-blocking VEvent entries.  There time will either be system configurable (default for all CheckPoints) and/or derived from their Creation/Modification date(s).