Move presentation toolbar to separate file
Change-Id: I47faf807bbbd79e27c9eb5156fc24dc4bc053aab Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92272 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
This commit is contained in:
parent
fe2743233f
commit
2f57f0c34e
4 changed files with 158 additions and 107 deletions
|
@ -269,6 +269,7 @@ LOLEAFLET_JS =\
|
|||
src/control/Control.UserList.js \
|
||||
src/control/Control.FormulaBar.js \
|
||||
src/control/Control.SheetsBar.js \
|
||||
src/control/Control.PresentationBar.js \
|
||||
src/control/Control.Layers.js \
|
||||
src/control/Search.js \
|
||||
src/control/Permission.js \
|
||||
|
|
156
loleaflet/src/control/Control.PresentationBar.js
Normal file
156
loleaflet/src/control/Control.PresentationBar.js
Normal file
|
@ -0,0 +1,156 @@
|
|||
/* -*- js-indent-level: 8 -*- */
|
||||
/*
|
||||
* L.Control.PresentationBar
|
||||
*/
|
||||
|
||||
/* global $ w2ui _ _UNO vex */
|
||||
L.Control.PresentationBar = L.Control.extend({
|
||||
options: {
|
||||
shownavigation: true
|
||||
},
|
||||
|
||||
onAdd: function (map) {
|
||||
this.map = map;
|
||||
this.create();
|
||||
|
||||
map.on('wopiprops', this.onWopiProps, this);
|
||||
map.on('doclayerinit', this.onDocLayerInit, this);
|
||||
map.on('updatepermission', this.onUpdatePermission, this);
|
||||
},
|
||||
|
||||
create: function() {
|
||||
var that = this;
|
||||
var toolbar = $('#presentation-toolbar');
|
||||
toolbar.w2toolbar({
|
||||
name: 'presentation-toolbar',
|
||||
tooltip: 'bottom',
|
||||
hidden: true,
|
||||
items: [
|
||||
{type: 'html', id: 'left'},
|
||||
{type: 'button', id: 'presentation', img: 'presentation', hidden:true, hint: _('Fullscreen presentation')},
|
||||
{type: 'break', id: 'presentationbreak', hidden:true},
|
||||
{type: 'button', id: 'insertpage', img: 'insertpage', hint: _UNO('.uno:TaskPaneInsertPage', 'presentation')},
|
||||
{type: 'button', id: 'duplicatepage', img: 'duplicatepage', hint: _UNO('.uno:DuplicateSlide', 'presentation')},
|
||||
{type: 'button', id: 'deletepage', img: 'deletepage', hint: _UNO('.uno:DeleteSlide', 'presentation')},
|
||||
{type: 'html', id: 'right'}
|
||||
],
|
||||
onClick: function (e) {
|
||||
that.onClick(e, e.target);
|
||||
window.hideTooltip(this, e.target);
|
||||
}
|
||||
});
|
||||
toolbar.bind('touchstart', function() {
|
||||
w2ui['presentation-toolbar'].touchStarted = true;
|
||||
});
|
||||
},
|
||||
|
||||
onDelete: function(e) {
|
||||
if (e !== false) {
|
||||
this.map.deletePage();
|
||||
}
|
||||
},
|
||||
|
||||
onClick: function(e, id, item) {
|
||||
if ('presentation-toolbar' in w2ui && w2ui['presentation-toolbar'].get(id) !== null) {
|
||||
var toolbar = w2ui['presentation-toolbar'];
|
||||
item = toolbar.get(id);
|
||||
}
|
||||
|
||||
// In the iOS app we don't want clicking on the toolbar to pop up the keyboard.
|
||||
if (!window.ThisIsTheiOSApp && id !== 'zoomin' && id !== 'zoomout' && id !== 'mobile_wizard' && id !== 'insertion_mobile_wizard') {
|
||||
this.map.focus(this.map.canAcceptKeyboardInput()); // Maintain same keyboard state.
|
||||
}
|
||||
|
||||
if (item.disabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((id === 'presentation') && this.map.getDocType() === 'presentation') {
|
||||
this.map.fire('fullscreen');
|
||||
}
|
||||
else if (id === 'insertpage') {
|
||||
this.map.insertPage();
|
||||
}
|
||||
else if (id === 'duplicatepage') {
|
||||
this.map.duplicatePage();
|
||||
}
|
||||
else if (id === 'deletepage') {
|
||||
vex.dialog.confirm({
|
||||
message: _('Are you sure you want to delete this page?'),
|
||||
buttons: [
|
||||
$.extend({}, vex.dialog.buttons.YES, { text: _('OK') }),
|
||||
$.extend({}, vex.dialog.buttons.NO, { text: _('Cancel') })
|
||||
],
|
||||
callback: this.onDelete.bind(this)
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
onWopiProps: function(e) {
|
||||
if (e.HideExportOption) {
|
||||
w2ui['presentation-toolbar'].hide('presentation', 'presentationbreak');
|
||||
}
|
||||
},
|
||||
|
||||
onDocLayerInit: function() {
|
||||
var docType = this.map.getDocType();
|
||||
switch (docType) {
|
||||
case 'presentation':
|
||||
var presentationToolbar = w2ui['presentation-toolbar'];
|
||||
if (!this.map['wopi'].HideExportOption && presentationToolbar) {
|
||||
presentationToolbar.show('presentation', 'presentationbreak');
|
||||
}
|
||||
|
||||
// FALLTHROUGH intended
|
||||
case 'drawing':
|
||||
if (!window.mode.isMobile()) {
|
||||
$('#presentation-toolbar').show();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
onUpdatePermission: function(e) {
|
||||
var presentationButtons = ['insertpage', 'duplicatepage', 'deletepage'];
|
||||
var that = this;
|
||||
|
||||
if (e.perm === 'edit') {
|
||||
var toolbar = w2ui['presentation-toolbar'];
|
||||
if (toolbar) {
|
||||
presentationButtons.forEach(function(id) {
|
||||
toolbar.enable(id);
|
||||
});
|
||||
}
|
||||
|
||||
if (toolbar) {
|
||||
presentationButtons.forEach(function(id) {
|
||||
if (id === 'deletepage') {
|
||||
var itemState = that.map['stateChangeHandler'].getItemValue('.uno:DeletePage');
|
||||
} else if (id === 'insertpage') {
|
||||
itemState = that.map['stateChangeHandler'].getItemValue('.uno:InsertPage');
|
||||
} else if (id === 'duplicatepage') {
|
||||
itemState = that.map['stateChangeHandler'].getItemValue('.uno:DuplicatePage');
|
||||
} else {
|
||||
itemState = 'enabled';
|
||||
}
|
||||
|
||||
if (itemState === 'enabled') {
|
||||
toolbar.enable(id);
|
||||
} else {
|
||||
toolbar.disable(id);
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
toolbar = w2ui['presentation-toolbar'];
|
||||
if (toolbar) {
|
||||
presentationButtons.forEach(function(id) {
|
||||
toolbar.disable(id);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
L.control.presentationBar = function (options) {
|
||||
return new L.Control.PresentationBar(options);
|
||||
};
|
|
@ -9,12 +9,6 @@
|
|||
|
||||
var map;
|
||||
|
||||
function onDelete(e) {
|
||||
if (e !== false) {
|
||||
map.deletePage();
|
||||
}
|
||||
}
|
||||
|
||||
function _updateVisibilityForToolbar(toolbar) {
|
||||
if (!toolbar)
|
||||
return;
|
||||
|
@ -99,10 +93,6 @@ function onClick(e, id, item) {
|
|||
toolbar = w2ui['actionbar'];
|
||||
item = toolbar.get(id);
|
||||
}
|
||||
else if ('presentation-toolbar' in w2ui && w2ui['presentation-toolbar'].get(id) !== null) {
|
||||
toolbar = w2ui['presentation-toolbar'];
|
||||
item = toolbar.get(id);
|
||||
}
|
||||
else if (w2ui['searchbar'].get(id) !== null) {
|
||||
toolbar = w2ui['searchbar'];
|
||||
item = toolbar.get(id);
|
||||
|
@ -158,22 +148,6 @@ function onClick(e, id, item) {
|
|||
else if (id === 'insertannotation') {
|
||||
map.insertComment();
|
||||
}
|
||||
else if (id === 'insertpage') {
|
||||
map.insertPage();
|
||||
}
|
||||
else if (id === 'duplicatepage') {
|
||||
map.duplicatePage();
|
||||
}
|
||||
else if (id === 'deletepage') {
|
||||
vex.dialog.confirm({
|
||||
message: _('Are you sure you want to delete this page?'),
|
||||
buttons: [
|
||||
$.extend({}, vex.dialog.buttons.YES, { text: _('OK') }),
|
||||
$.extend({}, vex.dialog.buttons.NO, { text: _('Cancel') })
|
||||
],
|
||||
callback: onDelete
|
||||
});
|
||||
}
|
||||
else if (id === 'insertgraphic' || item.id === 'localgraphic') {
|
||||
L.DomUtil.get('insertgraphic').click();
|
||||
}
|
||||
|
@ -899,37 +873,12 @@ function createSigningBar() {
|
|||
}
|
||||
}
|
||||
|
||||
function createPresentationToolbar() {
|
||||
var toolbar = $('#presentation-toolbar');
|
||||
toolbar.w2toolbar({
|
||||
name: 'presentation-toolbar',
|
||||
tooltip: 'bottom',
|
||||
hidden: true,
|
||||
items: [
|
||||
{type: 'html', id: 'left'},
|
||||
{type: 'button', id: 'presentation', img: 'presentation', hidden:true, hint: _('Fullscreen presentation')},
|
||||
{type: 'break', id: 'presentationbreak', hidden:true},
|
||||
{type: 'button', id: 'insertpage', img: 'insertpage', hint: _UNO('.uno:TaskPaneInsertPage', 'presentation')},
|
||||
{type: 'button', id: 'duplicatepage', img: 'duplicatepage', hint: _UNO('.uno:DuplicateSlide', 'presentation')},
|
||||
{type: 'button', id: 'deletepage', img: 'deletepage', hint: _UNO('.uno:DeleteSlide', 'presentation')},
|
||||
{type: 'html', id: 'right'}
|
||||
],
|
||||
onClick: function (e) {
|
||||
onClick(e, e.target);
|
||||
hideTooltip(this, e.target);
|
||||
}
|
||||
});
|
||||
toolbar.bind('touchstart', function() {
|
||||
w2ui['presentation-toolbar'].touchStarted = true;
|
||||
});
|
||||
}
|
||||
|
||||
function initNormalToolbar() {
|
||||
createMainToolbar();
|
||||
map.addControl(L.control.formulaBar({showfunctionwizard: true}));
|
||||
createSigningBar();
|
||||
map.addControl(L.control.sheetsBar({shownavigation: true}));
|
||||
createPresentationToolbar();
|
||||
map.addControl(L.control.presentationBar());
|
||||
}
|
||||
|
||||
function setupSearchInput() {
|
||||
|
@ -1148,9 +1097,6 @@ function onWopiProps(e) {
|
|||
if (e.HideSaveOption) {
|
||||
w2ui['editbar'].hide('save');
|
||||
}
|
||||
if (e.HideExportOption) {
|
||||
w2ui['presentation-toolbar'].hide('presentation', 'presentationbreak');
|
||||
}
|
||||
if (e.HidePrintOption) {
|
||||
w2ui['editbar'].hide('print');
|
||||
}
|
||||
|
@ -1230,21 +1176,12 @@ function onDocLayerInit() {
|
|||
toolbarUp.show('breaksidebar', 'modifypage');
|
||||
}
|
||||
|
||||
var presentationToolbar = w2ui['presentation-toolbar'];
|
||||
if (!map['wopi'].HideExportOption && presentationToolbar) {
|
||||
presentationToolbar.show('presentation', 'presentationbreak');
|
||||
}
|
||||
|
||||
// FALLTHROUGH intended
|
||||
case 'drawing':
|
||||
if (toolbarUp)
|
||||
toolbarUp.show('leftpara', 'centerpara', 'rightpara', 'justifypara', 'breakpara', 'linespacing',
|
||||
'breakspacing', 'defaultbullet', 'defaultnumbering', 'breakbullet', 'inserttextbox', 'inserttable', 'backcolor',
|
||||
'breaksidebar', 'modifypage', 'slidechangewindow', 'customanimation', 'masterslidespanel');
|
||||
|
||||
if (!window.mode.isMobile()) {
|
||||
$('#presentation-toolbar').show();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1685,40 +1622,12 @@ function onUpdatePermission(e) {
|
|||
}
|
||||
}
|
||||
|
||||
var presentationButtons = ['insertpage', 'duplicatepage', 'deletepage'];
|
||||
if (e.perm === 'edit') {
|
||||
// Enable list boxes
|
||||
$('.styles-select').prop('disabled', false);
|
||||
$('.fonts-select').prop('disabled', false);
|
||||
$('.fontsizes-select').prop('disabled', false);
|
||||
|
||||
toolbar = w2ui['presentation-toolbar'];
|
||||
if (toolbar) {
|
||||
presentationButtons.forEach(function(id) {
|
||||
toolbar.enable(id);
|
||||
});
|
||||
}
|
||||
|
||||
if (toolbar) {
|
||||
presentationButtons.forEach(function(id) {
|
||||
if (id === 'deletepage') {
|
||||
var itemState = map['stateChangeHandler'].getItemValue('.uno:DeletePage');
|
||||
} else if (id === 'insertpage') {
|
||||
itemState = map['stateChangeHandler'].getItemValue('.uno:InsertPage');
|
||||
} else if (id === 'duplicatepage') {
|
||||
itemState = map['stateChangeHandler'].getItemValue('.uno:DuplicatePage');
|
||||
} else {
|
||||
itemState = 'enabled';
|
||||
}
|
||||
|
||||
if (itemState === 'enabled') {
|
||||
toolbar.enable(id);
|
||||
} else {
|
||||
toolbar.disable(id);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (window.mode.isMobile()) {
|
||||
$('#toolbar-down').show();
|
||||
}
|
||||
|
@ -1729,13 +1638,6 @@ function onUpdatePermission(e) {
|
|||
$('.fonts-select').prop('disabled', true);
|
||||
$('.fontsizes-select').prop('disabled', true);
|
||||
|
||||
toolbar = w2ui['presentation-toolbar'];
|
||||
if (toolbar) {
|
||||
presentationButtons.forEach(function(id) {
|
||||
toolbar.disable(id);
|
||||
});
|
||||
}
|
||||
|
||||
if (window.mode.isMobile()) {
|
||||
$('#toolbar-down').hide();
|
||||
}
|
||||
|
|
|
@ -116,14 +116,6 @@ L.ImpressTileLayer = L.TileLayer.extend({
|
|||
onMobileInit: function (map) {
|
||||
map.addControl(L.control.mobileTopBar('presentation'));
|
||||
|
||||
var toolbar = $('#presentation-toolbar');
|
||||
toolbar.w2toolbar({
|
||||
name: 'presentation-toolbar',
|
||||
tooltip: 'bottom',
|
||||
hidden: true,
|
||||
items: []
|
||||
});
|
||||
|
||||
map.addControl(L.control.mobileBottomBar('presentation'));
|
||||
|
||||
map.addControl(L.control.searchBar());
|
||||
|
|
Loading…
Reference in a new issue