MINI Sh3ll
/* ------------------------------------------------------------------------------
*
* # Alpaca - Controls
*
* Demo JS code for alpaca_controls.html page
*
* ---------------------------------------------------------------------------- */
// Setup module
// ------------------------------
var AlpacaControls = function() {
//
// Setup module components
//
// Alpaca examples
var _componentAlpacaControls = function() {
if (!$().alpaca) {
console.warn('Warning - alpaca.min.js is not loaded.');
return;
}
// Checkboxes
// ------------------------------
// Checkbox with label
var $alpacaCheckboxLabel = $('#alpaca-checkbox-label');
$alpacaCheckboxLabel.alpaca({
data: true,
options: {
label: 'Question:',
rightLabel: 'Do you like Alpaca?'
},
postRender: function(control) {
$alpacaCheckboxLabel.find('.checkbox').addClass('form-check');
$alpacaCheckboxLabel.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaCheckboxLabel.find('input[type=checkbox]').addClass('form-check-input');
}
});
// Display only mode
$('#alpaca-checkbox-static').alpaca({
data: false,
view: 'bootstrap-display',
options: {
label: 'Registered?'
}
});
// Basic checkbox list
var $alpacaCheckboxList = $('#alpaca-checkbox-list');
$alpacaCheckboxList.alpaca({
data: ['sandwich', 'cookie', 'drink'],
schema: {
type: 'array',
enum: ['sandwich', 'chips', 'cookie', 'drink']
},
options: {
type: 'checkbox',
label: 'What would you like with your order?',
optionLabels: ['A Sandwich', 'Potato Chips', 'A Cookie', 'Soft Drink']
},
postRender: function(control) {
$alpacaCheckboxList.find('.checkbox').addClass('form-check');
$alpacaCheckboxList.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaCheckboxList.find('input[type=checkbox]').addClass('form-check-input');
}
});
// Radios
// ------------------------------
// Basic radios
var $alpacaRadioBasic = $('#alpaca-radio-basic');
$alpacaRadioBasic.alpaca({
data: 'green',
options: {
type: 'radio',
label: 'Favorite Color',
helper: 'Pick your favorite color',
optionLabels: {
red: 'Red',
green: 'Green',
blue: 'Blue',
white: 'White',
black: 'Black'
}
},
schema: {
required: true,
enum: ['red', 'green', 'blue', 'white', 'black']
},
postRender: function(control) {
$alpacaRadioBasic.find('.radio').addClass('form-check');
$alpacaRadioBasic.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaRadioBasic.find('input[type=radio]').addClass('form-check-input');
}
});
// Disabled mode
var $alpacaRadioBasicDisabled = $('#alpaca-radio-basic-disabled');
$alpacaRadioBasicDisabled.alpaca({
data: 'Jimi Hendrix',
schema: {
enum: ['Jimi Hendrix', 'Mark Knopfler', 'Joe Satriani', 'Eddie Van Halen', 'Orianthi']
},
options: {
type: 'radio',
label: 'Who is your favorite guitarist?',
vertical: true,
disabled: true
},
postRender: function(control) {
$alpacaRadioBasicDisabled.find('.radio').addClass('form-check');
$alpacaRadioBasicDisabled.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaRadioBasicDisabled.find('input[type=radio]').addClass('form-check-input');
}
});
// Required radios
var $alpacaRadioRequired = $('#alpaca-radio-required');
$alpacaRadioRequired.alpaca({
data: 'Coffee2',
options: {
label: 'Ice cream',
helper: 'Guess my favorite ice cream?',
optionLabels: ['Vanilla Flavor', 'Chocolate Flavor', 'Coffee Flavor']
},
schema: {
required: true,
enum: ['Vanilla', 'Chocolate', 'Coffee']
},
postRender: function(control) {
$alpacaRadioRequired.find('.radio').addClass('form-check');
$alpacaRadioRequired.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaRadioRequired.find('input[type=radio]').addClass('form-check-input');
}
});
// Options
var $alpacaRadioOptions = $('#alpaca-radio-options');
$alpacaRadioOptions.alpaca({
data: 'Jimi Hendrix',
schema: {
enum: ['Jimi Hendrix', 'Mark Knopfler', 'Joe Satriani', 'Eddie Van Halen', 'Orianthi']
},
options: {
type: 'radio',
label: 'Who is your favorite guitarist?',
removeDefaultNone: true,
vertical: true
},
postRender: function(control) {
$alpacaRadioOptions.find('.radio').addClass('form-check');
$alpacaRadioOptions.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaRadioOptions.find('input[type=radio]').addClass('form-check-input');
}
});
};
// Alpaca with Uniform
var _componentAlpacaControlsUniform = function() {
if (!$().alpaca || !$().uniform) {
console.warn('Warning - alpaca.min.js and/or uniform.min.js is not loaded.');
return;
}
// Styled checkbox
var $alpacaCheckboxStyled = $('#alpaca-checkbox-styled');
$alpacaCheckboxStyled.alpaca({
data: true,
options: {
label: 'Question:',
rightLabel: 'Do you like Alpaca?'
},
postRender: function(control) {
$alpacaCheckboxStyled.find('.checkbox').addClass('form-check');
$alpacaCheckboxStyled.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaCheckboxStyled.find('input[type=checkbox]').addClass('form-check-input').uniform();
}
});
// Disabled checkbox
var $alpacaCheckboxStyledDisabled = $('#alpaca-checkbox-styled-disabled');
$alpacaCheckboxStyledDisabled.alpaca({
data: true,
options: {
label: 'Question:',
rightLabel: 'Do you like Alpaca?',
disabled: true
},
postRender: function(control) {
$alpacaCheckboxStyledDisabled.find('.checkbox').addClass('form-check');
$alpacaCheckboxStyledDisabled.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaCheckboxStyledDisabled.find('input[type=checkbox]').addClass('form-check-input').uniform();
}
});
// Styled checkbox list
var $alpacaCheckboxListStyled = $('#alpaca-checkbox-list-styled');
$alpacaCheckboxListStyled.alpaca({
data: ['sandwich', 'cookie', 'drink'],
schema: {
type: 'array',
enum: ['sandwich', 'chips', 'cookie', 'drink']
},
options: {
type: 'checkbox',
label: 'What would you like with your order?',
optionLabels: ['A Sandwich', 'Potato Chips', 'A Cookie', 'Soft Drink']
},
postRender: function(control) {
$alpacaCheckboxListStyled.find('.checkbox').addClass('form-check');
$alpacaCheckboxListStyled.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaCheckboxListStyled.find('input[type=checkbox]').addClass('form-check-input').uniform();
}
});
// Styled radios
var $alpacaRadioStyled = $('#alpaca-radio-styled');
$alpacaRadioStyled.alpaca({
data: 'Jimi Hendrix',
schema: {
enum: ['Jimi Hendrix', 'Mark Knopfler', 'Joe Satriani', 'Eddie Van Halen', 'Orianthi']
},
options: {
type: 'radio',
label: 'Who is your favorite guitarist?',
vertical: true
},
postRender: function(control) {
$alpacaRadioStyled.find('.radio').addClass('form-check');
$alpacaRadioStyled.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaRadioStyled.find('input[type=radio]').addClass('form-check-input').uniform();
}
});
// Disabled mode
var $alpacaRadioStyledDisabled = $('#alpaca-radio-styled-disabled');
$alpacaRadioStyledDisabled.alpaca({
data: 'Jimi Hendrix',
schema: {
enum: ['Jimi Hendrix', 'Mark Knopfler', 'Joe Satriani', 'Eddie Van Halen', 'Orianthi']
},
options: {
type: 'radio',
label: 'Who is your favorite guitarist?',
vertical: true,
disabled: true
},
postRender: function(control) {
$alpacaRadioStyledDisabled.find('.radio').addClass('form-check');
$alpacaRadioStyledDisabled.find('label:not(.alpaca-control-label)').addClass('form-check-label');
$alpacaRadioStyledDisabled.find('input[type=radio]').addClass('form-check-input').uniform();
}
});
};
// Alpaca with Switchery
var _componentAlpacaControlsSwitchery = function() {
if (!$().alpaca || typeof Switchery == 'undefined') {
console.warn('Warning - alpaca.min.js and/or switchery.min.js is not loaded.');
return;
}
// Switchery toggle
var $alpacaSwitchery = $('#alpaca-switchery');
$alpacaSwitchery.alpaca({
data: true,
options: {
label: 'Question:',
rightLabel: 'Do you like Alpaca?',
fieldClass: 'switchery-demo'
},
postRender: function() {
// Init Switchery
var elems = Array.prototype.slice.call(document.querySelectorAll('.switchery-demo input[type=checkbox]'));
elems.forEach(function(html) {
var switchery = new Switchery(html);
});
$alpacaSwitchery.find('.checkbox').addClass('form-check form-check-switchery');
$alpacaSwitchery.find('label:not(.alpaca-control-label)').addClass('form-check-label');
}
});
// Disabled Switchery
var $alpacaSwitcheryDisabled = $('#alpaca-switchery-disabled');
$alpacaSwitcheryDisabled.alpaca({
data: true,
options: {
label: 'Question:',
rightLabel: 'Do you like Alpaca?',
fieldClass: 'switchery-disabled-demo',
disabled: true
},
postRender: function(control) {
// Init Switchery
var elems = Array.prototype.slice.call(document.querySelectorAll('.switchery-disabled-demo input[type=checkbox]'));
elems.forEach(function(html) {
var switchery = new Switchery(html);
});
$alpacaSwitcheryDisabled.find('.checkbox').addClass('form-check form-check-switchery');
$alpacaSwitcheryDisabled.find('label:not(.alpaca-control-label)').addClass('form-check-label');
}
});
};
// Alpaca with Tokenfield
var _componentAlpacaControlsTokenfield = function() {
if (!$().alpaca || !$().tokenfield) {
console.warn('Warning - alpaca.min.js and/or tokenfield.min.js is not loaded.');
return;
}
// Basic setup
$('#alpaca-tokenfield').alpaca({
schema: {
title: 'Character Names',
type: 'string'
},
options: {
type: 'token',
focus: false,
tokenfield: {
autocomplete: {
source: ['marty', 'doc', 'george', 'biff', 'lorraine', 'mr. strickland'],
delay: 100
},
showAutocompleteOnFocus: true
}
},
data: 'marty,doc,george,biff'
});
// Display only mode
$('#alpaca-tokenfield-static').alpaca({
schema: {
title: 'Character Names',
type: 'string'
},
options: {
type: 'token',
focus: false,
tokenfield: {
autocomplete: {
source: ['marty', 'doc', 'george', 'biff', 'lorraine', 'mr. strickland'],
delay: 100
},
showAutocompleteOnFocus: true
}
},
data: 'marty,doc,george,biff',
view: 'bootstrap-display'
});
};
//
// Return objects assigned to module
//
return {
init: function() {
_componentAlpacaControls();
_componentAlpacaControlsUniform();
_componentAlpacaControlsSwitchery();
_componentAlpacaControlsTokenfield();
}
}
}();
// Initialize module
// ------------------------------
document.addEventListener('DOMContentLoaded', function() {
AlpacaControls.init();
});
OHA YOOOO