From 32b7234051c56f25e0066eb5d21c7e98e1b4f9ce Mon Sep 17 00:00:00 2001 From: shanshuirenjia <978987373@qq.com> Date: Tue, 23 Apr 2019 10:32:12 +0800 Subject: [PATCH 1/2] repair locked bug --- .../components/dirent-list-view/dirent-list-item.js | 12 +++++++++--- media/css/seahub_react.css | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/dirent-list-view/dirent-list-item.js b/frontend/src/components/dirent-list-view/dirent-list-item.js index f2aad49bc8..9fe750caef 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-item.js +++ b/frontend/src/components/dirent-list-view/dirent-list-item.js @@ -2,7 +2,7 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import MD5 from 'MD5'; import { UncontrolledTooltip } from 'reactstrap'; -import { gettext, siteRoot, mediaUrl } from '../../utils/constants'; +import { gettext, siteRoot, mediaUrl, username } from '../../utils/constants'; import { Utils } from '../../utils/utils'; import { seafileAPI } from '../../utils/seafile-api'; import URLDecorator from '../../utils/url-decorator'; @@ -269,15 +269,18 @@ class DirentListItem extends React.Component { seafileAPI.lockfile(repoID, filePath).then(() => { this.props.updateDirent(this.props.dirent, 'is_locked', true); this.props.updateDirent(this.props.dirent, 'locked_by_me', true); + let lockName = username.split('@'); + this.props.updateDirent(this.props.dirent, 'lock_owner_name', lockName[0]); }); } - + onUnlockItem = () => { let repoID = this.props.repoID; let filePath = this.getDirentPath(this.props.dirent); seafileAPI.unlockfile(repoID, filePath).then(() => { this.props.updateDirent(this.props.dirent, 'is_locked', false); this.props.updateDirent(this.props.dirent, 'locked_by_me', false); + this.props.updateDirent(this.props.dirent, 'lock_owner_name', ''); }); } @@ -501,6 +504,9 @@ class DirentListItem extends React.Component { trClass += (activeDirent && activeDirent.name === dirent.name) ? 'tr-active' : ''; trClass += dirent.isSelected? 'tr-active' : ''; + let lockedInfo = gettext('locked by {name}'); + lockedInfo = lockedInfo.replace('{name}', dirent.lock_owner_name); + return ( : } - {dirent.is_locked && {gettext('locked')}} + {dirent.is_locked && {gettext('locked')}} diff --git a/media/css/seahub_react.css b/media/css/seahub_react.css index 7470949184..91f18eded4 100644 --- a/media/css/seahub_react.css +++ b/media/css/seahub_react.css @@ -915,7 +915,7 @@ table td { .rename-container input { box-sizing: content-box; padding: 2px 3px; - width: 15rem; + width: 10rem; height: 22px; line-height: 19px; border-radius: 2px; From 4c37bc0363ed7dad3afb7e7920ee558d135a12ec Mon Sep 17 00:00:00 2001 From: shanshuirenjia <978987373@qq.com> Date: Tue, 23 Apr 2019 10:49:07 +0800 Subject: [PATCH 2/2] repair grid-item locked bug --- frontend/src/components/dirent-grid-view/dirent-grid-item.js | 5 ++++- frontend/src/components/dirent-grid-view/dirent-grid-view.js | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/dirent-grid-view/dirent-grid-item.js b/frontend/src/components/dirent-grid-view/dirent-grid-item.js index 596a80c661..8de5de9fa4 100644 --- a/frontend/src/components/dirent-grid-view/dirent-grid-item.js +++ b/frontend/src/components/dirent-grid-view/dirent-grid-item.js @@ -144,6 +144,9 @@ class DirentGridItem extends React.Component { gridClass += this.state.isGridSelected ? " grid-selected-active" : " "; gridClass += this.state.isGridDropTipShow ? " grid-drop-show" : " "; + let lockedInfo = gettext('locked by {name}'); + lockedInfo = lockedInfo.replace('{name}', dirent.lock_owner_name); + return(
  • @@ -161,7 +164,7 @@ class DirentGridItem extends React.Component { : } - {dirent.is_locked && {gettext('locked')}} + {dirent.is_locked && {gettext('locked')}}
    {dirent.name} diff --git a/frontend/src/components/dirent-grid-view/dirent-grid-view.js b/frontend/src/components/dirent-grid-view/dirent-grid-view.js index 770a78351e..71bf93aa67 100644 --- a/frontend/src/components/dirent-grid-view/dirent-grid-view.js +++ b/frontend/src/components/dirent-grid-view/dirent-grid-view.js @@ -225,6 +225,8 @@ class DirentGridView extends React.Component{ seafileAPI.lockfile(repoID, filePath).then(() => { this.props.updateDirent(currentObject, 'is_locked', true); this.props.updateDirent(currentObject, 'locked_by_me', true); + let lockName = username.split('@'); + this.props.updateDirent(currentObject, 'lock_owner_name', lockName[0]); }); } @@ -234,6 +236,7 @@ class DirentGridView extends React.Component{ seafileAPI.unlockfile(repoID, filePath).then(() => { this.props.updateDirent(currentObject, 'is_locked', false); this.props.updateDirent(currentObject, 'locked_by_me', false); + this.props.updateDirent(currentObject, 'lock_owner_name', ''); }); }