| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- $(document).ready(function()
- {
- function saveOrders(orders)
- {
- $.post(createLink('traincourse','sortChapterOrder'),
- {sort:orders},
- function(data)
- {
- if(data.result != "success")
- {
- bootbox.alert(data.message);
- }
- },'json');
- }
- function updateOrders(ele, parentOrder, orders)
- {
- var root = false;
- if(typeof ele === 'undefined')
- {
- ele = $('.courses > dl, .courses > .catalog > dl');
- root = true;
- orders = {};
- }
- if(typeof parentOrder === 'undefined')
- {
- parentOrder = '';
- var $parent = ele.closest('.catalog:not(".catalog-empty, .drag-shadow")');
- if($parent.length)
- {
- parentOrder = $parent.children('strong').find('.order').text();
- }
- }
- var index = 1;
- ele.children('.catalog:not(".catalog-empty, .drag-shadow")').each(function()
- {
- var $this = $(this);
- var order = (parentOrder === '' ? '' : (parentOrder + '.')) + (index++);
- orders[$this.data('id')] = order;
- $this.children('strong').find('.order').text(order);
- var $dl = $this.children('dl');
- if($dl.length)
- {
- updateOrders($dl, order, orders);
- }
- });
- if(root)
- {
- saveOrders(orders);
- }
- };
- $('.courses dl').append('<dd class="catalog catalog-empty"> </dd>');
- $('.courses > .catalog .catalog, .courses > dl .catalog').not('.catalog-empty').droppable(
- {
- handle: '.sort-handle',
- target: function($e){return $e.siblings('.catalog');},
- selector: '.catalog',
- container: '.courses',
- nested: true,
- flex: true,
- sensorOffsetY: -10,
- start: function()
- {
- $('.courses').addClass('show-empty-catalog');
- },
- drag: function(e)
- {
- if(e.target)
- {
- $('.drop-area').removeClass('drop-area');
- e.target.closest('dl').addClass('drop-area');
- }
- },
- drop: function(e)
- {
- e.target.before(e.element);
- updateOrders();
- },
- finish: function()
- {
- $('.drop-area').removeClass('drop-area');
- $('.courses').removeClass('show-empty-catalog');
- }
- });
- });
|