[DE mobile] Add review, review change handler in context menu
This commit is contained in:
parent
c5ef8766d6
commit
4687d2b127
|
@ -120,6 +120,7 @@ class Review extends Component {
|
||||||
onAcceptAll={this.onAcceptAll}
|
onAcceptAll={this.onAcceptAll}
|
||||||
onRejectAll={this.onRejectAll}
|
onRejectAll={this.onRejectAll}
|
||||||
onDisplayMode={this.onDisplayMode}
|
onDisplayMode={this.onDisplayMode}
|
||||||
|
noBack={this.props.noBack}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -520,6 +521,7 @@ class ReviewChange extends Component {
|
||||||
onRejectCurrentChange={this.onRejectCurrentChange}
|
onRejectCurrentChange={this.onRejectCurrentChange}
|
||||||
onGotoNextChange={this.onGotoNextChange}
|
onGotoNextChange={this.onGotoNextChange}
|
||||||
onDeleteChange={this.onDeleteChange}
|
onDeleteChange={this.onDeleteChange}
|
||||||
|
noBack={this.props.noBack}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,15 @@ const PageUsers = inject("users")(observer(props => {
|
||||||
const storeUsers = props.users;
|
const storeUsers = props.users;
|
||||||
return (
|
return (
|
||||||
<Page name="collab__users">
|
<Page name="collab__users">
|
||||||
<Navbar title={_t.textUsers} backLink={_t.textBack}></Navbar>
|
<Navbar title={_t.textUsers} backLink={_t.textBack}>
|
||||||
|
{Device.phone &&
|
||||||
|
<NavRight>
|
||||||
|
<Link sheetClose=".coauth__sheet">
|
||||||
|
<Icon icon='icon-expand-down'/>
|
||||||
|
</Link>
|
||||||
|
</NavRight>
|
||||||
|
}
|
||||||
|
</Navbar>
|
||||||
<BlockTitle>{_t.textEditUser}</BlockTitle>
|
<BlockTitle>{_t.textEditUser}</BlockTitle>
|
||||||
<List className="coauth__list">
|
<List className="coauth__list">
|
||||||
{storeUsers.users.map((model, i) => (
|
{storeUsers.users.map((model, i) => (
|
||||||
|
@ -39,6 +47,15 @@ const routes = [
|
||||||
path: '/review/',
|
path: '/review/',
|
||||||
component: ReviewController
|
component: ReviewController
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/cm-review/',
|
||||||
|
component: ReviewController,
|
||||||
|
options: {
|
||||||
|
props: {
|
||||||
|
noBack: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/display-mode/',
|
path: '/display-mode/',
|
||||||
component: PageDisplayMode
|
component: PageDisplayMode
|
||||||
|
@ -47,6 +64,15 @@ const routes = [
|
||||||
path: '/review-change/',
|
path: '/review-change/',
|
||||||
component: ReviewChangeController
|
component: ReviewChangeController
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/cm-review-change/',
|
||||||
|
component: ReviewChangeController,
|
||||||
|
options: {
|
||||||
|
props: {
|
||||||
|
noBack: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/comments/',
|
path: '/comments/',
|
||||||
component: ViewCommentsController,
|
component: ViewCommentsController,
|
||||||
|
@ -62,10 +88,10 @@ const PageCollaboration = inject('storeAppOptions')(observer(props => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const _t = t('Common.Collaboration', {returnObjects: true});
|
const _t = t('Common.Collaboration', {returnObjects: true});
|
||||||
return (
|
return (
|
||||||
<View style={props.style} stackPages={true} routes={routes}>
|
<View style={props.style} stackPages={true} routes={routes} url={props.page && `/${props.page}/`}>
|
||||||
<Page name="collab__main">
|
<Page name="collab__main">
|
||||||
<Navbar title={_t.textCollaboration}>
|
<Navbar title={_t.textCollaboration}>
|
||||||
{props.isSheet &&
|
{Device.phone &&
|
||||||
<NavRight>
|
<NavRight>
|
||||||
<Link sheetClose=".coauth__sheet">
|
<Link sheetClose=".coauth__sheet">
|
||||||
<Icon icon='icon-expand-down'/>
|
<Icon icon='icon-expand-down'/>
|
||||||
|
@ -108,10 +134,10 @@ class CollaborationView extends Component {
|
||||||
return (
|
return (
|
||||||
show_popover ?
|
show_popover ?
|
||||||
<Popover id="coauth-popover" className="popover__titled" onPopoverClosed={() => this.props.onclosed()}>
|
<Popover id="coauth-popover" className="popover__titled" onPopoverClosed={() => this.props.onclosed()}>
|
||||||
<PageCollaboration style={{height: '410px'}}/>
|
<PageCollaboration style={{height: '410px'}} page={this.props.page}/>
|
||||||
</Popover> :
|
</Popover> :
|
||||||
<Sheet className="coauth__sheet" push onSheetClosed={() => this.props.onclosed()}>
|
<Sheet className="coauth__sheet" push onSheetClosed={() => this.props.onclosed()}>
|
||||||
<PageCollaboration isSheet={true}/>
|
<PageCollaboration page={this.props.page}/>
|
||||||
</Sheet>
|
</Sheet>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -135,7 +161,7 @@ const Collaboration = props => {
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CollaborationView usePopover={!Device.phone} onclosed={onviewclosed} />
|
<CollaborationView usePopover={!Device.phone} onclosed={onviewclosed} page={props.page}/>
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React, { Component, useEffect } from 'react';
|
import React, { Component, useEffect } from 'react';
|
||||||
import { observer, inject } from "mobx-react";
|
import { observer, inject } from "mobx-react";
|
||||||
import { Page, Navbar, List, ListItem, Icon, Toggle, Toolbar, Link } from 'framework7-react';
|
import { Page, Navbar, NavRight, List, ListItem, Icon, Toggle, Toolbar, Link } from 'framework7-react';
|
||||||
import { f7 } from 'framework7-react';
|
import { f7 } from 'framework7-react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import {Device} from "../../../utils/device";
|
import {Device} from "../../../utils/device";
|
||||||
|
@ -14,7 +14,15 @@ const PageReview = props => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Page>
|
<Page>
|
||||||
<Navbar title={_t.textReview} backLink={_t.textBack}/>
|
<Navbar title={_t.textReview} backLink={!props.noBack && _t.textBack}>
|
||||||
|
{Device.phone &&
|
||||||
|
<NavRight>
|
||||||
|
<Link sheetClose=".coauth__sheet">
|
||||||
|
<Icon icon='icon-expand-down'/>
|
||||||
|
</Link>
|
||||||
|
</NavRight>
|
||||||
|
}
|
||||||
|
</Navbar>
|
||||||
<List>
|
<List>
|
||||||
{canReview &&
|
{canReview &&
|
||||||
<ListItem title={_t.textTrackChanges} className={isDisableAllSettings ? 'disabled' : ''}>
|
<ListItem title={_t.textTrackChanges} className={isDisableAllSettings ? 'disabled' : ''}>
|
||||||
|
@ -58,7 +66,15 @@ const DisplayMode = props => {
|
||||||
const mode = props.storeReview.displayMode;
|
const mode = props.storeReview.displayMode;
|
||||||
return (
|
return (
|
||||||
<Page>
|
<Page>
|
||||||
<Navbar title={_t.textDisplayMode} backLink={_t.textBack}/>
|
<Navbar title={_t.textDisplayMode} backLink={_t.textBack}>
|
||||||
|
{Device.phone &&
|
||||||
|
<NavRight>
|
||||||
|
<Link sheetClose=".coauth__sheet">
|
||||||
|
<Icon icon='icon-expand-down'/>
|
||||||
|
</Link>
|
||||||
|
</NavRight>
|
||||||
|
}
|
||||||
|
</Navbar>
|
||||||
<List mediaList>
|
<List mediaList>
|
||||||
<ListItem title={_t.textMarkup}
|
<ListItem title={_t.textMarkup}
|
||||||
subtitle={_t.textAllChangesEditing}
|
subtitle={_t.textAllChangesEditing}
|
||||||
|
@ -99,7 +115,15 @@ const PageReviewChange = props => {
|
||||||
const isLockPrevNext = (displayMode === "final" || displayMode === "original");
|
const isLockPrevNext = (displayMode === "final" || displayMode === "original");
|
||||||
return (
|
return (
|
||||||
<Page className='page-review'>
|
<Page className='page-review'>
|
||||||
<Navbar title={_t.textReviewChange} backLink={_t.textBack}/>
|
<Navbar title={_t.textReviewChange} backLink={!props.noBack && _t.textBack}>
|
||||||
|
{Device.phone &&
|
||||||
|
<NavRight>
|
||||||
|
<Link sheetClose=".coauth__sheet">
|
||||||
|
<Icon icon='icon-expand-down'/>
|
||||||
|
</Link>
|
||||||
|
</NavRight>
|
||||||
|
}
|
||||||
|
</Navbar>
|
||||||
<Toolbar position='bottom'>
|
<Toolbar position='bottom'>
|
||||||
<span className='change-buttons row'>
|
<span className='change-buttons row'>
|
||||||
{!props.isReviewOnly &&
|
{!props.isReviewOnly &&
|
||||||
|
|
|
@ -38,6 +38,12 @@
|
||||||
.navbar-inner {
|
.navbar-inner {
|
||||||
z-index: auto;
|
z-index: auto;
|
||||||
}
|
}
|
||||||
|
.sheet-close {
|
||||||
|
width: 44px;
|
||||||
|
height: 44px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.popover__titled {
|
.popover__titled {
|
||||||
|
|
|
@ -21,6 +21,14 @@
|
||||||
|
|
||||||
--f7-dialog-button-text-color: @themeColor;
|
--f7-dialog-button-text-color: @themeColor;
|
||||||
|
|
||||||
|
.navbar {
|
||||||
|
.sheet-close {
|
||||||
|
width: 56px;
|
||||||
|
height: 56px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
// Buttons
|
// Buttons
|
||||||
.segmented {
|
.segmented {
|
||||||
.decrement, .increment {
|
.decrement, .increment {
|
||||||
|
|
|
@ -20,6 +20,7 @@ class ContextMenu extends ContextMenuController {
|
||||||
// console.log('context menu controller created');
|
// console.log('context menu controller created');
|
||||||
this.onApiShowComment = this.onApiShowComment.bind(this);
|
this.onApiShowComment = this.onApiShowComment.bind(this);
|
||||||
this.onApiHideComment = this.onApiHideComment.bind(this);
|
this.onApiHideComment = this.onApiHideComment.bind(this);
|
||||||
|
this.onApiShowChange = this.onApiShowChange.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
static closeContextMenu() {
|
static closeContextMenu() {
|
||||||
|
@ -32,6 +33,7 @@ class ContextMenu extends ContextMenuController {
|
||||||
const api = Common.EditorApi.get();
|
const api = Common.EditorApi.get();
|
||||||
api.asc_unregisterCallback('asc_onShowComment', this.onApiShowComment);
|
api.asc_unregisterCallback('asc_onShowComment', this.onApiShowComment);
|
||||||
api.asc_unregisterCallback('asc_onHideComment', this.onApiHideComment);
|
api.asc_unregisterCallback('asc_onHideComment', this.onApiHideComment);
|
||||||
|
api.asc_unregisterCallback('asc_onShowRevisionsChange', this.onApiShowChange);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,6 +45,10 @@ class ContextMenu extends ContextMenuController {
|
||||||
this.isComments = false;
|
this.isComments = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onApiShowChange(sdkchange) {
|
||||||
|
this.inRevisionChange = sdkchange && sdkchange.length>0;
|
||||||
|
}
|
||||||
|
|
||||||
// onMenuClosed() {
|
// onMenuClosed() {
|
||||||
// super.onMenuClosed();
|
// super.onMenuClosed();
|
||||||
// }
|
// }
|
||||||
|
@ -73,6 +79,16 @@ class ContextMenu extends ContextMenuController {
|
||||||
case 'viewcomment':
|
case 'viewcomment':
|
||||||
Common.Notifications.trigger('viewcomment');
|
Common.Notifications.trigger('viewcomment');
|
||||||
break;
|
break;
|
||||||
|
case 'review':
|
||||||
|
setTimeout(() => {
|
||||||
|
this.props.openOptions('coauth', 'cm-review');
|
||||||
|
}, 400);
|
||||||
|
break;
|
||||||
|
case 'reviewchange':
|
||||||
|
setTimeout(() => {
|
||||||
|
this.props.openOptions('coauth', 'cm-review-change');
|
||||||
|
}, 400);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("click context menu item: " + action);
|
console.log("click context menu item: " + action);
|
||||||
|
@ -107,6 +123,7 @@ class ContextMenu extends ContextMenuController {
|
||||||
const api = Common.EditorApi.get();
|
const api = Common.EditorApi.get();
|
||||||
api.asc_registerCallback('asc_onShowComment', this.onApiShowComment);
|
api.asc_registerCallback('asc_onShowComment', this.onApiShowComment);
|
||||||
api.asc_registerCallback('asc_onHideComment', this.onApiHideComment);
|
api.asc_registerCallback('asc_onHideComment', this.onApiHideComment);
|
||||||
|
api.asc_registerCallback('asc_onShowRevisionsChange', this.onApiShowChange);
|
||||||
}
|
}
|
||||||
|
|
||||||
initMenuItems() {
|
initMenuItems() {
|
||||||
|
@ -246,7 +263,7 @@ class ContextMenu extends ContextMenuController {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if ( canReview ) {
|
if ( canReview ) {
|
||||||
if (false /*_inRevisionChange*/) {
|
if (this.inRevisionChange) {
|
||||||
itemsText.push({
|
itemsText.push({
|
||||||
caption: _t.menuReviewChange,
|
caption: _t.menuReviewChange,
|
||||||
event: 'reviewchange'
|
event: 'reviewchange'
|
||||||
|
|
|
@ -23,7 +23,7 @@ export default class MainPage extends Component {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
handleClickToOpenOptions = opts => {
|
handleClickToOpenOptions = (opts, page) => {
|
||||||
ContextMenu.closeContextMenu();
|
ContextMenu.closeContextMenu();
|
||||||
|
|
||||||
this.setState(state => {
|
this.setState(state => {
|
||||||
|
@ -34,7 +34,10 @@ export default class MainPage extends Component {
|
||||||
else if ( opts == 'settings' )
|
else if ( opts == 'settings' )
|
||||||
return {settingsVisible: true};
|
return {settingsVisible: true};
|
||||||
else if ( opts == 'coauth' )
|
else if ( opts == 'coauth' )
|
||||||
return {collaborationVisible: true};
|
return {
|
||||||
|
collaborationVisible: true,
|
||||||
|
collaborationPage: page
|
||||||
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -95,9 +98,9 @@ export default class MainPage extends Component {
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
!this.state.collaborationVisible ? null :
|
!this.state.collaborationVisible ? null :
|
||||||
<Collaboration onclosed={this.handleOptionsViewClosed.bind(this, 'coauth')} />
|
<Collaboration onclosed={this.handleOptionsViewClosed.bind(this, 'coauth')} page={this.state.collaborationPage} />
|
||||||
}
|
}
|
||||||
<ContextMenu />
|
<ContextMenu openOptions={this.handleClickToOpenOptions.bind(this)} />
|
||||||
</Page>
|
</Page>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue