100 lines
No EOL
3.3 KiB
JavaScript
100 lines
No EOL
3.3 KiB
JavaScript
'use strict';
|
||
|
||
oml.ui.listDialog = function() {
|
||
|
||
var ui = oml.user.ui,
|
||
list = ui._list,
|
||
|
||
that = Ox.Dialog({
|
||
buttons: [].concat(list && !Ox.endsWith(list, ':') ? [
|
||
Ox.Button({
|
||
id: 'duplicate',
|
||
title: Ox._('Duplicate List...')
|
||
})
|
||
.bindEvent({
|
||
click: function() {
|
||
that.close();
|
||
oml.addList(list);
|
||
}
|
||
})
|
||
] : []).concat(Ox.startsWith(list, ':') && list != '' ? [
|
||
Ox.Button({
|
||
id: 'delete',
|
||
title: Ox._('Delete List...')
|
||
})
|
||
.bindEvent({
|
||
click: function() {
|
||
that.close();
|
||
oml.deleteList();
|
||
}
|
||
})
|
||
] : []).concat([
|
||
{},
|
||
Ox.Button({
|
||
id: 'done',
|
||
title: Ox._('Done')
|
||
})
|
||
.bindEvent({
|
||
click: function() {
|
||
that.close();
|
||
}
|
||
})
|
||
]),
|
||
closeButton: true,
|
||
content: Ox.LoadingScreen().start(),
|
||
height: 256,
|
||
title: Ox._('List – {0}', [
|
||
ui._list == '' ? Ox._('All Libraries')
|
||
: ui._list
|
||
.replace(/^:/, oml.user.preferences.username + ':')
|
||
.replace(/:$/, Ox._(':Library'))
|
||
]),
|
||
width: 648 + Ox.UI.SCROLLBAR_SIZE
|
||
});
|
||
|
||
oml.api.getLists(function(result) {
|
||
var lists = result.data.lists.filter(function(list) {
|
||
return list.user == oml.user.preferences.username;
|
||
}),
|
||
listData = Ox.getObjectById(lists, list),
|
||
listNames = lists.map(function(list) {
|
||
return list.name;
|
||
}),
|
||
$content = Ox.Element()
|
||
.css({margin: '16px'}),
|
||
$nameInput = Ox.Input({
|
||
label: Ox._('Name'),
|
||
labelWidth: 128,
|
||
value: listData.name,
|
||
width: 616
|
||
})
|
||
.bindEvent({
|
||
change: function(data) {
|
||
var value = oml.validateName(data.value, listNames);
|
||
$nameInput.value(value);
|
||
oml.api.editList({
|
||
id: list,
|
||
name: value
|
||
}, function(result) {
|
||
oml.updateLists(function() {
|
||
oml.UI.set({
|
||
find: {
|
||
conditions: [{
|
||
key: 'list',
|
||
operator: '==',
|
||
value: ':' + value
|
||
}],
|
||
operator: '&'
|
||
}
|
||
});
|
||
});
|
||
});
|
||
}
|
||
})
|
||
.appendTo($content);
|
||
that.options({content: $content})
|
||
});
|
||
|
||
return that;
|
||
|
||
}; |