fuelux
Version:
Base Fuel UX styles and controls
1,392 lines (1,257 loc) • 38 kB
JavaScript
define(function (require) {
// load data.js containing sample datasources
var data = require('data');
var jquery = require('jquery');
// helper function for browser console
var log = function () {
if (window.console && window.console.log) {
var args = Array.prototype.slice.call(arguments);
window.console.log.apply(console, args);
}
};
// programmatically injecting this is so much easier than writing the html by hand 376 times...
$('h1[id], h2[id], h3[id], h4[id], h5[id], h6[id], dt[id], section[id]').each(function (i) {
$(this).children('h2:first').prepend(['<a class="header-anchor" href="#', this.id, '"><small><span class="glyphicon glyphicon-link"></span></a></small> '].join(''));
});
// load fuel controls
require('fuelux/all');
var _ = require('underscore');
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CHECKBOX
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// sample method buttons
$('#btnCheckboxToggle').on('click', function () {
$('#myCustomCheckbox1').checkbox('toggle');
});
$('#btnCheckboxDisable').on('click', function () {
$('#myCustomCheckbox1').checkbox('disable');
});
$('#btnCheckboxEnable').on('click', function () {
$('#myCustomCheckbox1').checkbox('enable');
});
$('#btnCheckboxDestroy').on('click', function () {
var $container = $('#myCustomCheckbox1').parent();
var markup = $('#myCustomCheckbox1').checkbox('destroy');
log(markup);
$container.append(markup);
});
$('#btnCheckboxIsChecked').on('click', function () {
var checked = $('#myCustomCheckbox1').checkbox('isChecked');
log(checked);
});
$('#btnCheckboxGetValue').on('click', function () {
var value = $('#myCustomCheckbox1').checkbox('getValue');
log(value);
});
$('#btnCheckboxCheck').on('click', function () {
$('#myCustomCheckbox1').checkbox('check');
});
$('#btnCheckboxUncheck').on('click', function () {
$('#myCustomCheckbox1').checkbox('uncheck');
});
$('#myCustomCheckbox1').on('changed.fu.checkbox', function (evt, data) {
log('changed', data);
});
$('#myCustomCheckbox1').on('checked.fu.checkbox', function (evt, data) {
log('checked');
});
$('#myCustomCheckbox1').on('unchecked.fu.checkbox', function (evt, data) {
log('unchecked');
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COMBOBOX
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// sample method buttons
$('#btnComboboxGetSelectedItem').on('click', function () {
var selectedItem = $('#myCombobox').combobox('selectedItem');
log('selectedItem: ', selectedItem);
});
$('#btnComboboxSelectByValue').on('click', function () {
$('#myCombobox').combobox('selectByValue', '1');
});
$('#btnComboboxSelectByIndex').on('click', function () {
$('#myCombobox').combobox('selectByIndex', '1');
});
$('#btnComboboxSelectByText').on('click', function () {
$('#myCombobox').combobox('selectByText', 'Four');
});
$('#btnComboboxSelectBySelector').on('click', function () {
$('#myCombobox').combobox('selectBySelector', 'li[data-fizz=buzz]');
});
$('#btnComboboxDisable').on('click', function () {
$('#myCombobox').combobox('disable');
});
$('#btnComboboxEnable').on('click', function () {
$('#myCombobox').combobox('enable');
});
$('#btnComboboxDestroy').on('click', function () {
var markup = $('#myCombobox').combobox('destroy');
log(markup);
$(this).closest('.section').append(markup);
});
// events
$('#myCombobox').on('changed.fu.combobox', function (event, data) {
log(data);
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DATEPICKER
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
function formatClientTimezone8601 () {
var now = new Date(),
tzo = now.getTimezoneOffset() * -1, // invert
dif = tzo >= 0 ? '+' : '-',
pad = function (num) {
var norm = Math.abs(Math.floor(num));
return (norm < 10 ? '0' : '') + norm;
};
return dif + pad(tzo / 60) + ':' + pad(tzo % 60);
}
var localTimezone = formatClientTimezone8601();
// initialize
$('#myDatepicker').datepicker({
momentConfig: {
culture: 'en',
format: ''
},
allowPastDates: true,
restricted: [{
from: '2014-08-10T00:00:00' + localTimezone,
to: '2014-08-15T00:00:00' + localTimezone
}]
});
// sample method buttons
$('#btnDatepickerEnable').on('click', function () {
$('#myDatepicker').datepicker('enable');
});
$('#btnDatepickerDisable').on('click', function () {
$('#myDatepicker').datepicker('disable');
});
$('#btnDatepickerLogFormattedDate').on('click', function () {
log($('#myDatepicker').datepicker('getFormattedDate'));
});
$('#btnDatepickerLogDateObj').on('click', function () {
log($('#myDatepicker').datepicker('getDate'));
});
$('#btnDatepickerSetDate').on('click', function () {
var futureDate = new Date(+new Date() + (7 * 24 * 60 * 60 * 1000));
$('#myDatepicker').datepicker('setDate', futureDate);
log($('#datepicker').datepicker('getDate'));
});
$('#btnDatepickerDestroy').on('click', function () {
var $container = $('#myDatepicker').parent();
var markup = $('#myDatepicker').datepicker('destroy');
log(markup);
$container.append(markup);
});
// events
$('#myDatepicker').on('changed.fu.datepicker', function (event, data) {
log('datepicker change event fired: ' + data);
});
$('#myDatepicker').on('dateClicked.fu.datepicker', function (event, data) {
log('datepicker dateClicked event fired: ' + data);
});
$('#myDatepicker').on('inputParsingFailed.fu.datepicker', function () {
log('datepicker inputParsingFailed event fired');
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
INFINITE SCROLL
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// intitialize
function initMyInfiniteScroll1 () {
$('#myInfiniteScroll1').infinitescroll({
dataSource: function (helpers, callback) {
log('helpers variables', helpers);
// call and simulate latency
setTimeout(function () {
// from data.js
callback({
content: data.infiniteScroll.content
});
}, data.infiniteScroll.delays[Math.floor(Math.random() * 4)]);
}
});
}
initMyInfiniteScroll1();
var infiniteScrollCount = 0;
$('#myInfiniteScroll2').infinitescroll({
dataSource: function (helpers, callback) {
log('helpers variables', helpers);
setTimeout(function () {
var resp = {};
infiniteScrollCount++;
// from data.js
resp.content = data.infiniteScroll.content;
if (infiniteScrollCount >= 5) {
resp.end = true;
}
callback(resp);
}, data.infiniteScroll.delays[Math.floor(Math.random() * 4)]);
},
hybrid: true
});
// sample method buttons
$('#btnInfiniteScrollEnable').on('click', function () {
$('#myInfiniteScroll1').infinitescroll('enable');
});
$('#btnInfiniteScrollDisable').on('click', function () {
$('#myInfiniteScroll1').infinitescroll('disable');
});
$('#btnInfiniteScrollDestroy').on('click', function () {
var $container = $('#myInfiniteScroll1').parent();
var markup = $('#myInfiniteScroll1').infinitescroll('destroy');
log(markup);
$container.append(markup);
$('#myInfiniteScroll1').append($('#myInfiniteScroll2').html());
initMyInfiniteScroll1();
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LOADER
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// sample method buttons
$('#btnLoaderPlay').on('click', function () {
$('#myLoader1').loader('play');
});
$('#btnLoaderPause').on('click', function () {
$('#myLoader1').loader('pause');
});
$('#btnLoaderNext').on('click', function () {
$('#myLoader1').loader('next');
});
$('#btnLoaderPrevious').on('click', function () {
$('#myLoader1').loader('previous');
});
$('#btnLoaderDestroy').on('click', function () {
var $container = $('#myLoader1').parent();
var markup = $('#myLoader1').loader('destroy');
log(markup);
$container.append(markup);
$('#myLoader1').loader();
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PILLBOX
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// intitialize
$('#myPillbox1').pillbox({
edit: true,
onKeyDown: function (inputData, callback) {
log('inputData:', inputData);
callback({
data: [
{
'text': 'African cherry orange',
'value': 'african cherry orange',
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: orange;',
'data-example-attribute': 'true'
},
'data': {
'flora': true,
'color': 'orange'
}
},
{
'text': 'Bilberry',
'value': 'bilberry',
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: midnightBlue;',
'data-example-attribute': 'true'
},
'data': {
'flora': true,
'color': 'blue'
}
},
{
'text': 'Ceylon gooseberry',
'value': 'ceylon gooseberry',
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: mediumBlue;',
'data-example-attribute': 'true'
}
},
{
'text': "Dead Man's Fingers",
'value': "dead man's fingers",
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: darkSlateBlue;',
'data-example-attribute': 'true'
}
},
{
'text': 'Governor’s Plum',
'value': 'governor’s plum',
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: darkViolet;',
'data-example-attribute': 'true'
}
},
{
'text': 'Huckleberry',
'value': 'huckleberry',
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: darkBlue;',
'data-example-attribute': 'true'
}
},
{
'text': 'Jackfruit',
'value': 'jackfruit',
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: yellow;',
'data-example-attribute': 'true'
}
},
{
'text': 'Lillypilly',
'value': 'lillypilly',
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: pink;',
'data-example-attribute': 'true'
}
},
{
'text': 'Soursop',
'value': 'soursop',
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: beige;',
'data-example-attribute': 'true'
}
},
{
'text': 'Thimbleberry',
'value': 'thimbleberry',
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: Crimson;',
'data-example-attribute': 'true'
}
},
{
'text': 'Wongi',
'value': 'wongi',
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color: red;',
'data-example-attribute': 'true'
}
},
]
});
}
});
$('#myPillbox2').pillbox({
truncate: true
});
// sample method buttons
$('#btnPillboxEnable').click(function () {
$('#myPillbox1').pillbox('enable');
});
$('#btnPillboxDisable').click(function () {
$('#myPillbox1').pillbox('disable');
});
$('#btnPillboxAdd').click(function () {
var newItemCount = $('#myPillbox1 ul li').length + 1;
var randomBackgroundColor = '#' + Math.floor(Math.random() * 16777215).toString(16);
$('#myPillbox1').pillbox('addItems',
{
'text': 'item ' + newItemCount,
'value': 'item' + newItemCount,
'attr': {
'cssClass': 'example-pill-class',
'style': 'background-color:' + randomBackgroundColor + ';',
'data-example-attribute': 'true'
}
});
});
$('#btnPillboxRemoveByValue').click(function () {
$('#myPillbox1').pillbox('removeByValue', 'item 2');
});
$('#btnPillboxRemoveBySelector').click(function () {
$('#myPillbox1').pillbox('removeBySelector', '.example-pill-class');
});
$('#btnPillboxRemoveByText').click(function () {
$('#myPillbox1').pillbox('removeByText', 'item 3');
});
$('#btnPillboxItems').click(function () {
var items = $('#myPillbox1').pillbox('items');
log('items: ', items);
});
$('#btnPillboxDestroy').click(function () {
var $container = $('#myPillbox1').parents('.thin-box:first');
var markup = $('#myPillbox1').pillbox('destroy');
log(markup);
$container.append(markup);
$('#myPillbox1').pillbox({
edit: true
});
});
// events
$('#myPillbox1').on('added', function (event, pillData) {
log('pillbox added', pillData);
});
$('#myPillbox1').on('removed', function (event, pillData) {
log('pillbox removed', pillData);
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PLACARD
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// sample method buttons
$('#btnPlacardEnable').click(function () {
$('#myPlacard1').placard('enable');
});
$('#btnPlacardDisable').click(function () {
$('#myPlacard1').placard('disable');
});
$('#btnPlacardDestroy').click(function () {
var $container = $('#myPlacard1').parent();
var markup = $('#myPlacard1').placard('destroy');
log(markup);
$container.append(markup);
$('#myPlacard1').placard({
edit: true
});
});
$('#myPlacard3').on('accepted.fu.placard', function () {
console.log('accepted.fu.placard');
});
$('#myPlacard3').on('cancelled.fu.placard', function () {
console.log('cancelled.fu.placard');
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RADIO
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// sample method buttons
$('#btnRadioDisable').on('click', function () {
console.log('in disable');
$('#myCustomRadio1').radio('disable');
});
$('#btnRadioEnable').on('click', function () {
$('#myCustomRadio1').radio('enable');
});
$('#btnRadioDestroy').on('click', function () {
var $container = $('#myCustomRadio1').parent();
var markup = $('#myCustomRadio1').radio('destroy');
log(markup);
$container.append(markup);
});
$('#btnRadioIsChecked').on('click', function () {
var checked = $('#myCustomRadio1').radio('isChecked');
log(checked);
});
$('#btnRadioCheck').on('click', function () {
$('#myCustomRadio1').radio('check');
});
$('#btnRadioUncheck').on('click', function () {
$('#myCustomRadio1').radio('uncheck');
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
REPEATER
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// intitialize
function initRepeater () {
// simulate network latency
var loadDelays = ['300', '600', '900', '1200'];
var sort = function (data, sortProperty, sortDirection) {
var sortedData = _.sortBy(data, function (item) {
return item[sortProperty];
});
// sort direction
if (sortDirection === 'desc') {
sortedData = sortedData.reverse();
}
return sortedData;
};
// list view setup
var list = function (options, callback) {
// build dataSource based with options
var resp = {
count: data.repeater.listData.length,
items: [],
page: options.pageIndex
};
// get start and end limits for JSON
var i, l;
resp.pages = Math.ceil(resp.count / (options.pageSize || 50));
i = options.pageIndex * (options.pageSize || 50);
l = i + (options.pageSize || 50);
l = (l <= resp.count) ? l : resp.count;
resp.start = i + 1;
resp.end = l;
// setup columns for list view
resp.columns = [
{
label: 'Common Name',
property: 'commonName',
sortable: true,
width: 600
},
{
label: 'Latin Name',
property: 'latinName',
sortable: true,
width: 600
},
{
label: 'Appearance',
property: 'appearance',
sortable: true
},
{
label: 'Sound',
property: 'sound',
sortable: true
}
];
// add sample items to datasource
for (i; i < l; i++) {
// from data.js
resp.items.push(data.repeater.listData[i]);
}
resp.items = sort(resp.items, options.sortProperty, options.sortDirection);
// call and simulate latency
setTimeout(function () {
callback(resp);
}, loadDelays[Math.floor(Math.random() * 4)]);
};
// thumbnail view setup
var thumbnail = function (options, callback) {
var sampleImageCategories = ['abstract', 'animals', 'business', 'cats', 'city', 'food', 'nature', 'technics', 'transport'];
var numItems = 200;
// build dataSource based with options
var resp = {
count: numItems,
items: [],
pages: (Math.ceil(numItems / (options.pageSize || 30))),
page: options.pageIndex
};
// get start and end limits for JSON
var i, l;
i = options.pageIndex * (options.pageSize || 30);
l = i + (options.pageSize || 30);
resp.start = i + 1;
resp.end = l;
// add sample items to datasource
for (i; i < l; i++) {
resp.items.push({
name: ('Thumbnail ' + (i + 1)),
src: 'http://lorempixel.com/65/65/' + sampleImageCategories[Math.floor(Math.random() * 9)] + '/?_=' + i
});
}
// call and simulate latency
setTimeout(function () {
callback(resp);
}, loadDelays[Math.floor(Math.random() * 4)]);
};
// initialize repater
$('#myRepeater').repeater({
searchOnKeyPress: true,
dataSource: function (options, callback) {
if (options.view === 'list') {
list(options, callback);
} else if (options.view === 'thumbnail') {
thumbnail(options, callback);
}
},
list_noItemsHTML: 'no items found',
thumbnail_noItemsHTML: 'no items found',
views: {
'list.list': {
dataSource: function (options, callback) {
list(options, callback);
},
},
'thumbnail': {
dataSource: function (options, callback) {
thumbnail(options, callback);
},
thumbnail_infiniteScroll: {
hybrid: true
}
},
'list.frozen': {
dataSource: function (options, callback) {
list(options, callback);
},
list_selectable: false, // (single | multi)
list_frozenColumns: 1
}
}
});
}
initRepeater();
// sample method buttons
$('#btnRepeaterEnable').on('click', function () {
$('#myRepeater').repeater('enable');
});
$('#btnRepeaterDisable').on('click', function () {
$('#myRepeater').repeater('disable');
});
$('#btnRepeaterDestroy').on('click', function () {
var $container = $('#myRepeater').parent();
var markup = $('#myRepeater').repeater('destroy');
log(markup);
$container.append(markup);
initRepeater();
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
REPEATER w/ actions
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
function initRepeaterActions () {
var loadDelays = ['300', '600', '900', '1200'];
var sort = function (data, sortProperty, sortDirection) {
var sortedData = _.sortBy(data, function (item) {
return item[sortProperty];
});
// sort direction
if (sortDirection === 'desc') {
sortedData = sortedData.reverse();
}
return sortedData;
};
function getSampleDataSet (options, callback) {
var resp = {
count: data.repeater.listData.length,
items: [],
page: options.pageIndex
};
// get start and end limits for JSON
var i, l;
resp.pages = Math.ceil(resp.count / (options.pageSize || 50));
i = options.pageIndex * (options.pageSize || 50);
l = i + (options.pageSize || 50);
l = (l <= resp.count) ? l : resp.count;
resp.start = i + 1;
resp.end = l;
// setup columns for list view
resp.columns = [
{
label: 'Common Name',
property: 'commonName',
sortable: true
},
{
label: 'Latin Name',
property: 'latinName',
sortable: true
},
{
label: 'Appearance',
property: 'appearance',
sortable: true
},
{
label: 'Sound',
property: 'sound',
sortable: true
}
];
// add sample items to datasource
for (i; i < l; i++) {
// from data.js
resp.items.push(data.repeater.listData[i]);
}
resp.items = sort(resp.items, options.sortProperty, options.sortDirection);
// call and simulate latency
setTimeout(function () {
callback(resp);
}, loadDelays[Math.floor(Math.random() * 4)]);
}
// initialize the repeater
var repeaterActions = $('#myRepeaterActions');
repeaterActions.repeater({
list_noItemsHTML: '<span>foo</span>',
list_highlightSortedColumn: true,
list_selectable: 'multi',
list_actions: {
width: 37,
items: [
{
name: 'edit',
html: '<span class="glyphicon glyphicon-pencil"></span> Edit'
},
{
name: 'copy',
html: '<span class="glyphicon glyphicon-copy"></span> Copy'
},
{
name: 'delete',
html: '<span class="glyphicon glyphicon-trash"></span> Delete',
clickAction: function (helpers, callback, e) {
console.log('hey it worked');
console.log(helpers);
e.preventDefault();
callback();
}
}
]
},
// setup your custom datasource to handle data retrieval;
// responsible for any paging, sorting, filtering, searching logic
dataSource: getSampleDataSet
});
}
initRepeaterActions();
$('#btnRepeaterLogValue').on('click', function () {
console.log($('#myRepeaterActions').repeater('getValue'));
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SCHEDULER
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// sample method buttons
$('#btnSchedulerEnable').on('click', function () {
$('#myScheduler').scheduler('enable');
});
$('#btnSchedulerDisable').on('click', function () {
$('#myScheduler').scheduler('disable');
});
$('#btnSchedulerLogValue').on('click', function () {
var val = $('#myScheduler').scheduler('value');
log(val);
});
$('#btnSchedulerLogStringValue').on('click', function () {
var val = $('#myScheduler').scheduler('getValue');
log(val);
});
$('#btnSchedulerSetValue').on('click', function () {
var newVal = {
'startDateTime': '2014-03-31T03:23+02:00',
'timeZone': {
'name': 'Namibia Standard Time',
'offset': '+02:00'
},
'recurrencePattern': 'FREQ=MONTHLY;INTERVAL=6;BYDAY=WE;BYSETPOS=3;UNTIL=20140919'
};
log(newVal);
$('#myScheduler').scheduler('value', newVal);
});
$('#btnSchedulerDestroy').on('click', function () {
var $container = $('#myScheduler').parent();
var markup = $('#myScheduler').scheduler('destroy');
log(markup);
$container.append(markup);
$('#myScheduler').scheduler();
});
// events
$('#myScheduler').on('changed.fu.scheduler', function () {
log('scheduler changed.fu.scheduler: ', arguments);
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SEARCH
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// sample method buttons
$('#btnSearchDisable').on('click', function () {
$('#mySearch').search('disable');
});
$('#btnSearchEnable').on('click', function () {
$('#mySearch').search('enable');
});
$('#btnSearchDestroy').on('click', function () {
var $container = $('#mySearch').parent();
var markup = $('#mySearch').search('destroy');
log(markup);
$container.append(markup);
$('#mySearch').search();
});
// events
$('#mySearch').on('searched.fu.search', function (event, text) {
log('Searched: ' + text);
});
$('#mySearch').on('cleared.fu.search', function (event, text) {
log('cleared search');
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SELECTLIST
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// sample method buttons
$('#btnSelectlistGetSelectedItem').on('click', function () {
log($('#mySelectlist').selectlist('selectedItem'));
});
$('#btnSelectlistSelectByValue').on('click', function () {
$('#mySelectlist').selectlist('selectByValue', '2');
});
$('#btnSelectlistSelectBySelector').on('click', function () {
$('#mySelectlist').selectlist('selectBySelector', 'li[data-fizz=buzz]');
});
$('#btnSelectlistSelectByIndex').on('click', function () {
$('#mySelectlist').selectlist('selectByIndex', '4');
});
$('#btnSelectlistSelectByText').on('click', function () {
$('#mySelectlist').selectlist('selectByText', 'One');
});
$('#btnSelectlistEnableSelectlist').on('click', function () {
$('#mySelectlist').selectlist('enable');
});
$('#btnSelectlistDisableSelectlist').on('click', function () {
$('#mySelectlist').selectlist('disable');
});
$('#btnSelectlistDestroy').on('click', function () {
var $container = $('#mySelectlist').cont();
var markup = $('#mySelectlist').selectlist('destroy');
log(markup);
$container.append(markup);
$('#mySelectlist').selectlist();
});
// events
$('#mySelectlist').on('clicked.fu.selectlist', function (event, target) {
log('clicked', target);
});
$('#mySelectlist').on('changed.fu.selectlist', function (event, data) {
log('changed', data);
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SPINBOX
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// intitalize control
$('#mySpinbox2').spinbox({
value: '1,0px',
min: 0,
max: 10,
step: 0.1,
decimalMark: ',',
units: ['px'],
defaultUnit: 'px'
});
$('#mySpinbox3').spinbox({
value: 1,
min: 5,
max: 22,
step: 5,
'limitToStep': true
});
$('#spinboxCreateBtn').on('click', function () {
$('#mySpinbox4').spinbox();
});
// events
$('#mySpinbox1').on('changed.fu.spinbox', function (event, value) {
log('Spinbox changed: ', value);
});
$('#mySpinbox2').on('changed.fu.spinbox', function (event, value) {
log('Spinbox changed: ', value);
});
// sample method buttons
$('#spinboxSetValueBtn').on('click', function () {
$('#mySpinbox1').spinbox('value', 4);
});
$('#spinboxGetValueBtn').on('click', function () {
log($('#mySpinbox1').spinbox('value'));
});
$('#enableSpinbox').on('click', function () {
$('#mySpinbox1').spinbox('enable');
});
$('#disableSpinbox').on('click', function () {
$('#mySpinbox1').spinbox('disable');
});
$('#btnSpinboxDestroy').on('click', function () {
var $container = $('#mySpinbox1').parent();
var markup = $('#mySpinbox1').spinbox('destroy');
log(markup);
$container.append(markup);
$('#mySpinbox1').spinbox();
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TREE
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
var treeDataSource = function (parentData, callback) {
log('Opening branch data: ', parentData);
setTimeout(function () {
callback({
data: [
{
'name': 'Ascending and Descending',
'type': 'folder',
'attr': {
'id': 'folder' + guid()
}
},
{
'name': 'Sky and Water I (with custom icon)',
'type': 'item',
'attr': {
'id': 'item' + guid(),
'data-icon': 'glyphicon glyphicon-file'
}
},
{
'name': 'Drawing Hands',
'type': 'folder',
'attr': {
'id': 'folder' + guid()
}
},
{
'name': 'Waterfall',
'type': 'item',
'attr': {
'id': 'item' + guid()
}
},
{
'name': 'Belvedere',
'type': 'folder',
'attr': {
'id': 'folder' + guid()
}
},
{
'name': 'Relativity (with custom icon)',
'type': 'item',
'attr': {
'id': 'item' + guid(),
'data-icon': 'glyphicon glyphicon-picture'
}
},
{
'name': 'House of Stairs',
'type': 'folder',
'attr': {
'id': 'folder' + guid()
}
},
{
'name': 'Convex and Concave',
'type': 'item',
'attr': {
'id': 'item' + guid()
}
}
]
});
}, 400);
};
$('#myTree1').tree({
dataSource: treeDataSource,
cacheItems: true,
folderSelect: true,
multiSelect: true
});
function guid () {
function s4 () {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
}
// initialize
function myTreeInit () {
var callLimit = 200;
var callCount = 0;
$('#myTree2').tree({
dataSource: function (parentData, callback) {
// log("Opening branch data: ", parentData);
if (callCount >= callLimit) {
setTimeout(function () {
callback({
data: [
{
'name': 'Sky and Water I (with custom icon)',
'type': 'item',
'attr': {
'id': 'item' + guid(),
'data-icon': 'glyphicon glyphicon-file'
}
},
{
'name': 'Waterfall',
'type': 'item',
'attr': {
'id': 'item' + guid()
}
},
{
'name': 'Relativity (with custom icon)',
'type': 'item',
'attr': {
'id': 'item' + guid(),
'data-icon': 'glyphicon glyphicon-picture'
}
},
{
'name': 'Convex and Concave',
'type': 'item',
'attr': {
'id': 'item' + guid()
}
}
]
});
}, 400);
return;
}
callCount++;
setTimeout(function () {
callback({
data: [
{
'name': 'Ascending and Descending',
'type': 'folder',
'attr': {
'id': 'folder' + guid(),
'cssClass': 'example-tree-class'
}
},
{
'name': 'Sky and Water I (with custom icon)',
'type': 'item',
'attr': {
'id': 'item' + guid(),
'data-icon': 'glyphicon glyphicon-file'
}
},
{
'name': 'Drawing Hands',
'type': 'folder',
'attr': {
'id': 'folder' + guid()
}
},
{
'name': 'Waterfall',
'type': 'item',
'attr': {
'id': 'item' + guid()
}
},
{
'name': 'Belvedere',
'type': 'folder',
'attr': {
'id': 'folder' + guid()
}
},
{
'name': 'Relativity (with custom icon)',
'type': 'item',
'attr': {
'id': 'item' + guid(),
'data-icon': 'glyphicon glyphicon-picture'
}
},
{
'name': 'House of Stairs',
'type': 'folder',
'attr': {
'id': 'item' + guid()
}
},
{
'name': 'Convex and Concave',
'type': 'item',
'attr': {
'id': 'item' + guid()
}
}
]
});
}, 400);
},
folderSelect: false
});
}
myTreeInit();
// sample method buttons
$('#btnTreeDestroy').click(function () {
var $container = $('#myTree1').parent();
var markup = $('#myTree1').tree('destroy');
log(markup);
$container.append(markup);
myTreeInit();
});
$('#btnTreeClearSelected').click(function () {
log('Items/folders cleared: ', $('#myTree1').tree('deselectAll'));
});
$('#btnTreeDiscloseVisible').click(function () {
$('#myTree1').tree('discloseVisible');
});
$('#btnTreeDiscloseAll').click(function () {
$('#myTree1').one('exceededDisclosuresLimit.fu.tree', function () {
$('#myTree1').data('keep-disclosing', false);
});
$('#myTree1').tree('discloseAll');
});
$('#btnTreeCloseAll').click(function () {
$('#myTree1').tree('closeAll');
});
$('#btnTreeGetValue').click(function () {
console.log($('#myTree1').tree('getValue'));
});
$('#btnTreeValue').click(function () {
console.log($('#myTree1').tree('selectedItems'));
});
var mostRecentlyOpenedFolderId = null;
$('#btnTreeRefresh').click(function () {
if (mostRecentlyOpenedFolderId === null) {
log('Please open a folder first. This is only needed for already opened and "DOM cached" folders.');
}
else {
var $itemToRefresh = $('#'+mostRecentlyOpenedFolderId)
$('#myTree1').tree('refreshFolder', $itemToRefresh);
}
});
// events
$('#myTree1').on('loaded.fu.tree', function (e) {
log('#myTree1 Loaded');
});
$('#myTree1').on('selected.fu.tree', function (event, selected) {
log('Selected Event: ', selected);
log($('#myTree1').tree('selectedItems'));
});
$('#myTree1').on('deselected.fu.tree', function (e, selected) {
log('Deselected Event: ', selected);
});
$('#myTree1').on('updated.fu.tree', function (event, selected) {
log('Updated Event: ', selected);
log($('#myTree1').tree('selectedItems'));
});
$('#myTree1').on('disclosedFolder.fu.tree', function (event, parentData) {
mostRecentlyOpenedFolderId = parentData.attr.id;
log('Opened Event, parent data: ', parentData);
});
$('#myTree1').on('closed.fu.tree', function (event, parentData) {
log('Closed Event, parent data: ', parentData);
});
$('#myTree1').on('closedAll.fu.tree', function (event, data) {
log('Closed All Event, this many reported closed: ', data.reportedClosed.length);
});
$('#myTree1').on('disclosedVisible.fu.tree', function (event, data) {
log('Disclosed Visible, this many folders opened: ', data.reportedOpened.length);
});
$('#myTree1').on('exceededDisclosuresLimit.fu.tree', function (event, data) {
log('Disclosed All failsafe exit occurred, this many recursions: ', data.disclosures);
});
$('#myTree1').on('disclosedAll.fu.tree', function (event, data) {
log('Disclosed All, this many recursions: ', data.disclosures);
});
$('#myTree1').on('refreshedFolder.fu.tree', function (event, parentData) {
log('Refreshed Folder Event: ', parentData);
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SUPERPICKER
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
$('#btnPickerEnable').click(function () {
$('#mypicker').picker('enable');
});
$('#btnPickerDisable').click(function () {
$('#mypicker').picker('disable');
});
$('#btnPickerDestroy').click(function () {
var $container = $('#mypicker').parent();
var markup = $('#mypicker').picker('destroy');
log(markup);
$container.append(markup);
$('#mypicker').picker({
edit: true
});
});
$('#mypicker').on('accepted.fu.picker', function () {
console.log('accepted.fu.picker');
});
$('#mypicker').on('cancelled.fu.picker', function () {
console.log('cancelled.fu.picker');
});
$('#mypicker').on('exited.fu.picker', function () {
console.log('exited.fu.picker');
});
$('#mypicker').on('shown.fu.picker', function () {
console.log('shown.fu.picker');
});
$('#myPickerTree1').tree({
dataSource: treeDataSource,
cacheItems: true,
folderSelect: true,
multiSelect: true
});
// requires https://github.com/exacttarget/get-list-item-path
// $('#mypicker2').on('accepted.fu.picker', function(o){
// var selected = $('#myPickerTree1').find('.tree-selected');
// var selectedPaths = getListItemPaths('#myPickerTree1', selected, '.tree-label', '/', ', ');
// $('#mypicker2').picker('setValue', selectedPaths);
// });
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WIZARD
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// sample markup
var emailSetupSamplePane = '<div class="bg-warning alert">' +
' <h4>Setup Message</h4>' +
' <p>Soko radicchio bunya nuts gram dulse silver beet parsnip napa cabbage ' +
' lotus root sea lettuce brussels sprout cabbage. Catsear cauliflower garbanzo yarrow ' +
' salsify chicory garlic bell pepper napa cabbage lettuce tomato kale arugula melon ' +
' sierra leone bologi rutabaga tigernut. Sea lettuce gumbo grape kale kombu cauliflower ' +
' salsify kohlrabi okra sea lettuce broccoli celery lotus root carrot winter purslane ' +
' turnip greens garlic. Jacama garlic courgette coriander radicchio plantain scallion ' +
' cauliflower fava bean desert raisin spring onion chicory bunya nuts. Sea lettuce water ' +
' spinach gram fava bean leek dandelion silver beet eggplant bush tomato. </p>' +
' <p>Pea horseradish azuki bean lettuce avocado asparagus okra. ' +
' Kohlrabi radish okra azuki bean corn fava bean mustard tigernut jacama green bean ' +
' celtuce collard greens avocado quandong fennel gumbo black-eyed pea. Grape silver ' +
' beet watercress potato tigernut corn groundnut. Chickweed okra pea winter ' +
' purslane coriander yarrow sweet pepper radish garlic brussels sprout groundnut ' +
' summer purslane earthnut pea tomato spring onion azuki bean gourd. Gumbo kakadu ' +
' plum komatsuna black-eyed pea green bean zucchini gourd winter purslane silver ' +
' beet rock melon radish asparagus spinach. </p>' +
'</div>';
// sample method buttons
$('#btnWizardPrev').on('click', function () {
$('#myWizard').wizard('previous');
});
$('#btnWizardNext').on('click', function () {
$('#myWizard').wizard('next', 'foo');
});
$('#btnWizardStep').on('click', function () {
var item = $('#myWizard').wizard('selectedItem');
log(item);
});
$('#btnWizardSetStep').on('click', function () {
$('#myWizard').wizard('selectedItem', {
step: 3
});
});
$('#btnWizardSetStepByName').on('click', function () {
var item = $('#myWizard').wizard('selectedItem', {
step: 'distep'
});
log(item);
});
$('#btnWizardAddSteps').on('click', function () {
$('#myWizard').wizard('addSteps', 2, [{
badge: '',
label: 'Setup',
pane: emailSetupSamplePane
}]);
});
$('#btnWizardRemoveStep').on('click', function () {
$('#myWizard').wizard('removeSteps', 4, 1);
});
$('#btnWizardDestroy').click(function () {
var $container = $('#myWizard').parent();
var markup = $('#myWizard').wizard('destroy');
log(markup);
$container.append(markup);
$('#myWizard').wizard();
});
// events
$('#myWizard').on('changed.fu.wizard', function (event, data) {
log('changed data', data);
});
$('#myWizard').on('actionclicked.fu.wizard', function (event, data) {
log('actionClicked: ', data);
});
$('#myWizard').on('stepclicked.fu.wizard', function (event, data) {
log('step ' + data.step + ' clicked');
if (data.step === 1) {
// return event.preventDefault();
}
});
$('#myWizard').on('finished', function (event, data) {
log('finished');
});
});