Contrib: Skin Manager
Lead(s):
Jaeques Koeman
Roland Groen
Description:
The Skin manager tool allows site administrators to install and manage skins in a Sakai instance. Skins are uploaded in the portal as .zip archives that contain graphics and style sheets. The tool displays all the skins in use throughout the Sakai instance and indicates which sites use a particular skin. Skins may be revised by uploading a new archive and it is possible to revert to earlier versions of a skin. This strongly simplifies the skin installation process: no longer access to the file system of the sakai instance is needed.
Key features
Inspect, install, update and delete skins on a sakai instance. Skins can be uploaded using a zip file format, which is verified on upload. A skin archive keeps track of the skins by including the installation history of the skins in the archive, so every version of the installed history is available for reversion. Never lose any skin-data.
Skins as zip files: ease of install
A standard structure for zip files makes it easy to install skins. No system-administrator is needed to install skins on a Sakai installation. For a detailed description of the zip upload file, see the help documentation provided with the skin.
Skin archive: access to all skins ever installed on the system
Over time, skins get updated and modified. The skin archive keeps track of every skin that exist within the instance. This way, the tool is capable of restoring skins from the archive. The skin archive automatically synchronizes with the file system, and restores missing skins if a new Sakai installation overwrites the skin directory. The skin archive is available from the details page. To revert to previous versions of the skin, the edit permission is required.
Use
The initial need for the skin manager came from the problem that we needed to physically install every new skin and every update of an existing skin on the file system of the Sakai server. The skin manager strongly simplifies the skin installation process, and thereby the skin design process. Graphic designers can easily create a zip file and upload it. The upload verifies and cleans the contents of the zip files, providing feedback on the correctness of the file. The tool archives all installed skins, also the updated ones, so you can always roll back to a previous version.
The main page displays all installed skins.
Skins can be uploaded by the new page.
The details page displays the files of the skin, and the sites that use the skin.
The update page enables you to upload a new version of the same skin.
The history page enables to view the history record of the skin, and allows you the revert to a specific version. Furthermore, any version of the skin can be downloaded as skin archive.
The delete page confirms skin deletion.
Skin Manager Installation
The Sakai Skin manager comes as source distribution, this distribution needs to be build from within the Sakai source tree.
Prerequisites
This manual assumes that you are familiar with installing, building, and running Sakai. You must be familiar with the concepts in the Sakai installation guide, which can be found at:
Of course, you need a Sakai installation to use this Sakai tool.
Installing from source
Downloading the source
The sakai skin manager depends on the edia-sakai-utils, both the skin manager and the dependent util project can be found at the following locations:
Running the build on sakai 2.4.x
Both projects downloaded above should be placed in the source root of Sakai. If you run an entire build on Sakai, it will automatically be part of that build. But if the source tree has already been build, it can be build individually by running a build in the following order:
- edia-sakai-utils
- edia-sakai-skin-manager
Of course, to do the build the Sakai target needs to be be used:
maven sakai
 | Maven 1.x and ibiblio
Note: the ibiblio repository has been restructured, and maven 1.x on *nix has trouble understanding the http return code 301 (moved permanently). For that reason, it might be necessary to add the following to the maven.repo.remote property in the build.properties located in the home dir:
http://repo1.maven.org/maven/
|
Running the build on sakai 2.5.x (M2)
Both projects downloaded above should be placed in the source root of Sakai. The project can be added to the main build by adding them as a module to the root pom.xml, but they can also be run individually in the following order:
- edia-sakai-utils
- edia-sakai-skin-manager
Database
Database support
| database |
status |
since version |
| MySQL 5.0 |
Tested |
0.0.1 |
| MySQL 4.1 |
Untested |
|
| Oracle |
Tested |
0.0.4 |
database installation
The Sakai skin manager makes use of one table, which is mapped by hibernate. Sakai needs to be started with the
auto.ddl=true
set in the sakai.properties on the first run of the skin manager to let hibernate create the required table for you.
Changelog
- 0.9.0 (First beta release)
- UPDATE: use the tool session instead of the http session for storing the spring webflow state
- UPDATE: layout update, conforming to the sakai layout.
- 0.0.5
- UPDATE: Fixed some dependencies, no functional changes
- 0.0.4
- UPDATE: Ported to & tested on Oracle 10g, for existing installations see skinmanager_0_0_3-0_0_4_mysql_conversion.sql
for updating.
- BUGFIX: Cleanup of temp files when running update
- UPDATE: Error handling now more robust, error conditions handled properly
- 0.0.3
- REQUEST: Sort skin names, large quantities of skins are hard to manage without sorting
- UPDATE: .classpath file references generic JRE container
- BUGFIX: Hibernate mapping did not result in right column type in MySQL. Manifestation of this bug is the inability to upload files larger than 64KB.
- 0.0.2
- UPDATE: Removed spring webflow et. al. from shared lib and moved into web app libs
- UPDATE: Javadoc
- UPDATE: Spring configuration update
License
The Sakai skin manager is open source and free to use, it is distributed with a LGPL license.
spring-binding-1.0.1.jar and spring-webflow-1.0.1.jar don't seem to be in the source.sakaiproject.org maven repo yet. I found these at:
http://developer.ja-sig.org/maven/org.springframework/jars/