Sync plugins from current page

Signed-off-by: Adrian Nöthlich <git@promasu.tech>
This commit is contained in:
2019-09-11 19:08:46 +02:00
parent 85d41e4216
commit 8515ff9587
1847 changed files with 505469 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
(function($, undefined){
var Field = acf.Field.extend({
type: 'checkbox',
events: {
'change input': 'onChange',
'click .acf-add-checkbox': 'onClickAdd',
'click .acf-checkbox-toggle': 'onClickToggle',
'click .acf-checkbox-custom': 'onClickCustom'
},
$control: function(){
return this.$('.acf-checkbox-list');
},
$toggle: function(){
return this.$('.acf-checkbox-toggle');
},
$input: function(){
return this.$('input[type="hidden"]');
},
$inputs: function(){
return this.$('input[type="checkbox"]').not('.acf-checkbox-toggle');
},
getValue: function(){
var val = [];
this.$(':checked').each(function(){
val.push( $(this).val() );
});
return val.length ? val : false;
},
onChange: function( e, $el ){
// vars
var checked = $el.prop('checked');
var $toggle = this.$toggle();
// selected
if( checked ) {
$el.parent().addClass('selected');
} else {
$el.parent().removeClass('selected');
}
// determine if all inputs are checked
if( $toggle.length ) {
var $inputs = this.$inputs();
// all checked
if( $inputs.not(':checked').length == 0 ) {
$toggle.prop('checked', true);
} else {
$toggle.prop('checked', false);
}
}
},
onClickAdd: function( e, $el ){
var html = '<li><input class="acf-checkbox-custom" type="checkbox" checked="checked" /><input type="text" name="' + this.getInputName() + '[]" /></li>';
$el.parent('li').before( html );
},
onClickToggle: function( e, $el ){
var checked = $el.prop('checked');
var $inputs = this.$inputs();
$inputs.prop('checked', checked);
},
onClickCustom: function( e, $el ){
var checked = $el.prop('checked');
var $text = $el.next('input[type="text"]');
// checked
if( checked ) {
$text.prop('disabled', false);
// not checked
} else {
$text.prop('disabled', true);
// remove
if( $text.val() == '' ) {
$el.parent('li').remove();
}
}
}
});
acf.registerFieldType( Field );
})(jQuery);