using ajax to improve uportal user experience

40
Using Ajax to Improve uPortal User Experience Jen Bourey Yale University [email protected]

Upload: aron

Post on 19-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

Using Ajax to Improve uPortal User Experience. Jen Bourey Yale University [email protected]. Outline. Short demo Technical overview Code changes Customizing for your portal Implications for our portal User testing Dojo channels The future!. Old User Preferences. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Using Ajax to Improve uPortal User Experience

Using Ajax to Improve uPortal User Experience

Using Ajax to Improve uPortal User Experience

Jen BoureyYale University

[email protected]

Page 2: Using Ajax to Improve uPortal User Experience

OutlineOutline

Short demoTechnical overview

Code changesCustomizing for your portal

Implications for our portalUser testingDojo channels

The future!

Short demoTechnical overview

Code changesCustomizing for your portal

Implications for our portalUser testingDojo channels

The future!

Page 3: Using Ajax to Improve uPortal User Experience

Old User PreferencesOld User Preferences

Page 4: Using Ajax to Improve uPortal User Experience

Old User PreferencesOld User Preferences

Page 5: Using Ajax to Improve uPortal User Experience

GoalsGoals

More intuitive interfaceSimplify preference optionsUse current conventions from other

portalsEasier and faster to . . .

Find and add new contentRearrange layout elements

More intuitive interfaceSimplify preference optionsUse current conventions from other

portalsEasier and faster to . . .

Find and add new contentRearrange layout elements

Page 6: Using Ajax to Improve uPortal User Experience

UI OverviewUI Overview

Page 7: Using Ajax to Improve uPortal User Experience

Current StatusCurrent Status

Most features copied from preferences channel.

Brower compatibility: IE6, IE7, Firefox, Safari.

Fails back if scripting is disabled.

Most features copied from preferences channel.

Brower compatibility: IE6, IE7, Firefox, Safari.

Fails back if scripting is disabled.

Page 8: Using Ajax to Improve uPortal User Experience

Channel EditingChannel Editing

MoveDeleteMin/max

MoveDeleteMin/max

Page 9: Using Ajax to Improve uPortal User Experience

Channel EditingChannel Editing

Page 10: Using Ajax to Improve uPortal User Experience

Adding ChannelsAdding Channels

Browse channels by categorySearch channelsUse channel without adding to

layout

Browse channels by categorySearch channelsUse channel without adding to

layout

Page 11: Using Ajax to Improve uPortal User Experience

Browsing ChannelsBrowsing Channels

Page 12: Using Ajax to Improve uPortal User Experience

Searching ChannelsSearching Channels

Page 13: Using Ajax to Improve uPortal User Experience

Adding a Channel from Focus Mode

Adding a Channel from Focus Mode

Page 14: Using Ajax to Improve uPortal User Experience

Editing TabsEditing Tabs

Page 15: Using Ajax to Improve uPortal User Experience

Page LayoutPage Layout

Page 16: Using Ajax to Improve uPortal User Experience

Technical DetailsTechnical Details

Page 17: Using Ajax to Improve uPortal User Experience

Java ResourcesJava Resources

ServletsRetrieveChannelListServletUpdatePreferencesServlet

Theme Param InjectorsAjaxThemeParamInjector

ServletsRetrieveChannelListServletUpdatePreferencesServlet

Theme Param InjectorsAjaxThemeParamInjector

Page 18: Using Ajax to Improve uPortal User Experience

Javascript ResourcesJavascript Resources

Dojo!Portal dojo classes

PortletDragObject.jsPortletDragSource.jsPortletDropTarget.js

ajax-preferences.js

Dojo!Portal dojo classes

PortletDragObject.jsPortletDragSource.jsPortletDropTarget.js

ajax-preferences.js

Page 19: Using Ajax to Improve uPortal User Experience

DojoDojo

IO librariesProvide data (ex. Channel registry)Handle asynchronous requestsReturn relevant information

WidgetsPopup-style menustabs

IO librariesProvide data (ex. Channel registry)Handle asynchronous requestsReturn relevant information

WidgetsPopup-style menustabs

Page 20: Using Ajax to Improve uPortal User Experience

Theme ChangesTheme Changes

Lots and lots of element IDsOnclick() eventsHidden preference menu widgetsGenerate drag objects based on

layout information

Lots and lots of element IDsOnclick() eventsHidden preference menu widgetsGenerate drag objects based on

layout information

Page 21: Using Ajax to Improve uPortal User Experience

Interaction OverviewInteraction Overview

User action

JavaScript

UpdatePreferencesServlet Update UI

Stored layout

Page 22: Using Ajax to Improve uPortal User Experience

Example: adding tabsExample: adding tabs

