diff --git a/modules/albums/client/services/albums.client.service.js b/modules/albums/client/services/albums.client.service.js index 9b151461..1c2101cf 100644 --- a/modules/albums/client/services/albums.client.service.js +++ b/modules/albums/client/services/albums.client.service.js @@ -77,8 +77,16 @@ albumId: '@_id' }, interceptor: {response: removeCache} + }, + getTorrentAlbums: { + method: 'GET', + url: '/api/albums/torrent/:torrentId', + isArray: true, + params: { + torrentId: '@torrentId' + }, + cache: albumsCache } - }); return album; diff --git a/modules/albums/server/controllers/albums.server.controller.js b/modules/albums/server/controllers/albums.server.controller.js index e2619ea6..47dcf23a 100644 --- a/modules/albums/server/controllers/albums.server.controller.js +++ b/modules/albums/server/controllers/albums.server.controller.js @@ -249,6 +249,21 @@ exports.list = function (req, res) { }); }; +/** + * getTorrentAlbums + * @param req + * @param res + */ +exports.getTorrentAlbums = function (req, res) { + Album.find({ + torrents: {$in: [req.torrent._id]} + }, function (err, albums) { + if (albums) { + res.json(albums); + } + }); +}; + /** * Album middleware */ diff --git a/modules/albums/server/policies/albums.server.policy.js b/modules/albums/server/policies/albums.server.policy.js index 9ec016e4..5855bda8 100644 --- a/modules/albums/server/policies/albums.server.policy.js +++ b/modules/albums/server/policies/albums.server.policy.js @@ -18,6 +18,7 @@ exports.invokeRolesPolicies = function () { roles: ['admin', 'oper'], allows: [ {resources: '/api/albums', permissions: '*'}, + {resources: '/api/albums/torrent/:torrentId', permissions: '*'}, {resources: '/api/albums/:albumId', permissions: '*'}, {resources: '/api/albums/:albumId/insert/:torrentId', permissions: '*'}, {resources: '/api/albums/:albumId/remove/:torrentId', permissions: '*'}, @@ -29,6 +30,7 @@ exports.invokeRolesPolicies = function () { roles: ['user'], allows: [ {resources: '/api/albums', permissions: ['get']}, + {resources: '/api/albums/torrent/:torrentId', permissions: ['get']}, {resources: '/api/albums/:albumId', permissions: ['get']} ] }, @@ -36,6 +38,7 @@ exports.invokeRolesPolicies = function () { roles: ['guest'], allows: [ {resources: '/api/albums', permissions: ['get']}, + {resources: '/api/albums/torrent/:torrentId', permissions: ['get']}, {resources: '/api/albums/:albumId', permissions: ['get']} ] } diff --git a/modules/albums/server/routes/albums.server.routes.js b/modules/albums/server/routes/albums.server.routes.js index 6650a265..8a133209 100644 --- a/modules/albums/server/routes/albums.server.routes.js +++ b/modules/albums/server/routes/albums.server.routes.js @@ -12,6 +12,9 @@ module.exports = function (app) { .get(albums.list) .post(albums.create); + app.route('/api/albums/torrent/:torrentId').all(albumsPolicy.isAllowed) + .get(albums.getTorrentAlbums); + app.route('/api/albums/:albumId').all(albumsPolicy.isAllowed) .get(albums.read) .put(albums.update) diff --git a/modules/collections/client/services/collections.client.service.js b/modules/collections/client/services/collections.client.service.js index 65cb066c..ae4eaf55 100644 --- a/modules/collections/client/services/collections.client.service.js +++ b/modules/collections/client/services/collections.client.service.js @@ -84,8 +84,16 @@ rlevel: '@rlevel' }, interceptor: {response: removeCache} + }, + getTorrentCollections: { + method: 'GET', + url: '/api/collections/torrent/:torrentId', + isArray: true, + params: { + torrentId: '@torrentId' + }, + cache: collectionsCache } - }); return collection; diff --git a/modules/collections/server/controllers/collections.server.controller.js b/modules/collections/server/controllers/collections.server.controller.js index b331507f..fa0667e5 100644 --- a/modules/collections/server/controllers/collections.server.controller.js +++ b/modules/collections/server/controllers/collections.server.controller.js @@ -12,6 +12,7 @@ var path = require('path'), Maker = mongoose.model('Maker'), Torrent = mongoose.model('Torrent'), Collection = mongoose.model('Collection'), + objectId = require('mongodb').ObjectId, async = require('async'), tmdb = require('moviedb')(config.meanTorrentConfig.tmdbConfig.key), traceLogCreate = require(path.resolve('./config/lib/tracelog')).create, @@ -301,6 +302,21 @@ exports.list = function (req, res) { }); }; +/** + * getTorrentCollections + * @param req + * @param res + */ +exports.getTorrentCollections = function (req, res) { + Collection.find({ + torrents: {$in: [req.torrent._id]} + }, function (err, coll) { + if (coll) { + res.json(coll); + } + }); +}; + /** * Collection middleware */ diff --git a/modules/collections/server/policies/collections.server.policy.js b/modules/collections/server/policies/collections.server.policy.js index 1d0474df..0a91bd16 100644 --- a/modules/collections/server/policies/collections.server.policy.js +++ b/modules/collections/server/policies/collections.server.policy.js @@ -20,6 +20,7 @@ exports.invokeRolesPolicies = function () { {resources: '/api/search/collection/:language', permissions: '*'}, {resources: '/api/collectionInfo/:id/:language', permissions: '*'}, {resources: '/api/collections', permissions: '*'}, + {resources: '/api/collections/torrent/:torrentId', permissions: '*'}, {resources: '/api/collections/:collectionId', permissions: '*'}, {resources: '/api/collections/:collectionId/insert/:torrentId', permissions: '*'}, {resources: '/api/collections/:collectionId/remove/:torrentId', permissions: '*'}, @@ -32,6 +33,7 @@ exports.invokeRolesPolicies = function () { {resources: '/api/search/collection/:language', permissions: ['get']}, {resources: '/api/collectionInfo/:id/:language', permissions: ['get']}, {resources: '/api/collections', permissions: ['get']}, + {resources: '/api/collections/torrent/:torrentId', permissions: ['get']}, {resources: '/api/collections/:collectionId', permissions: ['get']} ] }, @@ -41,6 +43,7 @@ exports.invokeRolesPolicies = function () { {resources: '/api/search/collection/:language', permissions: ['get']}, {resources: '/api/collectionInfo/:id/:language', permissions: ['get']}, {resources: '/api/collections', permissions: ['get']}, + {resources: '/api/collections/torrent/:torrentId', permissions: ['get']}, {resources: '/api/collections/:collectionId', permissions: ['get']} ] } diff --git a/modules/collections/server/routes/collections.server.routes.js b/modules/collections/server/routes/collections.server.routes.js index c1142146..1f1b566e 100644 --- a/modules/collections/server/routes/collections.server.routes.js +++ b/modules/collections/server/routes/collections.server.routes.js @@ -17,6 +17,9 @@ module.exports = function (app) { .get(collections.list) .post(collections.create); + app.route('/api/collections/torrent/:torrentId').all(collectionsPolicy.isAllowed) + .get(collections.getTorrentCollections); + app.route('/api/collections/:collectionId').all(collectionsPolicy.isAllowed) .get(collections.read) .put(collections.update) diff --git a/modules/core/client/app/trans-string-en.js b/modules/core/client/app/trans-string-en.js index abeedb3e..0533b032 100644 --- a/modules/core/client/app/trans-string-en.js +++ b/modules/core/client/app/trans-string-en.js @@ -606,6 +606,8 @@ ENTER_RESOURCE_TITLE: '• Please enter the resource main title and sub title', RESOURCE_TITLE: 'resource main title', RESOURCE_SUB_TITLE: 'resource sub title', + JOINED_COLLECTIONS: 'Joined collections', + JOINED_ALBUMS: 'Joined albums', SELECT_RESOURCE_IMAGE: '• Please select resource cover image', ENTER_RESOURCE_DETAIL_INFO: '• Please enter the resource detail info', diff --git a/modules/core/client/app/trans-string-zh-tw.js b/modules/core/client/app/trans-string-zh-tw.js index 8ba56531..ad60ef6a 100644 --- a/modules/core/client/app/trans-string-zh-tw.js +++ b/modules/core/client/app/trans-string-zh-tw.js @@ -606,6 +606,8 @@ ENTER_RESOURCE_TITLE: '• 請輸入資源標題與描述', RESOURCE_TITLE: '資源標題', RESOURCE_SUB_TITLE: '資源副標題', + JOINED_COLLECTIONS: '所屬系列', + JOINED_ALBUMS: '所屬專輯', SELECT_RESOURCE_IMAGE: '• 請選擇資源封面圖片', ENTER_RESOURCE_DETAIL_INFO: '• 請輸入資源詳細資訊', diff --git a/modules/core/client/app/trans-string-zh.js b/modules/core/client/app/trans-string-zh.js index 0fce8eed..420f9594 100644 --- a/modules/core/client/app/trans-string-zh.js +++ b/modules/core/client/app/trans-string-zh.js @@ -606,6 +606,8 @@ ENTER_RESOURCE_TITLE: '• 请输入资源主副标题', RESOURCE_TITLE: '资源主标题', RESOURCE_SUB_TITLE: '资源副标题', + JOINED_COLLECTIONS: '所属系列', + JOINED_ALBUMS: '所属专辑', SELECT_RESOURCE_IMAGE: '• 请选择资源封面图片', ENTER_RESOURCE_DETAIL_INFO: '• 请输入资源详细信息', diff --git a/modules/torrents/client/controllers/torrent-info.client.controller.js b/modules/torrents/client/controllers/torrent-info.client.controller.js index 6652b606..6057f5d7 100644 --- a/modules/torrents/client/controllers/torrent-info.client.controller.js +++ b/modules/torrents/client/controllers/torrent-info.client.controller.js @@ -176,12 +176,42 @@ $('.backdrop').css('backgroundImage', 'url("' + vm.TGI.getTorrentBackdropImage(vm.torrentLocalInfo) + '")'); vm.rating_vote = res.resource_detail_info.vote_average; + + vm.getTorrentCollectionsInfo($stateParams.torrentId); + vm.getTorrentAlbumsInfo($stateParams.torrentId); + vm.initTabLists(); vm.commentBuildPager(); vm.buildPeersPager(); }); }; + /** + * getTorrentCollectionsInfo + * @param tid + */ + vm.getTorrentCollectionsInfo = function (tid) { + CollectionsService.getTorrentCollections({ + torrentId: tid + }, function (res) { + console.log(res); + vm.torrentCollectionsInfo = res; + }); + }; + + /** + * getTorrentAlbumsInfo + * @param tid + */ + vm.getTorrentAlbumsInfo = function (tid) { + AlbumsService.getTorrentAlbums({ + torrentId: tid + }, function (res) { + console.log(res); + vm.torrentAlbumsInfo = res; + }); + }; + /** * reviewedTorrentStatus * @param item diff --git a/modules/torrents/client/less/torrents.less b/modules/torrents/client/less/torrents.less index f6e4327c..9996c06b 100644 --- a/modules/torrents/client/less/torrents.less +++ b/modules/torrents/client/less/torrents.less @@ -555,3 +555,9 @@ pre.prettyprint { /* csslint ignore:end */ //popup overlay end ------------------------------------------- + +.joined-coll-list, +.joined-album-list { + font-weight: 500; + margin-bottom: 0; +} \ No newline at end of file diff --git a/modules/torrents/client/views/view-torrent.client.view.html b/modules/torrents/client/views/view-torrent.client.view.html index ae70a220..8ab03ae6 100644 --- a/modules/torrents/client/views/view-torrent.client.view.html +++ b/modules/torrents/client/views/view-torrent.client.view.html @@ -732,6 +732,30 @@ callback="onTorrentSubTitleEdited"> +
+
{{ 'JOINED_COLLECTIONS' | translate}}:
+
+ +
+
+ +
+
{{ 'JOINED_ALBUMS' | translate}}:
+
+ +
+
+
{{ 'TABLE_FIELDS.PUBLISHER' | translate}}: