90 lines
3.9 KiB
JavaScript
90 lines
3.9 KiB
JavaScript
'use strict';
|
|
|
|
pandora.ui.filterDialog = function() {
|
|
|
|
var that = Ox.Dialog({
|
|
buttons: [
|
|
Ox.Button({
|
|
id: 'done',
|
|
title: Ox._('Done')
|
|
})
|
|
.bindEvent({
|
|
click: function() {
|
|
var list = pandora.$ui.filterForm.getList();
|
|
if (list.save) {
|
|
pandora.api[
|
|
pandora.user.ui.section == 'documents' ? 'addCollection' : 'addList'
|
|
]({
|
|
name: list.name,
|
|
query: list.query,
|
|
status: 'private',
|
|
type: 'smart'
|
|
}, function(result) {
|
|
var $list = pandora.$ui.folderList.personal,
|
|
id = result.data.id;
|
|
if (pandora.user.ui.section) {
|
|
pandora.UI.set({
|
|
findDocuments: {
|
|
conditions: [{key: 'collection', value: id, operator: '=='}],
|
|
operator: '&'
|
|
}
|
|
});
|
|
} else {
|
|
pandora.UI.set({
|
|
find: {
|
|
conditions: [{key: 'list', value: id, operator: '=='}],
|
|
operator: '&'
|
|
}
|
|
});
|
|
}
|
|
Ox.Request.clearCache(); // fixme: remove
|
|
$list.bindEventOnce({
|
|
load: function(data) {
|
|
$list.gainFocus()
|
|
.options({selected: [id]});
|
|
}
|
|
})
|
|
.reloadList();
|
|
});
|
|
} else if (!pandora.user.ui.updateAdvancedFindResults) {
|
|
pandora.$ui.filterForm.updateResults();
|
|
}
|
|
that.close();
|
|
}
|
|
})
|
|
],
|
|
content: pandora.$ui.filterForm = (pandora.user.ui.section == 'documents'
|
|
? pandora.ui.documentFilterForm
|
|
: pandora.ui.filterForm
|
|
)({
|
|
mode: 'find'
|
|
}),
|
|
maxWidth: 648 + Ox.UI.SCROLLBAR_SIZE,
|
|
minHeight: 264,
|
|
minWidth: 648 + Ox.UI.SCROLLBAR_SIZE,
|
|
height: 264,
|
|
// keys: {enter: 'save', escape: 'cancel'},
|
|
removeOnClose: true,
|
|
title: Ox._('Advanced Find'),
|
|
width: 648 + Ox.UI.SCROLLBAR_SIZE
|
|
}),
|
|
|
|
$updateCheckbox = Ox.Checkbox({
|
|
title: Ox._('Update Results in the Background'),
|
|
value: pandora.user.ui.updateAdvancedFindResults
|
|
})
|
|
.css({float: 'left', margin: '4px'})
|
|
.bindEvent({
|
|
change: function(data) {
|
|
pandora.UI.set({updateAdvancedFindResults: data.value});
|
|
data.value && pandora.$ui.filterForm.updateResults();
|
|
}
|
|
});
|
|
|
|
$($updateCheckbox.find('.OxButton')[0]).css({margin: 0});
|
|
$(that.find('.OxBar')[1]).append($updateCheckbox);
|
|
|
|
return that;
|
|
|
|
};
|
|
|