field-group.js
1.5 KB
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
(function($){
var repeater = {
$el : null,
set : function( o ){
// merge in new option
$.extend( this, o );
// return this for chaining
return this;
},
init : function(){
this.render();
},
render : function(){
// vars
var id = this.$el.attr('data-id'),
layout = 'table';
// find layout value
if( this.$el.find('input[name="fields[' + id + '][layout]"]:checked').length > 0 )
{
layout = this.$el.find('input[name="fields[' + id + '][layout]"]:checked').val();
}
// add class
this.$el.find('.repeater:first').removeClass('layout-row layout-table').addClass( 'layout-' + layout );
}
};
/*
* Document Ready
*
* description
*
* @type function
* @date 18/08/13
*
* @param $post_id (int)
* @return $post_id (int)
*/
$(document).ready(function(){
$('.field_type-repeater').each(function(){
repeater.set({ $el : $(this) }).init();
});
});
/*
* Events
*
* jQuery events for this field
*
* @type function
* @date 1/03/2011
*
* @param N/A
* @return N/A
*/
$(document).on('click', '.field_option_repeater_layout input[type="radio"]', function( e ){
repeater.set({ $el : $(this).closest('.field_type-repeater') }).render();
});
$(document).on('acf/field_form-open', function(e, field){
// vars
$el = $(field);
if( $el.hasClass('field_type-repeater') )
{
repeater.set({ $el : $el }).render();
}
});
})(jQuery);