formily 0.0.5.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. checksums.yaml +7 -0
  2. data/CODE_OF_CONDUCT.md +13 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +156 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +84 -0
  7. data/Rakefile +1 -0
  8. data/app/assets/fonts/formily-icon.eot +0 -0
  9. data/app/assets/fonts/formily-icon.svg +26 -0
  10. data/app/assets/fonts/formily-icon.ttf +0 -0
  11. data/app/assets/fonts/formily-icon.woff +0 -0
  12. data/app/assets/fonts/formily-icon.woff2 +0 -0
  13. data/app/assets/images/blank_file.png +0 -0
  14. data/app/assets/images/formily_spin.gif +0 -0
  15. data/app/assets/javascripts/formily.js +5 -0
  16. data/app/assets/javascripts/formily/base/ajax_reloader.js +24 -0
  17. data/app/assets/javascripts/formily/base/buttons.js +160 -0
  18. data/app/assets/javascripts/formily/base/form_response.js +28 -0
  19. data/app/assets/javascripts/formily/base/local_time.js +9 -0
  20. data/app/assets/javascripts/formily/editor.js +46 -0
  21. data/app/assets/javascripts/formily/editor/editor_buttons.js +186 -0
  22. data/app/assets/javascripts/formily/editor/form_preview.js +53 -0
  23. data/app/assets/javascripts/formily/editor/input_model.js +76 -0
  24. data/app/assets/javascripts/formily/editor/input_on_change.js +83 -0
  25. data/app/assets/javascripts/formily/editor/related_fields.js +76 -0
  26. data/app/assets/javascripts/formily/form.js +22 -0
  27. data/app/assets/javascripts/formily/formily_editor.js +329 -0
  28. data/app/assets/javascripts/formily/formily_modal.js +104 -0
  29. data/app/assets/javascripts/formily/formily_url.js.erb +26 -0
  30. data/app/assets/javascripts/formily/inputs/conditioned.js +4 -0
  31. data/app/assets/javascripts/formily/inputs/conditioned/checkbox.js +73 -0
  32. data/app/assets/javascripts/formily/inputs/conditioned/option.js +82 -0
  33. data/app/assets/javascripts/formily/inputs/conditioned/radio.js +160 -0
  34. data/app/assets/javascripts/formily/inputs/date_time.js +25 -0
  35. data/app/assets/javascripts/formily/inputs/input_tab.js +18 -0
  36. data/app/assets/javascripts/formily/inputs/location.js +39 -0
  37. data/app/assets/javascripts/formily/inputs/multi_file.js +228 -0
  38. data/app/assets/javascripts/formily/lib/jquery.datetimepicker.full.min.js +2 -0
  39. data/app/assets/javascripts/formily/lib/modernizr.js +8 -0
  40. data/app/assets/javascripts/formily/lib/strftime.min.js +12 -0
  41. data/app/assets/javascripts/formily/lib/tag-it.min.js +17 -0
  42. data/app/assets/javascripts/formily/mobile.js +10 -0
  43. data/app/assets/javascripts/formily_app.js +15 -0
  44. data/app/assets/javascripts/formily_iframe.js +11 -0
  45. data/app/assets/stylesheets/formily.scss +14 -0
  46. data/app/assets/stylesheets/formily/base/fonts.scss +65 -0
  47. data/app/assets/stylesheets/formily/base/layout.scss +66 -0
  48. data/app/assets/stylesheets/formily/base/links.css +7 -0
  49. data/app/assets/stylesheets/formily/base/ui-dialog.scss +129 -0
  50. data/app/assets/stylesheets/formily/editor.scss +25 -0
  51. data/app/assets/stylesheets/formily/editor/inputs_group_list.css +14 -0
  52. data/app/assets/stylesheets/formily/editor/inputs_list.css +97 -0
  53. data/app/assets/stylesheets/formily/editor/related_modal.scss +49 -0
  54. data/app/assets/stylesheets/formily/formily_editor.scss +53 -0
  55. data/app/assets/stylesheets/formily/formily_modal.scss +2 -0
  56. data/app/assets/stylesheets/formily/foundation_fix.scss +140 -0
  57. data/app/assets/stylesheets/formily/inputs/date_time.scss +8 -0
  58. data/app/assets/stylesheets/formily/inputs/multi_file.scss +111 -0
  59. data/app/assets/stylesheets/formily/jquery.datetimepicker.min.css +1 -0
  60. data/app/assets/stylesheets/formily/lib/jquery.tagit.css +69 -0
  61. data/app/assets/stylesheets/formily/modal/content.scss +36 -0
  62. data/app/assets/stylesheets/formily/modal/iframe.scss +29 -0
  63. data/app/assets/stylesheets/formily_iframe.scss +64 -0
  64. data/app/assets/stylesheets/foundation_formily.scss +20 -0
  65. data/app/controllers/formily/file_controller.rb +17 -0
  66. data/app/controllers/formily/form_types_controller.rb +46 -0
  67. data/app/controllers/formily/formilyable_controller.rb +98 -0
  68. data/app/controllers/formily/forms_controller.rb +133 -0
  69. data/app/controllers/formily/iframe/forms_controller.rb +28 -0
  70. data/app/controllers/formily/inputs_controller.rb +113 -0
  71. data/app/controllers/formily/submit_data_controller.rb +151 -0
  72. data/app/controllers/formily_controller.rb +22 -0
  73. data/app/helpers/formily_helper.rb +17 -0
  74. data/app/models/formily/checkbox_input.rb +8 -0
  75. data/app/models/formily/checkbox_input_group.rb +14 -0
  76. data/app/models/formily/date_time_input.rb +19 -0
  77. data/app/models/formily/file.rb +14 -0
  78. data/app/models/formily/form.rb +41 -0
  79. data/app/models/formily/form_type.rb +10 -0
  80. data/app/models/formily/formilyable_form.rb +18 -0
  81. data/app/models/formily/input.rb +124 -0
  82. data/app/models/formily/input_value.rb +23 -0
  83. data/app/models/formily/multiple_file_input.rb +18 -0
  84. data/app/models/formily/option_input.rb +8 -0
  85. data/app/models/formily/options_input_group.rb +14 -0
  86. data/app/models/formily/radio_input.rb +12 -0
  87. data/app/models/formily/radio_input_group.rb +14 -0
  88. data/app/models/formily/static_text.rb +8 -0
  89. data/app/models/formily/submit.rb +47 -0
  90. data/app/models/formily/text_input.rb +8 -0
  91. data/app/models/formily/textarea_input.rb +8 -0
  92. data/app/views/formily/data/_forms_table.html.haml +19 -0
  93. data/app/views/formily/data/_many_tables.html.erb +3 -0
  94. data/app/views/formily/data/_table.html.erb +33 -0
  95. data/app/views/formily/data/submit_data_table.html.haml +32 -0
  96. data/app/views/formily/editor/_default_value.haml +18 -0
  97. data/app/views/formily/editor/_editor.haml +18 -0
  98. data/app/views/formily/editor/_modal.haml +197 -0
  99. data/app/views/formily/editor/partial/_group.haml +41 -0
  100. data/app/views/formily/editor/partial/_group_input.haml +36 -0
  101. data/app/views/formily/editor/partial/_input.haml +35 -0
  102. data/app/views/formily/editor/partial/_input_fieldset.haml +12 -0
  103. data/app/views/formily/form_types/_form.haml +9 -0
  104. data/app/views/formily/form_types/edit.haml +6 -0
  105. data/app/views/formily/form_types/index.haml +24 -0
  106. data/app/views/formily/form_types/new.haml +6 -0
  107. data/app/views/formily/formilyable/index.haml +67 -0
  108. data/app/views/formily/formilyable/new.haml +37 -0
  109. data/app/views/formily/forms/_form.haml +34 -0
  110. data/app/views/formily/forms/_preview.haml +16 -0
  111. data/app/views/formily/forms/edit.haml +5 -0
  112. data/app/views/formily/forms/index.haml +40 -0
  113. data/app/views/formily/forms/new.haml +5 -0
  114. data/app/views/formily/forms/reload_formily_table.haml +4 -0
  115. data/app/views/formily/forms/show.haml +1 -0
  116. data/app/views/formily/helpers/_iframe_formily_modal.html.haml +3 -0
  117. data/app/views/formily/helpers/_related_forms.html.haml +12 -0
  118. data/app/views/formily/helpers/_related_forms_tr.html.haml +28 -0
  119. data/app/views/formily/iframe/forms/show.haml +1 -0
  120. data/app/views/formily/inputs/_group.haml +40 -0
  121. data/app/views/formily/inputs/_group_input.haml +36 -0
  122. data/app/views/formily/inputs/_input.haml +35 -0
  123. data/app/views/formily/inputs/_input_fieldset.haml +12 -0
  124. data/app/views/formily/inputs/render_input_html.haml +7 -0
  125. data/app/views/formily/partial/_form.haml +37 -0
  126. data/app/views/formily/partial/inputs/_checkbox_input.haml +18 -0
  127. data/app/views/formily/partial/inputs/_checkbox_input_group.haml +36 -0
  128. data/app/views/formily/partial/inputs/_conditioned_fields.haml +36 -0
  129. data/app/views/formily/partial/inputs/_date_time_input.haml +15 -0
  130. data/app/views/formily/partial/inputs/_file_input.haml +20 -0
  131. data/app/views/formily/partial/inputs/_file_preview.haml +14 -0
  132. data/app/views/formily/partial/inputs/_input.haml +1 -0
  133. data/app/views/formily/partial/inputs/_multiple_file_input.haml +25 -0
  134. data/app/views/formily/partial/inputs/_options_input_group.haml +77 -0
  135. data/app/views/formily/partial/inputs/_radio_input_group.haml +41 -0
  136. data/app/views/formily/partial/inputs/_static_text.haml +11 -0
  137. data/app/views/formily/partial/inputs/_text_input.haml +19 -0
  138. data/app/views/formily/partial/inputs/_textarea_input.haml +19 -0
  139. data/app/views/formily/submit_data/submit.html.erb +5 -0
  140. data/app/views/formily/submit_data/submit.json.jbuilder +5 -0
  141. data/app/views/layouts/formily_iframe.haml +16 -0
  142. data/config/routes.rb +41 -0
  143. data/formily.gemspec +41 -0
  144. data/lib/formily.rb +37 -0
  145. data/lib/formily/config.rb +72 -0
  146. data/lib/formily/engine.rb +12 -0
  147. data/lib/formily/helpers/view_helper.rb +114 -0
  148. data/lib/formily/relation.rb +26 -0
  149. data/lib/formily/relation/formily_methods.rb +30 -0
  150. data/lib/formily/relation/has_many_methods.rb +16 -0
  151. data/lib/formily/submitted_data_table.rb +74 -0
  152. data/lib/formily/version.rb +4 -0
  153. data/lib/generators/formily/install/install_generator.rb +43 -0
  154. data/lib/generators/formily/install/templates/create_formily_data.rb +28 -0
  155. data/lib/generators/formily/install/templates/create_formily_files.rb +13 -0
  156. data/lib/generators/formily/install/templates/create_formily_form_types.rb +12 -0
  157. data/lib/generators/formily/install/templates/create_formily_forms.rb +16 -0
  158. data/lib/generators/formily/install/templates/create_formily_inputs.rb +24 -0
  159. data/lib/generators/formily/install/templates/create_formilyable_forms.rb +17 -0
  160. data/lib/generators/formily/install/templates/formily.rb +21 -0
  161. data/lib/generators/formily/views/views_generator.rb +11 -0
  162. metadata +350 -0
