Skip to content

Commit

Permalink
optimize starred items api
Browse files Browse the repository at this point in the history
  • Loading branch information
likesclever committed Jan 22, 2024
1 parent ae2f7a8 commit d059296
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 25 deletions.
23 changes: 15 additions & 8 deletions frontend/src/pages/starred/starred.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { Component } from 'react';
import React, { Component, Fragment } from 'react';
import PropTypes from 'prop-types';
import { Dropdown, DropdownToggle, DropdownItem } from 'reactstrap';
import { Link, navigate } from '@gatsbyjs/reach-router';
Expand Down Expand Up @@ -79,7 +79,7 @@ class TableBody extends Component {

getThumbnails() {
let items = this.state.items.filter((item) => {
return (Utils.imageCheck(item.obj_name) || (enableVideoThumbnail && Utils.videoCheck(item.obj_name))) && !item.repo_encrypted && !item.encoded_thumbnail_src;
return (Utils.imageCheck(item.obj_name) || (enableVideoThumbnail && Utils.videoCheck(item.obj_name))) && !item.repo_encrypted && !item.encoded_thumbnail_src && !item.deleted;
});
if (items.length == 0) {
return ;
Expand Down Expand Up @@ -215,13 +215,20 @@ class Item extends Component {
<img src={data.item_icon_url} alt={gettext('icon')} width="24" />
}
</td>
<td>
{ data.is_dir ?
<Link to={linkUrl}>{data.obj_name}</Link> :
<a className="normal" href={data.dirent_view_url} target="_blank" rel="noreferrer">{data.obj_name}</a>
<Fragment>
{data.deleted ?
<td>
{data.obj_name}{' '}<span style={{color:'red'}}>{gettext('deleted')}</span>
</td> :
<td>
{ data.is_dir ?
<Link to={linkUrl}>{data.obj_name}</Link> :
<a className="normal" href={linkUrl} target="_blank" rel="noreferrer">{data.obj_name}</a>
}
</td>
}
</td>
<td>{data.repo_name}</td>
</Fragment>
<td>{data.repo_name ? data.repo_name : <span style={{color:'red'}}>{gettext('deleted')}</span>}</td>
<td dangerouslySetInnerHTML={{__html:data.mtime_relative}}></td>
<td>
<a href="#" role="button" className={opClasses} title={gettext('Unstar')} aria-label={gettext('Unstar')} onClick={this.unstar}></a>
Expand Down
31 changes: 14 additions & 17 deletions seahub/api2/endpoints/starred_items.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def get_starred_item_info(self, repo, starred_item):
repo_id = starred_item.repo_id
item_info['repo_id'] = repo_id
item_info['repo_name'] = repo.repo_name if repo else ''
item_info['repo_encrypted'] = repo.encrypted
item_info['repo_encrypted'] = repo.encrypted if repo else False
item_info['is_dir'] = starred_item.is_dir

path = starred_item.path
Expand All @@ -53,12 +53,14 @@ def get_starred_item_info(self, repo, starred_item):
item_info['obj_name'] = repo.repo_name if repo else ''
item_info['mtime'] = timestamp_to_isoformat_timestr(repo.last_modified) if \
repo else ''
item_info['deleted'] = False if repo else True
else:
item_info['obj_name'] = os.path.basename(path.rstrip('/'))
dirent = seafile_api.get_dirent_by_path(repo_id, path)
dirent = seafile_api.get_dirent_by_path(repo_id, path) if repo else ''
item_info['mtime'] = timestamp_to_isoformat_timestr(dirent.mtime) if \
dirent else ''
if not starred_item.is_dir:
item_info['deleted'] = False if dirent else True
if dirent and not starred_item.is_dir:
file_type, file_ext = get_file_type_and_ext(item_info['obj_name'])
if file_type in (IMAGE, XMIND) or \
(file_type == VIDEO and ENABLE_VIDEO_THUMBNAIL):
Expand Down Expand Up @@ -88,24 +90,16 @@ def get(self, request):
repo = seafile_api.get_repo(repo_id)
if repo:
repo_dict[repo_id] = repo
else:
repo_dict[repo_id] = ''

starred_repos = []
starred_folders = []
starred_files = []
for starred_item in all_starred_items:

repo_id = starred_item.repo_id
if repo_id not in repo_dict:
continue

path = starred_item.path
if starred_item.is_dir:
if not seafile_api.get_dir_id_by_path(repo_id, path):
continue
else:
if not seafile_api.get_file_id_by_path(repo_id, path):
continue

repo = repo_dict[repo_id]
item_info = self.get_starred_item_info(repo, starred_item)

Expand Down Expand Up @@ -212,10 +206,13 @@ def delete(self, request):
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)

# handler path if item exist
if seafile_api.get_dir_id_by_path(repo_id, path):
path = normalize_dir_path(path)
elif seafile_api.get_file_id_by_path(repo_id, path):
path = normalize_file_path(path)
try:
if seafile_api.get_dir_id_by_path(repo_id, path):
path = normalize_dir_path(path)
elif seafile_api.get_file_id_by_path(repo_id, path):
path = normalize_file_path(path)
except Exception as e:
logger.warning(e)

email = request.user.username

Expand Down

0 comments on commit d059296

Please sign in to comment.