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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
// Generated by CoffeeScript 1.6.3
(function() {
var factoryField;
factoryField = function(order, value) {
var add_option_button, add_option_none_button, buttons_container, container, dependence_container, dependence_forms, dependences, droppable, errors, field_widget, group_order, i, parentesis_close, parentesis_open, remove_button, values, widget_selected_dependence_form, widget_type, widget_types, widget_types_select_box, with_dependence_form, _i;
widget_type = value['widget_type'];
group_order = value['group_order'];
errors = [];
if (value.hasOwnProperty('errors')) {
$.each(value['errors'], function(i, error) {
return errors.push({
'error': error
});
});
}
widget_types = [].concat(WIDGET_TYPES);
widget_types = $.each(widget_types, function(i, v) {
if (widget_type === v['key']) {
return $.extend(v, {
"selected": true
});
} else {
return delete v.selected;
}
});
dependence_forms = [
{
'key': "4",
'value': "Sin parentesis"
}, {
'key': "1",
'value': "( ID o/y ID ) o/y ( ID o/y ID )"
}, {
'key': "2",
'value': "( ID o/y ID o/y ID ) o/y ID"
}, {
'key': "3",
'value': "( ID o/y ID ) o/y ID o/y ID"
}
];
dependence_forms = $.each(dependence_forms, function(i, v) {
if (value.hasOwnProperty('dependence')) {
if (value['dependence'].form === v['key']) {
return $.extend(v, {
"selected": true
});
}
}
});
with_dependence_form = group_order !== 0 || (group_order === 0 && order !== 0);
field_widget = $(Mustache.render(TEMPLATES['field'], {
"order": order,
"group_order": group_order,
"name": value['name'],
"dependence": value['dependence'],
"errors": errors,
"visible_errors": errors.length,
"WIDGET_TYPES": widget_types,
"dependence_forms": dependence_forms
}));
remove_button = field_widget.find('.WField_remove');
bindFieldRemoveButton(remove_button);
add_option_button = field_widget.find('.WFieldOptions_add_button');
bindFieldAddOptionButton(add_option_button);
add_option_none_button = field_widget.find('.WFieldOptionsNone_add_button');
bindFieldAddOptionButton(add_option_none_button);
widget_types_select_box = field_widget.find('.WFieldWidgetType');
bindFieldWidgetTypeSelectBox(widget_types_select_box);
buttons_container = field_widget.find('.WFieldAddOptionButton_container');
if (widget_type && $.inArray(widget_type, WITH_OPTIONS) !== -1) {
add_option_button = $(Mustache.render(TEMPLATES['field_add_option_button'], {}));
buttons_container.append(add_option_button);
bindFieldAddOptionButton(add_option_button);
}
if (widget_type && $.inArray(widget_type, ["MultipleCheckBox", "ImageCheckBox"]) !== -1) {
add_option_none_button = $(Mustache.render(TEMPLATES['field_add_option_none_button'], {}));
buttons_container.append(add_option_none_button);
bindFieldAddOptionButton(add_option_none_button, {
none: 'True'
});
}
if ($.inArray(widget_type, WITH_OPTIONS) !== -1) {
if ($.inArray(widget_type, WITH_IMAGES) === -1) {
$.each(value['options'] || [], function(id, opt_value) {
var options_container;
options_container = field_widget.find('.WFieldOptions_container');
return factoryOption(id, opt_value, options_container, group_order, order);
});
} else {
$.each(value['options'] || [], function(id, opt_value) {
var options_container;
options_container = field_widget.find('.WFieldOptions_container');
if (opt_value.hasOwnProperty('img_name')) {
return factoryImageOptionThumbnail(id, opt_value, options_container, group_order, order);
} else {
return factoryImageOptionUpload(id, opt_value, options_container, group_order, order);
}
});
}
} else {
if (value['options'] && Object.keys(value['options']).length) {
$.each(value['options'] || [], function(id, opt_value) {
return factoryOptionDefault(group_order, field_widget, id, opt_value['text']);
});
} else {
factoryOptionDefault(group_order, field_widget, void 0, void 0);
}
}
values = [];
dependence_container = field_widget.find(".dependence");
if (value['dependence']) {
values = value['dependence'].values;
}
for (i = _i = 0; _i <= 6; i = ++_i) {
if (i >= values.length) {
values[i] = '';
}
}
factoryDependences(dependence_container, values, order, group_order);
dependences = field_widget.find('[name*=".dependence.values"]');
$.each(dependences, function(index, dependence) {
if ($(dependence).attr("value") !== '') {
return $(dependence).addClass("ui-state-highlight");
}
});
parentesis_open = field_widget.find("._parentesis_open");
if (parentesis_open.length === 8) {
$(parentesis_open[0]).addClass('1 2 3');
$(parentesis_open[4]).addClass('1');
}
parentesis_close = field_widget.find("._parentesis_close");
if (parentesis_close.length === 8) {
$(parentesis_close[3]).addClass('1 3');
$(parentesis_close[5]).addClass('2');
$(parentesis_close[7]).addClass('1');
}
widget_selected_dependence_form = field_widget.find('.dependence_form');
$(widget_selected_dependence_form).on('change', function(event) {
return change_dependence_form(this, null);
});
change_dependence_form(widget_selected_dependence_form[0], field_widget);
if (!with_dependence_form) {
$(field_widget).find(".dependence_form").remove();
$(field_widget).find(".dependence_form_label").remove();
$(field_widget).find(".dependence").remove();
$(field_widget).find(".dependence_label").remove();
}
droppable = field_widget.find(".droppable");
droppable.droppable({
drop: function(event, ui) {
value = ui.draggable[0]['innerText'];
return $(this).addClass("ui-state-highlight").attr("value", value);
}
});
droppable.focusout(function() {
if ($(this).attr('value') === "") {
return $(this).removeClass("ui-state-highlight");
}
});
container = value['container'];
return container.append(field_widget);
};
window.factoryField = factoryField;
}).call(this);
|