Module: Spider::Helpers::WidgetHelper

Includes:
SceneMethods
Defined in:
lib/spiderfw/controller/helpers/widget_helper.rb

Defined Under Namespace

Modules: ClassMethods, SceneMethods

Class Method Summary collapse

Instance Method Summary collapse

Methods included from SceneMethods

#param_name, #params_for

Class Method Details

.included(controller) ⇒ Object



5
6
7
# File 'lib/spiderfw/controller/helpers/widget_helper.rb', line 5

def self.included(controller)
    controller.extend(ClassMethods)
end

Instance Method Details

#get_scene(scene = nil) ⇒ Object



36
37
38
39
40
# File 'lib/spiderfw/controller/helpers/widget_helper.rb', line 36

def get_scene(scene=nil)
    scene = super(scene)
    scene.extend(SceneMethods)
    return scene
end

#prepare_scene(scene) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/spiderfw/controller/helpers/widget_helper.rb', line 9

def prepare_scene(scene)
    scene = super
    if (self.is_a?(Widget))
        scene.widget = widget_to_scene(self)
        scene.widget[:shown_id] = attributes[:keep_id] ? self.local_id : self.full_id
    end
    scene.widgets = {}
    if (@widgets)
        @widgets.each do |id, w|
            scene.widgets[id] = widget_to_scene(w)
        end
    end
    return scene
end

#widget_to_scene(w) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/spiderfw/controller/helpers/widget_helper.rb', line 24

def widget_to_scene(w)
    {
        :id_path => w.id_path,
        :full_id => w.full_id,
        :param => param_name(w),
        :param_u => param_name(w, true),
        :pub_path => w.class.pub_url,
        :css_class => w.css_class,
        :css_classes => w.css_classes.uniq.join(' ')
    }
end