Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-32130

Use an appropriate design pattern in elfinder to accommodate contrib tools

    XMLWordPrintable

    Details

    • Type: Task
    • Status: OPEN
    • Priority: Blocker
    • Resolution: Unresolved
    • Affects Version/s: 20.0
    • Fix Version/s: None
    • Component/s: elFinder
    • Labels:
      None

      Description

      Background:
      It used to be possible to entity link to entities defined outside of core-sakai. For instance, you could link to SCORM modules, which is contrib. In elFinder this is no longer possible as it uses hardcoded queries to core Sakai APIs (See SiteFsVolume.listChildren(), and the listChildren() methods in the various subclasses of SiteVolumeFactory in textarea/elfinder-sakai/...).

      Our short-term plan at Western to get non-core Sakai entity links working in time for our Sakai 11 upgrade is to quickly slap together more SiteVolumeFactory subclasses inside textarea/elfinder-sakai. These modifications cannot be contributed as they would break for anyone who hasn't built, say, SCORM, or our own institutional projects that support entity linking.

      Plan:
      The purpose of this ticket is to provide a long-term solution to accommodate entity linking to contrib tools. elFinder will need an appropriate design pattern where it is not aware of the individual service APIs for the entities it is capable of linking to.

      Suggestion:
      I might suggest implementing a registration system for, say, SiteVolumeFactory subclasses for each linkable entity type. Then, say, SCORM could register a SiteVolumeFactory instance against SiteFsVolume on which listChildren() can be invoked alongside the existing SiteVolumeFactory instances. I'm not yet certain that this would be flawless, but intuitively this is how I would begin.

        Gliffy Diagrams

          Zeplin

            Attachments

              Issue Links

                Activity

                  People

                  • Assignee:
                    ern Earle R Nietzel
                    Reporter:
                    bbailla2 Brian Baillargeon
                  • Votes:
                    0 Vote for this issue
                    Watchers:
                    5 Start watching this issue

                    Dates

                    • Created:
                      Updated:

                      Git Integration