CC-3335 : Timeline - Drag and drop usability improvements

dragging and dropping multiple files is working.
This commit is contained in:
Naomi Aro 2012-02-17 15:53:10 +01:00
parent 09ae26a531
commit 44dccf15ce
2 changed files with 41 additions and 21 deletions

View File

@ -19,7 +19,16 @@ var AIRTIME = (function(AIRTIME){
mod.fnDrawCallback = function() { mod.fnDrawCallback = function() {
$('#library_display tr:not(:first)').draggable({ $('#library_display tr:not(:first)').draggable({
helper: 'clone', //helper: 'clone',
helper: function(){
var selected = $('#library_display input:checked').parents('tr');
if (selected.length === 0) {
selected = $(this);
}
var container = $('<div/>').attr('id', 'draggingContainer');
container.append(selected.clone());
return container;
},
cursor: 'pointer', cursor: 'pointer',
connectToSortable: '#show_builder_table' connectToSortable: '#show_builder_table'
}); });
@ -63,9 +72,7 @@ var AIRTIME = (function(AIRTIME){
} }
} }
AIRTIME.showbuilder.fnAdd(aMediaIds, aSchedIds, function(){ AIRTIME.showbuilder.fnAdd(aMediaIds, aSchedIds);
oLibTT.fnSelectNone();
});
}; };
//[0] = button text //[0] = button text

View File

@ -13,17 +13,15 @@ var AIRTIME = (function(AIRTIME){
} }
} }
mod.fnAdd = function(aMediaIds, aSchedIds, callback) { mod.fnAdd = function(aMediaIds, aSchedIds) {
var oLibTT = TableTools.fnGetInstance('library_display');
$.post("/showbuilder/schedule-add", $.post("/showbuilder/schedule-add",
{"format": "json", "mediaIds": aMediaIds, "schedIds": aSchedIds}, {"format": "json", "mediaIds": aMediaIds, "schedIds": aSchedIds},
function(json){ function(json){
checkError(json); checkError(json);
oSchedTable.fnDraw(); oSchedTable.fnDraw();
oLibTT.fnSelectNone();
if ($.isFunction(callback)) {
callback();
}
}); });
}; };
@ -394,21 +392,26 @@ $(document).ready(function() {
}); });
var sortableConf = (function(){ var sortableConf = (function(){
var origRow, var origTrs,
oItemData, aItemData = [],
oPrevData, oPrevData,
fnAdd, fnAdd,
fnMove, fnMove,
fnReceive, fnReceive,
fnUpdate; fnUpdate,
i,
html;
fnAdd = function() { fnAdd = function() {
var aMediaIds = [], var aMediaIds = [],
aSchedIds = []; aSchedIds = [],
oLibTT = TableTools.fnGetInstance('library_display');
for(i=0; i < aItemData.length; i++) {
aMediaIds.push({"id": aItemData[i].id, "type": aItemData[i].ftype});
}
aSchedIds.push({"id": oPrevData.id, "instance": oPrevData.instance, "timestamp": oPrevData.timestamp}); aSchedIds.push({"id": oPrevData.id, "instance": oPrevData.instance, "timestamp": oPrevData.timestamp});
aMediaIds.push({"id": oItemData.id, "type": oItemData.ftype});
AIRTIME.showbuilder.fnAdd(aMediaIds, aSchedIds); AIRTIME.showbuilder.fnAdd(aMediaIds, aSchedIds);
}; };
@ -416,28 +419,38 @@ $(document).ready(function() {
var aSelect = [], var aSelect = [],
aAfter = []; aAfter = [];
aSelect.push({"id": oItemData.id, "instance": oItemData.instance, "timestamp": oItemData.timestamp}); aSelect.push({"id": aItemData[0].id, "instance": aItemData[0].instance, "timestamp": aItemData[0].timestamp});
aAfter.push({"id": oPrevData.id, "instance": oPrevData.instance, "timestamp": oPrevData.timestamp}); aAfter.push({"id": oPrevData.id, "instance": oPrevData.instance, "timestamp": oPrevData.timestamp});
AIRTIME.showbuilder.fnMove(aSelect, aAfter); AIRTIME.showbuilder.fnMove(aSelect, aAfter);
}; };
fnReceive = function(event, ui) { fnReceive = function(event, ui) {
origRow = ui.item; origTrs = ui.helper.find("tr");
html = ui.helper.html();
}; };
fnUpdate = function(event, ui) { fnUpdate = function(event, ui) {
aItemData = [];
oPrevData = ui.item.prev().data("aData"); oPrevData = ui.item.prev().data("aData");
//item was dragged in //item was dragged in
if (origRow !== undefined) { if (origTrs !== undefined) {
oItemData = origRow.data("aData");
origRow = undefined; $("#show_builder_table tr.ui-draggable")
.empty()
.after(html);
origTrs.each(function(i, el){
aItemData.push($("#"+$(el).attr("id")).data("aData"));
});
origTrs = undefined;
fnAdd(); fnAdd();
} }
//item was reordered. //item was reordered.
else { else {
oItemData = ui.item.data("aData"); aItemData.push(ui.item.data("aData"));
fnMove(); fnMove();
} }
}; };