1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-09 10:50:24 +00:00

change encrypted repo rotate image (#6969)

This commit is contained in:
Michael An
2024-10-30 16:16:06 +08:00
committed by GitHub
parent 0543e779eb
commit c0abad3564
5 changed files with 27 additions and 9 deletions

View File

@@ -12,6 +12,7 @@ const propTypes = {
moveToNextImage: PropTypes.func.isRequired,
onDeleteImage: PropTypes.func,
onRotateImage: PropTypes.func,
enableRotate: PropTypes.bool,
};
class ImageDialog extends React.Component {
@@ -32,6 +33,12 @@ class ImageDialog extends React.Component {
const mainImg = imageItems[imageIndex];
const nextImg = imageItems[(imageIndex + 1) % imageItemsLength];
const prevImg = imageItems[(imageIndex + imageItemsLength - 1) % imageItemsLength];
// The backend server does not support rotating HEIC images
let enableRotate = this.props.enableRotate;
const suffix = mainImg.src.slice(mainImg.src.lastIndexOf('.') + 1, mainImg.src.lastIndexOf('?')).toLowerCase();
if (suffix === 'heic') {
enableRotate = false;
}
return (
<Lightbox
wrapperClassName='custom-image-previewer'
@@ -49,12 +56,12 @@ class ImageDialog extends React.Component {
closeLabel={gettext('Close (Esc)')}
zoomInLabel={gettext('Zoom in')}
zoomOutLabel={gettext('Zoom out')}
enableRotate={true}
enableRotate={enableRotate}
onClickDownload={() => this.downloadImage(imageItems[imageIndex].downloadURL)}
onClickDelete={onDeleteImage ? () => onDeleteImage(name) : null}
onViewOriginal={this.onViewOriginal}
viewOriginalImageLabel={gettext('View original image')}
onRotateImage={onRotateImage ? (angle) => onRotateImage(imageIndex, angle) : null}
onRotateImage={(onRotateImage && enableRotate) ? (angle) => onRotateImage(imageIndex, angle) : null}
/>
);
}
@@ -62,4 +69,8 @@ class ImageDialog extends React.Component {
ImageDialog.propTypes = propTypes;
ImageDialog.defaultProps = {
enableRotate: true,
};
export default ImageDialog;

View File

@@ -420,6 +420,7 @@ class DirColumnNav extends React.Component {
render() {
let flex = this.props.navRate ? '0 0 ' + this.props.navRate * 100 + '%' : '0 0 25%';
const select = this.props.inResizing ? 'none' : '';
const repoEncrypted = this.props.currentRepoInfo.encrypted;
return (
<Fragment>
<div className="dir-content-nav" role="navigation" style={{ flex: (flex), userSelect: select }} onScroll={this.stopTreeScrollPropagation}>
@@ -462,7 +463,7 @@ class DirColumnNav extends React.Component {
repoID={this.props.repoID}
dirent={this.state.opNode.object}
onItemCopy={this.props.onItemCopy}
repoEncrypted={this.props.currentRepoInfo.encrypted}
repoEncrypted={repoEncrypted}
onCancelCopy={this.onCopyToggle}
isMultipleOperation={this.state.isMultipleOperation}
/>
@@ -475,7 +476,7 @@ class DirColumnNav extends React.Component {
repoID={this.props.repoID}
dirent={this.state.opNode.object}
onItemMove={this.props.onItemMove}
repoEncrypted={this.props.currentRepoInfo.encrypted}
repoEncrypted={repoEncrypted}
onCancelMove={this.onMoveToggle}
isMultipleOperation={this.state.isMultipleOperation}
/>
@@ -491,6 +492,7 @@ class DirColumnNav extends React.Component {
moveToNextImage={this.moveToNextImage}
onDeleteImage={this.deleteImage}
onRotateImage={this.rotateImage}
enableRotate={!repoEncrypted}
/>
</ModalPortal>
)}

View File

@@ -833,6 +833,7 @@ class DirentGridView extends React.Component {
if (this.props.isDirentListLoading) {
return (<Loading />);
}
const repoEncrypted = this.props.currentRepoInfo.encrypted;
return (
<Fragment>
@@ -861,7 +862,7 @@ class DirentGridView extends React.Component {
onGridItemMouseDown={this.onGridItemMouseDown}
onGridItemClick={this.onGridItemClick}
selectedDirentList={selectedDirentList}
repoEncrypted={this.props.currentRepoInfo.encrypted}
repoEncrypted={repoEncrypted}
/>
);
})}
@@ -919,7 +920,7 @@ class DirentGridView extends React.Component {
<MoveDirentDialog
path={this.props.path}
repoID={this.props.repoID}
repoEncrypted={this.props.currentRepoInfo.encrypted}
repoEncrypted={repoEncrypted}
isMultipleOperation={this.state.isMultipleOperation}
selectedDirentList={selectedDirentList}
onItemMove={this.props.onItemMove}
@@ -942,7 +943,7 @@ class DirentGridView extends React.Component {
<CopyDirentDialog
path={this.props.path}
repoID={this.props.repoID}
repoEncrypted={this.props.currentRepoInfo.encrypted}
repoEncrypted={repoEncrypted}
isMultipleOperation={this.state.isMultipleOperation}
selectedDirentList={selectedDirentList}
onItemsCopy={this.props.onItemsCopy}
@@ -1005,6 +1006,7 @@ class DirentGridView extends React.Component {
moveToNextImage={this.moveToNextImage}
onDeleteImage={this.deleteImage}
onRotateImage={this.rotateImage}
enableRotate={!repoEncrypted}
/>
</ModalPortal>
)}

View File

@@ -684,6 +684,7 @@ class DirentListView extends React.Component {
const sortIcon = sortOrder == 'asc' ? <span className="sf3-font sf3-font-down rotate-180 d-inline-block"></span> : <span className="sf3-font sf3-font-down"></span>;
const isDesktop = Utils.isDesktop();
const repoEncrypted = this.props.currentRepoInfo.encrypted;
return (
<div
@@ -816,6 +817,7 @@ class DirentListView extends React.Component {
moveToNextImage={this.moveToNextImage}
onDeleteImage={this.deleteImage}
onRotateImage={this.rotateImage}
enableRotate={!repoEncrypted}
/>
</ModalPortal>
)}
@@ -844,7 +846,7 @@ class DirentListView extends React.Component {
<MoveDirentDialog
path={this.props.path}
repoID={this.props.repoID}
repoEncrypted={this.props.currentRepoInfo.encrypted}
repoEncrypted={repoEncrypted}
isMultipleOperation={this.state.isMultipleOperation}
selectedDirentList={this.props.selectedDirentList}
onItemsMove={this.props.onItemsMove}
@@ -855,7 +857,7 @@ class DirentListView extends React.Component {
<CopyDirentDialog
path={this.props.path}
repoID={this.props.repoID}
repoEncrypted={this.props.currentRepoInfo.encrypted}
repoEncrypted={repoEncrypted}
selectedDirentList={this.props.selectedDirentList}
isMultipleOperation={this.state.isMultipleOperation}
onItemsCopy={this.props.onItemsCopy}

View File

@@ -575,6 +575,7 @@ class SharedDirView extends React.Component {
closeImagePopup={this.closeImagePopup}
moveToPrevImage={this.moveToPrevImage}
moveToNextImage={this.moveToNextImage}
enableRotate={false}
/>
</ModalPortal>
}