var anythingOrder = anythingOrder || {params:{},texts:{}}
jQuery(document).ready(function($, undefined){
var _spin = $('.wp-list-table .column-anything-order .dashicons')
, _list = $('#the-list').sortable({
cursor : 'move'
, cursorAt : {left:-10, top:0}
, cancel : '.no-items,.inline-editor'
, placeholder : 'sortable-placeholder'
, revert : false
, helper : function(e, item){
var parent = item.parent()
, cols = item.children(':visible').length
, width = item.find('.row-title').closest('th, td').width()
, helper = []
, selecteds = item
if(item.hasClass('selected')){
selecteds = parent.children('.selected')
}else{
item.addClass('selected').siblings().removeClass('selected')
}
item
.data('anything-order-cols', cols)
.data('anything-order-selecteds', selecteds.removeClass('selected').clone())
.show()
selecteds
.addClass('sorting')
.each(function(){
helper.push('
'+$(this).find('.row-title').text()+'
')
})
return $(''+helper.join('')+'
').data('anything-order-helper', helper).width(width)
}
, start : function(e, ui){
var cols = ui.item.data('anything-order-cols')
, html = ui.helper.data('anything-order-pos', ui.position).data('anything-order-helper')
ui.item.show()
ui.placeholder.html(''+html.join('')+' | ')
}
, stop : function(e, ui){
ui.item.after(ui.item.data('anything-order-selecteds').addClass('sorted')).remove()
getItems()
.filter('.sorting').remove().end()
.removeClass('alternate')
.filter(':nth-child(2n+1)').addClass('alternate')
doUpdate(getIds($('#the-list .anything-order-id')))
}
, update : function(e, ui){
ui.item.data('anything-order-update', true)
}
})
, startUpdate = function(){
_spin.addClass('spinner')
_list.sortable('disable')
}
, doUpdate = function(ids){
startUpdate()
anythingOrder.params.ids = ids || []
anythingOrder.params.order = perPage * (currentPage - 1) + 1
$.post(window.ajaxurl, anythingOrder.params, function(r){
var json = JSON.parse(r)
if(json.redirect){
window.location.href = json.redirect
}
if(anythingOrder.params.ids.length){
setTimeout(function(){
getItems().filter('.sorted').removeClass('sorted')
}, 300)
}
endUpdate()
})
}
, endUpdate = function(){
_list.sortable('enable')
_spin.removeClass('spinner')
}
, getItems = function(){
return _list.children('tr:not(.inline-editor)')
}
, select = function(e){
if(e.ctrlKey || e.metaKey){
$(this).toggleClass('selected')
}else if(e.shiftKey){
var items = getItems()
, from = items.index(items.filter('.selected').first())
, to = items.index(this)
if(-1 == from){
$(this).toggleClass('selected')
}else{
if(from > to){
to = [from, from = items.index(this)][0]
}
items.slice(from, to+1).addClass('selected')
}
}
}
, getIds = function(e){
var ids = [];
for(var i=0; i tr:not(.inline-editor)', revertInline)
.on('click.anythig-order', '#the-list > tr:not(.inline-editor)', select)
.ajaxSend(function(e, xhr, o, undefined){
if(-1 == o.data.indexOf('screen_id=') && undefined != window.pagenow){
o.data += '&screen_id='+window.pagenow
}
})
_pref.on('click.anythig-order', refresh)
refresh()
}
init()
});