openmedialibrary/static/js/appPanel.js

66 lines
1.8 KiB
JavaScript

'use strict';
oml.ui.appPanel = function() {
var ui = oml.user.ui,
that = Ox.SplitPanel({
elements: [
{
element: oml.$ui.mainMenu = oml.ui.mainMenu(),
size: 20
},
{
element: oml.$ui.mainPanel = oml.ui.mainPanel()
}
],
orientation: 'vertical'
})
.bindEvent({
oml_page: function(data) {
setPage(data.value, data.previousValue);
}
});
setPage(ui.page);
function setPage(page, previousPage) {
// close dialogs
if (
!Ox.contains(['import', 'export'], page)
|| !Ox.contains(['import', 'export'], previousPage)
) {
$('.OxDialog:visible').each(function() {
Ox.$elements[$(this).data('oxid')].close();
});
}
// open dialog
if (Ox.contains([
'welcome', 'app', 'preferences', 'users',
'notifications', 'transfers', 'help'
], page)) {
oml.$ui[page + 'Dialog'] = oml.ui[page + 'Dialog']().open();
} else if (Ox.contains(['import', 'export'], page)) {
if (
oml.$ui.importExportDialog
&& oml.$ui.importExportDialog.is(':visible')
) {
oml.$ui.importExportDialog.select(page);
} else {
oml.$ui.importExportDialog = oml.ui.importExportDialog(page).open();
}
}
}
that.reload = function() {
Ox.Request.cancel();
Ox.Request.clearCache();
oml.unbindEvent();
oml.$ui.appPanel.remove();
oml.$ui.appPanel = oml.ui.appPanel().appendTo(Ox.$body);
return that;
};
return that;
};