1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-02 07:27:04 +00:00

custom modal header close icon (#7240)

* seahub custom modal header

* add custom modal header

* special modal use custom close
This commit is contained in:
Michael An
2024-12-24 11:20:40 +08:00
committed by GitHub
parent bbf567562e
commit 08abceb14b
147 changed files with 503 additions and 315 deletions

View File

@@ -357,6 +357,7 @@ module.exports = function (webpackEnv) {
.map(ext => `.${ext}`)
.filter(ext => useTypeScript || !ext.includes('ts')),
alias: {
'@': path.resolve(process.cwd(), 'src'),
// Support React Native Web
// https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
'react-native': 'react-native-web',

View File

@@ -0,0 +1,20 @@
import React from 'react';
import { ModalHeader } from 'reactstrap';
import '../../css/seahub-modal-header.css';
const SeahubModalHeader = ({ children, ...props }) => {
const customCloseBtn = (
<button type="button" className="close seahub-modal-close" data-dismiss="modal" aria-label="Close" onClick={props.toggle}>
<span className="seahub-modal-close-inner">
<i className="sf3-font sf3-font-x-01" aria-hidden="true"></i>
</span>
</button>
);
return (
<ModalHeader {...props} close={customCloseBtn}>
{children}
</ModalHeader>
);
};
export default SeahubModalHeader;

View File

@@ -1,9 +1,10 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Form, FormGroup, Label, Input, Modal, ModalHeader, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Button, Form, FormGroup, Label, Input, Modal, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
sharedToken: PropTypes.string.isRequired,
@@ -65,7 +66,7 @@ class AddAbuseReportDialog extends React.Component {
render() {
return (
<Modal isOpen={this.props.isAddAbuseReportDialogOpen} toggle={this.props.toggleAddAbuseReportDialog}>
<ModalHeader toggle={this.props.toggleAddAbuseReportDialog}>{gettext('Report Abuse')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleAddAbuseReportDialog}>{gettext('Report Abuse')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,6 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Label } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Input, Label } from 'reactstrap';
import SeahubModalHeader from '../common/seahub-modal-header';
import { gettext, isPro } from '../../utils/constants';
import wikiAPI from '../../utils/wiki-api';
import { Utils } from '../../utils/utils';
@@ -82,7 +83,7 @@ class AddWikiDialog extends React.Component {
render() {
return (
<Modal isOpen={true} autoFocus={false} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Add Wiki')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Add Wiki')}</SeahubModalHeader>
<ModalBody>
<Label>{gettext('Name')}</Label>
<Input onKeyDown={this.handleKeyDown} autoFocus={true} value={this.state.name} onChange={this.inputNewName}/>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap';
import { Button, Modal, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
wikiPageName: PropTypes.string,
@@ -54,7 +55,7 @@ class AddWikiPageDialog extends React.Component {
const { handleClose } = this.props;
return (
<Modal isOpen={true} toggle={handleClose} onOpened={this.onDialogLoad}>
<ModalHeader toggle={handleClose}>{gettext('New page')}</ModalHeader>
<SeahubModalHeader toggle={handleClose}>{gettext('New page')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalFooter, ModalBody } from 'reactstrap';
import { Button, Modal, ModalFooter, ModalBody } from 'reactstrap';
import { Utils } from '../../utils/utils';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
groupName: PropTypes.string.isRequired,
@@ -29,9 +30,9 @@ class ChangeGroupDialog extends React.Component {
const msg = gettext('Are you sure to change group {placeholder} to department ?').replace('{placeholder}', groupName);
return (
<Modal isOpen={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>
<SeahubModalHeader toggle={this.props.toggleDialog}>
{gettext('Change group to department')}
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
<p dangerouslySetInnerHTML={{ __html: msg }}></p>
</ModalBody>

View File

@@ -1,10 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { gettext, repoPasswordMinLength } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import { seafileAPI } from '../../utils/seafile-api';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repoID: PropTypes.string.isRequired,
@@ -100,9 +101,9 @@ class ChangeRepoPasswordDialog extends React.Component {
return (
<Modal isOpen={true} style={{ height: 'auto' }} toggle={toggleDialog}>
<ModalHeader toggle={toggleDialog}>
<SeahubModalHeader toggle={toggleDialog}>
<span dangerouslySetInnerHTML={{ __html: title }} className="d-flex mw-100"></span>
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
<form id="repo-change-passwd-form" action="" method="post">
<label htmlFor="passwd">{gettext('Old Password')}</label>

View File

@@ -1,12 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import CreatableSelect from 'react-select/creatable';
import { MenuSelectStyle } from '../common/select/seahub-select-style';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repoID: PropTypes.string.isRequired,
@@ -60,7 +61,7 @@ class CleanTrash extends React.Component {
const { formErrorMsg } = this.state;
return (
<Modal isOpen={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>{gettext('Clean')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{gettext('Clean')}</SeahubModalHeader>
<ModalBody>
<React.Fragment>
<p>{gettext('Clear files in trash and history')}</p>

View File

@@ -1,12 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
import { Modal, ModalBody } from 'reactstrap';
import dayjs from 'dayjs';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import Loading from '../loading';
import Icon from '../icon';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/commit-details.css';
@@ -47,7 +48,7 @@ class CommitDetails extends React.Component {
const { toggleDialog, commitTime } = this.props;
return (
<Modal isOpen={true} toggle={toggleDialog}>
<ModalHeader toggle={toggleDialog}>{gettext('Modification Details')}</ModalHeader>
<SeahubModalHeader toggle={toggleDialog}>{gettext('Modification Details')}</SeahubModalHeader>
<ModalBody>
<p className="repo-commit-time mb-6 d-flex align-items-center">
<Icon symbol="time" className="mr-1" />

View File

@@ -1,7 +1,8 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
title: PropTypes.string.isRequired,
@@ -26,7 +27,7 @@ class CommonOperationConfirmationDialog extends Component {
let { title, message, confirmBtnText } = this.props;
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{title}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{title}</SeahubModalHeader>
<ModalBody>
<p dangerouslySetInnerHTML={{ __html: message }}></p>
</ModalBody>

View File

@@ -1,7 +1,8 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
formActionURL: PropTypes.string.isRequired,
@@ -24,7 +25,7 @@ class ConfirmDeleteAccount extends Component {
const { formActionURL, csrfToken, toggle } = this.props;
return (
<Modal centered={true} isOpen={true} toggle={toggle}>
<ModalHeader toggle={toggle}>{gettext('Delete Account')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Delete Account')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('Really want to delete your account?')}</p>
<form ref={this.form} className="d-none" method="post" action={formActionURL}>

View File

@@ -1,7 +1,8 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
formActionURL: PropTypes.string.isRequired,
@@ -24,7 +25,7 @@ class ConfirmDisconnectDingtalk extends Component {
const { formActionURL, csrfToken, toggle } = this.props;
return (
<Modal centered={true} isOpen={true} toggle={toggle}>
<ModalHeader toggle={toggle}>{gettext('Disconnect')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Disconnect')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('Are you sure you want to disconnect?')}</p>
<form ref={this.form} className="d-none" method="post" action={formActionURL}>

View File

@@ -1,7 +1,8 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
formActionURL: PropTypes.string.isRequired,
@@ -24,7 +25,7 @@ class ConfirmDisconnectWechat extends Component {
const { formActionURL, csrfToken, toggle } = this.props;
return (
<Modal centered={true} isOpen={true} toggle={toggle}>
<ModalHeader toggle={toggle}>{gettext('Disconnect')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Disconnect')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('Are you sure you want to disconnect?')}</p>
<form ref={this.form} className="d-none" method="post" action={formActionURL}>

View File

@@ -1,7 +1,8 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
formActionURL: PropTypes.string.isRequired,
@@ -24,7 +25,7 @@ class ConfirmDisconnectWeixin extends Component {
const { formActionURL, csrfToken, toggle } = this.props;
return (
<Modal centered={true} isOpen={true} toggle={toggle}>
<ModalHeader toggle={toggle}>{gettext('Disconnect')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Disconnect')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('Are you sure you want to disconnect?')}</p>
<form ref={this.form} className="d-none" method="post" action={formActionURL}>

View File

@@ -1,7 +1,8 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
restoreRepo: PropTypes.func.isRequired,
@@ -28,7 +29,7 @@ class ConfirmRestoreRepo extends Component {
const { toggle } = this.props;
return (
<Modal centered={true} isOpen={true} toggle={toggle}>
<ModalHeader toggle={toggle}>{gettext('Restore Library')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Restore Library')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('Are you sure you want to restore this library?')}</p>
</ModalBody>

View File

@@ -1,7 +1,8 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button, FormGroup, Label, Input } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button, FormGroup, Label, Input } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
executeOperation: PropTypes.func.isRequired,
@@ -35,7 +36,7 @@ class ConfirmUnlinkDevice extends Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Unlink device')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Unlink device')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('Are you sure you want to unlink this device?')}</p>
<FormGroup check>

View File

@@ -1,11 +1,12 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Label } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Input, Label } from 'reactstrap';
import { gettext, isPro } from '../../utils/constants';
import wikiAPI from '../../utils/wiki-api';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
import { SeahubSelect } from '../common/select';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggleCancel: PropTypes.func.isRequired,
@@ -78,7 +79,7 @@ class ConvertWikiDialog extends React.Component {
render() {
return (
<Modal isOpen={true} autoFocus={false} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Convert Wiki')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Convert Wiki')}</SeahubModalHeader>
<ModalBody>
<Label>{gettext('Name')}</Label>
<Input onKeyDown={this.handleKeyDown} autoFocus={true} value={this.state.name} onChange={this.inputNewName}/>

View File

@@ -1,7 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
import { Modal, ModalBody } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/copy-move-dirent-progress-dialog.css';
const propTypes = {
@@ -24,7 +26,7 @@ class CopyMoveDirentProgressDialog extends React.Component {
};
return (
<Modal isOpen={true} toggle={this.props.toggleDialog} className="copy-move-dirent-progress-dialog">
<ModalHeader toggle={this.props.toggleDialog}>{title}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{title}</SeahubModalHeader>
<ModalBody>
<div className="progress">
<div

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap';
import { Button, Modal, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap';
import { gettext, maxFileName } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
onCreateRepo: PropTypes.func.isRequired,
@@ -74,7 +75,7 @@ class CreateDepartmentRepoDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle} autoFocus={false}>
<ModalHeader toggle={this.toggle}>{gettext('New Department Library')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('New Department Library')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap';
import { Button, Modal, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { Utils, validateName } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
fileType: PropTypes.string,
@@ -88,7 +89,7 @@ class CreateFile extends React.Component {
const { toggleDialog } = this.props;
return (
<Modal isOpen={true} toggle={toggleDialog} onOpened={this.onAfterModelOpened}>
<ModalHeader toggle={toggleDialog}>{gettext('New File')}</ModalHeader>
<SeahubModalHeader toggle={toggleDialog}>{gettext('New File')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap';
import { Button, Modal, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { Utils, validateName } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
fileType: PropTypes.string,
@@ -76,7 +77,7 @@ class CreateForder extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle} autoFocus={false}>
<ModalHeader toggle={this.toggle}>{gettext('New Folder')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('New Folder')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -2,8 +2,9 @@ import React from 'react';
import PropTypes from 'prop-types';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Modal, ModalHeader, ModalBody, ModalFooter, Input, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Input, Button } from 'reactstrap';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
class CreateGroupDialog extends React.Component {
@@ -65,7 +66,7 @@ class CreateGroupDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.props.toggleDialog} autoFocus={false}>
<ModalHeader toggle={this.props.toggleDialog}>{gettext('New Group')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{gettext('New Group')}</SeahubModalHeader>
<ModalBody>
<label htmlFor="groupName">{gettext('Name')}</label>
<Input

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap';
import { Button, Modal, Input, ModalBody, ModalFooter, Form, FormGroup, Label, Alert } from 'reactstrap';
import { gettext, enableEncryptedLibrary, repoPasswordMinLength, storages, libraryTemplates } from '../../utils/constants';
import { SeahubSelect } from '../common/select';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
libraryType: PropTypes.string.isRequired,
@@ -181,7 +182,7 @@ class CreateRepoDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle} autoFocus={false}>
<ModalHeader toggle={this.toggle}>{gettext('New Library')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('New Library')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,10 +1,11 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { Button, ModalHeader, ModalBody, ModalFooter, Input } from 'reactstrap';
import { Button, ModalBody, ModalFooter, Input } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { TAG_COLORS } from '../../constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repoID: PropTypes.string.isRequired,
@@ -69,10 +70,10 @@ class CreateTagDialog extends React.Component {
let canSave = this.state.tagName.trim() ? true : false;
return (
<Fragment>
<ModalHeader toggle={this.props.onClose}>
<SeahubModalHeader toggle={this.props.onClose}>
<span className="tag-dialog-back sf3-font sf3-font-arrow rotate-180 d-inline-block" onClick={this.props.toggleCancel} aria-label={gettext('Back')}></span>
{gettext('New Tag')}
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
<div role="form" className="tag-create">
<div className="form-group">

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { gettext } from '../../utils/constants';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
currentNode: PropTypes.object.isRequired,
@@ -24,7 +25,7 @@ class Delete extends React.Component {
}
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{title}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{title}</SeahubModalHeader>
<ModalBody>
<p>{gettext('Are you sure you want to delete')}{' '}<b>{name}</b> ?</p>
</ModalBody>

View File

@@ -1,9 +1,10 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { seafileAPI } from '../../utils/seafile-api';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repoID: PropTypes.string.isRequired,
@@ -53,7 +54,7 @@ class DeleteFolderDialog extends Component {
return (
<Modal isOpen={true} toggle={toggleDialog}>
<ModalHeader toggle={toggleDialog}>{gettext('Delete Folder')}</ModalHeader>
<SeahubModalHeader toggle={toggleDialog}>{gettext('Delete Folder')}</SeahubModalHeader>
<ModalBody>
<p dangerouslySetInnerHTML={{ __html: message }}></p>
{alert_message && <p className="error">{alert_message}</p>}

View File

@@ -1,9 +1,10 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { seafileAPI } from '../../utils/seafile-api';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repo: PropTypes.object.isRequired,
@@ -63,7 +64,7 @@ class DeleteRepoDialog extends Component {
return (
<Modal isOpen={true} toggle={toggleDialog}>
<ModalHeader toggle={toggleDialog}>{gettext('Delete Library')}</ModalHeader>
<SeahubModalHeader toggle={toggleDialog}>{gettext('Delete Library')}</SeahubModalHeader>
<ModalBody>
<p dangerouslySetInnerHTML={{ __html: message }}></p>
{ alert_message != '' && <p className="error" dangerouslySetInnerHTML={{ __html: alert_message }}></p>}

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { gettext } from '../../utils/constants';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggleCancel: PropTypes.func.isRequired,
@@ -14,7 +15,7 @@ const propTypes = {
function DeleteWikiDialog({ handleSubmit, toggleCancel, title, content, footer }) {
return (
<Modal isOpen={true} toggle={toggleCancel}>
<ModalHeader toggle={toggleCancel}>{title}</ModalHeader>
<SeahubModalHeader toggle={toggleCancel}>{title}</SeahubModalHeader>
<ModalBody>{content}</ModalBody>
<ModalFooter>
<Button color="secondary" onClick={toggleCancel}>{gettext('Cancel')}</Button>

View File

@@ -1,10 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
class DismissGroupDialog extends React.Component {
@@ -25,7 +26,7 @@ class DismissGroupDialog extends React.Component {
render() {
return (
<Modal isOpen={this.props.showDismissGroupDialog} toggle={this.props.toggleDismissGroupDialog}>
<ModalHeader>{gettext('Delete Group')}</ModalHeader>
<SeahubModalHeader>{gettext('Delete Group')}</SeahubModalHeader>
<ModalBody>
<span>{gettext('Really want to delete this group?')}</span>
</ModalBody>

View File

@@ -1,11 +1,13 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import CreateTagDialog from './create-tag-dialog';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
require('../../css/repo-tag.css');
const TagItemPropTypes = {
@@ -116,7 +118,7 @@ class TagList extends React.Component {
const { repoTags } = this.props;
return (
<Fragment>
<ModalHeader toggle={this.props.toggleCancel}>{gettext('Select Tags')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleCancel}>{gettext('Select Tags')}</SeahubModalHeader>
<ModalBody className="px-0">
<ul className="tag-list tag-list-container">
{repoTags.map((repoTag) => {

View File

@@ -1,11 +1,12 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Modal, ModalBody, ModalFooter } from 'reactstrap';
import CreatableSelect from 'react-select/creatable';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repoID: PropTypes.string.isRequired,
@@ -58,7 +59,7 @@ class UpdateRepoCommitLabels extends React.Component {
const { formErrorMsg } = this.state;
return (
<Modal isOpen={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>{gettext('Edit labels')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{gettext('Edit labels')}</SeahubModalHeader>
<ModalBody>
<React.Fragment>
<CreatableSelect

View File

@@ -1,13 +1,14 @@
import React from 'react';
import PropTypes from 'prop-types';
import dayjs from 'dayjs';
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
import { Modal, ModalBody } from 'reactstrap';
import { Utils } from '../../utils/utils';
import { gettext, siteRoot } from '../../utils/constants';
import { fileAccessLogAPI } from '../../utils/file-access-log-api';
import toaster from '../toast';
import Loading from '../loading';
import EmptyTip from '../empty-tip';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/file-access-log.css';
@@ -88,9 +89,9 @@ class FileAccessLog extends React.Component {
return (
<Modal isOpen={true} toggle={this.props.toggleDialog} className="file-access-log-container">
<ModalHeader toggle={this.props.toggleDialog}>
<SeahubModalHeader toggle={this.props.toggleDialog}>
<span dangerouslySetInnerHTML={{ __html: title }} className="d-flex mw-100"></span>
</ModalHeader>
</SeahubModalHeader>
<ModalBody className="file-access-log-content-container" onScroll={this.handleScroll}>
{isLoading ? <Loading /> : (
<>

View File

@@ -1,10 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
import { Modal, ModalBody } from 'reactstrap';
import { Utils } from '../../utils/utils';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import Loading from '../loading';
const propTypes = {
@@ -82,7 +83,7 @@ class GroupMembers extends React.Component {
}
return (
<Modal isOpen={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>{`${gettext('Group members')} (${memberNumber})`}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{`${gettext('Group members')} (${memberNumber})`}</SeahubModalHeader>
<ModalBody className="px-0 group-members-container" onScroll={this.handleScroll}>
{isLoading ? <Loading /> : (
<>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import Loading from '../loading';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
importDepartmentDialogToggle: PropTypes.func.isRequired,
@@ -33,9 +34,9 @@ class ImportDingtalkDepartmentDialog extends React.Component {
const { departmentsCount, membersCount, departmentName } = this.props;
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>
<SeahubModalHeader toggle={this.toggle}>
<span>{'导入部门 '}</span><span className="op-target" title={departmentName}>{departmentName}</span>
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
<p>{'将要导入 '}<strong>{departmentsCount}</strong>{' '}<strong>{membersCount}</strong>{' '}</p>
{this.state.isLoading && <Loading/>}

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Alert, Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Alert, Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext, siteRoot, groupImportMembersExtraMsg } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggleImportMembersDialog: PropTypes.func.isRequired,
@@ -47,7 +48,7 @@ class ImportMembersDialog extends React.Component {
let { errorMsg } = this.state;
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Import members from a .xlsx file')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Import members from a .xlsx file')}</SeahubModalHeader>
<ModalBody>
<p>{groupImportMembersExtraMsg}</p>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import Loading from '../loading';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
importDepartmentDialogToggle: PropTypes.func.isRequired,
@@ -33,9 +34,9 @@ class ImportWorkWeixinDepartmentDialog extends React.Component {
const { departmentsCount, membersCount, departmentName } = this.props;
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>
<SeahubModalHeader toggle={this.toggle}>
<span>{'导入部门 '}</span><span className="op-target" title={departmentName}>{departmentName}</span>
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
<p>{'将要导入 '}<strong>{departmentsCount}</strong>{' '}<strong>{membersCount}</strong>{' '}</p>
{this.state.isLoading && <Loading/>}

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext } from '../../utils/constants';
import FileChooser from '../file-chooser';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repoID: PropTypes.string.isRequired,
@@ -52,7 +53,7 @@ class InsertFileDialog extends React.Component {
const toggle = this.props.toggleCancel;
return (
<Modal isOpen={true} toggle={toggle}>
<ModalHeader toggle={toggle}>{gettext('Select File')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Select File')}</SeahubModalHeader>
<ModalBody>
<FileChooser
isShowFile={true}

View File

@@ -1,9 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import FileChooser from '../file-chooser';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/insert-repo-image-dialog.css';
const { siteRoot, serviceUrl } = window.app.config;
@@ -54,7 +56,7 @@ class InsertRepoImageDialog extends React.Component {
}
return (
<Modal isOpen={true} toggle={toggle} size='lg'>
<ModalHeader toggle={toggle}>{gettext('Select Image')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Select Image')}</SeahubModalHeader>
<ModalBody>
<div className="d-flex">
<div className="col-6">

View File

@@ -1,11 +1,12 @@
import React, { Fragment } from 'react';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import PropTypes from 'prop-types';
import toaster from '../toast';
import copy from '../copy-to-clipboard';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
path: PropTypes.string.isRequired,
@@ -64,7 +65,7 @@ class InternalLinkDialog extends React.Component {
return (
<Fragment>
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Internal Link')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Internal Link')}</SeahubModalHeader>
<ModalBody>
<p className="tip mb-1">{tipMessage}</p>
<p>

View File

@@ -1,11 +1,12 @@
import React from 'react';
import PropTypes from 'prop-types';
import { gettext } from '../../utils/constants';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import Loading from '../loading';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
accepter: PropTypes.string.isRequired,
@@ -48,7 +49,7 @@ class InvitationRevokeDialog extends React.Component {
return (
<Modal isOpen={true} toggle={toggleDialog}>
<ModalHeader toggle={toggleDialog}>{gettext('Revoke Access')}</ModalHeader>
<SeahubModalHeader toggle={toggleDialog}>{gettext('Revoke Access')}</SeahubModalHeader>
<ModalBody>
<p dangerouslySetInnerHTML={{ __html: content }}></p>
</ModalBody>

View File

@@ -3,9 +3,10 @@ import PropTypes from 'prop-types';
import { Utils } from '../../utils/utils';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Modal, ModalHeader, ModalBody, ModalFooter, Input, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Input, Button } from 'reactstrap';
import toaster from '../toast';
import Loading from '../loading';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const InvitePeopleDialogPropTypes = {
onInvitePeople: PropTypes.func.isRequired,
@@ -104,7 +105,7 @@ class InvitePeopleDialog extends React.Component {
const { isSubmitting } = this.state;
return (
<Modal isOpen={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>{gettext('Invite Guest')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{gettext('Invite Guest')}</SeahubModalHeader>
<ModalBody>
<label htmlFor="emails">{gettext('Emails')}</label>
<Input

View File

@@ -1,12 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Modal, ModalBody, ModalFooter } from 'reactstrap';
import CreatableSelect from 'react-select/creatable';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import Loading from '../loading';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repoID: PropTypes.string.isRequired,
@@ -79,7 +80,7 @@ class LabelRepoStateDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>{gettext('Label Current State')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{gettext('Label Current State')}</SeahubModalHeader>
<ModalBody>
<Content data={this.state} handleChange={this.handleInputChange} />
</ModalBody>

View File

@@ -1,10 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext, username } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
class LeaveGroupDialog extends React.Component {
@@ -24,7 +25,7 @@ class LeaveGroupDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.props.toggleLeaveGroupDialog}>
<ModalHeader toggle={this.props.toggleLeaveGroupDialog}>{gettext('Leave Group')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleLeaveGroupDialog}>{gettext('Leave Group')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('Really want to leave this group?')}</p>
</ModalBody>

View File

@@ -1,6 +1,6 @@
import React, { Fragment, useCallback, useState } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
import { Modal, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
import { gettext, enableRepoAutoDel } from '../../utils/constants';
import LibHistorySettingPanel from './lib-settings/lib-history-setting-panel';
import LibAutoDelSettingPanel from './lib-settings/lib-old-files-auto-del-setting-panel';
@@ -11,6 +11,7 @@ import {
MetadataOCRStatusManagementDialog as LibMetadataOCRStatusSettingPanel,
useMetadata
} from '../../metadata';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import { useMetadataStatus } from '../../hooks';
import '../../css/lib-settings.css';
@@ -55,9 +56,9 @@ const LibSettingsDialog = ({ repoID, currentRepoInfo, toggleDialog, tab }) => {
return (
<div>
<Modal isOpen={true} className="lib-settings-dialog" toggle={toggleDialog}>
<ModalHeader toggle={toggleDialog}>
<SeahubModalHeader toggle={toggleDialog}>
{gettext('Settings')}
</ModalHeader>
</SeahubModalHeader>
<ModalBody className="d-md-flex p-md-0" role="tablist">
<Fragment>
<div className="lib-setting-nav p-4">

View File

@@ -1,10 +1,12 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
import { Modal, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import LibSubFolderSetUserPermissionDialog from './lib-sub-folder-set-user-permission-dialog';
import LibSubFolderSetGroupPermissionDialog from './lib-sub-folder-set-group-permission-dialog';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/share-link-dialog.css';
import '../../css/sub-folder-permission.css';
@@ -91,9 +93,9 @@ class LibSubFolderPermissionDialog extends React.Component {
return (
<div>
<Modal isOpen={true} style={{ maxWidth: '980px' }} className="share-dialog" toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>
<SeahubModalHeader toggle={this.props.toggleDialog}>
<span dangerouslySetInnerHTML={{ __html: title }} className="d-flex mw-100"></span>
</ModalHeader>
</SeahubModalHeader>
<ModalBody className="dialog-list-container share-dialog-content" role="tablist">
{this.renderContent()}
</ModalBody>

View File

@@ -2,9 +2,10 @@ import React from 'react';
import PropTypes from 'prop-types';
import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Table } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Table } from 'reactstrap';
import { gettext, siteRoot } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
activity: PropTypes.object.isRequired,
@@ -23,7 +24,7 @@ class ListCreatedFileDialog extends React.Component {
let activity = this.props.activity;
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Created Files')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Created Files')}</SeahubModalHeader>
<ModalBody>
<Table>
<thead>

View File

@@ -1,11 +1,12 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import dayjs from 'dayjs';
import { gettext, siteRoot } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repoID: PropTypes.string.isRequired,
@@ -76,7 +77,7 @@ class ListTaggedFilesDialog extends React.Component {
let taggedFileList = this.state.taggedFileList;
return (
<Modal isOpen={true} style={{ maxWidth: '678px' }}>
<ModalHeader toggle={this.props.onClose}>{gettext('Tagged Files')}</ModalHeader>
<SeahubModalHeader toggle={this.props.onClose}>{gettext('Tagged Files')}</SeahubModalHeader>
<ModalBody className="dialog-list-container">
<table>
<thead>

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
import { Modal, ModalBody } from 'reactstrap';
import { gettext } from '../../utils/constants';
import ListAndAddGroupMembers from '../list-and-add-group-members';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/manage-members-dialog.css';
@@ -18,7 +19,7 @@ class ManageMembersDialog extends React.Component {
const { groupID, isOwner, toggleManageMembersDialog: toggle } = this.props;
return (
<Modal isOpen={true} toggle={toggle} className="group-manage-members-dialog">
<ModalHeader toggle={toggle}>{gettext('Manage group members')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Manage group members')}</SeahubModalHeader>
<ModalBody className="pb-0">
<ListAndAddGroupMembers
groupID={groupID}

View File

@@ -1,7 +1,8 @@
import React, { useCallback, useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
import { Modal, ModalBody } from 'reactstrap';
import { gettext, trashReposExpireDays } from '../../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import { seafileAPI } from '../../../utils/seafile-api';
import { Utils } from '../../../utils/utils';
import toaster from '../../toast';
@@ -35,7 +36,7 @@ const MyDeletedReposDialog = ({ toggleDialog }) => {
return (
<Modal isOpen={true} toggle={toggleDialog} className="my-deleted-repos-dialog">
<ModalHeader toggle={toggleDialog}>{gettext('Deleted Libraries')}</ModalHeader>
<SeahubModalHeader toggle={toggleDialog}>{gettext('Deleted Libraries')}</SeahubModalHeader>
<ModalBody className="my-deleted-repos-container">
{isLoading ? (
<Loading />

View File

@@ -1,12 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { gettext, orgID } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
import UserSelect from '../user-select';
import { orgAdminAPI } from '../../utils/org-admin-api';
import OrgUserInfo from '../../models/org-user';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -50,7 +51,7 @@ class AddOrgAdminDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Add Admins')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Add Admins')}</SeahubModalHeader>
<ModalBody>
<UserSelect
ref="userSelect"

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap';
import { gettext, orgID } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
groupID: PropTypes.string,
@@ -66,7 +67,7 @@ class AddDepartmentDialog extends React.Component {
let header = this.props.parentGroupID ? gettext('New Sub-department') : gettext('New Department');
return (
<Modal isOpen={true} toggle={this.props.toggle} autoFocus={false}>
<ModalHeader toggle={this.props.toggle}>{header}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{header}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,11 +1,12 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { gettext, orgID } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
import UserSelect from '../user-select';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -51,7 +52,7 @@ class AddMemberDialog extends React.Component {
const { errMessage } = this.state;
return (
<Modal isOpen={true} toggle={this.props.toggle}>
<ModalHeader toggle={this.props.toggle}>{gettext('Add Member')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('Add Member')}</SeahubModalHeader>
<ModalBody>
<UserSelect
placeholder={gettext('Search users')}

View File

@@ -1,9 +1,10 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label, Alert } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Input, Form, FormGroup, Label, Alert } from 'reactstrap';
import { gettext, orgID } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -62,7 +63,7 @@ class AddRepoDialog extends React.Component {
const { errMessage } = this.state;
return (
<Modal isOpen={true} toggle={this.props.toggle} autoFocus={false}>
<ModalHeader toggle={this.props.toggle}>{gettext('New Library')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('New Library')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, Input, ModalHeader, ModalBody, ModalFooter, Label, Form, InputGroup, InputGroupAddon, FormGroup } from 'reactstrap';
import { Button, Modal, Input, ModalBody, ModalFooter, Label, Form, InputGroup, InputGroupAddon, FormGroup } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -130,7 +131,7 @@ class AddOrgUserDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Add User')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Add User')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, Input, ModalHeader, ModalBody, ModalFooter, Label, Form, FormGroup } from 'reactstrap';
import { Button, Modal, Input, ModalBody, ModalFooter, Label, Form, FormGroup } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -58,7 +59,7 @@ class OrgAdminInviteUserDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Invite users')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Invite users')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('You can enter multiple emails. An invitation link will be sent to each of them.')}</p>
<Form>

View File

@@ -1,9 +1,10 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext } from '../../utils/constants';
import toaster from '../toast';
import copy from '../copy-to-clipboard';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -28,7 +29,7 @@ class OrgAdminInviteUserViaWeiXinDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.props.toggle}>
<ModalHeader toggle={this.props.toggle}>{'通过微信邀请用户'}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{'通过微信邀请用户'}</SeahubModalHeader>
<ModalBody>
<p>{'请将邀请链接发送给其他人,这样他们就可以通过扫描链接里的二维码来加入组织。'}</p>
<p>{this.props.invitationLink}</p>

View File

@@ -1,6 +1,6 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, FormGroup, Label, Input, Alert } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, FormGroup, Label, Input, Alert } from 'reactstrap';
import dayjs from 'dayjs';
import { gettext, siteRoot, orgID } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
@@ -8,6 +8,7 @@ import { userAPI } from '../../utils/user-api';
import toaster from '../../components/toast';
import { Utils } from '../../utils/utils';
import SeahubIODialog from '../dialog/seahub-io-dialog';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
class OrgLogsExportExcelDialog extends React.Component {
@@ -146,7 +147,7 @@ class OrgLogsExportExcelDialog extends React.Component {
<React.Fragment>
{!this.state.isShowIODialog &&
<Modal isOpen={true} toggle={this.props.toggle} autoFocus={false}>
<ModalHeader toggle={this.props.toggle}>{gettext('Choose date')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('Choose date')}</SeahubModalHeader>
<ModalBody>
<FormGroup>
<Label>{gettext('Start date')}</Label>

View File

@@ -1,10 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext, orgID } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
import toaster from '../../components/toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
groupName: PropTypes.string,
@@ -35,7 +36,7 @@ class DeleteDepartDialog extends React.Component {
subtitle = subtitle.replace('{placeholder}', '<span class="op-target">' + Utils.HTMLescape(this.props.groupName) + '</span>');
return (
<Modal isOpen={true} toggle={this.props.toggle}>
<ModalHeader toggle={this.props.toggle}>{gettext('Delete Department')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('Delete Department')}</SeahubModalHeader>
<ModalBody>
<p dangerouslySetInnerHTML={{ __html: subtitle }}></p>
</ModalBody>

View File

@@ -1,10 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext, orgID } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
member: PropTypes.object.isRequired,
@@ -37,7 +38,7 @@ class DeleteMemberDialog extends React.Component {
subtitle = subtitle.replace('{placeholder}', '<span class="op-target">' + Utils.HTMLescape(this.props.member.name) + '</span>');
return (
<Modal isOpen={true} toggle={this.props.toggle}>
<ModalHeader toggle={this.props.toggle}>{gettext('Delete Member')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('Delete Member')}</SeahubModalHeader>
<ModalBody>
<div dangerouslySetInnerHTML={{ __html: subtitle }}></div>
</ModalBody>

View File

@@ -1,9 +1,10 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext, orgID } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import toaster from '../toast';
class DeleteRepoDialog extends React.Component {
@@ -30,7 +31,7 @@ class DeleteRepoDialog extends React.Component {
subtitle = subtitle.replace('{placeholder}', '<span class="op-target">' + Utils.HTMLescape(this.props.repo.name) + '</span>');
return (
<Modal isOpen={true} toggle={this.props.toggle}>
<ModalHeader toggle={this.props.toggle}>{gettext('Delete Library')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('Delete Library')}</SeahubModalHeader>
<ModalBody>
<div dangerouslySetInnerHTML={{ __html: subtitle }}></div>
</ModalBody>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Alert, Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Alert, Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext, siteRoot } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -47,7 +48,7 @@ class ImportOrgUsersDialog extends React.Component {
let { errorMsg } = this.state;
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Import users from a .xlsx file')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Import users from a .xlsx file')}</SeahubModalHeader>
<ModalBody>
<p><a className="text-secondary small" href={`${siteRoot}useradmin/batchadduser/example/`}>{gettext('Download an example file')}</a></p>
<button className="btn btn-outline-primary" onClick={this.openFileInput}>{gettext('Upload file')}</button>

View File

@@ -1,6 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
import { Modal, ModalBody } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { gettext } from '../../utils/constants';
import { Utils } from '../../utils/utils';
@@ -119,9 +120,9 @@ class FileUpdateDetailDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.props.toggleCancel}>
<ModalHeader toggle={this.props.toggleCancel}>
<SeahubModalHeader toggle={this.props.toggleCancel}>
{gettext('Modification Details')}
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
{this.renderContent()}
</ModalBody>

View File

@@ -1,6 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import { gettext } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
@@ -80,7 +81,7 @@ class RenameDepartmentDialog extends React.Component {
let header = gettext('Rename Department');
return (
<Modal isOpen={true} toggle={this.props.toggle} onOpened={this.onAfterModelOpened}>
<ModalHeader toggle={this.props.toggle}>{header}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{header}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, InputGroupAddon, InputGroup } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Input, InputGroupAddon, InputGroup } from 'reactstrap';
import { gettext, orgID } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
@@ -56,7 +57,7 @@ class SetGroupQuotaDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.props.toggle} autoFocus={false}>
<ModalHeader toggle={this.props.toggle}>{gettext('Set Quota')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('Set Quota')}</SeahubModalHeader>
<ModalBody>
<InputGroup>
<Input

View File

@@ -2,7 +2,8 @@ import React from 'react';
import PropTypes from 'prop-types';
import copy from 'copy-to-clipboard';
import { gettext, serviceURL } from '../../utils/constants';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Alert, InputGroup, InputGroupText } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import { Button, Modal, ModalBody, ModalFooter, Alert, InputGroup, InputGroupText } from 'reactstrap';
import toaster from '../toast';
import wikiAPI from '../../utils/wiki-api';
@@ -104,7 +105,7 @@ class PublishWikiDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Publish Wiki')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Publish Wiki')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('Customize URL')}</p>
<InputGroup className="publish-wiki-custom-url-inputs">

View File

@@ -1,6 +1,7 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import { gettext } from '../../utils/constants';
const propTypes = {
@@ -30,7 +31,7 @@ class RemoveWebdavPassword extends Component {
return (
<Modal centered={true} isOpen={true} toggle={toggle}>
<ModalHeader toggle={toggle}>{gettext('Delete WebDAV Password')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Delete WebDAV Password')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('Are you sure you want to delete WebDAV password?')}</p>
</ModalBody>

View File

@@ -2,7 +2,8 @@ import React from 'react';
import PropTypes from 'prop-types';
import { gettext } from '../../utils/constants';
import { Utils, validateName } from '../../utils/utils';
import { Button, Modal, ModalHeader, Input, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Button, Modal, Input, ModalBody, ModalFooter, Alert } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
currentNode: PropTypes.object,
@@ -95,7 +96,7 @@ class Rename extends React.Component {
let type = this.props.currentNode.object.type;
return (
<Modal isOpen={true} toggle={this.toggle} onOpened={this.onAfterModelOpened}>
<ModalHeader toggle={this.toggle}>{type === 'file' ? gettext('Rename File') : gettext('Rename Folder') }</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{type === 'file' ? gettext('Rename File') : gettext('Rename Folder') }</SeahubModalHeader>
<ModalBody>
<p>{type === 'file' ? gettext('New file name') : gettext('New folder name')}</p>
<Input onKeyDown={this.handleKeyDown} innerRef={this.newInput} placeholder="newName" value={this.state.newName} onChange={this.handleChange} />

View File

@@ -2,7 +2,8 @@ import React from 'react';
import PropTypes from 'prop-types';
import { gettext } from '../../utils/constants';
import { Utils, validateName } from '../../utils/utils';
import { Button, Modal, ModalHeader, Input, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Button, Modal, Input, ModalBody, ModalFooter, Alert } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
onRename: PropTypes.func.isRequired,
@@ -98,7 +99,7 @@ class Rename extends React.Component {
let type = this.props.dirent.type;
return (
<Modal isOpen={true} toggle={this.toggle} onOpened={this.onAfterModelOpened}>
<ModalHeader toggle={this.toggle}>{type === 'file' ? gettext('Rename File') : gettext('Rename Folder') }</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{type === 'file' ? gettext('Rename File') : gettext('Rename Folder') }</SeahubModalHeader>
<ModalBody>
<p>{type === 'file' ? gettext('New file name') : gettext('New folder name')}</p>
<Input onKeyDown={this.handleKeyDown} innerRef={this.newInput} value={this.state.newName} onChange={this.handleChange} />

View File

@@ -3,7 +3,8 @@ import PropTypes from 'prop-types';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import { Modal, ModalHeader, ModalBody, ModalFooter, Input, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Input, Button } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import toaster from '../toast';
class RenameGroupDialog extends React.Component {
@@ -56,7 +57,7 @@ class RenameGroupDialog extends React.Component {
render() {
return (
<Modal isOpen={this.props.showRenameGroupDialog} toggle={this.props.toggleRenameGroupDialog}>
<ModalHeader>{gettext('Rename Group')}</ModalHeader>
<SeahubModalHeader>{gettext('Rename Group')}</SeahubModalHeader>
<ModalBody>
<label htmlFor="newGroupName">{gettext('Rename group to')}</label>
<Input type="text" id="newGroupName" value={this.state.newGroupName}

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { gettext } from '../../utils/constants';
import { Button, Modal, ModalHeader, Input, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Button, Modal, Input, ModalBody, ModalFooter, Alert } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
wiki: PropTypes.object,
@@ -67,7 +68,7 @@ class RenameWikiDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Rename Wiki')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Rename Wiki')}</SeahubModalHeader>
<ModalBody>
<p>{gettext('New Wiki name')}</p>
<Input

View File

@@ -1,7 +1,7 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { gettext } from '../../utils/constants';
import { Modal, ModalHeader, ModalBody, Button, Input } from 'reactstrap';
import { Modal, ModalBody, Button, Input } from 'reactstrap';
import RepoAPITokenPermissionEditor from '../select-editor/repo-api-token-permission-editor';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
@@ -9,6 +9,7 @@ import toaster from '../toast';
import copy from 'copy-to-clipboard';
import Loading from '../loading';
import OpIcon from '../op-icon';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const apiTokenItemPropTypes = {
item: PropTypes.object.isRequired,
@@ -288,9 +289,9 @@ class RepoAPITokenDialog extends React.Component {
isOpen={true} style={{ maxWidth: '800px' }}
toggle={this.props.onRepoAPITokenToggle}
>
<ModalHeader toggle={this.props.onRepoAPITokenToggle}>
<SeahubModalHeader toggle={this.props.onRepoAPITokenToggle}>
<span dangerouslySetInnerHTML={{ __html: title }} className="d-flex mw-100"></span>
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
<div className="o-auto">
{this.renderContent()}

View File

@@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import dayjs from 'dayjs';
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
import { Modal, ModalBody } from 'reactstrap';
import { Utils } from '../../utils/utils';
import { gettext, siteRoot, enableRepoSnapshotLabel as showLabel } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
@@ -10,6 +10,7 @@ import Paginator from '../../components/paginator';
import ModalPortal from '../../components/modal-portal';
import CommitDetails from '../../components/dialog/commit-details';
import UpdateRepoCommitLabels from '../../components/dialog/edit-repo-commit-labels';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/repo-history.css';
@@ -72,9 +73,9 @@ class RepoHistory extends React.Component {
return (
<Modal isOpen={true} toggle={toggleDialog} size='xl' id="repo-history-dialog">
<ModalHeader toggle={toggleDialog}>
<SeahubModalHeader toggle={toggleDialog}>
<span dangerouslySetInnerHTML={{ __html: title }} className="d-flex mw-100"></span>
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
{userPerm == 'rw' && <p className="repo-snapshot-tip">{gettext('Tip: a snapshot will be generated after modification, which records the library state after the modification.')}</p>}
<Content

View File

@@ -1,12 +1,13 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
import { Modal, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
import { gettext, canGenerateShareLink, canGenerateUploadLink } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import RepoShareAdminShareLinks from './repo-share-admin/share-links';
import RepoShareAdminUploadLinks from './repo-share-admin/upload-links';
import RepoShareAdminUserShares from './repo-share-admin/user-shares';
import RepoShareAdminGroupShares from './repo-share-admin/group-shares';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/repo-share-admin.css';
@@ -56,9 +57,9 @@ class RepoShareAdminDialog extends React.Component {
return (
<div>
<Modal isOpen={true} className="repo-share-admin-container share-dialog" toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>
<SeahubModalHeader toggle={this.props.toggleDialog}>
<span dangerouslySetInnerHTML={{ __html: title }} className="d-flex mw-100"></span>
</ModalHeader>
</SeahubModalHeader>
<ModalBody className="repo-share-admin-content-container share-dialog-content" role="tablist">
<Fragment>
<div className="share-dialog-side">

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
import { Modal, ModalBody } from 'reactstrap';
import { gettext, contactEmail } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repoID: PropTypes.string.isRequired,
@@ -43,9 +44,9 @@ class ResetEncryptedRepoPasswordDialog extends React.Component {
return (
<Modal isOpen={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>
<SeahubModalHeader toggle={this.props.toggleDialog}>
{gettext('Reset library password')}
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
{this.state.showLoading && (
<span>{gettext('Sending new password...')}</span>

View File

@@ -1,8 +1,9 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Alert, Button, Input, InputGroup, InputGroupAddon } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Alert, Button, Input, InputGroup, InputGroupAddon } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
resetPassword: PropTypes.func.isRequired,
@@ -69,7 +70,7 @@ class ResetWebdavPassword extends Component {
return (
<Modal centered={true} isOpen={true} toggle={toggle}>
<ModalHeader toggle={toggle}>{gettext('Reset WebDAV Password')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Reset WebDAV Password')}</SeahubModalHeader>
<ModalBody>
<InputGroup>
<Input type={this.state.isPasswordVisible ? 'text' : 'password'} value={this.state.password} onChange={this.handleInputChange} autoComplete="new-password"/>

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { gettext } from '../../utils/constants';
import FileChooser from '../file-chooser';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
sharedToken: PropTypes.string.isRequired,
@@ -52,7 +53,7 @@ class SaveSharedDirDialog extends React.Component {
render() {
return (
<Modal isOpen={true} className="sf-save-file" toggle={this.props.toggleCancel}>
<ModalHeader toggle={this.props.toggleCancel}>{gettext('Save to:')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleCancel}>{gettext('Save to:')}</SeahubModalHeader>
<ModalBody>
<FileChooser
isShowFile={false}

View File

@@ -1,10 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import FileChooser from '../file-chooser';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
sharedToken: PropTypes.string.isRequired,
@@ -60,7 +61,7 @@ class SaveSharedFileDialog extends React.Component {
render() {
return (
<Modal isOpen={true} className="sf-save-file">
<ModalHeader toggle={this.props.toggleCancel}>{gettext('Save to:')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleCancel}>{gettext('Save to:')}</SeahubModalHeader>
<ModalBody>
<FileChooser
isShowFile={false}

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalBody, ModalHeader } from 'reactstrap';
import { Modal, ModalBody } from 'reactstrap';
import { gettext } from '../../utils/constants';
import Loading from '../loading';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/seahub-io-dialog.css';
@@ -20,9 +21,9 @@ class SeahubIODialog extends React.Component {
render() {
return (
<Modal className='seahub-io-dialog' isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>
<SeahubModalHeader toggle={this.toggle}>
{gettext('Exporting')}
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
<>
<Loading/>

View File

@@ -2,10 +2,11 @@ import React from 'react';
import PropTypes from 'prop-types';
import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Alert } from 'reactstrap';
import { Utils } from '../../utils/utils';
import { seafileAPI } from '../../utils/seafile-api';
import { gettext, siteRoot } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
repoID: PropTypes.string.isRequired,
@@ -77,7 +78,7 @@ class SearchFileDialog extends React.Component {
const { q, errMessage, fileList, isSubmitDisabled, isSubmitting } = this.state;
return (
<Modal isOpen={true} toggle={this.toggle} autoFocus={false}>
<ModalHeader toggle={this.toggle}>{gettext('Search')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Search')}</SeahubModalHeader>
<ModalBody style={{ height: '250px' }} className="o-auto">
<div className="d-flex">
<input className="form-control mr-2" type="text" placeholder={gettext('Search files in this library')} value={q} onChange={this.handleInputChange} onKeyDown={this.handleKeyDown} autoFocus={true} />

View File

@@ -1,9 +1,10 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
orgID: PropTypes.string,
@@ -54,7 +55,7 @@ class SetOrgUserContactEmail extends React.Component {
const { inputValue, formErrorMsg, submitBtnDisabled } = this.state;
return (
<Modal isOpen={true} centered={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>{gettext('Set user contact email')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{gettext('Set user contact email')}</SeahubModalHeader>
<ModalBody>
<React.Fragment>
<input type="text" className="form-control" value={inputValue} onChange={this.handleInputChange} />

View File

@@ -1,9 +1,10 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
orgID: PropTypes.string,
@@ -60,7 +61,7 @@ class SetOrgUserDefaultQuota extends React.Component {
const { inputValue, formErrorMsg, submitBtnDisabled } = this.state;
return (
<Modal isOpen={true} centered={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>{gettext('Set user default quota')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{gettext('Set user default quota')}</SeahubModalHeader>
<ModalBody>
<React.Fragment>
<InputGroup>

View File

@@ -1,9 +1,10 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
orgID: PropTypes.string,
@@ -56,7 +57,7 @@ class SetOrgUserName extends React.Component {
const { inputValue, formErrorMsg, submitBtnDisabled } = this.state;
return (
<Modal isOpen={true} centered={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>{gettext('Set user name')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{gettext('Set user name')}</SeahubModalHeader>
<ModalBody>
<React.Fragment>
<input type="text" className="form-control" value={inputValue} onChange={this.handleInputChange} />

View File

@@ -1,9 +1,10 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { orgAdminAPI } from '../../utils/org-admin-api';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
orgID: PropTypes.string,
@@ -62,7 +63,7 @@ class SetOrgUserQuota extends React.Component {
const { inputValue, formErrorMsg, submitBtnDisabled } = this.state;
return (
<Modal isOpen={true} centered={true} toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog}>{gettext('Set user quota')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggleDialog}>{gettext('Set user quota')}</SeahubModalHeader>
<ModalBody>
<React.Fragment>
<InputGroup>

View File

@@ -1,8 +1,9 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Alert, Button, Input, InputGroup, InputGroupAddon } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Alert, Button, Input, InputGroup, InputGroupAddon } from 'reactstrap';
import { gettext } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
setPassword: PropTypes.func.isRequired,
@@ -69,7 +70,7 @@ class SetWebdavPassword extends Component {
return (
<Modal centered={true} isOpen={true} toggle={toggle}>
<ModalHeader toggle={toggle}>{gettext('Set WebDAV Password')}</ModalHeader>
<SeahubModalHeader toggle={toggle}>{gettext('Set WebDAV Password')}</SeahubModalHeader>
<ModalBody>
<InputGroup>
<Input type={this.state.isPasswordVisible ? 'text' : 'password'} value={this.state.password} onChange={this.handleInputChange} autoComplete="new-password"/>

View File

@@ -1,9 +1,10 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import copy from '../copy-to-clipboard';
import { gettext } from '../../utils/constants';
import toaster from '../../components/toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
link: PropTypes.string.isRequired,
@@ -26,7 +27,7 @@ class ShareAdminLink extends React.Component {
const { link, toggleDialog } = this.props;
return (
<Modal isOpen={true} toggle={toggleDialog}>
<ModalHeader toggle={toggleDialog}>{gettext('Link')}</ModalHeader>
<SeahubModalHeader toggle={toggleDialog}>{gettext('Link')}</SeahubModalHeader>
<ModalBody>
<a href={link}>{link}</a>
</ModalBody>

View File

@@ -1,6 +1,6 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
import { Modal, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
import { gettext, username, canGenerateShareLink, canGenerateUploadLink, canInvitePeople, additionalShareDialogNote, enableOCM, isPro, canShareRepo } from '../../utils/constants';
import ShareLinkPanel from '../share-link-panel';
import GenerateUploadLink from './generate-upload-link';
@@ -13,6 +13,7 @@ import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import Loading from '../loading';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import CustomPermissionManager from './custom-permission/custom-permission-manager';
import '../../css/share-link-dialog.css';
@@ -324,10 +325,10 @@ class ShareDialog extends React.Component {
return (
<div>
<Modal isOpen={true} style={{ maxWidth: '760px' }} className="share-dialog" toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog} tag="div">
<SeahubModalHeader toggle={this.props.toggleDialog} tag="div">
<h5 className="text-truncate">{gettext('Share')} <span className="op-target" title={itemName}>{itemName}</span></h5>
{this.renderExternalShareMessage()}
</ModalHeader>
</SeahubModalHeader>
<ModalBody className="share-dialog-content" role="tablist">
{(itemType === 'library' || itemType === 'dir') && this.renderDirContent()}
{itemType === 'file' && this.renderFileContent()}

View File

@@ -2,11 +2,12 @@ import React from 'react';
import PropTypes from 'prop-types';
import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Alert } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Input, Alert } from 'reactstrap';
import { seafileAPI } from '../../utils/seafile-api';
import { gettext } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import Repo from '../../models/repo';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const shareRepoListItemProps = {
repo: PropTypes.object.isRequired,
@@ -121,7 +122,7 @@ class ShareRepoDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Select libraries to share')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Select libraries to share')}</SeahubModalHeader>
<ModalBody className="dialog-list-container">
<table>
<thead>

View File

@@ -1,6 +1,6 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
import { Modal, ModalBody, TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
import { gettext, username, additionalShareDialogNote, canShareRepo } from '../../utils/constants';
import ShareToUser from './share-to-user';
import ShareToGroup from './share-to-group';
@@ -8,6 +8,7 @@ import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import Loading from '../loading';
import toaster from '../toast';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/share-link-dialog.css';
@@ -156,10 +157,10 @@ class ShareWikiDialog extends React.Component {
return (
<div>
<Modal isOpen={true} style={{ maxWidth: '760px' }} className="share-dialog" toggle={this.props.toggleDialog}>
<ModalHeader toggle={this.props.toggleDialog} tag="div">
<SeahubModalHeader toggle={this.props.toggleDialog} tag="div">
<h5 className="text-truncate">{gettext('Share')} <span className="op-target" title={itemName}>{itemName}</span></h5>
{this.renderExternalShareMessage()}
</ModalHeader>
</SeahubModalHeader>
<ModalBody className="share-dialog-content" role="tablist">
{(itemType === 'library') && this.renderDirContent()}
</ModalBody>

View File

@@ -1,10 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';
import { Button, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter } from 'reactstrap';
import toaster from '../../toast';
import { gettext } from '../../../utils/constants';
import { Utils, validateName } from '../../../utils/utils';
import { systemAdminAPI } from '../../../utils/system-admin-api';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
parentNode: PropTypes.object,
@@ -70,7 +71,7 @@ class AddDepartmentV2Dialog extends React.Component {
}
return (
<Modal isOpen={true} toggle={this.props.toggle} autoFocus={false}>
<ModalHeader toggle={this.props.toggle}>{title}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{title}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalBody, ModalFooter, ModalHeader, Button } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
node: PropTypes.object,
@@ -14,9 +15,9 @@ class DeleteDepartmentV2ConfirmDialog extends React.Component {
const { node, toggle } = this.props;
return (
<Modal isOpen={true} toggle={toggle}>
<ModalHeader toggle={toggle}>
<SeahubModalHeader toggle={toggle}>
{gettext('Delete department')}
</ModalHeader>
</SeahubModalHeader>
<ModalBody>
<p>{gettext('Are you sure to delete')}{' '}<b>{node.name}</b> ?</p>
</ModalBody>

View File

@@ -1,10 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';
import { Button, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter } from 'reactstrap';
import toaster from '../../toast';
import { gettext } from '../../../utils/constants';
import { Utils, validateName } from '../../../utils/utils';
import { systemAdminAPI } from '../../../utils/system-admin-api';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
node: PropTypes.object,
@@ -58,7 +59,7 @@ class RenameDepartmentV2Dialog extends React.Component {
const { isSubmitBtnActive } = this.state;
return (
<Modal isOpen={true} toggle={this.props.toggle} autoFocus={false}>
<ModalHeader toggle={this.props.toggle}>{gettext('Rename')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('Rename')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button, Form, FormGroup, Input, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button, Form, FormGroup, Input, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -46,7 +47,7 @@ class SetQuotaDialog extends React.Component {
const { quota, isSubmitBtnActive } = this.state;
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Set Quota')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Set Quota')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button, Form, FormGroup, Input, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
import { Modal, ModalBody, ModalFooter, Button, Form, FormGroup, Input, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
uploadOrDownload: PropTypes.string.isRequired,
@@ -47,7 +48,7 @@ class SysAdminSetUploadDownloadRateLimitDialog extends React.Component {
const { rateLimit, isSubmitBtnActive } = this.state;
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{this.props.uploadOrDownload == 'upload' ? gettext('Set Upload Rate Limit') : gettext('Set Download Rate Limit')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{this.props.uploadOrDownload == 'upload' ? gettext('Set Upload Rate Limit') : gettext('Set Download Rate Limit')}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,10 +1,11 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import { systemAdminAPI } from '../../../utils/system-admin-api';
import { Utils } from '../../../utils/utils';
import UserSelect from '../../user-select';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
export default class AddDepartMemberV2Dialog extends React.Component {
@@ -48,7 +49,7 @@ export default class AddDepartMemberV2Dialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.props.toggle}>
<ModalHeader toggle={this.props.toggle}>{gettext('Add member')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('Add member')}</SeahubModalHeader>
<ModalBody>
<UserSelect
placeholder={gettext('Search users')}

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import { systemAdminAPI } from '../../../utils/system-admin-api';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
groupID: PropTypes.string,
@@ -66,7 +67,7 @@ class AddDepartDialog extends React.Component {
let header = this.props.parentGroupID ? gettext('New Sub-department') : gettext('New Department');
return (
<Modal isOpen={true} toggle={this.props.toggle} autoFocus={false}>
<ModalHeader toggle={this.props.toggle}>{header}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{header}</SeahubModalHeader>
<ModalBody>
<Form>
<FormGroup>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Form, FormGroup, Input } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -38,7 +39,7 @@ class SysAdminAddInstitutionDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Add institution')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Add institution')}</SeahubModalHeader>
<ModalBody>
<Form>
<p>{gettext('Name')}</p>

View File

@@ -1,8 +1,9 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import UserSelect from '../../user-select';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -31,7 +32,7 @@ class AddMemberDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.props.toggle}>
<ModalHeader toggle={this.props.toggle}>{gettext('Add Member')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('Add Member')}</SeahubModalHeader>
<ModalBody>
<UserSelect
placeholder={gettext('Search users')}

View File

@@ -1,11 +1,12 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import { systemAdminAPI } from '../../../utils/system-admin-api';
import { Utils } from '../../../utils/utils';
import toaster from '../../toast';
import UserSelect from '../../user-select';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggle: PropTypes.func.isRequired,
@@ -50,7 +51,7 @@ class AddMemberDialog extends React.Component {
render() {
return (
<Modal isOpen={true} toggle={this.props.toggle}>
<ModalHeader toggle={this.props.toggle}>{gettext('Add Member')}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{gettext('Add Member')}</SeahubModalHeader>
<ModalBody>
<UserSelect
placeholder={gettext('Search users')}

View File

@@ -1,9 +1,10 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Alert, FormGroup, Label } from 'reactstrap';
import { Button, Modal, ModalBody, ModalFooter, Input, Alert, FormGroup, Label } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import TermsPreviewWidget from '../../terms-preview-widget';
import TermsEditorDialog from '../terms-editor-dialog';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../../css/terms-conditions-editor.css';
@@ -103,7 +104,7 @@ class AddOrUpdateTermDialog extends React.Component {
return (
<Fragment>
<Modal isOpen={true} toggle={this.props.toggle}>
<ModalHeader toggle={this.props.toggle}>{title}</ModalHeader>
<SeahubModalHeader toggle={this.props.toggle}>{title}</SeahubModalHeader>
<ModalBody>
<FormGroup>
<Label for="name">{gettext('Name')}</Label>

View File

@@ -1,7 +1,8 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Alert, Modal, ModalHeader, ModalBody, ModalFooter, Button, Form, FormGroup, Label, Input } from 'reactstrap';
import { Alert, Modal, ModalBody, ModalFooter, Button, Form, FormGroup, Label, Input } from 'reactstrap';
import { gettext } from '../../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
const propTypes = {
toggleDialog: PropTypes.func.isRequired,
@@ -88,7 +89,7 @@ class SysAdminAddOrgDialog extends React.Component {
const { errorMsg, password, passwordAgain, email, name, isSubmitBtnActive } = this.state;
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{gettext('Add Organization')}</ModalHeader>
<SeahubModalHeader toggle={this.toggle}>{gettext('Add Organization')}</SeahubModalHeader>
<ModalBody>
<Form autoComplete="off">
<FormGroup>

Some files were not shown because too many files have changed in this diff Show More