Highlights

Among the many enhancements included in the Sakai CLE 2.8 release are:

  • Configurable URL shortening service
  • Numerous mobile portal UI improvements
  • Collapsible portal navigation menu
  • reCAPTCHA support for logins
  • Enhanced user profile options
  • Support for IMS BasicLTI outcomes
  • Respondus question import handling
  • Optional CKEditor implementation
  • Six new webservices
  • Persistent event logging for Quartz Scheduler jobs
  • Improved IMS BasicLTI external integration capabilities
  • Improved integration with external user providers (eg LDAP)
  • Updated language packs (Chinese, Dutch, French, Spanish, Portuguese, Turkish and Vietnamese.)

For a complete listing of new features see the lists below.

Portal

Ticket

Project

Feature

portal

Adds portal icons for Etudes's Mneme, Melete and JForum tools.

portal

Leverages browser caching opportunities.

portal

Adds ability for tools to request the maximum tool area for display purposes now that navigation menu can be collapsed (portal.allow.auto.minimize=true).

portal

Logout timer setting (timeoutDialogEnabled) is now enabled by default.

portal

Eliminates Presence iframe and replaces with JQuery.Ajax calls.

portal

Adds ability to specify a URL (rather than a siteId) for the gateway page (gatewaySiteUrl=myurl).

portal

Adds link to PDA portal on gateway page.

portal

Includes tool css in background portal document so JSR-168 tools can be styled.

portal

Adds collapsible navigation menu (icons only). See also .

skins

Add FLUID reordering support.

portal

Sub-sites in navigation menu are sectioned separately from a site's tool list and each sub-site is assigned an icon.

portal

The Kernel version can now be listed in the footer. See also , .

portal

Implements Javascript routine to more accurately poll status of user session.

portal

Render menu links to "hidden" tool pages in italics and with an opacity of 0.7.

portal

portal/xlogin page converted to a vm template.

portal

Cancel button added to (xlogin) login page.

Mobile/PDA Portal

Ticket

Project

Feature

portal

Added ability to hide synoptic tools.

portal

Added tool icons to help distinguish between site and tool lists.

portal

Adjust .css to distinguish between sites and tools in mobile portal.

portal

Mobile .css skins updated.

portal

Since 2.7.0 the standard portal has (SAK-15097) the ability to insert some markup on a site-by-site basis via a site property (sakai:htmlInclude). This has been ported to the PDA portal in such a way that the same site can (if needed) contain a different markup include as the standard portal.

portal

PDA changes for 2.8: breadcrumbing simplified; additional rendering capabilities added for devices that adhere to the following @media selector: "@media screen and (max-device-width: 480px)"; .css trim and ellipsis provided for site titles that go over the width of the viewport; css3 selectors used for compatible devices in order to differentiate items in the breadcrumb; <meta /> tag modified in pda.vm to make changes in orientation smoother (portrait/landscape); modified how links to child sites are displayed (passing control over to the css); moved strings from pda.vm template to bundle; and changed how links in the site menus are rendered (make entire block clickable) and styled in order to make them more in accordance to practice.

portal

Added "opt out" link in the /portal/pda footer in order to forward user to portal/site (i.e., "classic view").

portal

Auto-detect mobile devices and forward to /portal/pda; otherwise forward to portal/site (desktop/laptop access).

Tools

Ticket

Project

Feature

account

Added recaptcha support for new account signups.

announcements

Authors can now change display order of announcements.

announcements

Notification history added.

announcements

entitybroker support added.

announcements

Announcements tool is now registered as group-aware when starting PermissionHelper.

announcements

Accessibility: list navigator buttons provided with appropriate contextual text labels in order to render them meaningful to Screen-Readers. See also .

assignments

Letter grades now customizable (assignment.letterGradeOptions).

assignments

Instructors now provided with a manifest of archives uploaded by students (*.zip only so far).

assignments

Assignments tool is now registered as group-aware when starting PermissionHelper.

assignments

Allows instructor to specify options for Assignment tool default page (e.g., show no assignment) but do search or other filters first.

basiclti

Now auto-registers events for use by sitestats.

basiclti

Adds ability to set grades in the Sakai CLE from an external tool using web services. Disabled by default (basiclti.outcomes.enabled=false).

basiclti

Permits multiple placements of basiclti in a given context (e.g., site).

basiclti

Adds ability to open a basiclti tool in a new window.

basiclti

Adds support for the ext_lms feature in IMS Basic LTI permitting basiclti to know which LMS it is dealing with so it can tune it's tool UI appropriately.

basiclti

Adds a checkbox that provides option to minimize the portal navigation menu after a launch occurs. See also .

