diff --git a/frontend/src/components/shared-repo-list-view/shared-repo-list-item.js b/frontend/src/components/shared-repo-list-view/shared-repo-list-item.js index b575759df1..09854e2ec8 100644 --- a/frontend/src/components/shared-repo-list-view/shared-repo-list-item.js +++ b/frontend/src/components/shared-repo-list-view/shared-repo-list-item.js @@ -5,6 +5,8 @@ import { Dropdown, DropdownMenu, DropdownToggle, DropdownItem } from 'reactstrap import { Link } from '@reach/router'; import { Utils } from '../../utils/utils'; import { gettext, siteRoot, isPro, username, folderPermEnabled } from '../../utils/constants'; +import ModalPotal from '../../components/modal-portal'; +import ShareDialog from '../../components/dialog/share-dialog'; const propTypes = { currentGroup: PropTypes.object, @@ -22,6 +24,7 @@ class SharedRepoListItem extends React.Component { highlight: false, isOperationShow: false, isItemMenuShow: false, + isShowSharedDialog: false, }; this.isDeparementOnwerGroupMember = false; } @@ -109,7 +112,7 @@ class SharedRepoListItem extends React.Component { this.onItemDetails(); break; case 'Share': - this.onItemShared(); + this.onItemShare(); break; case 'Unshare': this.onItemUnshare(); @@ -133,6 +136,7 @@ class SharedRepoListItem extends React.Component { onItemShare = () => { // todo + this.setState({isShowSharedDialog: true}); } onItemUnshare = () => { @@ -144,6 +148,10 @@ class SharedRepoListItem extends React.Component { // todo } + toggleShareDialog = () => { + this.setState({isShowSharedDialog: false}); + } + generatorOperations = () => { let { repo, currentGroup } = this.props; //todo this have a bug; use current api is not return admins param; @@ -217,7 +225,7 @@ class SharedRepoListItem extends React.Component { // scene one: (share, delete, itemToggle and other operations); // scene two: (share, unshare), (share), (unshare) let operations = this.generatorOperations(); - const shareOperation = ; + const shareOperation = ; const unshareOperation = const deleteOperation = ; @@ -267,14 +275,27 @@ class SharedRepoListItem extends React.Component { let { iconUrl, iconTitle, libPath } = this.getRepoComputeParams(); let { repo } = this.props; return ( - - {iconTitle} - {repo.repo_name} - {this.state.isOperationShow && this.generatorPCMenu()} - {repo.size} - {moment(repo.last_modified).fromNow()} - {repo.owner_name} - + + + {iconTitle} + {repo.repo_name} + {this.state.isOperationShow && this.generatorPCMenu()} + {repo.size} + {moment(repo.last_modified).fromNow()} + {repo.owner_name} + + {this.state.isShowSharedDialog && ( + + + + )} + ); } @@ -282,16 +303,29 @@ class SharedRepoListItem extends React.Component { let { iconUrl, iconTitle, libPath } = this.getRepoComputeParams(); let { repo } = this.props; return ( - - {iconTitle}/ - - {repo.repo_name}
- {repo.owner_name} - {repo.size} - {moment(repo.last_modified).fromNow()} - - {this.generatorMobileMenu()} - + + + {iconTitle}/ + + {repo.repo_name}
+ {repo.owner_name} + {repo.size} + {moment(repo.last_modified).fromNow()} + + {this.generatorMobileMenu()} + + {this.state.isShowSharedDialog && ( + + + + )} +
); } diff --git a/frontend/src/pages/my-libs/item.js b/frontend/src/pages/my-libs/item.js index 679d4b9eb0..f9ced61e6b 100644 --- a/frontend/src/pages/my-libs/item.js +++ b/frontend/src/pages/my-libs/item.js @@ -264,13 +264,13 @@ class Item extends Component { {this.state.isShowSharedDialog && ( - + )} @@ -292,13 +292,13 @@ class Item extends Component { {this.state.isShowSharedDialog && ( - + )} diff --git a/seahub/urls.py b/seahub/urls.py index 66824debbc..8a4ef1739a 100644 --- a/seahub/urls.py +++ b/seahub/urls.py @@ -204,7 +204,7 @@ urlpatterns = [ url(r'^shared-libs/$', react_fake_view, name="shared_libs"), url(r'^my-libs/$', react_fake_view, name="my_libs"), url(r'^groups/$', react_fake_view, name="groups"), - url(r'^group/(?P\d+)/$', react_group, name="group"), + url(r'^group/.*$', react_fake_view, name="group"), url(r'^library/.*$', react_fake_view, name="lib_view"), url(r'^my-libs/deleted/$', react_fake_view, name="my_libs_deleted"),