PluginProbe
Gravity Forms Eway / 2.2.4
Gravity Forms Eway v2.2.4
2.7.0 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.8.0 2.0.0 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 All 56 releases
gravityforms-eway / js / admin-recurring.js

admin-recurring.js in Gravity Forms Eway 2.2.4, at js/admin-recurring.js

134 lines 4.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! gravityforms-eway: form editor for Recurring Payments field */
2
3 // initialise form on page load
4 (function($) {
5
6 var TYPE_RECURRING = "gfewayrecurring";
7
8 // add required classes to the field on the admin form
9 fieldSettings.gfewayrecurring = ".conditional_logic_field_setting, .error_message_setting, .label_setting, .admin_label_setting, .rules_setting, .description_setting, .css_class_setting, .gfewayrecurring_setting";
10
11 // binding to the load field settings event to initialize custom inputs
12 $(document).bind("gform_load_field_settings", function(event, field, form) {
13
14 $("#gfeway_initial_setting").prop("checked", !!field.gfeway_initial_setting);
15 if (!field.gfeway_initial_setting) {
16 $("#gfeway_initial_fields").hide();
17 }
18
19 // NB: for backwards compatibility, check for combined start/end setting
20 if (field.gfeway_recurring_date_start || field.gfeway_recurring_date_setting) {
21 $("#gfeway_recurring_date_start").prop("checked", true);
22 }
23 else {
24 $("#gfeway_recurring_date_start").prop("checked", false);
25 $("#gfeway_recurring_start_date_fields").hide();
26 }
27
28 // NB: for backwards compatibility, check for combined start/end setting
29 if (field.gfeway_recurring_date_end || field.gfeway_recurring_date_setting) {
30 $("#gfeway_recurring_date_end").prop("checked", true);
31 }
32 else {
33 $("#gfeway_recurring_date_end").prop("checked", false);
34 $("#gfeway_recurring_end_date_fields").hide();
35 }
36
37 $("#gfeway_initial_amount_label").val(field.gfeway_initial_amount_label);
38 $("#gfeway_recurring_amount_label").val(field.gfeway_recurring_amount_label);
39 $("#gfeway_initial_date_label").val(field.gfeway_initial_date_label);
40 $("#gfeway_start_date_label").val(field.gfeway_start_date_label);
41 $("#gfeway_end_date_label").val(field.gfeway_end_date_label);
42 $("#gfeway_interval_type_label").val(field.gfeway_interval_type_label);
43
44 });
45
46 /**
47 * toggle whether to show the Initial Amount and Initial Date fields
48 */
49 $("#gfeway_initial_setting").on("change", function() {
50 SetFieldProperty(this.id, this.checked ? "1" : "");
51
52 if (this.checked) {
53 $("#gfeway_initial_fields").slideDown();
54 }
55 else {
56 $("#gfeway_initial_fields").slideUp();
57 }
58 });
59
60 /**
61 * toggle whether to show the Start Date field
62 */
63 $("#gfeway_recurring_date_start").on("change", function() {
64 SetFieldProperty(this.id, this.checked ? "1" : "");
65
66 // cleanup old combined start/end setting
67 var field = GetSelectedField();
68 if ("gfeway_recurring_date_setting" in field) {
69 field.gfeway_recurring_date_end = field.gfeway_recurring_date_setting ? "1" : "";
70 delete(field.gfeway_recurring_date_setting);
71 }
72
73 if (this.checked) {
74 $("#gfeway_recurring_start_date_fields").slideDown();
75 }
76 else {
77 $("#gfeway_recurring_start_date_fields").slideUp();
78 }
79 });
80
81 /**
82 * toggle whether to show the End Date field
83 */
84 $("#gfeway_recurring_date_end").on("change", function() {
85 SetFieldProperty(this.id, this.checked ? "1" : "");
86
87 // cleanup old combined start/end setting
88 var field = GetSelectedField();
89 if ("gfeway_recurring_date_setting" in field) {
90 field.gfeway_recurring_date_start = field.gfeway_recurring_date_setting ? "1" : "";
91 delete(field.gfeway_recurring_date_setting);
92 }
93
94 if (this.checked) {
95 $("#gfeway_recurring_end_date_fields").slideDown();
96 }
97 else {
98 $("#gfeway_recurring_end_date_fields").slideUp();
99 }
100 });
101
102 /**
103 * set the label on a subfield in the recurring field
104 */
105 $("li.gfewayrecurring_setting").on("keyup", "input.gfeway-field-label", function() {
106 var newLabel = this.value;
107
108 // if new label value is empty, pick up the default value instead
109 if (!(/\S/.test(newLabel))) {
110 newLabel = $(this).data("gfeway-field-label");
111 }
112
113 // set the new label, and record for the field
114 $("." + this.id).text(newLabel);
115 SetFieldProperty(this.id, newLabel);
116 });
117
118 /**
119 * prevent multiple instances of Recurring field on form
120 * @param {bool} can_be_added
121 * @param {String} field_type
122 * @return {bool}
123 */
124 gform.addFilter("gform_form_editor_can_field_be_added", function(can_be_added, field_type) {
125 if (field_type === TYPE_RECURRING && GetFieldsByType([field_type]).length > 0) {
126 can_be_added = false;
127 window.alert(gfeway_editor_admin_strings_recurring.only_one);
128 }
129
130 return can_be_added;
131 });
132
133 })(jQuery);
134