@@ -0,0 +1,28 @@
1
+ $(document).ready(function() {
2
+
3
+ $(document).on('click', 'span[data-formily-new-response]', function(e){
4
+ var self = $(this);
5
+ var data = self.data('formilyNewResponse');
6
+ var url = self.data('href');
7
+
8
+ if(self.parents('table:first').data('formilyFlag')) {
9
+ data.flag = true;
10
+ }
11
+
12
+ $.ajax({
13
+ url: url,
14
+ type: 'POST',
15
+ data: data,
16
+ success: function(){
17
+ $(document).trigger('formily_update_table', data);
18
+ },
19
+ error: function(resp){
20
+ console.error(resp.responseJSON.msg);
21
+ alert(resp.responseJSON.msg);
22
+ }
23
+ });
24
+
25
+ e.preventDefault();
26
+ });
27
+
28
+ });
@@ -0,0 +1,9 @@
1
+ $(document).on('ready ajaxComplete', function() {
2
+
3
+ $('a.response[data-formily-iframe-url]').each(function() {
4
+ $(this).text($(this).text().replace(/\s*(\d{10,})\s*/, function myFunction(x, p1){
5
+ return strftime(' %Y/%m/%d %H:%M %Z ', new Date(p1*1000));
6
+ }));
7
+ });
8
+
9
+ });
@@ -0,0 +1,46 @@
1
+ // required all js files for FormilyEditor functionality
2
+ // and initialization
3
+
4
+ //= require formily/formily_editor
5
+ //= require formily/editor/form_preview
6
+ //= require formily/formily_modal
7
+
8
+ $(document).ready(function(){
9
+
10
+ window.FormilyModal.initialize();
11
+ window.FormilyEditor.initialize();
12
+ $(document).trigger('formily_form_updated');
13
+
14
+ $(document).foundation();
15
+
16
+ $(document).on('formily_update_tr', function (e, data) {
17
+
18
+ if(Object.keys(data).length == 0) {
19
+ data = window.FormilyModal.data;
20
+ }
21
+
22
+ var table_id = data.model_id + '_' + data.user_id;
23
+ var table = $('[data-formily-form-table=' + table_id + ']');
24
+ var tr = table.find('tr[data-formily-form-id=' + data.form_id + ']');
25
+
26
+ $.ajax({
27
+ url: '/formily/forms/reload_formily_table',
28
+ type: 'POST',
29
+ data: data,
30
+ success: function(data){
31
+
32
+ if(tr.length > 0){
33
+ tr.replaceWith(data);
34
+ } else {
35
+ table.append(data);
36
+ }
37
+
38
+ }
39
+ });
40
+ });
41
+
42
+ $(document).on('click', 'td button[data-formily-src]', function(){
43
+ window.location = $(this).data('formily-src');
44
+ });
45
+
46
+ });
@@ -0,0 +1,186 @@
1
+ var changeOrder = function (elem) {
2
+ var input_id, input_order;
3
+ input_id = elem.find('fieldset:first [name$=id]:first').val();
4
+ input_order = elem.find('fieldset:first [name$=field_order]:first').val();
5
+
6
+ $.ajax({
7
+ url: FormilyRoutes.input_update_path(input_id),
8
+ data: {field_order: input_order},
9
+ type: 'PUT'
10
+ });
11
+
12
+ };
13
+
14
+
15
+ $(document).ready(function(){
16
+
17
+
18
+ $(document).on('click', 'a[data-formily], button[data-formily]', function(e){
19
+
20
+ var self, btnType, element, container, formilyModal;
21
+
22
+ self = $(this);
23
+ btnType = self.data('formily');
24
+ element = self.parents('.ff-input-container:first');
25
+ container = element.parents('li:first');
26
+ formilyModal = $('#formily_modal');
27
+
28
+ window.InputModel.clear();
29
+ window.InputModel.getFromFieldset(element.find('fieldset:first'));
30
+
31
+ switch(btnType){
32
+
33
+ case 'add_input':
34
+ window.InputModel.clear();
35
+ window.InputModel.type = 'Formily::TextInput';
36
+ window.FormilyEditor.dialogType = 'input';
37
+ window.FormilyEditor.actionType = 'add';
38
+ window.InputModel.field_order = $('ul#formily_sortable_inputs>li').length + 1;
39
+
40
+ formilyModal.dialog('option', 'title', 'Add New Input');
41
+ formilyModal.dialog('open');
42
+ break;
43
+
44
+ case 'edit_input':
45
+ window.FormilyEditor.dialogType = 'input';
46
+ window.FormilyEditor.actionType = 'edit';
47
+ window.FormilyEditor.element = element;
48
+
49
+ formilyModal.dialog('option', 'title', 'Edit Input');
50
+ formilyModal.dialog('open');
51
+ break;
52
+
53
+ case 'add_group_input':
54
+ window.InputModel.clear();
55
+ window.FormilyEditor.dialogType = 'group';
56
+ window.FormilyEditor.actionType = 'add';
57
+ window.InputModel.type = self.data('group');
58
+
59
+ window.InputModel.group_input_id = self.parents('li:first').find('.ff-input-container fieldset:first input[name$=id]').val();
60
+ window.InputModel.field_order = self.parents('li:first').find('ul.ff-inputs-group-list>li').length + 1;
61
+
62
+ window.FormilyEditor.element = self.parent().find('.ff-inputs-group-list');
63
+
64
+ formilyModal.dialog('option', 'title', 'Add New Group Input');
65
+ formilyModal.dialog('open');
66
+ break;
67
+
68
+ case 'edit_group_input':
69
+ window.FormilyEditor.dialogType = 'group';
70
+ window.FormilyEditor.actionType = 'edit';
71
+ window.FormilyEditor.element = element;
72
+
73
+ formilyModal.dialog('open');
74
+ break;
75
+
76
+ case 'up':
77
+ var el1 = container;
78
+ var el2, update_all;
79
+
80
+ el2 = el1.prev();
81
+
82
+ if(el2.length == 0) {
83
+ el2 = el1.parent().children('li:last');
84
+ el2.after(el1);
85
+ //TODO: need update all fields
86
+ update_all = true;
87
+ } else {
88
+ el1.after(el2);
89
+ update_all = false;
90
+ }
91
+
92
+ if(el1.parents('li').length > 0) {
93
+ window.FormilyEditor.inputsGroupUpdate(el1.parents('.ff-inputs-group-list'));
94
+ } else {
95
+ window.FormilyEditor.inputsUpdate();
96
+ }
97
+
98
+ if(update_all) {
99
+ el1.parent().find('li').each(function(_, elem){
100
+ changeOrder($(elem).find('.ff-input-container:first'));
101
+ });
102
+ }else{
103
+ changeOrder(el1);
104
+ changeOrder(el2);
105
+ }
106
+
107
+ $(document).trigger('formily_form_updated');
108
+ break;
109
+
110
+ case 'down':
111
+ var el1 = container;
112
+ var el2 ;
113
+
114
+ el2 = el1.next();
115
+
116
+ if(el2.length == 0) {
117
+ el2 = el1.parent().children('li:first');
118
+ el2.before(el1);
119
+ update_all = true;
120
+ } else {
121
+ el1.before(el2);
122
+ update_all = false;
123
+ }
124
+
125
+ if(el1.parents('li').length > 0) {
126
+ window.FormilyEditor.inputsGroupUpdate(el1.parents('.ff-inputs-group-list'));
127
+ } else {
128
+ window.FormilyEditor.inputsUpdate();
129
+ }
130
+
131
+ if(update_all) {
132
+ el1.parent().find('li').each(function(_, elem){
133
+ changeOrder($(elem).find('.ff-input-container:first'));
134
+ });
135
+ }else{
136
+ changeOrder(el1);
137
+ changeOrder(el2);
138
+ }
139
+
140
+ $(document).trigger('formily_form_updated');
141
+ break;
142
+
143
+ case 'delete':
144
+ // Delete input
145
+ container.hide(300, function(){
146
+ if(confirm('Delete input ?')){
147
+ var elem = container.parents('ul.ff-inputs-group-list');
148
+ var parent = container.parents('ul:first');
149
+
150
+ container.remove();
151
+
152
+ if(elem.length > 0) {
153
+ window.FormilyEditor.inputsGroupUpdate(elem);
154
+ } else {
155
+ window.FormilyEditor.inputsUpdate();
156
+ }
157
+
158
+ if(window.InputModel.id && window.InputModel.id > 0) {
159
+ $.ajax({
160
+ url: FormilyRoutes.input_delete_path(InputModel.id),
161
+ type: 'DELETE',
162
+ success: function(){
163
+ parent.children('li').each(function(_, elem){
164
+ changeOrder($(elem).find('.ff-input-container:first'));
165
+ });
166
+ $(document).trigger('formily_form_updated');
167
+ }
168
+ });
169
+ }
170
+
171
+ } else {
172
+ container.show(0);
173
+ }
174
+ });
175
+
176
+ break;
177
+
178
+ default:
179
+ console.warn('Wrong formily data attr');
180
+ }
181
+
182
+ return false;
183
+ });
184
+
185
+
186
+ });
@@ -0,0 +1,53 @@
1
+ $(document).ready(function(){
2
+
3
+ var timeOutVar;
4
+
5
+ $(document).on('keyup change', '.form_preview', function(e){
6
+ clearTimeout(timeOutVar);
7
+ timeOutVar = setTimeout(function(){
8
+ var val, name, form, url, data;
9
+ var self = $(e.target);
10
+ form = self.parents('form');
11
+ url = form.attr('action');
12
+ val = self.val();
13
+ name = self.attr('name');
14
+ data = {};
15
+ data[name] = val;
16
+
17
+ $.ajax({
18
+ url: url,
19
+ data: data,
20
+ type: 'PUT',
21
+ success: function(data){
22
+ form.attr('action', url.replace(/\d+$/, data.id));
23
+ form.find('input[name="formily_form[id]"]').val(data.id);
24
+ $(document).trigger('formily_form_updated');
25
+ }
26
+ });
27
+
28
+ }, 500);
29
+ });
30
+
31
+ $(document).on('formily_form_updated', function(){
32
+
33
+ var form = $('.ff-container form:first');
34
+
35
+ if (form.length > 0) {
36
+ var data = {};
37
+ data['formily_form[id]'] = form.attr('action').match(/\d+$/)[0];
38
+
39
+ if(form.length > 0){
40
+ $.post(FormilyRoutes.form_preview_path(), data)
41
+ .success(function(data){
42
+ $('#formily_form_preview').html(data);
43
+ $(document).trigger('formily_loaded');
44
+ $(document).foundation();
45
+ })
46
+ .fail(function() {
47
+ console.warn('Error, wrong form data !');
48
+ });
49
+ }
50
+ }
51
+ });
52
+
53
+ });
@@ -0,0 +1,76 @@
1
+ (function() {
2
+
3
+ var InputModel = function(){
4
+
5
+ this.id = 0;
6
+ this.name = '';
7
+ this.type = '';
8
+ this.label = '';
9
+ this.description = '';
10
+ this.field_order = '';
11
+ this.default_value = '';
12
+ this.tag_attributes = '';
13
+
14
+ this.setValue = function(prop_name, value){
15
+ if(this[prop_name] != undefined) {
16
+
17
+ this[prop_name] = value;
18
+ }
19
+ };
20
+
21
+ this.getBaseObj = function(){
22
+ return {
23
+ id: this.id,
24
+ name: this.name,
25
+ type: this.type,
26
+ label: this.label,
27
+ description: this.description,
28
+ field_order: this.field_order,
29
+ default_value: this.default_value,
30
+ tag_attributes: this.tag_attributes
31
+ }
32
+ };
33
+
34
+ this.getFromFieldset = function(fieldset){
35
+ var self = this;
36
+ fieldset.serializeArray().forEach(function(el){
37
+ var name = el.name.replace(/inputs\[\](group_inputs\[\])?/i, '');
38
+ self[name] = el.value;
39
+ });
40
+ };
41
+
42
+ this.getTagAttr = function(){
43
+ try{
44
+ return JSON.parse(this.tag_attributes);
45
+ }catch(e){
46
+ return {};
47
+ }
48
+ };
49
+
50
+ this.setTagAttr = function(name, data){
51
+ var obj = this.getTagAttr();
52
+ obj[name] = data;
53
+ this.tag_attributes = JSON.stringify(obj);
54
+ };
55
+
56
+ this.delTagAttr = function(attr){
57
+ var obj = this.getTagAttr();
58
+ delete(obj[attr]);
59
+ this.tag_attributes = JSON.stringify(obj);
60
+ };
61
+
62
+ this.clear = function(){
63
+ this.id = 0;
64
+ this.name = '';
65
+ this.type = '';
66
+ this.label = '';
67
+ this.description = '';
68
+ this.field_order = '';
69
+ this.default_value = '';
70
+ this.tag_attributes = '';
71
+ };
72
+
73
+ };
74
+
75
+ window.InputModel = new InputModel();
76
+ })();
@@ -0,0 +1,83 @@
1
+ $(document).ready(function() {
2
+
3
+ // Show/hide section
4
+ $(document).on('change', 'select[data-ff-name="type"]', function(){
5
+
6
+ var self = $(this);
7
+ var parent = self.parents('section:first');
8
+
9
+ parent.find('section').hide(0);
10
+ parent.find('section[data-formily="' + self.val() + '"]').show(0);
11
+
12
+ // Set model option
13
+ window.InputModel.type = self.val();
14
+ });
15
+
16
+ // For text box & textarea
17
+ $(document).on('keyup keypress', 'input[data-ff-name], textarea[data-ff-name]', function(){
18
+ var self = $(this);
19
+
20
+ if(self.data('ffName') == 'tag_attributes') {
21
+ if(self.val() == '') {
22
+ window.InputModel.delTagAttr(self.data('ffSname'));
23
+ } else {
24
+ window.InputModel.setTagAttr(self.data('ffSname'), self.val());
25
+ }
26
+ } else {
27
+ window.InputModel.setValue(self.data('ffName'), self.val());
28
+ }
29
+ });
30
+
31
+ // For checkbox
32
+ $(document).on('change', 'input[type=checkbox][data-ff-name]', function(){
33
+ var self = $(this);
34
+
35
+ if(self.data('ffName') == 'tag_attributes') {
36
+ if(self.get(0).checked) {
37
+ window.InputModel.setTagAttr(self.data('ffSname'), self.val());
38
+ } else {
39
+ window.InputModel.delTagAttr(self.data('ffSname'));
40
+ }
41
+ } else {
42
+ if(self.get(0).checked) {
43
+ window.InputModel.setValue(self.data('ffName'), self.val());
44
+ } else {
45
+ window.InputModel.setValue(self.data('ffName'), '');
46
+ }
47
+ }
48
+ });
49
+
50
+ $(document).on('change', 'select[data-ff-name]', function(){
51
+ var self = $(this);
52
+
53
+ if(self.data('ffName') == 'tag_attributes') {
54
+ window.InputModel.setTagAttr(self.data('ffSname'), self.val());
55
+ } else {
56
+ window.InputModel.setValue(self.data('ffName'), self.val());
57
+ }
58
+
59
+ var def_input = $('section input[type="text"][data-ff-name="default_value"]');
60
+ var tag = self.parents('section:first').find('ul.related_value_tag');
61
+
62
+ if(self.val() == 'custom_value') {
63
+ def_input.show(0);
64
+ def_input.val('');
65
+ def_input.focus();
66
+ if (tag.length > 0) {
67
+ tag.hide(0);
68
+ tag.tagit('removeAll');
69
+ }
70
+ } else if (self.val() == 'related_value') {
71
+ tag.show(0);
72
+ def_input.hide(0);
73
+ } else {
74
+ def_input.hide(0);
75
+ if (tag.length > 0) {
76
+ tag.hide(0);
77
+ tag.tagit('removeAll');
78
+ }
79
+
80
+ }
81
+ });
82
+
83
+ });