“I’m one of those weirdos who loves JavaScript.”


That was the succinct intro by Adam Sinnett, Senior Software Engineer at Jive and the first of two speakers at What’s New: Integrated User Experiences in Jive, one of Tuesday afternoon’s breakout sessions under the Developer track.


Compared to the morning sessions I took on employee engagement, this session as well as the Developer session that immediately followed (and which I also blogged about, concerning simple stream integration) were much more nuts and bolts.


Also, given that I'm not a developer by trade, just about all of the below was new to me. It's like you've been driving a car for a long time, and now I get to see the guts under the hood that make it all possible.


Let's roll...



Adam Sinnett, Senior Software Engineer at Jive


I was pleased to see that Adam’s focus would be on tiles, a feature of Jive I only just started working with about six weeks ago when my employer Yahoo’s intranet was migrated to our internal instance of the Jive cloud.


First, Adam recapped his presentation from the previous JiveWorld in October 2014 which, according to Jive CEO Elisa Steele at this morning’s keynote, approximately seventy percent of 2016 JiveWorld attendees did not attend.


Why tiles exist:


•    Lightweight external integrations

•    Ability to interact with external systems through Jive

•    Easier than widgets / plugins

•    Cloud compatible


How tiles work:


•    Configuration JSON (no idea what this means, but it sure sounds neat)

•    POST configuration and registration data to your service (ditto)

•    Render tile from your HTML / data


Adam then continued with the latest and greatest with tiles since the previous JiveWorld. Since tiles are totally new to me, I didn’t realize that some of the attributes that I’m already taking for granted after six weeks are fresh and a big improvement over the previous version of tiles.


•    Allow community managers to add up to five pages of complimenting customizable content to a single space

•    Exist within pages: places, news, your view, and mobile homepage

•    Makes Overview page mobile responsive


“For those of you still using Overview pages, tiles help Overview pages render on mobile.”


As of Jive 8 at Yahoo, our internal corp apps team has instructed me to discontinue using Overview pages specifically because they are not mobile responsive.


Adam also showed us the new tile types:


•    Narrow

•    Wide

•    Hero (currently only on the News page)


Internally at Yahoo, we were supposed to get the Hero with the 2016.1 release, but that release was so buggy, they pulled it back. Thus far, only bulk content management has been made available through 2016.1.


Next, Adam covered the tile pages API.


•    CRUD service for PageEntity

•    Prototype endpoint for getting started: https://my-jive.com/api/core/v3/pages/prototype?placeTemplateID=X&placeURI=Y

•    Required fields: name, parent, page type

•    Layout and one tile required for creation (I learned this right away when I began using tiles, that you cannot create a page on a space without creating at least one tile, even if you don’t build any content in it.)


When it comes to custom content creation, you have two tiles too choose from: HTML and Custom View.


HTML tiles:


•    Single instance of static HTML-based content

•    No setup

•    Able to be created and configured by admins

•    Fast and responsive content

•    No access to user session or external JavaScript

•    Saving SV requires admin or Save Script permissions to be granted

•    Cannot be reused without recreating (biggest pain point for me since we use HTML tiles for our left-hand nav across spaces under a single parent)

•    Only on the cloud

•    Able to upload images and CSS within tile

•    Simple to make mobile friendly

•    Permission-based ability to save JavaScript


Custom View tiles:


•    Add-on-based global tile with custom content

•    Access to Jive APIs, user session, external services

•    Easier to build user interactive experiences

•    Configuration view to customize each tile

•    Data to present may be retrieved from configuration data, per user store or pushed by middleware

•    Easily reusable in multiple places (where have you been all my life?)

•    Jive hosted or external service hosted

•    Slower to render than HTML tiles, speed comparable to Jive apps

•    Because they’re slower, only two are allowed per page


At Yahoo I only know of one Custom View tile on our Jive 8 instance, and it’s a simple product description used on our Dev space. No word yet on when we’ll get to use more of these, but suffice it to say it would help immensely with having to recreate the left-hand nav on all my pages / spaces.


To wrap up his session, Adam exited his deck and navigated to a dummy group on the Jive Community called Custom View Tile. In short order he whipped up a bunch of code on a plain text file, slapped in the appropriate place, toggled back to the Custom View Tile group, and refreshed to show us the new Custom View tile he’d just created.


Et voila…




Talk about near and dear to my bleeding eighties heart!



Ed Venaglia, Staff Software Engineer at Jive


Ed, too, kicked things off with a droll, deadpan intro. After telling us how he architected and patented Jive’s add-on framework and is a full-stack expert in this, that, and the other code language, he said, “I just love building things, whether it’s with wood, metal…and lasers.”


I’ve never heard anyone say so casually that they work with lasers as a hobby.


Ed focused on the latest and greatest in add-on experiences since the last JiveWorld.


First, he covered two kinds of UI extensions: pre-install and configuration.


Pre-install UI:


•    Shown before the add-on is installed

•    Useful for checking connectivity or licenses

•    Can prevent the install of an add-on

•    Only available to add-ons installed from the global registry


Configuration UI


•    Requires the admin to configure the add-on before it can be used

•    Can save configuration locally or in a middleware service

•    External Storage Framework (ESF) UI connects Jive to third-party storage provider


These two UI extensions have something in common: they’re lightweight apps.


Why lightweight apps are awesome:


•    Simpler since they only use HTML, CSS and JavaScript

•    Automatically include most popular features like jQuery, Core API, OpenSocial, OAuth

•    Simple handlers for open and close

•    Easy to pass data in and out

•    Support responsive UI for mobile

•    Similar runtime environment as a Jive app


Here are the JavaScript features for lightweight apps:


•    Easy access to common JS libraries

•    Access specialty Jive APIs

•    Simple API to pass data back and forth with Jive

•    Support for responsive UI and mobile browsers

•    Defined using a benign query parameter in the URL


Winding down, Ed gave high-level snapshots of public resources, bundling apps with add-ons, and Health Check.


Public resources:


•    Installed directly from the add-on package and “ridiculously fast” because they’re served by Jive instead of a middleware service

•    Can be used to store any UI resource

•    Anonymous access

•    No authentication required


Bundling apps with add-ons:


•    App availability managed by Jive admin

•    Preferred over deploying apps using the Apps Market

•    App resources can be public resources

•    Can still use URLs (convenient for migrating away from Apps Market)


For using URLs, you’ll probably have to contact your Jive AM or support person.


Now how about that Health Check?


•    Good to have when using a middleware service

•    Easy to implement

•    Can inform Jive admin if service is having issues or undergoing maintenance

•    Can expose details about middleware service components (e.g. database problems, micro-service status and health, problems with upstream services, may include remediation instructions)

•    Inform admin about upcoming scheduled downtime


One final note from Ed concerned the Add-on Validator. This is a static analysis tool of add-on packages that you’ll need if you are bundling add-ons.


To wit:


add-on validator.jpg