basiclti

Added support for basic outcomes and settings service. This change alters the outcomes service to reflect the draft of the basic (as compared to simple) outcomes service and adds a per-placement settings service. Disabled by default (basiclti.outcomes.enabled=false).

basiclti

Implemented the Context Memberships Service as described in the IMS GLC Basic Learning Tools Interoperability Extensions Recommended Practice. This allows an external tool (if granted proper permissions) to retrieve a course roster for the course that they were launched from.

basiclti

Added support for the IMS Basic LTI ext_resource_link_content extension. This allows the launch to specify a URL that contains resource content. Initially simply a field in the configuration dialog, future work will permit basiclti launches from a resource handler (e.g., the way to send the URL of the current resource that BLTI is being launched from), allowing the launching of a SCORM object with an external SCORM player or perhaps a QTI2 test engine and handing the player or test engine the actual content to be played.

basiclti

Added parameter ext_sakai_provider_eid so that an external consumer can pass an eid instead of a userid.

chat

Adds RESTful way of retrieving new chat messages for a channel.

content

Resources tool is now registered as group-aware when starting PermissionHelper.

email-archive

Site owners can choose to forward to site members or simply archive emails sent to the site email address.

email template service

Sender address can now be specified in a template.

email template service

Adds template loading/updating.

gradebook

Adds sorting for categories by name, average, weight. Category sorting also added to "roster" and "summary" pages.

gradebook

Adds edu-services scenarios for saving assignment with trailing whitespace to unit tests.

hybrid

Added hybrid-util dependency to login and provider projects in order to simplify adding the full hybrid project to Sakai 2.8.

memory

Added cache evict item functionality to Memory tool.

msgcntr

Forum threads are now sortable.

msgcntr

Added ability to set open/close dates for discussion boards,forums and topics.

msgcntr

Added ability to preview message before sending.

msgcntr

entitybroker support extended.

msgcntr

Added the ability to configure the default email behavior for the "Watch" functionality in Forums (mc.notificationDefault).

msgcntr

Option added to permit authors to save a message draft.

msgcntr

Query findNumModeratedTopicsForSiteByUserByMembership rewritten in order to improve performance.

msgcntr

Query findAllPendingMsgsByContextByMembership rewritten in order to improve performance.

msgcntr

Synoptic queries permissionLevelId and permissionLevelName rewritten in order to improve performance.

osp

Adds configurable property that turn off tool categorizations in the navigation menu in the xsl Portal (xslPortal.displayToolCategories=false).

osp

Adds support for email notification preferences in Matrices and Wizards.

osp

Adds Gradebook2 integration support to OSP Matrix helper.

osp

Adds a new "Public Portfolios" tab.

polls

Added import/export capabilities so that polls can be duplicated across sites, imported from other sites and exported as part of Site Archive.

polls

Anonymous user can now access public polls via /direct. See also for authenticated user access to polls via /direct.

polls

Now supports poll voting on multiple options through /direct.

polls

Adds option to allow public voting on individual polls.

presence

Presence is now turned off in My Workspace (display.users.present.myworkspace=false).

profile2

Adds private messaging.

profile2

A user's official institutional image can now be accessed and used as their profile image. Disabled by default. (profile2.official.image.enabled=false, profile2.official.image.source=url, profile2.official.image.attribute=jpegPhoto).

profile2

Adds an image gallery along with privacy settings. Users can select their profile image from the gallery.

profile2

Adds "kudos" ratings widget that provides scores based on profile completeness. Runs as a cron job using Job Scheduler. See also .

profile2

Adds a business/company information panel to each profile.

quartz scheduler

The quartz scheduler event log has been replaced with a persistent, database-backed event log. The log combines Quartz-generated events and any logging the job developer chooses to include in the event log. This prevents the need to skim through Tomcat logs to find job execution errors or info statements and permits sys-admins to review job execution event logs across a cluster.

quartz scheduler

