preferences + peers + transfers = user dialog
This commit is contained in:
parent
ef185073aa
commit
e78c6eebfe
3 changed files with 0 additions and 0 deletions
134
static/js/transfersPanel.js
Normal file
134
static/js/transfersPanel.js
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
'use strict';
|
||||
|
||||
oml.ui.transfersDialog = function() {
|
||||
|
||||
var ui = oml.user.ui,
|
||||
|
||||
$list = Ox.TableList({
|
||||
columns: [
|
||||
'id', 'title', 'extension', 'size',
|
||||
'transferadded', 'transferprogress'
|
||||
].map(function(id) {
|
||||
var key = Ox.getObjectById(oml.config.itemKeys, id);
|
||||
return {
|
||||
align: Ox.contains([
|
||||
'size', 'transferprogress'
|
||||
], id) ? 'right' : 'left',
|
||||
format: key.format,
|
||||
id: id,
|
||||
operator: oml.getSortOperator(id),
|
||||
title: Ox._(key.title),
|
||||
visible: id != 'id',
|
||||
width: id == 'title' ? 240
|
||||
: id == 'transferadded' ? 144
|
||||
: id == 'transferprogress' ? 80 - Ox.UI.SCROLLBAR_SIZE
|
||||
: key.columnWidth
|
||||
};
|
||||
}),
|
||||
columnsVisible: true,
|
||||
items: function(data, callback) {
|
||||
Ox.Request.clearCache('find'); // FIXME: not ideal - and doesn't work
|
||||
oml.api.find(Ox.extend(data, {
|
||||
query: {
|
||||
conditions: [{
|
||||
key: 'mediastate',
|
||||
operator: '==',
|
||||
value: 'transferring'
|
||||
}],
|
||||
operator: '&'
|
||||
}
|
||||
}), callback);
|
||||
},
|
||||
keys: ['author'],
|
||||
scrollbarVisible: true,
|
||||
sort: [{key: 'transferadded', operator: '-'}],
|
||||
unique: 'id'
|
||||
}),
|
||||
|
||||
$statusbar = Ox.Bar({size: 16}),
|
||||
|
||||
$panel = Ox.SplitPanel({
|
||||
elements: [
|
||||
{element: $list},
|
||||
{element: $statusbar, size: 16}
|
||||
],
|
||||
orientation: 'vertical'
|
||||
}),
|
||||
|
||||
$item = Ox.Element(),
|
||||
|
||||
$cancelButton = Ox.Button({
|
||||
title: 'Cancel Transfer...',
|
||||
width: 128
|
||||
})
|
||||
.css({
|
||||
margin: '8px'
|
||||
})
|
||||
.bindEvent({
|
||||
click: function() {
|
||||
var ids = $list.options('selected');
|
||||
ids && ids.length && oml.api.cancelDownloads({
|
||||
ids: ids
|
||||
}, function() {
|
||||
$list.reloadList(true);
|
||||
});
|
||||
}
|
||||
})
|
||||
.appendTo($item),
|
||||
|
||||
$content = Ox.SplitPanel({
|
||||
elements: [
|
||||
{element: $panel},
|
||||
{element: $item, size: 160}
|
||||
],
|
||||
orientation: 'horizontal'
|
||||
}),
|
||||
|
||||
that = Ox.Dialog({
|
||||
buttons: [
|
||||
Ox.Button({
|
||||
id: 'preferences',
|
||||
title: Ox._('Network Preferences...')
|
||||
})
|
||||
.bindEvent({
|
||||
click: function() {
|
||||
oml.UI.set({page: 'transfers'});
|
||||
}
|
||||
}),
|
||||
{},
|
||||
Ox.Button({
|
||||
id: 'done',
|
||||
title: Ox._('Done')
|
||||
})
|
||||
.bindEvent({
|
||||
click: function() {
|
||||
that.close();
|
||||
}
|
||||
})
|
||||
],
|
||||
closeButton: true,
|
||||
content: $content,
|
||||
height: 384,
|
||||
title: Ox._('Transfers'),
|
||||
width: 768
|
||||
})
|
||||
.bindEvent({
|
||||
close: function() {
|
||||
if (ui.page == 'transfers') {
|
||||
oml.UI.set({page: ''});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
oml.bindEvent({
|
||||
transfer: Ox.throttle(function(data) {
|
||||
var current = $list.value(data.id);
|
||||
if (!Ox.isEmpty(current) && current.transferprogress != data.progress) {
|
||||
$list.value(data.id, 'transferprogress', data.progress);
|
||||
}
|
||||
}, 1000)
|
||||
});
|
||||
|
||||
return that;
|
||||
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue