/* ------------------------------------------------------------------------------
*
* # Sidebar components
*
* Demo JS code for sidebar_components.html page
*
* ---------------------------------------------------------------------------- */
// Setup module
// ------------------------------
var SidebarComponents = function () {
//
// Setup module components
//
// Uniform
var _componentUniform = function() {
if (!$().uniform) {
console.warn('Warning - uniform.min.js is not loaded.');
return;
}
// Checkboxes, radios
$('.form-input-styled').uniform({
fileButtonClass: 'action btn btn-icon bg-warning',
fileButtonHtml: ''
});
};
// Switchery
var _componentSwitchery = function() {
if (typeof Switchery == 'undefined') {
console.warn('Warning - switchery.min.js is not loaded.');
return;
}
// Multiple switchery toggles
var elems = Array.prototype.slice.call(document.querySelectorAll('.form-input-switchery'));
elems.forEach(function(html) {
var switchery = new Switchery(html);
});
};
// Select2
var _componentSelect2 = function() {
if (!$().select2) {
console.warn('Warning - select2.min.js is not loaded.');
return;
}
// Initialize
$('.form-control-select2').select2({
minimumResultsForSearch: Infinity
});
};
// Multiselect
var _componentMultiselect = function() {
if (!$().multiselect) {
console.warn('Warning - bootstrap-multiselect.js is not loaded.');
return;
}
// Initialize
$('.form-control-multiselect').multiselect();
};
// Color picker
var _componentColorPicker = function() {
if (!$().spectrum) {
console.warn('Warning - spectrum.js is not loaded.');
return;
}
// Initialize
$('.colorpicker-flat-full').spectrum({
flat: true,
showInitial: true,
showButtons: false,
showInput: true,
showAlpha: true,
allowEmpty: true
});
};
// Daterange picker
var _componentDaterange = function() {
if (!$().daterangepicker) {
console.warn('Warning - daterangepicker.js is not loaded.');
return;
}
// Initialize
$('#reportrange').daterangepicker(
{
startDate: moment().subtract(29, 'days'),
endDate: moment(),
minDate: '01/01/2016',
maxDate: '12/31/2019',
dateLimit: { days: 60 },
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
},
opens: $('html').attr('dir') == 'rtl' ? 'left' : 'right',
buttonClasses: ['btn'],
applyClass: 'btn-small btn-info btn-block',
cancelClass: 'btn-small btn-light btn-block',
locale: {
applyLabel: 'Submit',
fromLabel: 'From',
toLabel: 'To',
customRangeLabel: 'Custom Range',
daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr','Sa'],
monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
firstDay: 1,
direction: $('html').attr('dir') == 'rtl' ? 'rtl' : 'ltr'
}
},
function(start, end) {
$('#reportrange .daterange-custom-display').html(start.format('D MMM YYYY') + ' – ' + end.format('D MMM YYYY'));
}
);
// Custom date display layout
$('#reportrange .daterange-custom-display').html(moment().subtract(29, 'days').format('D MMM YYYY') + ' – ' + moment().format('D MMM YYYY'));
};
// jQuery UI components
var _componentsJqueryUI = function() {
if (!$().datepicker || !$().slider || !$().sortable) {
console.warn('Warning - jQuery UI components are not loaded.');
return;
}
// Date picker
$('.datepicker').datepicker();
//
// Sliders
//
// Range slider
$('.ui-slider-range').slider({
range: true,
min: 0,
max: 60,
values: [ 10, 50 ]
});
//
// Add pips to horizontal slider
//
// First we need a slider to work with
$('.ui-slider-labels').slider({
max: 9,
range: true,
values: [ 2, 7 ]
});
// And then we can apply pips to it!
$('.ui-slider-labels').slider('pips' , {
rest: 'labels'
});
$('.ui-slider-labels').slider('float');
//
// Add pips to vertical slider
//
// Add options
$('.ui-slider-vertical-pips > span').each(function() {
// Read initial values from markup and remove that
var value = parseInt($(this).text());
$(this).empty().slider({
min: 0,
max: 9,
value: value,
animate: true,
range: 'min',
orientation: 'vertical'
});
});
// Add pips
$('.ui-slider-vertical-pips > span').slider('pips');
//
// Sortable
//
$('.sortable').sortable({
connectWith: '.sortable',
items: '.card',
helper: 'original',
cursor: 'move',
handle: '[data-action=move]',
revert: 100,
containment: '.sidebar-secondary',
forceHelperSize: true,
placeholder: 'sortable-placeholder',
forcePlaceholderSize: true,
tolerance: 'pointer',
start: function(e, ui){
ui.placeholder.height(ui.item.outerHeight());
}
});
};
// Dual listbox
var _componentDualListbox = function() {
if (!$().bootstrapDualListbox) {
console.warn('Warning - duallistbox.min.js is not loaded.');
return;
}
// Initialize
$('.form-control-listbox').bootstrapDualListbox({
preserveSelectionOnMove: 'moved',
moveOnSelect: false
});
};
// Fancytree
var _componentFancytree = function() {
if (!$().fancytree) {
console.warn('Warning - fancytree_all.min.js is not loaded.');
return;
}
// Initialize
$('.tree-default').fancytree();
};
// Lightbox
var _componentFancybox = function() {
if (!$().fancybox) {
console.warn('Warning - fancybox.min.js is not loaded.');
return;
}
// Image lightbox
$('[data-popup="lightbox"]').fancybox({
padding: 3
});
};
//
// Return objects assigned to module
//
return {
initComponents: function() {
_componentUniform();
_componentSwitchery();
_componentSelect2();
_componentMultiselect();
_componentColorPicker();
_componentDaterange();
_componentsJqueryUI();
_componentDualListbox();
_componentFancytree();
_componentFancybox();
}
}
}();
// Initialize module
// ------------------------------
document.addEventListener('DOMContentLoaded', function() {
SidebarComponents.initComponents();
});