Sha256: d7b7f1eaa34ec2d358c6ad79a49b8a849bb2250942744c39a0985e3157ab98a1
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
Joosy.Modules.WidgetsManager = registerWidget: (container, widget) -> if Joosy.Module.hasAncestor widget, Joosy.Widget widget = new widget() @__activeWidgets ||= [] @__activeWidgets.push widget.__load(this, $(container)) widget unregisterWidget: (widget) -> widget.__unload() @__activeWidgets.splice @__activeWidgets.indexOf(widget), 1 __collectWidgets: -> widgets = Object.extended @widgets || {} klass = this while klass = klass.constructor.__super__ Joosy.Module.merge widgets, klass.widgets, false widgets __setupWidgets: -> widgets = @__collectWidgets() registered = Object.extended() widgets.each (selector, widget) => if selector == '$container' activeSelector = @container else if r = selector.match /\$([A-z_]+)/ selector = @elements[r[1]] activeSelector = $(selector, @container) registered[selector] = Object.extended() activeSelector.each (index, elem) => if Joosy.Module.hasAncestor widget, Joosy.Widget instance = new widget else instance = widget.call this, index registered[selector][Joosy.Module.__className instance] ||= 0 registered[selector][Joosy.Module.__className instance] += 1 @registerWidget $(elem), instance registered.each (selector, value) => value.each (widget, count) => Joosy.Modules.Log.debugAs @, "Widget #{widget} registered at '#{selector}'. Elements: #{count}" __unloadWidgets: -> if @__activeWidgets for widget in @__activeWidgets widget.__unload()
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
joosy-0.1.0.RC2 | app/assets/javascripts/joosy/core/modules/widgets_manager.js.coffee |