Merge pull request #1887 from ONLYOFFICE/feature/Bug_51540

Feature/bug 51540
This commit is contained in:
maxkadushkin 2022-08-08 10:44:21 +03:00 committed by GitHub
commit 3bd82d5253
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 52 additions and 8 deletions

View file

@ -19,7 +19,8 @@ import EditorUIController from '../lib/patch';
users: stores.users,
isDisconnected: stores.users.isDisconnected,
displayMode: stores.storeReview.displayMode,
dataDoc: stores.storeDocumentInfo.dataDoc
dataDoc: stores.storeDocumentInfo.dataDoc,
objects: stores.storeFocusObjects.settings
}))
class ContextMenu extends ContextMenuController {
constructor(props) {
@ -32,6 +33,7 @@ class ContextMenu extends ContextMenuController {
this.getUserName = this.getUserName.bind(this);
this.isUserVisible = this.isUserVisible.bind(this);
this.ShowModal = this.ShowModal.bind(this);
this.checkShapeSelection = this.checkShapeSelection.bind(this);
}
static closeContextMenu() {
@ -55,6 +57,7 @@ class ContextMenu extends ContextMenuController {
api.asc_unregisterCallback('asc_onShowComment', this.onApiShowComment);
api.asc_unregisterCallback('asc_onHideComment', this.onApiHideComment);
api.asc_unregisterCallback('asc_onShowRevisionsChange', this.onApiShowChange);
api.asc_unregisterCallback('asc_onShowPopMenu', this.checkShapeSelection);
Common.Notifications.off('showSplitModal', this.ShowModal);
}
@ -132,6 +135,15 @@ class ContextMenu extends ContextMenuController {
}
}
checkShapeSelection() {
const objects = this.props.objects;
const contextMenuElem = document.querySelector('#idx-context-menu-popover');
if(objects.indexOf('shape') > -1) {
contextMenuElem.style.top = `${+(contextMenuElem.style.top.replace(/px$/, '')) - 40}px`;
}
}
onTableContentsUpdate(type, currentTOC) {
const api = Common.EditorApi.get();
let props = api.asc_GetTableOfContentsPr(currentTOC);
@ -144,6 +156,7 @@ class ContextMenu extends ContextMenuController {
showCopyCutPasteModal() {
const { t } = this.props;
const _t = t("ContextMenu", { returnObjects: true });
f7.dialog.create({
title: _t.textCopyCutPasteActions,
text: _t.errorCopyCutPaste,
@ -168,6 +181,7 @@ class ContextMenu extends ContextMenuController {
const { t } = this.props;
const _t = t("ContextMenu", { returnObjects: true });
let picker;
const dialog = f7.dialog.create({
title: _t.menuSplit,
text: '',
@ -253,11 +267,13 @@ class ContextMenu extends ContextMenuController {
api.asc_registerCallback('asc_onShowComment', this.onApiShowComment);
api.asc_registerCallback('asc_onHideComment', this.onApiHideComment);
api.asc_registerCallback('asc_onShowRevisionsChange', this.onApiShowChange);
api.asc_registerCallback('asc_onShowPopMenu', this.checkShapeSelection);
Common.Notifications.on('showSplitModal', this.ShowModal);
}
initMenuItems() {
if ( !Common.EditorApi ) return [];
const { isEdit, canFillForms, isDisconnected } = this.props;
if (isEdit && EditorUIController.ContextMenu) {

View file

@ -15,7 +15,8 @@ import EditorUIController from '../lib/patch';
canViewComments: stores.storeAppOptions.canViewComments,
canCoAuthoring: stores.storeAppOptions.canCoAuthoring,
users: stores.users,
isDisconnected: stores.users.isDisconnected
isDisconnected: stores.users.isDisconnected,
objects: stores.storeFocusObjects.settings
}))
class ContextMenu extends ContextMenuController {
constructor(props) {
@ -26,6 +27,7 @@ class ContextMenu extends ContextMenuController {
this.onApiHideComment = this.onApiHideComment.bind(this);
this.getUserName = this.getUserName.bind(this);
this.isUserVisible = this.isUserVisible.bind(this);
this.checkShapeSelection = this.checkShapeSelection.bind(this);
}
static closeContextMenu() {
@ -49,6 +51,7 @@ class ContextMenu extends ContextMenuController {
if ( api ) {
api.asc_unregisterCallback('asc_onShowComment', this.onApiShowComment);
api.asc_unregisterCallback('asc_onHideComment', this.onApiHideComment);
api.asc_unregisterCallback('asc_onShowPopMenu', this.checkShapeSelection);
}
}
@ -104,6 +107,15 @@ class ContextMenu extends ContextMenuController {
}
}
checkShapeSelection() {
const objects = this.props.objects;
const contextMenuElem = document.querySelector('#idx-context-menu-popover');
if(objects.indexOf('shape') > -1) {
contextMenuElem.style.top = `${+(contextMenuElem.style.top.replace(/px$/, '')) - 40}px`;
}
}
showCopyCutPasteModal() {
const { t } = this.props;
const _t = t("ContextMenu", { returnObjects: true });
@ -220,6 +232,7 @@ class ContextMenu extends ContextMenuController {
const api = Common.EditorApi.get();
api.asc_registerCallback('asc_onShowComment', this.onApiShowComment);
api.asc_registerCallback('asc_onHideComment', this.onApiHideComment);
api.asc_registerCallback('asc_onShowPopMenu', this.checkShapeSelection);
}
initMenuItems() {

View file

@ -19,7 +19,9 @@ import EditorUIController from '../lib/patch';
isDisconnected: stores.users.isDisconnected,
storeSheets: stores.sheets,
wsProps: stores.storeWorksheets.wsProps,
wsLock: stores.storeWorksheets.wsLock
wsLock: stores.storeWorksheets.wsLock,
objects: stores.storeFocusObjects.objects,
focusOn: stores.storeFocusObjects.focusOn
}))
class ContextMenu extends ContextMenuController {
constructor(props) {
@ -34,6 +36,7 @@ class ContextMenu extends ContextMenuController {
this.isUserVisible = this.isUserVisible.bind(this);
this.onApiMouseMove = this.onApiMouseMove.bind(this);
this.onApiHyperlinkClick = this.onApiHyperlinkClick.bind(this);
this.checkShapeSelection = this.checkShapeSelection.bind(this);
}
static closeContextMenu() {
@ -59,6 +62,7 @@ class ContextMenu extends ContextMenuController {
api.asc_unregisterCallback('asc_onHideComment', this.onApiHideComment);
api.asc_unregisterCallback('asc_onMouseMove', this.onApiMouseMove);
api.asc_unregisterCallback('asc_onHyperlinkClick', this.onApiHyperlinkClick);
api.asc_unregisterCallback('asc_onShowPopMenu', this.checkShapeSelection);
}
}
@ -230,6 +234,7 @@ class ContextMenu extends ContextMenuController {
api.asc_registerCallback('asc_onHideComment', this.onApiHideComment);
api.asc_registerCallback('asc_onMouseMove', this.onApiMouseMove);
api.asc_registerCallback('asc_onHyperlinkClick', this.onApiHyperlinkClick);
api.asc_registerCallback('asc_onShowPopMenu', this.checkShapeSelection);
}
initMenuItems() {
@ -302,6 +307,16 @@ class ContextMenu extends ContextMenuController {
}
}
checkShapeSelection() {
const objects = this.props.objects;
const focusOn = this.props.focusOn;
const contextMenuElem = document.querySelector('#idx-context-menu-popover');
if(objects.indexOf('shape') > -1 && focusOn === 'obj') {
contextMenuElem.style.top = `${+(contextMenuElem.style.top.replace(/px$/, '')) - 40}px`;
}
}
onApiMouseMove(dataarray) {
const tipHeight = 20;
let index_locked,

View file

@ -44,19 +44,19 @@ export class storeFocusObjects {
for (let object of this._focusObjects) {
const type = object.get_ObjectType();
if (Asc.c_oAscTypeSelectElement.Paragraph == type) {
if (Asc.c_oAscTypeSelectElement.Paragraph === type) {
_objects.push('text', 'paragraph');
} else if (Asc.c_oAscTypeSelectElement.Table == type) {
} else if (Asc.c_oAscTypeSelectElement.Table === type) {
_objects.push('table');
} else if (Asc.c_oAscTypeSelectElement.Image == type) {
} else if (Asc.c_oAscTypeSelectElement.Image === type) {
if (object.get_ObjectValue().get_ChartProperties()) {
_objects.push('chart');
} else if (object.get_ObjectValue().get_ShapeProperties()) {
} else if (object.get_ObjectValue().get_ShapeProperties() && !_objects.includes('chart')) {
_objects.push('shape');
} else {
_objects.push('image');
}
} else if (Asc.c_oAscTypeSelectElement.Hyperlink == type) {
} else if (Asc.c_oAscTypeSelectElement.Hyperlink === type) {
_objects.push('hyperlink');
}
}