A default job has been added which will purge all but the last X days of events from the log (scheduler.loadjobs=init/true/false (e.g., on first start up (default), on restart, never). This purge job must be scheduled in order to control the size of the event log.

quartz scheduler

Update tool providing JobDataMap and trigger interfaces.

rwiki

Added Radeox <pre> macro.

rwiki

Authenticated users can now edit pages marked publicly editable.

rwiki

Optimize indexing batch size and frequency. Previously, the search indexing formula could result both in index rebuilds running slowly and running too frequently on idle nodes. The formulas where tweaked for better max batch sizes for large rebuilds (e.g., 1 million queued docs) and appropriate minimum indexing intervals (e.g., 30-60s when there are only a few pending docs, e.g., < 100).

schedule

Calendar tool is now registered as group-aware when starting PermissionHelper.

site info

Added the account validation tool in Site-manage-participant-helper. Activated via a property; default behavior = false (siteManage.validateNewUsers = true/false).

site info

Users can be added to sites with a status of inactive.

site info

Added a "Select all" checkbox to simplify the task of selecting all users.

site info

Option added that restricts the joiner role selection offered in Site Info / Manage Access only to roles which do NOT have site.upd permission. A new property siteinfo.prohibited_permission_for_joiner_role has been added for configuring a list of permissions that the joiner role should not possess. If not included the default is site.upd.

site info

Worksite Setup UI for site access options improved.

test and quizzes

Added ability to import questions from Respondus.

test and quizzes

Added ability to allow instructors to select a feedback option that would show students their overall score only.

test and quizzes

4000 character limit lifted on questions, short answers and feedback.

test and quizzes

Added ability to allow instructors to enter a zero score in the gradebook for unsubmitted assessments.

test and quizzes

Added ability to use FCKEditor for composing short answers.

test and quizzes

Added ability to choose "average" score along with last score or highest score for "recorded score if multiple submissions."

test and quizzes

Added view all submissions with average) to student view of submitted assignments.

test and quizzes

Question pool with sub pools tree structure now accurately displayed.

test and quizzes

Displaying Assessment templates/types is now a configurable option (samigo.showAssessmentTypes=true/false (default=true)).

test and quizzes

Method added allowing QTI test imports via web services.

test and quizzes

Improve linear access logic to ensure that test takers are returned to the last question encountered if test is interrupted.

user membership

Allows custom implementations of search on external user providers.

web content

Added Annotated Url (sakai.iframe.annotatedurl), another type of iframe tool developed at the University of Michigan. The tool has a link to a target URL that is configured as a tool property.

CKEditor

Ticket

Project

Feature

editor

Upgraded CKEditor to version 3.5.2.

editor

Adds CKEditor support.

Kernel

Ticket

Project

Feature

kernel

Adopted a more secure format for storing passwords.

kernel

Improved error messaging for RequestFilter servlet exceptions.

kernel

Improved BaseContentResource NULL checking.

kernel

Added check to ensure that if a user is added manually to a course site (e.g., non-provided) and the user subsequently appears in a provider group with the same role, then the user's site membership will be promoted to provided.

kernel

BasicEmailService now issues warning in logs if send mail is attempted with no SMTP server defined (e.g., smtp@org.sakaiproject.email.api.EmailService).

kernel

Added improved ContentHostingService unit tests with an emphasis on special characters and UTF8.

kernel

BaseAuthzGroup now throws exception instead of failing silently if addMember is called without a supplied role.

kernel

Added new ToolManager isVisible method to permit checking on whether a tool is visible to the current user in this site, depending on permissions required to view the tool.

kernel

All Kernel static covers marked as deprecated.

kernel

Added exception-handling support for dynamic tool localization.

kernel

ContentHostingCompartor sorting on name is now case insensitive.

kernel

Adds new UsageSessionService methods to check if a user is active, to retrieve a user's most recent active session or a list of user's most recent active sessions.

kernel

Adds ability to turn off automatic "promotion" to provided user that was implemented in .

kernel

Adds a new Event getEventTime method in order to return the time of an event.

kernel

Adds generics to SecurityAdvisor.

kernel

Improved SecurityAdvisor API to better handle push/pop stack processing.

kernel

Added support for dynamic resource loader.

kernel

Replace home-grown StringUtil.trimtoNull method with Apache commons-lang StringUtils.trimToNull.

kernel

BasicEmailService mail.*.sendpartial can now be set to either true or false (default=true).

kernel

Project site members with "access" role can now post messages to site by default.

kernel

Utility method getZipManfest added to return a list of files in a *.zip archive together with each file's size.

kernel

Tools are now permitted to register their own email notification preferences.

kernel

Added automatic file encoding detection.

kernel

Added new memory service evictExpiredMembers method to evict expired objects from in-memory caches.

kernel

Added generics to ResourceLoader.

kernel

Added user.login.container to the UsageSessionService in order to permit institutions to track container logins (Shibboleth, CAS, etc.) vs direct, guest logins.

kernel

Added method to get User's locale.

kernel

Extends the UserDirectoryService to permit searching of externally provided users and the retrieval of all aliases matching the

Entity Broker

Ticket

Project

Feature

entitybroker

Adds adds version.kernel to ServerConfigEntityProvider.

entitybroker

Adds ability to specify the depth of a serializable object graph to JSON (entitybroker.maxJSONLevel; range 5-25.). Previously hard-coded to a depth of "7" in reflectutils JSONTranscoder.

