Presentation Application Structure
Description
Document organization
Presentation: A presentation is a wiki document that will contain:
- 1 Presentation.PresentationClass object;
- N Presentation.SlideClass objects.
Layout & style: Each Presentation.SlideLayoutClass object is stored in its own document. There should be a separate wysiwyg editor for editing such objects: a generic slide is displayed, with the 5 editable areas (topleft ... bottomright) where the user can choose (from a suggest or a simple dropdown) what metadata to display there, or enter hsi own text. Obviously, the metadata fields that are void should not be suggested.
Documents to create for the presentation application:
- Presentation.SlideClass
- Presentation.PresentationClass, Presentation.PresentationSheet, Presentation.PresentationTemplate
- Presentation.SlideLayoutClass, Presentation.SlideLayoutSheet, Presentation.SlideLayoutTemplate
- Presentation.SlideLayouts: page containing a list with all existing layouts, and a form for creating a new layout
- Presentation.WebHome: user's existing presentations (organized alphabetically, by date, by tags), other presentations he has the right to see, + a form for creating a new presentation
Structured data
class Presentation.SlideClass
- title:String - the title of the slide, displayed on top; can be empty.
- content:Textarea - the actual content of the slide; can be empty.
- notes:Textarea - some notes the author makes on each slide; won't be displayed on slideshows, can be viewed; can be empty
- number:Int - the number of the slide; it will dictate the order of the slides; all the slides of the presentation should have consecutive numbers starting at 1; any slide insertion / deletion / reordering will result in the actualization of these slide numbers; they are not editable directly by simple users:
- layout:DBList - points to a SlideLayout object, that will decide the slide look and header/footer information to be displayed (see Presentation.SlideLayoutClass for more info); can be empty, in which case the presentation layout is used, if any.
class Presentation.PresentationClass
- title:String - the title of the presentation;
- author:String - the name of the author; by default, it should be the name of the presentation's creator;
- date:String - by default, it should be the current date;
- logo:String - points to an attached file, or even to an external image file; can be empty;
- layout:DBList - points to a SlideLayout object, that will decide the look of the presentation and header/footer information to be displayed (see Presentation.SlideLayoutClass for more info); can be empty, in which case the default colors are used, and no extra information is placed in the header/ footer; can be overwritten for each slide.
With this information is given by the user, the application could propose a first slide of the presentation containing the given title, author, date and logo, to ease the user's work The user can modify this slide as he prefers.
class Presentation.SlideLayoutClass
- header/footer: the fields below mention what information should be displayed on the slide at the respective positions; this information is usually a presentation or slide metadata, such as: number (from SlideClass), title, author, date, logo (from PresentationClass) or another free text; so the user should be able to easily choose to place at those positions either the content of those metadata fields, or his own text.
- topleft:String
- topright:String
- bottomleft:String
- bottomcenter:String
- bottomright:String
- colors&decoration:
- background-
-points to an attached file, or even to an external image file;
- background-color:String - the hexa code of the color is stored internally; the user chooses the color with a friendly color-chooser;
- text-color: String - the hexa code of the color is stored internally; the user chooses the color with a friendly color-chooser; this is the color the text is written with, unless another color is specified inside the actual slide content.
- background-
Jerome