mirror of
https://github.com/wintercms/winter.git
synced 2024-06-28 05:33:29 +02:00
82 lines
2.0 KiB
JavaScript
82 lines
2.0 KiB
JavaScript
/*
|
|
* SimpleList control.
|
|
*
|
|
* Data attributes:
|
|
* - data-control="simplelist" - enables the simplelist plugin
|
|
*
|
|
* JavaScript API:
|
|
* $('#simplelist').simplelist()
|
|
*
|
|
* Dependences:
|
|
* - Sortable (jquery-sortable.js)
|
|
*/
|
|
+function ($) { "use strict";
|
|
|
|
var SimpleList = function (element, options) {
|
|
|
|
var $el = this.$el = $(element)
|
|
|
|
this.options = options || {}
|
|
|
|
if ($el.hasClass('is-sortable')) {
|
|
|
|
/*
|
|
* Make each list inside sortable
|
|
*/
|
|
var sortableOptions = {
|
|
distance: 10
|
|
}
|
|
if (this.options.sortableHandle)
|
|
sortableOptions[handle] = this.options.sortableHandle
|
|
|
|
$el.find('> ul, > ol').sortable(sortableOptions)
|
|
}
|
|
|
|
if ($el.hasClass('is-scrollable')) {
|
|
|
|
/*
|
|
* Inject a scrollbar container
|
|
*/
|
|
$el.wrapInner($('<div />').addClass('control-scrollbar'))
|
|
var $scrollbar = $el.find('>.control-scrollbar:first')
|
|
$scrollbar.scrollbar()
|
|
}
|
|
}
|
|
|
|
SimpleList.DEFAULTS = {
|
|
sortableHandle: null
|
|
}
|
|
|
|
// SIMPLE LIST PLUGIN DEFINITION
|
|
// ============================
|
|
|
|
var old = $.fn.simplelist
|
|
|
|
$.fn.simplelist = function (option) {
|
|
return this.each(function () {
|
|
var $this = $(this)
|
|
var data = $this.data('oc.simplelist')
|
|
var options = $.extend({}, SimpleList.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
|
if (!data) $this.data('oc.simplelist', (data = new SimpleList(this, options)))
|
|
})
|
|
}
|
|
|
|
$.fn.simplelist.Constructor = SimpleList
|
|
|
|
// SIMPLE LIST NO CONFLICT
|
|
// =================
|
|
|
|
$.fn.simplelist.noConflict = function () {
|
|
$.fn.simplelist = old
|
|
return this
|
|
}
|
|
|
|
// SIMPLE LIST DATA-API
|
|
// ===============
|
|
|
|
$(document).render(function(){
|
|
$('[data-control="simplelist"]').simplelist()
|
|
})
|
|
|
|
}(window.jQuery);
|