entitybroker

Adds the ability to retrieve the list of groups for a site.

entitybroker

Adds a custom action to the site provider, enabling the retrieval of user permissions (e.g., call urls like: /direct/site/SITEID/userPerms/calendar.json to retrieve the calendar permissions for the currently logged in user. Leave off the PREFIX (e.g., calendar) in order to retrieve all the current user's permissions for a specified site.

entitybroker

Adds searching via REST; entitybroker entities can now implement searchable and be added to search indexing.

Other services: common, edu-services, shortenedurl, content-review (api)

Ticket

Project

Feature

common

SakaiPerson user profile information extended (staffProfile, universityProfileURL, academicProfileURL, publications, business_biography).

content-review

Retrieve localized message status from ContentReviewService.

content-review

ContentReview item error status codes can now be stored and retrieved.

edu-services

User-entered grades now recorded. See also .

edu-services

New method added to the CourseManagementService retrieve all currently active course offerings in a canonical course.

shortenedurl

Provides a configurable shortening URL service that includes caching. Developers simply implement the ShortenedUrlService API, wire up their implementation code as a Spring bean and choose a URL shortening service such as the built-in RandomisedURLService or an external service such as Bit.ly (e.g., shortenedurl.implementation=org.sakaiproject.shortenedurl.api.RandomisedUrlService). It will then be used preferentially. See https://confluence.sakaiproject.org/display/SHRTURL/Home for more details. See also .

Web services

Ticket

Project

Feature

web services

Adds new web service addConfigPropertyToPage in order to set to set the 'is_home_page:true' page property when adding a Home page via web services.

web services

Binary assembly now generated.

web services

Adds new web service getAllSitesForUser to include my Workspace as well as all other sites.

web services

Adds new web service signature for getUserId in order to retrieve userId associated with the session.

web services

Adds new web service signature for getPagesAndToolsForSite to allow userid to be specified.

web services

Adds new web service getPagesAndToolsForSite in order to retrieve an XML document of all pages on a site as well as all tools on each page.

web services

Adds new web service to get a user's ID, given their eid.

web services

Adds new web service to allow html inline property to be set from resources tool / web services.

web services

Adds new web service copyResources copy the resources from one site to another.

Configuration, localization

Ticket

Project

Feature

config

Added recaptcha properties for account. See also , .

config

Added text/x-tex to filetypes.

config

Created shared i18n properties in /config project in order to minimize duplication and de-synchronization of text shared across multiple tools.

Language updates and additions

Release

Language

Country

locale

2.8.0

Catalan

Spain

ca_ES

2.8.0

English

United States

en_US

2.8.0

French

France

fr_FR

2.8.0

Japanese

Japan

ja_JP

2.8.0

Portuguese

Portugal

pt_PT

2.8.0

Russian

Russia

ru_RU

2.8.0

Spanish

Spain

es_ES

Providers

Ticket

Project

Feature

providers

Added method to Memory service in order to evict expired cache items.

providers

Added new groupExists method to GroupProviders.

providers

Added jpegPhoto mapping to the JLDAP provider; if set, this will populate a user object property with the field from the directory.

Release support

Ticket

Project

Feature

pack

Package up demo with Tomcat 5.5.33.

pack

Create separate antrun tasks to generate demo, binary and source artifacts.

Documentation

Ticket

Project

Feature

skins

Updated skin documentation for Sakai CLE 2.8.

webdav

Updated webdav instructions for Sakai CLE 2.8.

Conversion scripts

External library upgrades

Ticket

Project

Feature

kernel

Upgraded to maven-surefire-plugin 2.7.1.

kernel

Upgraded to maven-release-plugin 2.1.

kernel

Upgraded to Spring 2.5.6.SEC02.

kernel

Upgraded to Apache commons-collections 3.2.1, commons-fileupload 1.2.2, commons-math 2.1 and log4j 1.2.16.

kernel

Upgraded to Apache commons-lang 2.5.

kernel

Upgraded to log4j 1.2.15. Superceded by .

kernel

Upgraded to JUnit 4.8.2.

portal

Upgraded to Pluto 1.1.7.

portal

Upgraded WURFL definitions to 2.0.18.

login

Upgraded org.apache.httpcomponents.HttpClient to 4.0.1.

velocity

Upgraded to Velocity 1.6.3.

js

Adds trimpath.js to /reference/library.

search

Upgraded full-text search engine library to Apache Lucene 2.9.4.

search

Upgraded digesting libraries to Apache pdfbox 1.3.1, Apache Poi 3.7 and Apache Tika 0.8.