app/assets/javascripts/joosy/core/layout.js.coffee in joosy-0.1.0.RC2 vs app/assets/javascripts/joosy/core/layout.js.coffee in joosy-0.1.0.RC3

- old
+ new

@@ -6,10 +6,18 @@ #= require joosy/core/modules/renderer #= require joosy/core/modules/time_manager #= require joosy/core/modules/widgets_manager #= require joosy/core/modules/filters +# +# Base class for all of your Joosy Layouts. +# @see http://guides.joosy.ws/guides/layouts-pages-and-routing.html +# +# @example Sample application layout +# class @ApplicationLayout extends Joosy.Layout +# @view 'application' +# class Joosy.Layout extends Joosy.Module @include Joosy.Modules.Log @include Joosy.Modules.Events @include Joosy.Modules.Container @include Joosy.Modules.Renderer @@ -17,41 +25,138 @@ @include Joosy.Modules.WidgetsManager @include Joosy.Modules.Filters @view 'default' + # + # Sets the method which will controll the painting preparation proccess. + # + # This method will be called right ater previous layout {Joosy.Layout.erase} and in parallel with + # layout data fetching so you can use it to initiate preloader. + # + # @note Given method will be called with `complete` function as parameter. As soon as your + # preparations are done you should call that function. + # + # @example Sample before painter + # @beforePaint (complete) -> + # if !@data # checks if parallel fetching finished + # $('preloader').slideDown -> complete() + # + # @beforePaint: (callback) -> @::__beforePaint = callback + + # + # Sets the method which will controll the painting proccess. + # + # This method will be called after fetching, erasing and beforePaint is complete. + # It should be used to setup appearance effects of layout. + # + # @note Given method will be called with `complete` function as parameter. As soon as your + # preparations are done you should call that function. + # + # @example Sample painter + # @paint (complete) -> + # @container.fadeIn -> complete() + # @paint: (callback) -> @::__paint = callback + + # + # Sets the method which will controll the erasing proccess. + # + # Use this method to setup hiding effect. + # + # @note Given method will be called with `complete` function as parameter. As soon as your + # preparations are done you should call that function. + # + # @note This method will be caled _before_ unload routines so in theory you can + # access layout data from that. Think twice if you are doing it right though. + # + # @example Sample eraser + # @erase (complete) -> + # @container.fadeOut -> complete() + # @erase: (callback) -> @::__erase = callback - + + # + # Sets the method which will controll the data fetching proccess. + # + # @note Given method will be called with `complete` function as parameter. As soon as your + # preparations are done you should call that function. + # + # @note You are strongly encouraged to NOT fetch anything with Layout! + # Use {Joosy.Page.fetch} + # + # @example Basic usage + # @fetch (complete) -> + # $.get '/rumbas', (@data) => complete() + # @fetch: (callback) -> @::__fetch = callback + # + # Defaults to `false` to ease beforePaint state check. + # data: false + # + # @param [Hash] params List of route params + # constructor: (@params) -> + # + # @see Joosy.Router#navigate + # navigate: (args...) -> Joosy.Router.navigate(args...) + # + # This is required by {Joosy.Modules.Renderer} + # Sets the base template dir to app_name/templates/layouts + # __renderSection: -> 'layouts' + # + # Layout bootstrap proccess. + # + # * {Joosy.Modules.Container#refreshElements} + # * {Joosy.Modules.Container#__delegateEvents} + # * {Joosy.Modules.WidgetsManager#__setupWidgets} + # * {Joosy.Modules.Filters#__runAfterLoads} + # __load: (@container) -> @refreshElements() @__delegateEvents() @__setupWidgets() @__runAfterLoads() + # + # Layout destruction proccess. + # + # * {Joosy.Modules.TimeManager#__clearTime} + # * {Joosy.Modules.WidgetsManager#__unloadWidgets} + # * {Joosy.Modules.Renderer#__removeMetamorphs} + # * {Joosy.Modules.Filters#__runAfterUnloads} + # __unload: -> @__clearTime() @__unloadWidgets() + @__removeMetamorphs() @__runAfterUnloads() + # + # @todo Rename this shit already. We are not going to release having function that marks + # element with UUID called `yield`. + # yield: -> @uuid = Joosy.uuid() + # + # Gets layout element. + # + # @return [jQuery] + # content: -> $("##{@uuid}")