Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: add links, minor edits

...

The Repository Browser was implemented in Javascript, HTML, CSS, and PHP and follows the Model, View, Controller design pattern. The View is rendered in the browser using JQuery libraries, including the JQuery tree component and AJAX to communicate requests to the Controller. The Controller was implemented in PHP as was the Model, which was built on the Apache Chemistry CMIS client (see Bamboo Book Model - CMIS Binding and Fedora Repository Implementation {{ADD LINK HERE on migration to wikihub (sjm, 29 Apr 2013)}}).

In our first implementation, we wrapped the Controller in Joomla Component code so that the Repository Browser could be imbedded in HUBzero, a Joomla based scientific research collaboration tool. By embedding the Repository Browser in Joomla, we could ride atop Joomla's authentication and authorization context without having to implement this functionality ourselves.

We later ported the Repository Browser to Drupal by wrapping it as Drupal 7 Module. This demonstrated the portability of our design. The view code could be ported with no alteration beyond embedding it in the view delivery pipeline of the hosting environment. Ports to non-PHP languages and frameworks could be easily imagined, particularly if there exists a Chemistry implementation in the language.

...

By the time we had implemented permissions display and editing, we had made the decision to switch from HUBzero to Drupal. Development ceased shortly after this decision was made and the integration of permissions editing with the hosting CMS was not undertaken. We had planned to expose a list of principals gathered from Drupal to the Repository Browser model for use in permission management. The principals would have corresponded to Bamboo Groups (see Bamboo Group service API {{ADD LINK HERE on migration to wikihub (sjm, 29 Apr 2013)}}). The UI for the permissions management functionality had been completed but we had not completed wiring up principals lists when development ceased.

In our proof-of-concept implementation of the CI HUB, Zotero bookmarks were used to trigger a call to a remote repository to fetch a book. From within the Repository Browser, one would upload the bookmark file to the local store, then copy it the the CI HUB. The file receiver listener in the CI HUB would inspect the file to determine whether it is a Zotero bookmark file, and if it is, contact the referenced repository to fetch the book referenced in the bookmark. We had not implemented sanity checking on these files in the Repository Browser. Such checks would evaluate the file to determine that it is a Zotero bookmark file before making the copy-to-CI HUB operation available to the user.

...