Feature Wiki

Information about planned and released features

Tabs

Inherit Individual Stylesheet from Parent Object

1 Initial Problem

Individual stylesheets offer great possibilities for people who create well-structured and motivating learning spaces, for example, in courses. An essetnial part in creating a consitent learning environment is using the  the same patterns and design elements in as many parts of a learning arrangement as posssible. Broken down to a typical course scenario that means that a a course admin creates an individual stylesheet for a course and for all child objects recursively. One by one.

The problem is that in order for every child object (such as learning modules, folders, groups, content pages, ...) to be able to use the same design elements, each element needs to get a copy of the course's content style manually. Since over time large (and nciely designed courses) develop and need to be changed visually. Making changes or adding new design elements to this setup can only be achieved by manually deleting each style of a child element and then by creating a new copy. This means a tremendous amaount of work and is ofputting for most users.

The only current technical way of getting around of making copies of local style sheets is to create a global style sheet. This procedure is not feasible for large organisations such as universities with lots of independent course desginers and thounds of courses that are created decentrally.

2 Conceptual Summary

It should be possible that all objects which use the ILIAS page editor and allow the creation of an individual stylesheet can also use the stylesheet from their parent container.

Container Objects get a new setting "Provide content style." If the setting is activated, the individual style sheet of the container can be selected for all objects within the container object.

If users then open the style tab of an object within the container, they can select the stylesheet of the container from the dropdown. Next to the title of the stylesheet the title of the container is displayed. This allows you to see which container provides the stylesheet.

The Content Style can only be edited in the container object and not in contained objects.

If several container objects for which the setting has been activated are nested, style sheets of all containers located in the tree above an object can be selected.

The style sheet is not inherited automatically, but must be selected manually in the "Style"-tab.

Copy and Export

If an object is moved from the container, the content style of the object changes. The moved object then uses the Global Standard Content Style.

If an object is exported, the selected content style is also exported. This also applies to the local styles provided by container objects.

It should be possible to make all objects which use the ILIAS page editor and allow to create an individual style sheets, choose to inherit style sheet from their parent object.

This could be done in two ways - the JF should decide which path to take:

  • Path 1: A container object get a new setting.
    • the style tab that will make its own style sheet act just like "global" style sheet for all child objects in the contained branch until another object claims that role (e.g. a group in a course).
    • When a child object was moved into another context where the "local global" style sheet was not available it would automatically fall back to the contexts global default style sheet.
    • Child objects still have the chance of overriding the inherited default by creating an individual stylesheet.
    • This path is the most user friendly as no additional settings on child objects have to be made.
  • Path 2: Each object get a new setting "use style from another object" which would defacto reference the source's style sheet into another object.
    • it should only be possible to make changes in the source style sheet
    • styles can be "reused" in many contexts, not just in a branch of the tree
    • users still have to touch every single object that is supposed to inherit a style
    • WRITE permissions need to be available on the source object at the time of the activation
    • caveat: with changing users responsibilities and permissions, changes to a stylesheet might be made over time that affect an unkown amount of other objects.

3 User Interface Modifications

3.1 List of Affected Views

  • Tab "Settings" of container objects
  • Tab "Style" of many repository objects

3.2 User Interface Details

3.3 New User Interface Concepts

none

4 Technical Information

No technical issues.

5 Privacy Information

none

6 Security Implications

No security implications.

7 Contact

8 Funding

If you are interest in funding this feature, please add your name and institution to this list.

9 Discussion

Killing, Alexander [alex], 8 Oct 2020: I would currently prefer to offer an option for repository containers "Use Style from Parent Container". We should not offer this for other objects (e.g. learning modules) since they may be linked multiple times in the repository.

Kunkel, Matthias [mkunkel], 25 JAN 2021: I would appreciate if this behaviour works for non-container objects, too. Already today we have the situation that users with write permission can change the style information of linked learning modules or wikis. The suggested feature won't change anything in general but only adds an additional option (that seems to be quite helpful) to the style settings. If we want to make attention to the fact that changes in the style sheet of an object have effects on multiple linked objects, we should introduce a message box on the style tab in case an object has more than one references.

JourFixe, ILIAS [jourfixe], 25 JAN 2021: We highly appreciate this suggestion and schedule the feature for ILIAS 8. The feature should be available for container and non-container objects. We suggest to move the setting "Provide content style" from "Additional Features" section to the tab "Style" where one has to create the distinct style of the course. Import/export and copying should keep style information of embedded objects.

Tödt, Alexandra [atoedt] Much appreciated! That will be helpful for my everyday work.

Kunkel, Matthias [mkunkel], 10 OCT 2023: A problem of the current implementation is the fact, that if the parent container defines a stylesheet to be re-used in child elements, the user still have to select this inherited style for every created object manually. Why isn't the inherited style set as default for the new objects?

10 Implementation

Test Cases

Test cases completed at 06 DEC 2021 by Zenzen, Enrico [ezenzen]

  • C49248: Individuelles Stylesheet zur Gestaltung des Inhaltsreiters in Kursen und Gruppen anlegen
  • C49249: Individuelles Stylesheet für alle Objekte innerhalb eines Kurses oder einer Gruppe wiederverwenden

Approval

Approved at 2021-12-16 by Falkenstein, Rob [rob].

Last edited: 10. Oct 2023, 22:18, Kunkel, Matthias [mkunkel]