====== SaletView class ====== A view object is available as ''salet.view''. It's automatically initialized when Salet loads, so it's always available with the ''salet'' object. You can't create new instances of this class. It's the only class that knows about what's jQuery, DOM and HTML. It encapsulates the DOM functions for the other classes. These are all the assumptions Salet has about your game: * The game takes place inside a ''#page'' container. Everything outside the ''#page'' are non-game elements. * The game text is inside the ''#content'' container. * The interface can have a single button having a ''save'' ID. * The interface can have a single button to load the game. The button has a ''load'' ID. * The interface can have a single button to restart the game. The button has an ''erase'' ID. * The interface can have a ''#intro'' block for the introduction text present before Javascript is loaded. * The interface can have a block ''#ways'' containing a list of rooms available to go to. * The interface can have a block ''#ways_hint'' containing a hint text for the movement block. This documentation doesn't list some system methods; see the sources if you need them. ===== CoffeeScript properties ===== ''SaletView'' doesn't have any properties. ===== CoffeeScript methods ===== ==== init ==== Called automatically on Salet's initialization, declares the standard event handlers. ==== disableSaving ==== Disables the save button when called. ==== enableSaving ==== Enables the save button when called. ==== enableErasing ==== Enables the restart button when called. ==== disableErasing ==== Disables the restart button when called. ==== enableLoading ==== Enables the save button when called. ==== disableLoading ==== Disables the load button when called. ==== scrollTopTo ==== Slowly rewinds the page to the specified number of pixels from the top edge of the screen. Regardless of the page height or rewind extent, the animation takes 500ms. **Argument:** number of pixels from the top edge of the screen, an integer. Required. ==== scrollBottomTo ==== Slowly scrolls the page to the specified number of pixels from the bottom edge of the screen. Regardless of the page height or rewind extent, the animation takes 500ms. **Argument:** number of pixels from the bottom edge of the screen, an integer. Required. ==== scrollToBottom ==== Slowly scrolls the page until the end. The animation takes 500ms. ==== clearContent ==== Clears the contents of the specified block. **Argument:** a selector for the element that needs to be cleared; by default, it's ''#content''. This argument is optional. ==== prepareContent ==== Converts the argument to text. If you pass a function, it will be run. If you pass a jQuery object, it will be converted into HTML code. **Argument:** anything; mandatory argument. ==== write ==== A synonym for ''[[#append]]'' but the selector is ''#current-room'' by default. ==== append ==== Appends the HTML provided to the text of the block provided. The text is processed by ''[[#prepareContent]]''. If the block is not found, the text would be appended to the ''#content'' block. The function returns block's HTML after appending. **Argument 1:** the text to append, anything. Mandatory argument. **Argument 2:** a selector of a block to append the text into. By default, it's ''#content''. Optional argument. ==== replace ==== Replaces the text of a given block with given HTML. The text is processed by ''[[#prepareContent]]''. **Argument 1:** the text that replaces the original content, anything. Mandatory argument. **Argument 2:** a selector of a block that would have its text replaced. Mandatory argument. ==== clearLinks ==== If the **Argument 1** is present, then the function turns all HTML links leading to this address into text. If it's omitted, then the functions turns all links into text. If the **Argument 2** is present, then the function works only on the links inside that block. If it's omitted, then the functionw works inside the ''#page'' block. **Argument 1:** link target. Optional parameter. **Argument 2:** a selector of the block to work in. Optional parameter. ==== writeChoices ==== The function gets a list of room IDs and returns a regular list of choices linked to these rooms. The list is not sorted but if a room has ''canChoose = false'', the text ''optionText'' would be printed not as a link but as a '''' HTML. Therefore, you can make ''optionText'' something else, for example, a form or a special button. **Argument 1:** a list of room IDs ==== showBlock ==== Shows the specified block with a nice animation. If *Salet* is not in the interactive mode (loading a game), the animation is skipped. **Argument 1:** block selector. Mandatory argument. ==== hideBlock ==== Hides the specified block with a nice animation. If *Salet* is not in the interactive mode (loading a game), the animation is skipped. **Argument 1:** block selector. Mandatory argument. **Argument 2:** removal flag. If ''true'', then after the animation the block would be removed from DOM; if ''false'' then it will just be hidden. ''false'' by default, optional argument. ==== cycleLink ==== The function returns a code for the cycle link. With it you can make [[en:guide:actions#Cycles|links that cycle their content.]] {{tag>api}}