mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-07 09:51:26 +00:00
move share dialog (#2995)
This commit is contained in:
@@ -14,7 +14,10 @@ const propTypes = {
|
|||||||
itemName: PropTypes.string.isRequired,
|
itemName: PropTypes.string.isRequired,
|
||||||
itemPath: PropTypes.string.isRequired,
|
itemPath: PropTypes.string.isRequired,
|
||||||
toggleDialog: PropTypes.func.isRequired,
|
toggleDialog: PropTypes.func.isRequired,
|
||||||
repoID: PropTypes.string.isRequired
|
repoID: PropTypes.string.isRequired,
|
||||||
|
repoEncrypted: PropTypes.bool,
|
||||||
|
userPerm: PropTypes.string,
|
||||||
|
enableDirPrivateShare: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
class ShareDialog extends React.Component {
|
class ShareDialog extends React.Component {
|
||||||
|
@@ -3,35 +3,17 @@ import SeafileEditor from '@seafile/seafile-editor';
|
|||||||
import 'whatwg-fetch';
|
import 'whatwg-fetch';
|
||||||
import { seafileAPI } from './utils/seafile-api';
|
import { seafileAPI } from './utils/seafile-api';
|
||||||
import { Utils } from './utils/utils';
|
import { Utils } from './utils/utils';
|
||||||
import cookie from 'react-cookies';
|
|
||||||
import ModalPortal from './components/modal-portal';
|
import ModalPortal from './components/modal-portal';
|
||||||
import { Modal } from 'reactstrap';
|
|
||||||
import EditFileTagDialog from './components/dialog/edit-filetag-dialog';
|
import EditFileTagDialog from './components/dialog/edit-filetag-dialog';
|
||||||
import ListRelatedFileDialog from './components/dialog/list-related-file-dialog';
|
import ListRelatedFileDialog from './components/dialog/list-related-file-dialog';
|
||||||
import AddRelatedFileDialog from './components/dialog/add-related-file-dialog';
|
import AddRelatedFileDialog from './components/dialog/add-related-file-dialog';
|
||||||
import Dirent from './models/dirent';
|
import ShareDialog from './components/dialog/share-dialog';
|
||||||
let repoID = window.app.pageOptions.repoID;
|
|
||||||
let repoName = window.app.pageOptions.repoName;
|
|
||||||
let filePath = window.app.pageOptions.filePath;
|
|
||||||
let fileName = window.app.pageOptions.fileName;
|
|
||||||
let siteRoot = window.app.config.siteRoot;
|
|
||||||
let domain = window.app.pageOptions.domain;
|
|
||||||
let protocol = window.app.pageOptions.protocol;
|
|
||||||
let mode = window.app.pageOptions.mode;
|
|
||||||
let draftID = window.app.pageOptions.draftID;
|
|
||||||
let reviewID = window.app.pageOptions.reviewID;
|
|
||||||
let reviewStatus = window.app.pageOptions.reviewStatus;
|
|
||||||
let isDraft = window.app.pageOptions.isDraft;
|
|
||||||
let hasDraft = window.app.pageOptions.hasDraft;
|
|
||||||
let draftFilePath = window.app.pageOptions.draftFilePath;
|
|
||||||
let shareLinkExpireDaysMin = window.app.pageOptions.shareLinkExpireDaysMin;
|
|
||||||
let shareLinkExpireDaysMax = window.app.pageOptions.shareLinkExpireDaysMax;
|
|
||||||
let userName = window.app.userInfo.username;
|
|
||||||
let dirPath = '/';
|
|
||||||
|
|
||||||
const serviceUrl = window.app.config.serviceUrl;
|
const { repoID, repoName, filePath, fileName, mode, draftID, reviewID, reviewStatus, draftFilePath, isDraft, hasDraft, shareLinkExpireDaysMin, shareLinkExpireDaysMax } = window.app.pageOptions;
|
||||||
const seafileCollabServer = window.app.config.seafileCollabServer;
|
const { siteRoot, serviceUrl, seafileCollabServer } = window.app.config;
|
||||||
const userInfo = window.app.userInfo;
|
const userInfo = window.app.userInfo;
|
||||||
|
const userName = userInfo.username;
|
||||||
|
let dirPath = '/';
|
||||||
|
|
||||||
function getImageFileNameWithTimestamp() {
|
function getImageFileNameWithTimestamp() {
|
||||||
var d = Date.now();
|
var d = Date.now();
|
||||||
@@ -301,6 +283,7 @@ class MarkdownEditor extends React.Component {
|
|||||||
showEditFileTagDialog: false,
|
showEditFileTagDialog: false,
|
||||||
showAddRelatedFileDialog: false,
|
showAddRelatedFileDialog: false,
|
||||||
showMarkdownEditorDialog: false,
|
showMarkdownEditorDialog: false,
|
||||||
|
showShareLinkDialog: false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -310,6 +293,7 @@ class MarkdownEditor extends React.Component {
|
|||||||
showEditFileTagDialog: false,
|
showEditFileTagDialog: false,
|
||||||
showAddRelatedFileDialog: false,
|
showAddRelatedFileDialog: false,
|
||||||
showMarkdownEditorDialog: false,
|
showMarkdownEditorDialog: false,
|
||||||
|
showShareLinkDialog: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,6 +326,12 @@ class MarkdownEditor extends React.Component {
|
|||||||
showMarkdownEditorDialog: true,
|
showMarkdownEditorDialog: true,
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case 'share_link':
|
||||||
|
this.setState({
|
||||||
|
showMarkdownEditorDialog: true,
|
||||||
|
showShareLinkDialog: true,
|
||||||
|
});
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -438,10 +428,9 @@ class MarkdownEditor extends React.Component {
|
|||||||
fileTagList={this.state.fileTagList}
|
fileTagList={this.state.fileTagList}
|
||||||
/>
|
/>
|
||||||
{this.state.showMarkdownEditorDialog && (
|
{this.state.showMarkdownEditorDialog && (
|
||||||
|
<React.Fragment>
|
||||||
|
{this.state.showRelatedFileDialog &&
|
||||||
<ModalPortal>
|
<ModalPortal>
|
||||||
<Modal isOpen={true}>
|
|
||||||
{
|
|
||||||
this.state.showRelatedFileDialog &&
|
|
||||||
<ListRelatedFileDialog
|
<ListRelatedFileDialog
|
||||||
repoID={repoID}
|
repoID={repoID}
|
||||||
filePath={filePath}
|
filePath={filePath}
|
||||||
@@ -450,9 +439,10 @@ class MarkdownEditor extends React.Component {
|
|||||||
addRelatedFileToggle={this.addRelatedFileToggle}
|
addRelatedFileToggle={this.addRelatedFileToggle}
|
||||||
onRelatedFileChange={this.onRelatedFileChange}
|
onRelatedFileChange={this.onRelatedFileChange}
|
||||||
/>
|
/>
|
||||||
|
</ModalPortal>
|
||||||
}
|
}
|
||||||
{
|
{this.state.showEditFileTagDialog &&
|
||||||
this.state.showEditFileTagDialog &&
|
<ModalPortal>
|
||||||
<EditFileTagDialog
|
<EditFileTagDialog
|
||||||
repoID={repoID}
|
repoID={repoID}
|
||||||
filePath={filePath}
|
filePath={filePath}
|
||||||
@@ -460,9 +450,10 @@ class MarkdownEditor extends React.Component {
|
|||||||
toggleCancel={this.toggleCancel}
|
toggleCancel={this.toggleCancel}
|
||||||
onFileTagChanged={this.onFileTagChanged}
|
onFileTagChanged={this.onFileTagChanged}
|
||||||
/>
|
/>
|
||||||
|
</ModalPortal>
|
||||||
}
|
}
|
||||||
{
|
{this.state.showAddRelatedFileDialog &&
|
||||||
this.state.showAddRelatedFileDialog &&
|
<ModalPortal>
|
||||||
<AddRelatedFileDialog
|
<AddRelatedFileDialog
|
||||||
repoID={repoID}
|
repoID={repoID}
|
||||||
filePath={filePath}
|
filePath={filePath}
|
||||||
@@ -470,9 +461,22 @@ class MarkdownEditor extends React.Component {
|
|||||||
dirent={this.state.fileInfo}
|
dirent={this.state.fileInfo}
|
||||||
onRelatedFileChange={this.onRelatedFileChange}
|
onRelatedFileChange={this.onRelatedFileChange}
|
||||||
/>
|
/>
|
||||||
}
|
|
||||||
</Modal>
|
|
||||||
</ModalPortal>
|
</ModalPortal>
|
||||||
|
}
|
||||||
|
{this.state.showShareLinkDialog &&
|
||||||
|
<ModalPortal>
|
||||||
|
<ShareDialog
|
||||||
|
itemType="file"
|
||||||
|
itemName={this.state.fileInfo.name}
|
||||||
|
itemPath={filePath}
|
||||||
|
repoID={repoID}
|
||||||
|
toggleDialog={this.toggleCancel}
|
||||||
|
isGroupOwnedRepo={false}
|
||||||
|
repoEncrypted={false}
|
||||||
|
/>
|
||||||
|
</ModalPortal>
|
||||||
|
}
|
||||||
|
</React.Fragment>
|
||||||
)}
|
)}
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
);
|
);
|
||||||
|
@@ -23,7 +23,7 @@ export const contactEmail = window.app.pageOptions.contactEmail;
|
|||||||
export const username = window.app.pageOptions.username;
|
export const username = window.app.pageOptions.username;
|
||||||
export const canAddRepo = window.app.pageOptions.canAddRepo;
|
export const canAddRepo = window.app.pageOptions.canAddRepo;
|
||||||
export const canGenerateShareLink = window.app.pageOptions.canGenerateShareLink;
|
export const canGenerateShareLink = window.app.pageOptions.canGenerateShareLink;
|
||||||
export const canGenerateUploadLink = window.app.pageOptions.canGenerateUploadLink;
|
export const canGenerateUploadLink = window.app.pageOptions.canGenerateUploadLink ? true : false;
|
||||||
export const canViewOrg = window.app.pageOptions.canViewOrg === 'True';
|
export const canViewOrg = window.app.pageOptions.canViewOrg === 'True';
|
||||||
export const fileAuditEnabled = window.app.pageOptions.fileAuditEnabled ? true : false;
|
export const fileAuditEnabled = window.app.pageOptions.fileAuditEnabled ? true : false;
|
||||||
export const enableFileComment = window.app.pageOptions.enableFileComment ? true : false;
|
export const enableFileComment = window.app.pageOptions.enableFileComment ? true : false;
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
draftFilePath: '{{ draft_file_path }}',
|
draftFilePath: '{{ draft_file_path }}',
|
||||||
shareLinkExpireDaysMin: '{{ share_link_expire_days_min }}',
|
shareLinkExpireDaysMin: '{{ share_link_expire_days_min }}',
|
||||||
shareLinkExpireDaysMax: '{{ share_link_expire_days_max }}',
|
shareLinkExpireDaysMax: '{{ share_link_expire_days_max }}',
|
||||||
|
canGenerateShareLink: {% if user.permissions.can_generate_share_link %} true {% else %} false {% endif %},
|
||||||
},
|
},
|
||||||
userInfo: {
|
userInfo: {
|
||||||
username: '{{ user.username }}',
|
username: '{{ user.username }}',
|
||||||
|
Reference in New Issue
Block a user