mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-27 15:54:39 +00:00
fix typo (#7933)
This commit is contained in:
@@ -173,7 +173,7 @@ class NoticeItem extends React.Component {
|
||||
let repoName = detail.repo_name;
|
||||
let repoUrl = siteRoot + 'library/' + detail.repo_id + '/' + repoName + '/';
|
||||
// 1. handle translate
|
||||
let notice = gettext('{user} has transfered a library named {repo_link} to you.');
|
||||
let notice = gettext('{user} has transferred a library named {repo_link} to you.');
|
||||
// 2. handle xss(cross-site scripting)
|
||||
notice = notice.replace('{user}', repoOwner);
|
||||
notice = notice.replace('{repo_link}', `{tagA}${repoName}{/tagA}`);
|
||||
|
@@ -12,7 +12,7 @@ import '../../css/transfer-group-dialog.css';
|
||||
|
||||
const propTypes = {
|
||||
groupID: PropTypes.number.isRequired,
|
||||
onGroupTransfered: PropTypes.func.isRequired,
|
||||
onGroupTransferred: PropTypes.func.isRequired,
|
||||
toggleDialog: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
@@ -41,8 +41,8 @@ class TransferGroupDialog extends React.Component {
|
||||
return false;
|
||||
}
|
||||
seafileAPI.transferGroup(this.props.groupID, email).then((res) => {
|
||||
toaster.success(gettext('Group has been transfered'));
|
||||
this.props.onGroupTransfered(res.data);
|
||||
toaster.success(gettext('Group has been transferred'));
|
||||
this.props.onGroupTransferred(res.data);
|
||||
this.props.toggleDialog();
|
||||
}).catch((error) => {
|
||||
let errMessage = Utils.getErrorMsg(error);
|
||||
|
@@ -17,7 +17,7 @@ export const DownloadFileProvider = ({ repoID, eventBus, children }) => {
|
||||
const pathRef = useRef('');
|
||||
const direntListRef = useRef([]);
|
||||
|
||||
const handelDownload = useCallback((path, direntList = []) => {
|
||||
const handleDownload = useCallback((path, direntList = []) => {
|
||||
const direntCount = direntList.length;
|
||||
if (direntCount === 0) return;
|
||||
if (direntCount === 1 && !direntList[0].is_dir) {
|
||||
@@ -50,14 +50,14 @@ export const DownloadFileProvider = ({ repoID, eventBus, children }) => {
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
const unsubscribeDownloadFile = eventBus.subscribe(EVENT_BUS_TYPE.DOWNLOAD_FILE, handelDownload);
|
||||
const unsubscribeDownloadFile = eventBus.subscribe(EVENT_BUS_TYPE.DOWNLOAD_FILE, handleDownload);
|
||||
return () => {
|
||||
unsubscribeDownloadFile();
|
||||
};
|
||||
}, [eventBus, handelDownload]);
|
||||
}, [eventBus, handleDownload]);
|
||||
|
||||
return (
|
||||
<DownloadFileContext.Provider value={{ eventBus, handelDownload }}>
|
||||
<DownloadFileContext.Provider value={{ eventBus, handleDownload }}>
|
||||
{children}
|
||||
{isZipDialogOpen && (
|
||||
<ModalPortal>
|
||||
|
@@ -70,7 +70,7 @@ const FileTagsDialog = ({ record, onToggle, onSubmit }) => {
|
||||
setSelectedTags(newSelectedTags);
|
||||
}, [selectedTags]);
|
||||
|
||||
const handelSubmit = useCallback(() => {
|
||||
const handleSubmit = useCallback(() => {
|
||||
if (isLoading || selectedTags.length === 0) {
|
||||
onToggle();
|
||||
return;
|
||||
@@ -137,7 +137,7 @@ const FileTagsDialog = ({ record, onToggle, onSubmit }) => {
|
||||
return (
|
||||
<Modal
|
||||
isOpen={true}
|
||||
toggle={() => { handelSubmit(); }}
|
||||
toggle={() => { handleSubmit(); }}
|
||||
className="sf-file-tags"
|
||||
backdropClassName="sf-file-tags-backdrop"
|
||||
>
|
||||
|
@@ -41,7 +41,7 @@ const PeoplesDialog = ({ selectedImages, onToggle, onSubmit }) => {
|
||||
}
|
||||
}, [selectedPeopleIds]);
|
||||
|
||||
const handelSubmit = useCallback(() => {
|
||||
const handleSubmit = useCallback(() => {
|
||||
setSubmitting(true);
|
||||
onSubmit(selectedPeopleIds, selectedImages, {
|
||||
success_callback: onToggle,
|
||||
@@ -83,7 +83,7 @@ const PeoplesDialog = ({ selectedImages, onToggle, onSubmit }) => {
|
||||
</ModalBody>
|
||||
<ModalFooter>
|
||||
<Button color="secondary" onClick={() => onToggle()}>{gettext('Cancel')}</Button>
|
||||
<Button color="primary" disabled={isSubmitting || !selectedPeopleIds.length} onClick={handelSubmit}>{gettext('Submit')}</Button>
|
||||
<Button color="primary" disabled={isSubmitting || !selectedPeopleIds.length} onClick={handleSubmit}>{gettext('Submit')}</Button>
|
||||
</ModalFooter>
|
||||
</Modal>
|
||||
);
|
||||
|
@@ -65,7 +65,7 @@ const AIIcon = () => {
|
||||
setMenuShow(!isMenuShow);
|
||||
}, [isMenuShow]);
|
||||
|
||||
const handelOperation = useCallback((op) => {
|
||||
const handleOperation = useCallback((op) => {
|
||||
const { value: opType, record } = op;
|
||||
const recordId = getRecordIdFromRecord(record);
|
||||
const parentDir = getParentDirFromRecord(record);
|
||||
@@ -148,7 +148,7 @@ const AIIcon = () => {
|
||||
{isMenuShow && (
|
||||
<div className="sf-metadata-ai-dropdown-menu large">
|
||||
<DropdownMenu>
|
||||
{options.map(op => (<DropdownItem key={op.value} onClick={() => handelOperation(op)}>{op.label}</DropdownItem>))}
|
||||
{options.map(op => (<DropdownItem key={op.value} onClick={() => handleOperation(op)}>{op.label}</DropdownItem>))}
|
||||
</DropdownMenu>
|
||||
</div>
|
||||
)}
|
||||
|
@@ -4,7 +4,7 @@ import { SeahubSelect } from '../../components/common/select';
|
||||
|
||||
const Selector = ({ options, settingKey, value, defaultValue, onChange }) => {
|
||||
|
||||
const handelOnChange = useCallback((option) => {
|
||||
const handleOnChange = useCallback((option) => {
|
||||
const newValue = option.value;
|
||||
if (newValue === value) return;
|
||||
onChange(settingKey, newValue);
|
||||
@@ -20,7 +20,7 @@ const Selector = ({ options, settingKey, value, defaultValue, onChange }) => {
|
||||
classNamePrefix="sf-metadata-setting-selector"
|
||||
value={selectedOption}
|
||||
options={options}
|
||||
onChange={handelOnChange}
|
||||
onChange={handleOnChange}
|
||||
isSearchable={false}
|
||||
isClearable={false}
|
||||
menuPortalTarget=".sf-metadata-view-setting-panel"
|
||||
|
@@ -21,7 +21,7 @@ const GalleryContextMenu = ({ selectedImages, onDelete, onDuplicate, addFolder,
|
||||
const [isCopyDialogOpen, setIsCopyDialogOpen] = useState(false);
|
||||
const [isPeoplesDialogShow, setPeoplesDialogShow] = useState(false);
|
||||
|
||||
const { handelDownload: handelDownloadAPI } = useDownloadFile();
|
||||
const { handleDownload: handleDownloadAPI } = useDownloadFile();
|
||||
|
||||
const repoID = window.sfMetadataContext.getSetting('repoID');
|
||||
const checkCanDeleteRow = window.sfMetadataContext.checkCanDeleteRow();
|
||||
@@ -65,8 +65,8 @@ const GalleryContextMenu = ({ selectedImages, onDelete, onDuplicate, addFolder,
|
||||
const name = image.parentDir === '/' ? image.name : `${image.parentDir}/${image.name}`;
|
||||
return { name };
|
||||
});
|
||||
handelDownloadAPI('/', direntList);
|
||||
}, [handelDownloadAPI, selectedImages]);
|
||||
handleDownloadAPI('/', direntList);
|
||||
}, [handleDownloadAPI, selectedImages]);
|
||||
|
||||
const handleOptionClick = useCallback(option => {
|
||||
switch (option.value) {
|
||||
|
@@ -23,7 +23,7 @@ const KanbanContextMenu = ({ selectedCard, onDelete, onRename }) => {
|
||||
const [isRenameDialogShow, setIsRenameDialogShow] = useState(false);
|
||||
|
||||
const { metadata } = useMetadataView();
|
||||
const { handelDownload: handelDownloadAPI } = useDownloadFile();
|
||||
const { handleDownload: handleDownloadAPI } = useDownloadFile();
|
||||
|
||||
const selectedRecord = useMemo(() => getRowById(metadata, selectedCard), [metadata, selectedCard]);
|
||||
const isDir = useMemo(() => checkIsDir(selectedRecord), [selectedRecord]);
|
||||
@@ -67,9 +67,9 @@ const KanbanContextMenu = ({ selectedCard, onDelete, onRename }) => {
|
||||
});
|
||||
}, [metadata, selectedCard, onRename]);
|
||||
|
||||
const handelDownload = useCallback(() => {
|
||||
handelDownloadAPI(parentDir, [{ name: oldName, is_dir: isDir }]);
|
||||
}, [handelDownloadAPI, parentDir, oldName, isDir]);
|
||||
const handleDownload = useCallback(() => {
|
||||
handleDownloadAPI(parentDir, [{ name: oldName, is_dir: isDir }]);
|
||||
}, [handleDownloadAPI, parentDir, oldName, isDir]);
|
||||
|
||||
const handleOptionClick = useCallback((option) => {
|
||||
if (!selectedCard) return;
|
||||
@@ -86,7 +86,7 @@ const KanbanContextMenu = ({ selectedCard, onDelete, onRename }) => {
|
||||
break;
|
||||
}
|
||||
case CONTEXT_MENU_KEY.DOWNLOAD: {
|
||||
handelDownload(record);
|
||||
handleDownload(record);
|
||||
break;
|
||||
}
|
||||
case CONTEXT_MENU_KEY.DELETE: {
|
||||
@@ -101,7 +101,7 @@ const KanbanContextMenu = ({ selectedCard, onDelete, onRename }) => {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}, [metadata, repoID, selectedCard, onDelete, openRenameDialog, handelDownload]);
|
||||
}, [metadata, repoID, selectedCard, onDelete, openRenameDialog, handleDownload]);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
@@ -18,7 +18,7 @@ const propTypes = {
|
||||
unshareRepoToGroup: PropTypes.func,
|
||||
onTransferRepo: PropTypes.func.isRequired,
|
||||
onGroupNameChanged: PropTypes.func.isRequired,
|
||||
onGroupTransfered: PropTypes.func.isRequired,
|
||||
onGroupTransferred: PropTypes.func.isRequired,
|
||||
onGroupDeleted: PropTypes.func.isRequired,
|
||||
onLeavingGroup: PropTypes.func.isRequired
|
||||
};
|
||||
@@ -86,7 +86,7 @@ class GroupItem extends React.Component {
|
||||
group={group}
|
||||
addNewRepo={this.addNewRepo}
|
||||
onGroupNameChanged={this.onGroupNameChanged}
|
||||
onGroupTransfered={this.props.onGroupTransfered}
|
||||
onGroupTransferred={this.props.onGroupTransferred}
|
||||
onGroupDeleted={this.onGroupDeleted}
|
||||
onLeavingGroup={this.onLeavingGroup}
|
||||
/>
|
||||
|
@@ -23,7 +23,7 @@ const propTypes = {
|
||||
group: PropTypes.object.isRequired,
|
||||
addNewRepo: PropTypes.func.isRequired,
|
||||
onGroupNameChanged: PropTypes.func.isRequired,
|
||||
onGroupTransfered: PropTypes.func.isRequired,
|
||||
onGroupTransferred: PropTypes.func.isRequired,
|
||||
onGroupDeleted: PropTypes.func.isRequired,
|
||||
onLeavingGroup: PropTypes.func.isRequired
|
||||
};
|
||||
@@ -241,7 +241,7 @@ class GroupOperationMenu extends React.Component {
|
||||
{this.state.isTransferGroupDialogOpen &&
|
||||
<TransferGroupDialog
|
||||
groupID={groupID}
|
||||
onGroupTransfered={this.props.onGroupTransfered}
|
||||
onGroupTransferred={this.props.onGroupTransferred}
|
||||
toggleDialog={this.toggleTransferGroupDialog}
|
||||
/>
|
||||
}
|
||||
|
@@ -239,7 +239,7 @@ class GroupView extends React.Component {
|
||||
});
|
||||
};
|
||||
|
||||
onGroupTransfered = (group) => {
|
||||
onGroupTransferred = (group) => {
|
||||
this.setState({
|
||||
currentGroup: group
|
||||
});
|
||||
@@ -281,7 +281,7 @@ class GroupView extends React.Component {
|
||||
group={currentGroup}
|
||||
addNewRepo={this.addNewRepo}
|
||||
onGroupNameChanged={this.onGroupNameChanged}
|
||||
onGroupTransfered={this.onGroupTransfered}
|
||||
onGroupTransferred={this.onGroupTransferred}
|
||||
onGroupDeleted={this.onGroupDeleted}
|
||||
onLeavingGroup={this.onLeavingGroup}
|
||||
/>
|
||||
|
@@ -292,7 +292,7 @@ class Libraries extends Component {
|
||||
this.setState({ groupList: newGroupList });
|
||||
};
|
||||
|
||||
onGroupTransfered = (group) => {
|
||||
onGroupTransferred = (group) => {
|
||||
const { groupList } = this.state;
|
||||
let newGroupList = [...groupList];
|
||||
let targetGroup = newGroupList.find((item) => item.id === group.id);
|
||||
@@ -487,7 +487,7 @@ class Libraries extends Component {
|
||||
deleteRelatedGroupsRepos={this.deleteRelatedGroupsRepos}
|
||||
addRepoToGroup={this.addRepoToGroup}
|
||||
onGroupNameChanged={this.onGroupNameChanged}
|
||||
onGroupTransfered={this.onGroupTransfered}
|
||||
onGroupTransferred={this.onGroupTransferred}
|
||||
onGroupDeleted={this.onGroupDeleted}
|
||||
onLeavingGroup={this.onLeavingGroup}
|
||||
unshareRepoToGroup={this.unshareRepoToGroup}
|
||||
|
@@ -1987,7 +1987,7 @@ class RepoOwner(APIView):
|
||||
|
||||
break
|
||||
|
||||
# send a signal when successfully transfered repo
|
||||
# send a signal when successfully transferred repo
|
||||
try:
|
||||
repo_transfer.send(sender=None, org_id=org_id,
|
||||
repo_owner=repo_owner, to_user=new_owner, repo_id=repo_id,
|
||||
|
@@ -397,7 +397,7 @@ class UserNotificationManager(models.Manager):
|
||||
to_user, MSG_TYPE_GUEST_INVITATION_ACCEPTED, detail)
|
||||
|
||||
def add_repo_transfer_msg(self, to_user, detail):
|
||||
"""Nofity ``to_user`` that a library has been transfered to him/her.
|
||||
"""Nofity ``to_user`` that a library has been transferred to him/her.
|
||||
"""
|
||||
return self._add_user_notification(
|
||||
to_user, MSG_TYPE_REPO_TRANSFER, detail)
|
||||
@@ -926,7 +926,7 @@ class UserNotification(models.Model):
|
||||
repo_id = d['repo_id']
|
||||
repo_name = d['repo_name']
|
||||
repo_url = reverse('lib_view', args=[repo_id, repo_name, ''])
|
||||
msg = _('%(user)s has transfered a library named <a href="%(repo_url)s">%(repo_name)s</a> to you.') % {
|
||||
msg = _('%(user)s has transferred a library named <a href="%(repo_url)s">%(repo_name)s</a> to you.') % {
|
||||
'user': repo_owner_name,
|
||||
'repo_url': repo_url,
|
||||
'repo_name': repo_name,
|
||||
|
@@ -90,7 +90,7 @@ class UserOptionsManagerTest(BaseTestCase):
|
||||
assert len(UserOptions.objects.filter(email=self.user.email,
|
||||
option_key=KEY_WEBDAV_SECRET)) == 0
|
||||
|
||||
def test_file_udpates_email_interval(self, ):
|
||||
def test_file_updates_email_interval(self, ):
|
||||
assert len(UserOptions.objects.filter(
|
||||
email=self.user.email, option_key=KEY_FILE_UPDATES_EMAIL_INTERVAL)) == 0
|
||||
|
||||
|
Reference in New Issue
Block a user