Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/webapp/coffee/dependency_input.coffee
blob: 6e2b0ebd478cfd055cc7bb68c1bc8b91d077388f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class DependencyInput
    constructor: (@group_order, @field_order) ->
        @template = """
            <span class="_parentesis _parentesis_open">(</span><span class="_parentesis _parentesis_close">)</span>
            <input
                class="span2 droppable dependence_value"
                type="text"
                name="groups.[[ group_order ]].fields.[[ order ]].dependence.values"
                value="[[ value ]]"
                placeholder="nro. ID" />
            <span class="_parentesis _parentesis_open">(</span><span class="_parentesis _parentesis_close">)</span>
                    """
        @template = """
            <span class="_parentesis _parentesis_open">(</span><span class="_parentesis _parentesis_close">)</span>
            <input
                data-toggle="popover"
                data-placement="top"
                data-content=""
                data-original-title=""
                class="span2 droppable dependence_value"
                type="text"
                name="groups.[[ group_order ]].fields.[[ order ]].dependence.values"
                value="[[ value ]]"
                placeholder="nro. ID" />
            <span class="_parentesis _parentesis_open">(</span><span class="_parentesis _parentesis_close">)</span>
                    """
        @value = ""

    render: ->
        context = {
            "value": @value,
            "order": @field_order,
            "group_order": @group_order,
        }
        Mustache.tags = ['[[', ']]']
        widget = jQuery(Mustache.render @template, context)
        input = $(widget[3])
        q_value = "ID no identificado"
        opt_value = "ID inexistente o vacĂ­o"

        input.on "click", ->
            opt_id = @value
            opt_name = ".options.#{opt_id}.text"
            opt_widget = $("input[name$='#{opt_name}']")
            if opt_widget.length > 0
                opt_value = opt_widget.val()
                q_name = opt_widget.attr("name").replace(opt_name, ".name")
                question_widget = $("input[name='#{q_name}']")
                if question_widget.length > 0
                    q_value = question_widget.val()
            input.attr("data-original-title", q_value)
            input.attr("data-content", opt_value)

        input.popover({trigger: "click"})

        return widget


window.DependencyInput = DependencyInput