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

Allow tools to be rendered inline when in a multi column layout

    XMLWordPrintable

    Details

    • Type: (Deprecated) Contributed Patch
    • Status: CLOSED
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 11.0, 12.0
    • Fix Version/s: 11.2, 12.0
    • Component/s: Portal
    • Labels:
    • 11 status:
      Resolved
    • Test Plan:
      Hide

      Create a site with a lot of users (at least 22 )
      Stick Roster2 into a multi tool page on that site, set the tool property renderInline = true and save
      When you scroll you should see the busy cursor as you transition pages and the browser document should just stretch.
      Right click on the roster tool and you see no indication of it being in a frame. It should be rendered in a div.

      Show
      Create a site with a lot of users (at least 22 ) Stick Roster2 into a multi tool page on that site, set the tool property renderInline = true and save When you scroll you should see the busy cursor as you transition pages and the browser document should just stretch. Right click on the roster tool and you see no indication of it being in a frame. It should be rendered in a div.

      Description

      In Sakai 11+, tools can only be rendered inline (ie without iframes) if they are on a page on their own.

      The portal creates a special URL directly to the tool /portal/site/SITE_ID/tool/TOOL_ID which treats these tools differently to tools that are on a page with other tools, and tries to render them inline, without an iframe.

      When there are multiple tools on a page (which get a URL of the form /portal/site/SITE_ID/page/PAGE_ID), the PageHandler figures out what tools are in each column on that page and renders them within an iframe.

      This contributed patch allows compatible tools* to declare that they are able to be rendered inline and gives the portal a final chance to render that tool inline. If it can be rendered inline, its header content will be aggregated into the main HTML <head> section, and its body content emitted in the normal place in the page, otherwise it falls back to an iframe.

      This is activated via the tool configuration property:
      <configuration name="renderInline" value="true" />

      which can be added to the tool registration XML or overridden as a tool property for each placement.

      • Not all tools will be compatible with this property, especially velocity and JSF tools. This property works well for widget based tools written in Wicket and client side applications. Originally written for: https://github.com/steveswinsburg/sakai-widgets

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  steve.swinsburg Steve Swinsburg
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  6 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Git Source Code