forked from 0x2620/pandora
make clip edit part of history
This commit is contained in:
parent
d5c50192f4
commit
93ef9d9f6a
1 changed files with 24 additions and 7 deletions
|
@ -293,6 +293,8 @@ pandora.createLinks = function($element) {
|
|||
addItems(items, targets[0], addToHistory);
|
||||
} else if (action == 'cut' || action == 'delete') {
|
||||
removeItems(items, targets[0], addToHistory);
|
||||
} else if (action == 'edit') {
|
||||
editItem(items[1], addToHistory);
|
||||
} else if (action == 'join' || action == 'split') {
|
||||
removeItems(items[0], targets[0], function() {
|
||||
addItems(items[1], targets[0], addToHistory);
|
||||
|
@ -313,7 +315,9 @@ pandora.createLinks = function($element) {
|
|||
paste: 'Pasting',
|
||||
split: 'Splitting'
|
||||
},
|
||||
length = action == 'join' || action == 'split' ? items[0].length : items.length,
|
||||
length = action == 'edit' ? 1
|
||||
: action == 'join' || action == 'split' ? items[0].length
|
||||
: items.length,
|
||||
type = getType(items),
|
||||
text = Ox._(actions[action]) + ' ' + (
|
||||
length == 1 ? Ox._(type == 'item' ? pandora.site.itemName.singular : 'Clip')
|
||||
|
@ -323,6 +327,7 @@ pandora.createLinks = function($element) {
|
|||
action: action,
|
||||
items: action == 'cut' || action == 'delete' ? [items]
|
||||
: action == 'copy' || action == 'paste' ? [addedItems]
|
||||
: action == 'edit' ? items
|
||||
: action == 'join' || action == 'split' ? [items[0], addedItems]
|
||||
: [items, addedItems], // move
|
||||
positions: [],
|
||||
|
@ -340,6 +345,8 @@ pandora.createLinks = function($element) {
|
|||
addItems(object.items[0], object.targets[0], done);
|
||||
} else if (object.action == 'cut' || object.action == 'delete') {
|
||||
removeItems(object.items[0], object.targets[0], done);
|
||||
} else if (object.action == 'edit') {
|
||||
editItem(object.items[1], done);
|
||||
} else if (object.action == 'join' || object.action == 'split') {
|
||||
removeItems(object.items[0], object.targets[0], function() {
|
||||
addItems(object.items[1], object.targets[0], done);
|
||||
|
@ -350,7 +357,7 @@ pandora.createLinks = function($element) {
|
|||
});
|
||||
}
|
||||
}
|
||||
function done(result, addedItems) {
|
||||
function done() {
|
||||
doneHistory(object, callback);
|
||||
}
|
||||
};
|
||||
|
@ -362,6 +369,8 @@ pandora.createLinks = function($element) {
|
|||
removeItems(object.items[0], object.targets[0], done);
|
||||
} else if (object.action == 'cut' || object.action == 'delete') {
|
||||
addItems(object.items[0], object.targets[0], done);
|
||||
} else if (object.action == 'edit') {
|
||||
editItem(object.items[0], done);
|
||||
} else if (object.action == 'join' || object.action == 'split') {
|
||||
removeItems(object.items[1], object.targets[0], function() {
|
||||
addItems(object.items[0], object.targets[0], done);
|
||||
|
@ -372,7 +381,7 @@ pandora.createLinks = function($element) {
|
|||
});
|
||||
}
|
||||
}
|
||||
function done(result, addedItems) {
|
||||
function done() {
|
||||
doneHistory(object, callback);
|
||||
}
|
||||
};
|
||||
|
@ -410,7 +419,7 @@ pandora.createLinks = function($element) {
|
|||
|
||||
function doneHistory(object, callback) {
|
||||
var list, listData,
|
||||
type = getType(object.items[0]),
|
||||
type = getType(object.items),
|
||||
ui = pandora.user.ui;
|
||||
if (type == 'item' && ui.section == 'items') {
|
||||
Ox.Request.clearCache('find');
|
||||
|
@ -442,6 +451,16 @@ pandora.createLinks = function($element) {
|
|||
callback && callback();
|
||||
}
|
||||
|
||||
function editItem(item, callback) {
|
||||
var clip = getClipData([item])[0],
|
||||
id = getClipIds([item])[0];
|
||||
pandora.api.editClip({
|
||||
id: id,
|
||||
'in': clip['in'],
|
||||
out: clip.out
|
||||
}, callback);
|
||||
}
|
||||
|
||||
function getClipData(items) {
|
||||
return items.map(function(clip) {
|
||||
var split = clip.split('/'),
|
||||
|
@ -473,9 +492,7 @@ pandora.createLinks = function($element) {
|
|||
}
|
||||
|
||||
function getType(items) {
|
||||
return items[0] && (
|
||||
Ox.contains(items[0], '/') || Ox.contains(items[0][0], '/')
|
||||
) ? 'clip' : 'item';
|
||||
return Ox.contains(items[0], '/') || Ox.contains(items[0][0], '/') ? 'clip' : 'item';
|
||||
}
|
||||
|
||||
function removeItems(items, target, callback) {
|
||||
|
|
Loading…
Reference in a new issue