PluginProbe ʕ •ᴥ•ʔ
Secure Custom Fields / trunk
Secure Custom Fields vtrunk
6.9.1 6.9.0 6.8.9 6.8.7 6.8.8 6.8.6 6.8.4 6.8.5 trunk 6.4.0-beta1 6.4.0-beta2 6.4.1 6.4.1-beta3 6.4.1-beta4 6.4.1-beta5 6.4.1-beta6 6.4.1-beta7 6.4.2 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.5.5 6.5.6 6.5.7 6.6.0 6.7.0 6.7.1 6.8.0 6.8.1 6.8.2 6.8.3
secure-custom-fields / assets / src / js / _field-group-settings.js
secure-custom-fields / assets / src / js Last commit date
bindings 6 months ago commands 2 weeks ago pro 2 weeks ago _acf-compatibility.js 1 year ago _acf-condition-types.js 8 months ago _acf-condition.js 1 year ago _acf-conditions.js 1 year ago _acf-field-accordion.js 6 months ago _acf-field-button-group.js 8 months ago _acf-field-checkbox.js 1 month ago _acf-field-color-picker.js 8 months ago _acf-field-date-picker.js 1 month ago _acf-field-date-time-picker.js 1 month ago _acf-field-file.js 1 month ago _acf-field-google-map.js 6 months ago _acf-field-icon-picker.js 1 month ago _acf-field-image.js 1 month ago _acf-field-link.js 1 year ago _acf-field-oembed.js 1 month ago _acf-field-page-link.js 1 year ago _acf-field-post-object.js 1 year ago _acf-field-radio.js 1 month ago _acf-field-range.js 1 year ago _acf-field-relationship.js 1 month ago _acf-field-select.js 1 month ago _acf-field-tab.js 1 month ago _acf-field-taxonomy.js 8 months ago _acf-field-time-picker.js 1 month ago _acf-field-true-false.js 1 month ago _acf-field-url.js 1 year ago _acf-field-user.js 1 year ago _acf-field-wysiwyg.js 1 month ago _acf-field.js 1 year ago _acf-fields.js 1 year ago _acf-helpers.js 1 year ago _acf-hooks.js 1 year ago _acf-internal-post-type.js 8 months ago _acf-media.js 2 weeks ago _acf-modal.js 1 year ago _acf-model.js 1 year ago _acf-notice.js 8 months ago _acf-panel.js 1 year ago _acf-popup.js 8 months ago _acf-postbox.js 1 year ago _acf-screen.js 10 months ago _acf-select2.js 1 year ago _acf-tinymce.js 6 months ago _acf-tooltip.js 10 months ago _acf-unload.js 1 year ago _acf-validation.js 1 month ago _acf.js 7 months ago _browse-fields-modal.js 8 months ago _field-group-compatibility.js 1 year ago _field-group-conditions.js 1 year ago _field-group-field.js 4 months ago _field-group-fields.js 10 months ago _field-group-locations.js 1 year ago _field-group-settings.js 1 year ago _field-group.js 10 months ago acf-escaped-html-notice.js 1 year ago acf-field-group.js 1 year ago acf-input.js 1 year ago acf-internal-post-type.js 1 year ago acf.js 1 year ago
_field-group-settings.js
312 lines
1 ( function ( $, undefined ) {
2 /**
3 * mid
4 *
5 * Calculates the model ID for a field type
6 *
7 * @date 15/12/17
8 * @since ACF 5.6.5
9 *
10 * @param string type
11 * @return string
12 */
13
14 var modelId = function ( type ) {
15 return acf.strPascalCase( type || '' ) + 'FieldSetting';
16 };
17
18 /**
19 * registerFieldType
20 *
21 * description
22 *
23 * @date 14/12/17
24 * @since ACF 5.6.5
25 *
26 * @param type $var Description. Default.
27 * @return type Description.
28 */
29
30 acf.registerFieldSetting = function ( model ) {
31 var proto = model.prototype;
32 var mid = modelId( proto.type + ' ' + proto.name );
33 this.models[ mid ] = model;
34 };
35
36 /**
37 * newField
38 *
39 * description
40 *
41 * @date 14/12/17
42 * @since ACF 5.6.5
43 *
44 * @param type $var Description. Default.
45 * @return type Description.
46 */
47
48 acf.newFieldSetting = function ( field ) {
49 // vars
50 var type = field.get( 'setting' ) || '';
51 var name = field.get( 'name' ) || '';
52 var mid = modelId( type + ' ' + name );
53 var model = acf.models[ mid ] || null;
54
55 // bail early if no setting
56 if ( model === null ) return false;
57
58 // instantiate
59 var setting = new model( field );
60
61 // return
62 return setting;
63 };
64
65 /**
66 * acf.getFieldSetting
67 *
68 * description
69 *
70 * @date 19/4/18
71 * @since ACF 5.6.9
72 *
73 * @param type $var Description. Default.
74 * @return type Description.
75 */
76
77 acf.getFieldSetting = function ( field ) {
78 // allow jQuery
79 if ( field instanceof jQuery ) {
80 field = acf.getField( field );
81 }
82
83 // return
84 return field.setting;
85 };
86
87 /**
88 * settingsManager
89 *
90 * @since ACF 5.6.5
91 *
92 * @param object The object containing the extended variables and methods.
93 * @return void
94 */
95 var settingsManager = new acf.Model( {
96 actions: {
97 new_field: 'onNewField',
98 },
99 onNewField: function ( field ) {
100 field.setting = acf.newFieldSetting( field );
101 },
102 } );
103
104 /**
105 * acf.FieldSetting
106 *
107 * @since ACF 5.6.5
108 *
109 * @param object The object containing the extended variables and methods.
110 * @return void
111 */
112 acf.FieldSetting = acf.Model.extend( {
113 field: false,
114 type: '',
115 name: '',
116 wait: 'ready',
117 eventScope: '.acf-field',
118
119 events: {
120 change: 'render',
121 },
122
123 setup: function ( field ) {
124 // vars
125 var $field = field.$el;
126
127 // set props
128 this.$el = $field;
129 this.field = field;
130 this.$fieldObject = $field.closest( '.acf-field-object' );
131 this.fieldObject = acf.getFieldObject( this.$fieldObject );
132
133 // inherit data
134 $.extend( this.data, field.data );
135 },
136
137 initialize: function () {
138 this.render();
139 },
140
141 render: function () {
142 // do nothing
143 },
144 } );
145
146 /**
147 * Accordion and Tab Endpoint Settings
148 *
149 * The 'endpoint' setting on accordions and tabs requires an additional class on the
150 * field object row when enabled.
151 *
152 * @since ACF 6.0.0
153 *
154 * @param object The object containing the extended variables and methods.
155 * @return void
156 */
157 var EndpointFieldSetting = acf.FieldSetting.extend( {
158 type: '',
159 name: '',
160 render: function () {
161 var $endpoint_setting = this.fieldObject.$setting( 'endpoint' );
162 var $endpoint_field = $endpoint_setting.find(
163 'input[type="checkbox"]:first'
164 );
165 if ( $endpoint_field.is( ':checked' ) ) {
166 this.fieldObject.$el.addClass( 'acf-field-is-endpoint' );
167 } else {
168 this.fieldObject.$el.removeClass( 'acf-field-is-endpoint' );
169 }
170 },
171 } );
172
173 var AccordionEndpointFieldSetting = EndpointFieldSetting.extend( {
174 type: 'accordion',
175 name: 'endpoint',
176 } );
177
178 var TabEndpointFieldSetting = EndpointFieldSetting.extend( {
179 type: 'tab',
180 name: 'endpoint',
181 } );
182
183 acf.registerFieldSetting( AccordionEndpointFieldSetting );
184 acf.registerFieldSetting( TabEndpointFieldSetting );
185
186 /**
187 * Date Picker
188 *
189 * This field type requires some extra logic for its settings
190 *
191 * @since ACF 5.0.0
192 *
193 * @param object The object containing the extended variables and methods.
194 * @return void
195 */
196 var DisplayFormatFieldSetting = acf.FieldSetting.extend( {
197 type: '',
198 name: '',
199 render: function () {
200 var $input = this.$( 'input[type="radio"]:checked' );
201 if ( $input.val() != 'other' ) {
202 this.$( 'input[type="text"]' ).val( $input.val() );
203 }
204 },
205 } );
206
207 var DatePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend(
208 {
209 type: 'date_picker',
210 name: 'display_format',
211 }
212 );
213
214 var DatePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend( {
215 type: 'date_picker',
216 name: 'return_format',
217 } );
218
219 acf.registerFieldSetting( DatePickerDisplayFormatFieldSetting );
220 acf.registerFieldSetting( DatePickerReturnFormatFieldSetting );
221
222 /**
223 * Date Time Picker
224 *
225 * This field type requires some extra logic for its settings
226 *
227 * @since ACF 5.0.0
228 *
229 * @param object The object containing the extended variables and methods.
230 * @return void
231 */
232 var DateTimePickerDisplayFormatFieldSetting =
233 DisplayFormatFieldSetting.extend( {
234 type: 'date_time_picker',
235 name: 'display_format',
236 } );
237
238 var DateTimePickerReturnFormatFieldSetting =
239 DisplayFormatFieldSetting.extend( {
240 type: 'date_time_picker',
241 name: 'return_format',
242 } );
243
244 acf.registerFieldSetting( DateTimePickerDisplayFormatFieldSetting );
245 acf.registerFieldSetting( DateTimePickerReturnFormatFieldSetting );
246
247 /**
248 * Time Picker
249 *
250 * This field type requires some extra logic for its settings
251 *
252 * @since ACF 5.0.0
253 *
254 * @param object The object containing the extended variables and methods.
255 * @return void
256 */
257 var TimePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend(
258 {
259 type: 'time_picker',
260 name: 'display_format',
261 }
262 );
263
264 var TimePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend( {
265 type: 'time_picker',
266 name: 'return_format',
267 } );
268
269 acf.registerFieldSetting( TimePickerDisplayFormatFieldSetting );
270 acf.registerFieldSetting( TimePickerReturnFormatFieldSetting );
271
272 /**
273 * Color Picker Settings.
274 *
275 * @date 16/12/20
276 * @since ACF 5.9.4
277 *
278 * @param object The object containing the extended variables and methods.
279 * @return void
280 */
281 var ColorPickerReturnFormat = acf.FieldSetting.extend( {
282 type: 'color_picker',
283 name: 'enable_opacity',
284 render: function () {
285 var $return_format_setting =
286 this.fieldObject.$setting( 'return_format' );
287 var $default_value_setting =
288 this.fieldObject.$setting( 'default_value' );
289 var $labelText = $return_format_setting
290 .find( 'input[type="radio"][value="string"]' )
291 .parent( 'label' )
292 .contents()
293 .last();
294 var $defaultPlaceholder =
295 $default_value_setting.find( 'input[type="text"]' );
296 var l10n = acf.get( 'colorPickerL10n' );
297
298 if ( this.field.val() ) {
299 $labelText.replaceWith( l10n.rgba_string );
300 $defaultPlaceholder.attr(
301 'placeholder',
302 'rgba(255,255,255,0.8)'
303 );
304 } else {
305 $labelText.replaceWith( l10n.hex_string );
306 $defaultPlaceholder.attr( 'placeholder', '#FFFFFF' );
307 }
308 },
309 } );
310 acf.registerFieldSetting( ColorPickerReturnFormat );
311 } )( jQuery );
312