From a32a1893cb3a2247c28fa27ee46c0f455d06cdc2 Mon Sep 17 00:00:00 2001 From: luchenqun Date: Sat, 4 Mar 2017 15:35:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E9=94=AE=E6=94=B6?= =?UTF-8?q?=E8=97=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database/db.js | 12 +-- public/images/favorite-hover.png | Bin 0 -> 529 bytes public/images/favorite.png | Bin 0 -> 438 bytes public/scripts/controllers/edit-controller.js | 5 +- .../scripts/controllers/search-controller.js | 23 ++++++ public/scripts/services/bookmark-service.js | 13 ++++ public/views/search.html | 5 +- routes/api.js | 70 +++++++++++++++++- 8 files changed, 118 insertions(+), 10 deletions(-) create mode 100644 public/images/favorite-hover.png create mode 100644 public/images/favorite.png diff --git a/database/db.js b/database/db.js index 5c571f3..bc773a2 100644 --- a/database/db.js +++ b/database/db.js @@ -307,7 +307,7 @@ db.register = function(user) { }; db.insertDefaultBookmarks = function(userId) { - var tags_name = ["常用", "未分类"]; + var tags_name = ["常用", "未分类", "收藏"]; db.addTags(userId, tags_name) .then((insertId) => { @@ -315,27 +315,27 @@ db.insertDefaultBookmarks = function(userId) { title: "谷歌", description: "要翻墙的搜索网站", url: "https://www.google.com.hk/", - public: "1" + public: "0" }, { title: "百度", description: "A:百度一下你会死啊?B:会!", url: "https://www.baidu.com/", - public: "1" + public: "0" }, { title: "微博", description: "随时随地发现新鲜事", url: "http://weibo.com/", - public: "1" + public: "0" }, { title: "天猫", description: "上天猫,就够了!", url: "https://www.tmall.com/", - public: "1" + public: "0" }, { title: "优酷", description: "视频网站", url: "http://www.youku.com/", - public: "1" + public: "0" }]; var tags = [insertId]; diff --git a/public/images/favorite-hover.png b/public/images/favorite-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..e52ab8a57af9b28cf7834aaf9c036f7456800703 GIT binary patch literal 529 zcmV+s0`C2ZP)N++=8#PSE|p7sfw})kONnEq%XJW%WMIj_%6}q1FE7&p z%jFITT>|RKLAXFFmdj%hZi`OJz$mDqA30*a zaLxD(g&z*&jXj(0k}*2~)__L@+)Hd`U=bL&QL&W(ZvaeT-m7O*3>pI{`znNYNs*Mj zO9ElmJ<`Q zS{rB=ZNOR6r1ifb142t&%Yk@0woX9j>}ZTit6 TQFc-w00000NkvXXu0mjf{-)#6 literal 0 HcmV?d00001 diff --git a/public/images/favorite.png b/public/images/favorite.png new file mode 100644 index 0000000000000000000000000000000000000000..c914aab0270295b8e2194465235c61d1e2a608e0 GIT binary patch literal 438 zcmV;n0ZIOeP)ZjZn%@LmWgf1T6$+~j`) zJoV2F0Z8P$lIdLnv5M>`;YH<~VqfMyeE>C2^DKlFutJIlwlr;KOFj zPCdeC8%CbaU>hos#-&E-CQYMUI-NyFaTIXX|6>69Zxci5mw2fH2KNk{L{sgZ)2Dp! zTQRnfXub&>X3UVNW&~MF|*G92-@Yr-~DtjJ0 gdIes { diff --git a/public/scripts/controllers/search-controller.js b/public/scripts/controllers/search-controller.js index 19ef82e..969d414 100644 --- a/public/scripts/controllers/search-controller.js +++ b/public/scripts/controllers/search-controller.js @@ -114,6 +114,29 @@ app.controller('searchCtr', ['$scope', '$state', '$stateParams', '$filter', '$wi pubSubService.publish('TagCtr.storeBookmark', b); } + $scope.favoriteBookmark = function(b) { + var bookmark = {} + bookmark.description = ''; + bookmark.title = b.title; + bookmark.url = b.url; + bookmark.public = 1; + bookmark.click_count = 1; + + bookmarkService.favoriteBookmark(bookmark) + .then((data) => { + pubSubService.publish('EditCtr.inserBookmarsSuccess', data); + if (data.title) { + toastr.success('[ ' + data.title + ' ] 收藏成功,将自动重新更新书签!', "提示"); + } else { + toastr.error('[ ' + bookmark.title + ' ] 收藏失败', "提示"); + } + }) + .catch((err) => { + console.log('favoriteBookmark err', err); + toastr.error('[ ' + bookmark.title + ' ] 收藏失败' + JSON.stringify(err), "提示"); + }); + } + $scope.copy = function(id, url) { var clipboard = new Clipboard('#searchurl' + id, { text: function() { diff --git a/public/scripts/services/bookmark-service.js b/public/scripts/services/bookmark-service.js index aca1d75..b642709 100644 --- a/public/scripts/services/bookmark-service.js +++ b/public/scripts/services/bookmark-service.js @@ -177,6 +177,19 @@ app.factory('bookmarkService', ['$http', '$q', function($http, $q) { }); return def.promise; }, + favoriteBookmark: function(params) { + var def = $q.defer(); + $http.post('/api/favoriteBookmark/', { + params: params + }) + .success(function(data) { + def.resolve(data); + }) + .error(function(data) { + def.reject('favorite error'); + }); + return def.promise; + }, updateBookmark: function(params) { var def = $q.defer(); $http.post('/api/updateBookmark/', { diff --git a/public/views/search.html b/public/views/search.html index e421fb6..927d6b9 100644 --- a/public/views/search.html +++ b/public/views/search.html @@ -136,7 +136,7 @@ - {{ bookmark.url }} + {{ bookmark.url }} {{ bookmark.click_count }} {{ bookmark.created_at }} @@ -153,6 +153,9 @@ + + + diff --git a/routes/api.js b/routes/api.js index 7947be2..91bb40f 100644 --- a/routes/api.js +++ b/routes/api.js @@ -463,7 +463,6 @@ api.get('/searchBookmarks', function(req, res) { }) sendData.totalItems = totalItems; sendData.bookmarks = data; - console.log(JSON.stringify(sendData)) res.json(sendData); }) .catch((err) => console.log('bookmarks table or card err', err)) @@ -475,7 +474,30 @@ api.get('/tags', function(req, res) { return; } db.getTags(req.session.user.id) - .then((tags) => res.json(tags)) + .then((tags) => { + // 每获取一次标签,就检查一下系统默认的两个分类是不是存在 + var defaultTags = []; + var find1 = false; + var find2 = false; + tags.forEach((tag) => { + if (tag.name == "未分类") { + find1 = true; + } + if (tag.name == "收藏") { + find2 = true; + } + }) + if (!find1) { + defaultTags.push("未分类") + } + if (!find2) { + defaultTags.push("收藏") + } + if (defaultTags.length > 0) { + db.addTags(req.session.user.id, defaultTags) + } + res.json(tags); + }) .catch((err) => console.log('tags', err)); }); @@ -631,6 +653,50 @@ api.post('/addBookmark', function(req, res) { .catch((err) => console.log('addBookmark err', err)); // oops! }); +api.post('/favoriteBookmark', function(req, res) { + console.log('hello favoriteBookmark', JSON.stringify(req.body)); + if (!req.session.user) { + res.send(401); + return; + } + var bookmark = req.body.params; + var userId = req.session.user.id; + var bookmarkId = -1; + var ret = {}; + + db.addBookmark(userId, bookmark) // 插入书签 + .then((bookmark_id) => { + db.delBookmarkTags(bookmark_id); // 不管3721,先删掉旧的分类 + bookmarkId = bookmark_id; + return bookmark_id; + }) // 将之前所有的书签分类信息删掉 + .then((bookmark_id) => db.getTags(userId)) // 插入分类 + .then((tags) => { + var tagFavorite = []; + tags.forEach((tag) => { + if (tag.name == '收藏') { + tagFavorite.push(tag.id); + } + }) + if (tagFavorite.length >= 1) { + return db.addTagsBookmarks(tagFavorite, bookmarkId) + } else { + db.addTags(req.session.user.id, ['收藏']) + return Promise.reject("没有收藏的分类"); + } + }) + .then(() => db.getBookmark(bookmarkId)) // 获取书签信息,返回去 + .then((bookmark) => { + ret = bookmark; + return db.getBookmarkTags(bookmarkId); + }) + .then((bookmarkTags) => { + ret.tags = bookmarkTags; + res.json(ret) + }) + .catch((err) => console.log('addBookmark err', err)); // oops! +}); + api.post('/addTags', function(req, res) { console.log('hello addTags', JSON.stringify(req.query), JSON.stringify(req.body)); if (!req.session.user) {