User clicks

JavaScript

Insert new tab in layout Insert new tab in UI

Store preferences

Page 23: Using Ajax to Improve uPortal User Experience

Add tab: Java codeAdd tab: Java code

Create new tab nodeSave layout and get new tab’s

nodeIdCreate new column and add it to

the tabSave layoutReturn new tab nodeId

Create new tab nodeSave layout and get new tab’s

nodeIdCreate new column and add it to

the tabSave layoutReturn new tab nodeId

Page 24: Using Ajax to Improve uPortal User Experience

Add tab: JavaScript codeAdd tab: JavaScript code

AJAX request to preferences servlet

Create new tab and append it to the tab list

Assign tab the appropriate id

AJAX request to preferences servlet

Create new tab and append it to the tab list

Assign tab the appropriate id

Page 25: Using Ajax to Improve uPortal User Experience

Example: adding channelsExample: adding channels

User clicks

JavaScript

Get channel registry XML Display channel

adding menu

User choosesa channelPreferences

servlet

Reload page

Page 26: Using Ajax to Improve uPortal User Experience

Skin ResourcesSkin Resources

{$skin}_preferences.cssOverride dojo defaults

Extra icons (left and right arrows)

{$skin}_preferences.cssOverride dojo defaults

Extra icons (left and right arrows)

Page 27: Using Ajax to Improve uPortal User Experience

CustomizingCustomizing

Other skinsCreate and link new ${skin}_ajax.js

Other themesAdd element IDsCreate javascript

Other layout managers?

Other skinsCreate and link new ${skin}_ajax.js

Other themesAdd element IDsCreate javascript

Other layout managers?

Page 28: Using Ajax to Improve uPortal User Experience

Back to the PortalBack to the Portal

Page 29: Using Ajax to Improve uPortal User Experience

Refining our UIRefining our UI

Terminology choicesPositioning of menu itemsToo many features?

Ex. Moving columns

Suddenly a lot of channels look clunkyLinks channelSearchMulti-RSS feed with pull-down menu

Terminology choicesPositioning of menu itemsToo many features?

Ex. Moving columns

Suddenly a lot of channels look clunkyLinks channelSearchMulti-RSS feed with pull-down menu

Page 30: Using Ajax to Improve uPortal User Experience

Using Dojo in ChannelsUsing Dojo in Channels

io libraryGet data from XML, JSON, etc.Interactive, asynchronous requests

WidgetsTabs in channelstooltips

io libraryGet data from XML, JSON, etc.Interactive, asynchronous requests

WidgetsTabs in channelstooltips

Page 31: Using Ajax to Improve uPortal User Experience

Google MapsGoogle MapsCWebProxy + AJAX + XML

Page 32: Using Ajax to Improve uPortal User Experience

Google SearchGoogle Search

Page 33: Using Ajax to Improve uPortal User Experience

Dining MenuDining Menu

Page 34: Using Ajax to Improve uPortal User Experience

Yale Events CalendarYale Events CalendarCWebProxy + AJAX + custom xCal

Page 35: Using Ajax to Improve uPortal User Experience

CSyndFeedCSyndFeedDojo tooltip widget

Page 36: Using Ajax to Improve uPortal User Experience

Weather PortletWeather PortletCustom RSS feed -> local JSON

Page 37: Using Ajax to Improve uPortal User Experience

Sports ScoresSports ScoresScriptSrcTransport + JSON

Page 38: Using Ajax to Improve uPortal User Experience

Missing PiecesMissing Pieces

Resetting a layoutSetting the active tabMoving columnsMoving channels to a new tabDLM restrictions

Resetting a layoutSetting the active tabMoving columnsMoving channels to a new tabDLM restrictions

Page 39: Using Ajax to Improve uPortal User Experience

Future DevelopmentFuture Development

Improved tab editing UIDrag channels to another tabReset layout and/or fragmentIncreased user feedbackAccessibility

Improved tab editing UIDrag channels to another tabReset layout and/or fragmentIncreased user feedbackAccessibility

Page 40: Using Ajax to Improve uPortal User Experience

ResourcesResources

JA-SIG wiki http://www.ja-sig.org/wiki/display/UPC/Yale+Dojo-

driven+Drag+and+Drop

JA-SIG subversion repository https://www.ja-sig.org/svn/up2

Yale portal https://portal.yale.edu/Login?userName=demo&password=demo

Contact info [email protected]

JA-SIG wiki http://www.ja-sig.org/wiki/display/UPC/Yale+Dojo-

driven+Drag+and+Drop

JA-SIG subversion repository https://www.ja-sig.org/svn/up2

Yale portal https://portal.yale.edu/Login?userName=demo&password=demo

Contact info [email protected]