diff --git a/public/images/loading.gif b/public/images/loading.gif new file mode 100644 index 0000000..336c514 Binary files /dev/null and b/public/images/loading.gif differ diff --git a/public/index.html b/public/index.html index 3342b13..2caffa5 100644 --- a/public/index.html +++ b/public/index.html @@ -29,6 +29,8 @@ + + @@ -41,6 +43,7 @@ + @@ -52,6 +55,7 @@ + diff --git a/public/scripts/controllers/bookmark-info-controller.js b/public/scripts/controllers/bookmark-info-controller.js new file mode 100644 index 0000000..6c570ab --- /dev/null +++ b/public/scripts/controllers/bookmark-info-controller.js @@ -0,0 +1,30 @@ +app.controller('bookmarkInfoCtr', ['$scope', '$state', '$timeout', '$sce', 'bookmarkService', 'pubSubService', function($scope, $state, $timeout, $sce, bookmarkService, pubSubService) { + console.log("Hello bookmarkInfoCtr"); + $scope.bookmark = {} + $scope.content = ''; + $scope.loading = false; + + pubSubService.subscribe('TagCtr.showBookmarkInfo', $scope, function(event, bookmark) { + console.log('subscribe TagCtr.showBookmarkInfo', bookmark); + $('.ui.modal.js-bookmark-info').modal('show'); + $scope.bookmark = bookmark; + $scope.content = ''; + var params = { + url: bookmark.url, + requestId: 1 + } + $scope.loading = true; + bookmarkService.getArticle(params) + .then((data) => { + $scope.content = data.content ? $sce.trustAsHtml(data.content) : $sce.trustAsHtml('

数据获取失败,可能是服务器不允许获取,或者是https网站!

'); + setTimeout(function(){ + $('.ui.modal.js-bookmark-info').modal("refresh"); + }, 100); + $scope.loading = false; + }) + .catch((err) => { + $scope.content = $sce.trustAsHtml('

数据获取失败:' + JSON.stringify(err) + '

'); + $scope.loading = false; + }) + }); +}]); diff --git a/public/scripts/controllers/bookmarks-controller.js b/public/scripts/controllers/bookmarks-controller.js index 93c3a96..febc264 100644 --- a/public/scripts/controllers/bookmarks-controller.js +++ b/public/scripts/controllers/bookmarks-controller.js @@ -67,8 +67,17 @@ app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', ' }); } - $scope.detailBookmark = function(bookmarkId) { - toastr.warning('功能暂未实现。。。', "警告"); + $scope.detailBookmark = function(bookmark) { + if ($scope.showStyle == 'navigate') { + bookmark.tags = [{ + id: bookmark.tag_id, + name: bookmark.tag_name + }]; + } + pubSubService.publish('TagCtr.showBookmarkInfo', bookmark); + bookmarkService.clickBookmark({ + id: bookmark.id + }); } $scope.copyBookmark = function(bookmarkUrl) { toastr.warning('功能暂未实现。。。', "警告"); diff --git a/public/scripts/controllers/edit-controller.js b/public/scripts/controllers/edit-controller.js index 6e92a73..6b5900e 100644 --- a/public/scripts/controllers/edit-controller.js +++ b/public/scripts/controllers/edit-controller.js @@ -13,7 +13,7 @@ app.controller('editCtr', ['$scope', '$state', '$timeout', 'bookmarkService', 'p var params = { url: newUrl, } - bookmarkService.getTitle(params) + bookmarkService.getArticle(params) .then((data) => $scope.title = data.title) .catch((err) => console.log('getTitle err', err)) } diff --git a/public/scripts/controllers/search-controller.js b/public/scripts/controllers/search-controller.js index 51e4a18..604ce90 100644 --- a/public/scripts/controllers/search-controller.js +++ b/public/scripts/controllers/search-controller.js @@ -81,8 +81,8 @@ app.controller('searchCtr', ['$scope', '$state', '$stateParams', '$filter', '$wi }); } - $scope.detailBookmark = function(bookmarkId) { - toastr.warning('功能暂未实现。。。', "警告"); + $scope.detailBookmark = function(bookmark) { + pubSubService.publish('TagCtr.showBookmarkInfo', bookmark); } $scope.copyBookmark = function(bookmarkUrl) { diff --git a/public/scripts/controllers/tags-controller.js b/public/scripts/controllers/tags-controller.js index 026fba6..ec3d401 100644 --- a/public/scripts/controllers/tags-controller.js +++ b/public/scripts/controllers/tags-controller.js @@ -97,8 +97,11 @@ app.controller('tagsCtr', ['$scope', '$filter', '$window', '$stateParams', 'book }); } - $scope.detailBookmark = function(bookmarkId) { - toastr.warning('功能暂未实现。。。', "警告"); + $scope.detailBookmark = function(bookmark) { + pubSubService.publish('TagCtr.showBookmarkInfo', bookmark); + bookmarkService.clickBookmark({ + id: bookmark.id + }); } $scope.copyBookmark = function(bookmarkUrl) { diff --git a/public/scripts/directives/bookmark-info-directive.js b/public/scripts/directives/bookmark-info-directive.js new file mode 100644 index 0000000..5210811 --- /dev/null +++ b/public/scripts/directives/bookmark-info-directive.js @@ -0,0 +1,7 @@ +app.directive('bookmarkinfo', function() { + return { + restrict: 'EAC', + templateUrl: '/views/bookmark-info.html', + replace: true + } +}); diff --git a/public/scripts/services/bookmark-service.js b/public/scripts/services/bookmark-service.js index 0641efe..a21a790 100644 --- a/public/scripts/services/bookmark-service.js +++ b/public/scripts/services/bookmark-service.js @@ -1,16 +1,16 @@ app.factory('bookmarkService', ['$http', '$q', function($http, $q) { // service interface var service = { - getTitle: function(params) { + getArticle: function(params) { var def = $q.defer(); - $http.post('/api/getTitle/', { + $http.post('/api/getArticle/', { params: params }) .success(function(data) { def.resolve(data); }) .error(function(data) { - def.reject('getTitle error'); + def.reject('getArticle error'); }); return def.promise; }, diff --git a/public/views/bookmark-info.html b/public/views/bookmark-info.html new file mode 100644 index 0000000..2ab8697 --- /dev/null +++ b/public/views/bookmark-info.html @@ -0,0 +1,60 @@ + diff --git a/public/views/bookmarks.html b/public/views/bookmarks.html index 831ff95..813e893 100644 --- a/public/views/bookmarks.html +++ b/public/views/bookmarks.html @@ -30,7 +30,7 @@ id="{{bookmark.id}}"> - + {{ bookmark.title}} @@ -75,7 +75,7 @@ - + diff --git a/public/views/search.html b/public/views/search.html index 119ddf2..bdb83c7 100644 --- a/public/views/search.html +++ b/public/views/search.html @@ -149,7 +149,7 @@ - + diff --git a/public/views/tags.html b/public/views/tags.html index 816cb79..aa2508c 100644 --- a/public/views/tags.html +++ b/public/views/tags.html @@ -45,7 +45,7 @@ - + diff --git a/routes/api.js b/routes/api.js index bbe6131..94f9715 100644 --- a/routes/api.js +++ b/routes/api.js @@ -614,14 +614,22 @@ api.post('/addTags', function(req, res) { .catch((err) => console.log('addTags err', err)); }); -api.post('/getTitle', function(req, response) { +api.post('/getArticle', function(req, response) { var params = req.body.params; var url = params.url; + var requestId = params.requestId || 0; read(url, function(err, article, meta) { console.log(article.title || 'Get title failed'); - response.json({ - title: article.title || '', - }); + if (requestId == 0) { + response.json({ + title: article.title || '', + }); + } else if(requestId == 1) { + response.json({ + content: article.content, + }); + } + article.close(); }); })