87 lines
2.8 KiB
JavaScript
87 lines
2.8 KiB
JavaScript
'use strict';
|
|
|
|
pandora.ui.mediaExistsDialog = function(options) {
|
|
|
|
var title = options.media.length == 1 ? 'File Exists' : 'Files Exist';
|
|
|
|
var $content = Ox.Element().addClass('OxText').css({
|
|
margin: '16px',
|
|
overflow: 'auto'
|
|
}).html(
|
|
'<p>' + (
|
|
options.media.length == 1 && options.items.length == 1
|
|
? Ox._('The video file already exists:')
|
|
: options.media.length == options.items.length
|
|
? Ox._(
|
|
'All {0} video files already exist:',
|
|
[options.media.length]
|
|
)
|
|
: Ox._(
|
|
'{0} of the {1} video files already exist:',
|
|
[options.media.length, options.items.length])
|
|
) + '</p>' + options.media.map(function(media) {
|
|
return media[options.action == 'upload' ? 'name' : 'title']
|
|
+ ': <a href="/' + media.itemID + '" target="_blank">'
|
|
+ media.itemTitle + '</a>';
|
|
}).join('<br/>')
|
|
)
|
|
|
|
var $buttons = options.media.length == options.items.length ? [
|
|
Ox.Button({
|
|
id: 'close',
|
|
title: Ox._('Close')
|
|
}).bindEvent({
|
|
click: function() {
|
|
that.close();
|
|
}
|
|
})
|
|
] : [
|
|
Ox.Button({
|
|
id: 'cancel',
|
|
title: Ox._('Don\'t {0}', [Ox.toTitleCase(options.action)])
|
|
}).bindEvent({
|
|
click: function() {
|
|
that.close();
|
|
}
|
|
}),
|
|
Ox.Button({
|
|
id: 'continue',
|
|
title: Ox._(Ox.toTitleCase(options.action)) + ' '
|
|
+ (options.items.length - options.media.length) + ' '
|
|
+ Ox._(options.items.length - options.media.length == 1 ? 'File' : 'Files')
|
|
}).bindEvent({
|
|
click: function() {
|
|
var existing = options.media.map(function(item) {
|
|
return item.id;
|
|
}),
|
|
items = options.items.filter(function(item) {
|
|
return existing.indexOf(item.oshash) == -1;
|
|
});
|
|
that.close();
|
|
(pandora.user.ui.item ? pandora.api.get : Ox.noop)({
|
|
id: pandora.user.ui.item,
|
|
keys: ['editable']
|
|
}, function(result) {
|
|
pandora.ui.addFilesDialog({
|
|
action: options.action,
|
|
items: items,
|
|
editable: pandora.user.ui.item && result.data.editable
|
|
}).open();
|
|
})
|
|
}
|
|
})
|
|
];
|
|
|
|
var that = Ox.Dialog({
|
|
buttons: $buttons,
|
|
closeButton: true,
|
|
content: $content,
|
|
height: 256,
|
|
removeOnClose: true,
|
|
title: title,
|
|
width: 512,
|
|
});
|
|
|
|
return that;
|
|
|
|
};
|