Sync plugins from current page
Signed-off-by: Adrian Nöthlich <git@promasu.tech>
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
(function($, undefined){
|
||||
|
||||
var Field = acf.Field.extend({
|
||||
|
||||
type: 'true_false',
|
||||
|
||||
events: {
|
||||
'change .acf-switch-input': 'onChange',
|
||||
'focus .acf-switch-input': 'onFocus',
|
||||
'blur .acf-switch-input': 'onBlur',
|
||||
'keypress .acf-switch-input': 'onKeypress'
|
||||
},
|
||||
|
||||
$input: function(){
|
||||
return this.$('input[type="checkbox"]');
|
||||
},
|
||||
|
||||
$switch: function(){
|
||||
return this.$('.acf-switch');
|
||||
},
|
||||
|
||||
getValue: function(){
|
||||
return this.$input().prop('checked') ? 1 : 0;
|
||||
},
|
||||
|
||||
initialize: function(){
|
||||
this.render();
|
||||
},
|
||||
|
||||
render: function(){
|
||||
|
||||
// vars
|
||||
var $switch = this.$switch();
|
||||
|
||||
// bail ealry if no $switch
|
||||
if( !$switch.length ) return;
|
||||
|
||||
// vars
|
||||
var $on = $switch.children('.acf-switch-on');
|
||||
var $off = $switch.children('.acf-switch-off');
|
||||
var width = Math.max( $on.width(), $off.width() );
|
||||
|
||||
// bail ealry if no width
|
||||
if( !width ) return;
|
||||
|
||||
// set widths
|
||||
$on.css( 'min-width', width );
|
||||
$off.css( 'min-width', width );
|
||||
|
||||
},
|
||||
|
||||
switchOn: function() {
|
||||
this.$input().prop('checked', true);
|
||||
this.$switch().addClass('-on');
|
||||
},
|
||||
|
||||
switchOff: function() {
|
||||
this.$input().prop('checked', false);
|
||||
this.$switch().removeClass('-on');
|
||||
},
|
||||
|
||||
onChange: function( e, $el ){
|
||||
if( $el.prop('checked') ) {
|
||||
this.switchOn();
|
||||
} else {
|
||||
this.switchOff();
|
||||
}
|
||||
},
|
||||
|
||||
onFocus: function( e, $el ){
|
||||
this.$switch().addClass('-focus');
|
||||
},
|
||||
|
||||
onBlur: function( e, $el ){
|
||||
this.$switch().removeClass('-focus');
|
||||
},
|
||||
|
||||
onKeypress: function( e, $el ){
|
||||
|
||||
// left
|
||||
if( e.keyCode === 37 ) {
|
||||
return this.switchOff();
|
||||
}
|
||||
|
||||
// right
|
||||
if( e.keyCode === 39 ) {
|
||||
return this.switchOn();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
acf.registerFieldType( Field );
|
||||
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user