openmedialibrary/static/js/annotationPanel.js

87 lines
2.7 KiB
JavaScript

'use strict';
oml.ui.annotationPanel = function() {
var ui = oml.user.ui;
var $bar = Ox.Bar({size: 16});
var $button = Ox.Button({
disabled: true,
style: 'symbol',
title: 'add',
tooltip: Ox._('Add Quote'),
type: 'image'
}).bindEvent({
click: function() {
oml.$ui.viewer.postMessage('addAnnotation', {})
}
}).appendTo($bar);
var $menuButton = Ox.MenuButton({
items: [
{id: 'addAnnotation', title: 'Add Annotation', disabled: true},
{id: 'removeAnnotation', title: 'Remove Annotation', disabled: true},
{},
{id: 'showAnnotationUsers', title: Ox._('Show Annotations'), disabled: true},
{group: 'show', min: 1, max: 1, items: [
{id: 'all', title: Ox._('All Annotations'), checked: ui.showAnnotationUsers == 'all'},
{id: 'me', title: Ox._('My Annotations'), checked: ui.showAnnotationUsers == 'me'},
]},
{},
{id: 'sortAnnotations', title: Ox._('Sort Annotations'), disabled: true},
{group: 'sort', min: 1, max: 1, items: [
{id: 'position', title: Ox._('By Position'), checked: ui.sortAnnotations == 'position'},
{id: 'quote', title: Ox._('By Quote Text'), checked: ui.sortAnnotations == 'quote'},
{id: 'note', title: Ox._('By Note Text'), checked: ui.sortAnnotations == 'note'},
{id: 'date', title: Ox._('By Date Added'), checked: ui.sortAnnotations == 'date'}
]},
{},
{id: 'exportAnnotations', title: Ox._('Export Annotations')},
],
style: 'square',
title: 'set',
type: 'image',
width: 16
}).css({
// borderColor: 'transparent',
float: 'right'
}).appendTo($bar)
.bindEvent({
click: function(data) {
var id = data.id;
if (id == 'exportAnnotations') {
oml.api.get({
id: oml.user.ui.item,
keys: []
}, function(result) {
oml.ui.exportAnnotationsDialog(result.data).open()
})
}
}
});
var ui = oml.user.ui;
var that = Ox.SplitPanel({
elements: [
{
element: $bar,
size: 16
},
{
element: oml.$ui.annotationFolder = oml.ui.annotationFolder()
}
],
orientation: 'vertical'
});
that.updateSelection = function(selection) {
$button.options({
disabled: !selection
})
}
return that;
};