mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-05 17:02:47 +00:00
click draft file from activities (#3153)
This commit is contained in:
@@ -2,7 +2,7 @@ import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import moment from 'moment';
|
||||
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Table } from 'reactstrap';
|
||||
import { gettext, siteRoot } from '../../utils/constants';
|
||||
import { gettext, siteRoot, serviceURL } from '../../utils/constants';
|
||||
import { Utils } from '../../utils/utils';
|
||||
|
||||
const propTypes = {
|
||||
@@ -33,9 +33,16 @@ class ListCreatedFileDialog extends React.Component {
|
||||
{
|
||||
activity.createdFilesList.map((item, index) => {
|
||||
let fileURL = `${siteRoot}lib/${item.repo_id}/file${Utils.encodePath(item.path)}`;
|
||||
if (item.name.endsWith('(draft).md')) {
|
||||
fileURL = serviceURL + '/drafts/' + item.draft_id + '/';
|
||||
}
|
||||
let fileLink = <a href={fileURL} target='_blank'>{item.name}</a>
|
||||
if (item.name.endsWith('(draft).md') && !item.draft_id) {
|
||||
fileLink = item.name;
|
||||
}
|
||||
return (
|
||||
<tr key={index}>
|
||||
<td><a href={fileURL} target='_blank'>{item.name}</a></td>
|
||||
<td>{fileLink}</td>
|
||||
<td>{moment(item.time).fromNow()}</td>
|
||||
</tr>
|
||||
);
|
||||
|
@@ -25,6 +25,8 @@ class Acticity {
|
||||
this.old_name = json.old_name;
|
||||
} else if (json.op_type === 'publish') {
|
||||
this.old_path = json.old_path;
|
||||
} else if (json.name.endsWith('(draft).md')) {
|
||||
this.draft_id = json.draft_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,7 +2,7 @@ import React, { Component, Fragment } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import moment from 'moment';
|
||||
import { seafileAPI } from '../../utils/seafile-api';
|
||||
import { gettext, siteRoot } from '../../utils/constants';
|
||||
import { gettext, siteRoot, serviceURL } from '../../utils/constants';
|
||||
import { Utils } from '../../utils/utils';
|
||||
import Loading from '../../components/loading';
|
||||
import Activity from '../../models/activity';
|
||||
@@ -129,7 +129,13 @@ class ActivityItem extends Component {
|
||||
details = <td>{fileLink}<br />{smallLibLink}</td>;
|
||||
} else if (item.obj_type == 'files') {
|
||||
let fileURL = `${siteRoot}lib/${item.repo_id}/file${Utils.encodePath(item.path)}`;
|
||||
if (item.name.endsWith('(draft).md')) {
|
||||
fileURL = serviceURL + '/drafts/' + item.draft_id + '/';
|
||||
}
|
||||
let fileLink = `<a href=${fileURL} target="_blank">${item.name}</a>`;
|
||||
if (item.name.endsWith('(draft).md') && !item.draft_id) {
|
||||
fileLink = item.name;
|
||||
}
|
||||
let fileCount = item.createdFilesCount - 1;
|
||||
let firstLine = gettext('{file} and {n} other files');
|
||||
firstLine = firstLine.replace('{file}', fileLink);
|
||||
@@ -143,7 +149,13 @@ class ActivityItem extends Component {
|
||||
</td>;
|
||||
} else if (item.obj_type == 'file') {
|
||||
let fileURL = `${siteRoot}lib/${item.repo_id}/file${Utils.encodePath(item.path)}`;
|
||||
if (item.name.endsWith('(draft).md')) {
|
||||
fileURL = serviceURL + '/drafts/' + item.draft_id + '/';
|
||||
}
|
||||
let fileLink = <a href={fileURL} target="_blank">{item.name}</a>;
|
||||
if (item.name.endsWith('(draft).md') && !item.draft_id) {
|
||||
fileLink = item.name;
|
||||
}
|
||||
switch(item.op_type) {
|
||||
case 'create':
|
||||
if (item.name.endsWith('(draft).md')) {
|
||||
|
@@ -17,6 +17,7 @@ from seahub.api2.throttling import UserRateThrottle
|
||||
from seahub.api2.authentication import TokenAuthentication
|
||||
from seahub.base.templatetags.seahub_tags import email2nickname
|
||||
from seahub.avatar.templatetags.avatar_tags import api_avatar_url
|
||||
from seahub.drafts.models import Draft
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -85,6 +86,15 @@ class ActivitiesView(APIView):
|
||||
d['old_name'] = os.path.basename(e.old_path)
|
||||
elif e.op_type == 'publish':
|
||||
d['old_path'] = e.old_path
|
||||
elif d['name'].endswith('(draft).md'):
|
||||
if e.op_type in ('create', 'edit') and e.obj_type == 'file':
|
||||
try:
|
||||
draft = Draft.objects.get(username=e.op_user,
|
||||
origin_repo_id=e.repo_id,
|
||||
draft_file_path=e.path)
|
||||
d['draft_id'] = draft.id
|
||||
except Draft.DoesNotExist:
|
||||
pass
|
||||
|
||||
events_list.append(d)
|
||||
|
||||
|
Reference in New Issue
Block a user