diff --git a/modules/core/client/app/trans-string-en.js b/modules/core/client/app/trans-string-en.js
index 103baf88..6046ac1e 100644
--- a/modules/core/client/app/trans-string-en.js
+++ b/modules/core/client/app/trans-string-en.js
@@ -734,6 +734,7 @@
FIELD_USER: 'User',
BTN_EDIT_DESC: 'Edit Desc',
BTN_ACCEPT: 'Accept',
+ WAITING_REVIEW: 'Waiting for review ...',
EDIT_SUCCESSFULLY: 'Edit request successfully',
EDIT_FAILED: 'Edit request failed',
DELETE_CONFIRM_OK: 'Delete',
@@ -1391,7 +1392,8 @@
ALREADY_FOLLOWING: 'You have already following {{name}}',
INVALID_OBJECTID: 'Invalid object id',
REQUEST_STATUS_FINISHED: 'Status error! Request already finished.',
- REQUEST_STATUS_EXPIRED: 'Status error! Request already expired.'
+ REQUEST_STATUS_EXPIRED: 'Status error! Request already expired.',
+ TORRENT_STATUS_ERROR: 'Status error! Torrent status is not reviewed'
},
//server message string, content string support markdown and emoji
diff --git a/modules/core/client/app/trans-string-zh.js b/modules/core/client/app/trans-string-zh.js
index 7d9dddc4..23a5953f 100644
--- a/modules/core/client/app/trans-string-zh.js
+++ b/modules/core/client/app/trans-string-zh.js
@@ -734,6 +734,7 @@
FIELD_USER: '求种用户',
BTN_EDIT_DESC: '编辑描述',
BTN_ACCEPT: '接受',
+ WAITING_REVIEW: '等特审核 ...',
EDIT_SUCCESSFULLY: '请求编辑成功',
EDIT_FAILED: '请求编辑失败',
DELETE_CONFIRM_OK: '删除',
@@ -1391,7 +1392,8 @@
ALREADY_FOLLOWING: '您已经关注过 {{name}} 了',
INVALID_OBJECTID: '无效的数据记录ID',
REQUEST_STATUS_FINISHED: '状态错误! 求种请求已完成.',
- REQUEST_STATUS_EXPIRED: '状态错误! 求种请求已过期.'
+ REQUEST_STATUS_EXPIRED: '状态错误! 求种请求已过期.',
+ TORRENT_STATUS_ERROR: '状态错误! 种子状态为未审核'
},
//server message string, content string support markdown and emoji
diff --git a/modules/requests/client/less/requests.less b/modules/requests/client/less/requests.less
index fb949508..f9da442a 100644
--- a/modules/requests/client/less/requests.less
+++ b/modules/requests/client/less/requests.less
@@ -148,18 +148,38 @@
width: 80px !important;
padding: 0 5px;
}
+ .div-overlay-accept {
+ position: absolute;
+ background-color: #444;
+ background-color: rgba(128, 128, 128, 0.7);
+ left: 95px;
+ right: 15px;
+ height: 116px;
+ z-index: 5;
+ font-size: 24px;
+ font-weight: 500;
+ color: #eee;
+ padding-top: 35px !important;
+ &:hover {
+ background-color: #444 !important;
+ background-color: rgba(128, 128, 128, 0.5) !important;
+ }
+ span {
+ margin-top: 50%;
+ }
+ }
.btn-response-accept {
display: none;
}
.accepted-item {
- td:not(:first-child) {
+ td:not(:first-child), td:not(:last-child) {
background-color: lighten(@brand-success, 30%);
}
}
.tb-v-middle {
tbody {
tr {
- td:first-child {
+ td:first-child, td:last-child {
padding: 0;
}
}
@@ -179,7 +199,7 @@
tbody {
tr {
td {
- &:first-child {
+ &:first-child, &:last-child {
border-top: none;
}
}
@@ -193,7 +213,7 @@
}
&:last-child {
td {
- &:first-child {
+ &:first-child, &:last-child {
border-bottom: none !important;
}
}
diff --git a/modules/requests/client/views/requests-view.client.view.html b/modules/requests/client/views/requests-view.client.view.html
index 3390db57..154e3cf8 100644
--- a/modules/requests/client/views/requests-view.client.view.html
+++ b/modules/requests/client/views/requests-view.client.view.html
@@ -47,7 +47,8 @@
{{vm.request.createdAt | life }}
- Expired
+ Expired
Finished
|
@@ -128,15 +129,16 @@
+ ng-class="{'accepted-item': vm.request.accept == item._id}" ng-disabled="true">
|
-
+
|
@@ -237,6 +239,13 @@
|
|
+
+
+ {{ 'REQUESTS.WAITING_REVIEW' | translate}}
+ |
diff --git a/modules/requests/server/controllers/requests.server.controller.js b/modules/requests/server/controllers/requests.server.controller.js
index a03808dd..3e50baf5 100644
--- a/modules/requests/server/controllers/requests.server.controller.js
+++ b/modules/requests/server/controllers/requests.server.controller.js
@@ -143,55 +143,61 @@ exports.accept = function (req, res) {
if (request.user._id.equals(req.user._id)) {
if ((request.createdAt + requestsConfig.requestExpires) >= Date.now()) {
if (!request.accept) {
- var exist = false;
- request.torrents.forEach(function (r) {
- if (r._id.equals(torrent._id)) {
- exist = true;
- }
- });
- if (exist) {
- if (request.user.score >= request.rewards) {
- request.acceptedAt = Date.now();
- request.accept = torrent._id;
+ if (torrent.torrent_status === 'reviewed') {
+ var exist = false;
+ request.torrents.forEach(function (r) {
+ if (r._id.equals(torrent._id)) {
+ exist = true;
+ }
+ });
+ if (exist) {
+ if (request.user.score >= request.rewards) {
+ request.acceptedAt = Date.now();
+ request.accept = torrent._id;
- request.save(function (err) {
- if (err) {
- return res.status(422).send({
- message: errorHandler.getErrorMessage(err)
- });
- } else {
- res.json(request);
-
- //transfer reward score
- request.user.update({
- $inc: {score: -request.rewards}
- }).exec();
- torrent.user.update({
- $inc: {score: request.rewards}
- }).exec();
-
- //add server message
- if (serverNoticeConfig.action.RequestTorrentRespond.enable) {
- serverMessage.addMessage(torrent.user._id, serverNoticeConfig.action.RequestTorrentRespond.title, serverNoticeConfig.action.RequestTorrentRespond.content, {
- request_title: request.title,
- request_id: request._id,
- torrent_file_name: torrent.torrent_filename,
- torrent_id: torrent._id,
- by_name: request.user.displayName,
- by_id: request.user._id,
- rewards: request.rewards
+ request.save(function (err) {
+ if (err) {
+ return res.status(422).send({
+ message: errorHandler.getErrorMessage(err)
});
+ } else {
+ res.json(request);
+
+ //transfer reward score
+ request.user.update({
+ $inc: {score: -request.rewards}
+ }).exec();
+ torrent.user.update({
+ $inc: {score: request.rewards}
+ }).exec();
+
+ //add server message
+ if (serverNoticeConfig.action.RequestTorrentRespond.enable) {
+ serverMessage.addMessage(torrent.user._id, serverNoticeConfig.action.RequestTorrentRespond.title, serverNoticeConfig.action.RequestTorrentRespond.content, {
+ request_title: request.title,
+ request_id: request._id,
+ torrent_file_name: torrent.torrent_filename,
+ torrent_id: torrent._id,
+ by_name: request.user.displayName,
+ by_id: request.user._id,
+ rewards: request.rewards
+ });
+ }
}
- }
- });
+ });
+ } else {
+ return res.status(422).send({
+ message: 'SERVER.SCORE_NOT_ENOUGH'
+ });
+ }
} else {
- return res.status(422).send({
- message: 'SERVER.SCORE_NOT_ENOUGH'
+ return res.status(403).json({
+ message: 'SERVER.INVALID_OBJECTID'
});
}
} else {
- return res.status(403).json({
- message: 'SERVER.INVALID_OBJECTID'
+ return res.status(422).send({
+ message: 'SERVER.TORRENT_STATUS_ERROR'
});
}
} else {