Implementing changing themes

Background

We plan to allow users to allow a apply a "theme" to a deck. This could alter:

  • slide background colours
  • font styles
  • images in the slide background
  • slide transitions (based on those available in presentation tool, reveal.js)
  • aspect ratio?

We also need to support themes for slides migrated from SW1. We need basic theme support to address user feedback and also for June release at the latest. The proposal is to release basic theme functionality in April which can then be extended later on. A proposal for a theme's service has been made in Theme data model but this has not been implemented yet (30/3/17). 

In future we will allow users to edit a theme (some thoughts on Themes editor)

Requirements for public beta:

Minimum:

  1. default theme has been updated for more appropriate styling and font sizes. These are apply to new slides and decks created in SW  SWIK-1055 - Getting issue details... STATUS
  2. store the legacy "white" theme for existing content on stable.slidewiki so that content in not effected. This requires the deckservice to store theme in the deck  SWIK-1128 - Getting issue details... STATUS
  3. update styles in the CKeditor dropdowns to match the default styles. (related to  SWIK-520 - Getting issue details... STATUS  and see CKEditor documentation . This means that users with existing content will only be able to apply styles from the new default template.
  4. remove the hard-coded "theme" meta-data from the deck view and either remove to change to be updated with the correct theme.

In order for users to switch between decks we need to do the following (required for June at the latest):

  1. allow users to select another theme. Currently there is a deactivated dropdown for this in the deckedit screen. As the theme will make changes to any existing slides, users should be warned about before changing the theme. Therefore I would propose that users select the theme from a modal window that allows them preview what it will look like (can be a thumbnail of a slide with the theme for now)
  2. change the style sheet settings in CKeditor.
  3. Support themes from legacy SW1 decks
  4. decide whether users can select a theme when uploading a deck. This is fine for new decks but for imported decks we need to decide some further points (see below). For now I propose we remove this option from the Add deck form. Otherwise we have to make the functionality different depending on whether you are creating or uploading a deck.


Imported decks include a significant amount of inline styles. Some of this related to colour, fonts etc that would be effected by switching a theme, but some related to the location of content on slides. If we allow users to switch themes on imported decks then we could:

    1. not alter any of the inline styles so only new slides were effected by the theme or edits on imported slides. This could results in slides within the same deck having different background colours, font styles etc
    2. when a user changes the theme, sttrip out a few selected inline styles on import and apply the new theme (e.g. background colour, font size colour)
    3. strip out a few selected inline styles on import and apply the default theme (e.g. background colour, font size colour) and apply the default theme.
    4. strip out all  inlines styles and then apply theme (not advised!)

Anything that changed existing content should only be available if there is a means of undo/reverting the change. This is dependent on developing the change log functionality further.

Action items 

  • Are the minimum requirements for the public beta (April) feasible? The main unknown is SWIK-1128 - Getting issue details... STATUS
  • Are there any other tasks that we need to consider for switching  themes to be implemented for the June 
  • What approach should we take with imported decks?