From 9f516d0c4ec4cfc8a956b2a5dbb199de1070c51e Mon Sep 17 00:00:00 2001 From: HelloWorld Date: Sat, 30 Nov 2019 12:37:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E7=B1=BB=E5=8F=AF=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E6=88=96=E8=80=85=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database/db.js | 17 ++++++- public/scripts/controllers/tags-controller.js | 20 ++++++++ public/scripts/services/bookmark-service.js | 13 ++++++ public/views/tags.html | 4 +- routes/api.js | 46 +++++++++++++++++-- schema.sql | 1 + 6 files changed, 96 insertions(+), 5 deletions(-) diff --git a/database/db.js b/database/db.js index 62906d8..5479c29 100644 --- a/database/db.js +++ b/database/db.js @@ -414,7 +414,7 @@ db.getUser = function(username) { }; db.getTags = function(user_id) { - var sql = "SELECT t.id, t.user_id, t.name, DATE_FORMAT(t.last_use, '%Y-%m-%d %H:%i:%s') as last_use, t.sort, tb.cnt, tg.ncnt FROM `tags` as t LEFT OUTER JOIN ( SELECT `tag_id`, COUNT(tag_id) as cnt FROM tags_bookmarks GROUP BY tag_id ) tb ON t.id = tb.tag_id LEFT OUTER JOIN ( SELECT `tag_id`, COUNT(tag_id) as ncnt FROM notes GROUP BY tag_id ) tg ON t.id = tg.tag_id "; + var sql = "SELECT t.id, t.user_id, t.name, DATE_FORMAT(t.last_use, '%Y-%m-%d %H:%i:%s') as last_use, t.sort, t.show, tb.cnt, tg.ncnt FROM `tags` as t LEFT OUTER JOIN ( SELECT `tag_id`, COUNT(tag_id) as cnt FROM tags_bookmarks GROUP BY tag_id ) tb ON t.id = tb.tag_id LEFT OUTER JOIN ( SELECT `tag_id`, COUNT(tag_id) as ncnt FROM notes GROUP BY tag_id ) tg ON t.id = tg.tag_id "; if (user_id) { sql += "WHERE t.user_id = '" + user_id + "' "; } @@ -446,6 +446,21 @@ db.updateTagName = function(tag) { }); }; +db.updateTagShow = function(tag) { + console.log('updateTagShow'); + var sql = "UPDATE `tags` SET `show`='" + tag.show + "' WHERE (`id`='" + tag.id + "')"; + console.log(sql); + return new Promise(function(resolve, reject) { + client.query(sql, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result.affectedRows); + } + }); + }); +}; + db.updateTagsIndex = function(tagsIndex) { console.log('updateTagsIndex'); var sql = "UPDATE tags SET sort = CASE id "; diff --git a/public/scripts/controllers/tags-controller.js b/public/scripts/controllers/tags-controller.js index aa540d9..037635b 100644 --- a/public/scripts/controllers/tags-controller.js +++ b/public/scripts/controllers/tags-controller.js @@ -273,6 +273,26 @@ app.controller('tagsCtr', ['$scope', '$filter', '$state', '$window', '$statePara tag.oldName = tag.name; tag.edit = true; } + + $scope.updateTagShow = function (tag, show) { + var params = { + id: tag.id, + show: show, + } + bookmarkService.updateTagShow(params) + .then((data) => { + if (data.retCode == 0) { + toastr.success(tag.name + ' 更新成功!', "提示"); + tag.show = show; + } else { + toastr.error(tag.name + ' 更新失败!错误提示:' + data.msg, "提示"); + } + }) + .catch((err) => { + toastr.error(tag.name + ' 更新失败!错误提示:' + err, "提示"); + }); + } + $scope.updateTag = function (tag) { if (tag.name == tag.oldName) { toastr.warning('您没有编辑分类', "警告"); diff --git a/public/scripts/services/bookmark-service.js b/public/scripts/services/bookmark-service.js index d78ef4d..97da610 100644 --- a/public/scripts/services/bookmark-service.js +++ b/public/scripts/services/bookmark-service.js @@ -300,6 +300,19 @@ app.factory('bookmarkService', ['$http', '$q', function($http, $q) { }); return def.promise; }, + updateTagShow: function(params) { + var def = $q.defer(); + $http.post('/api/updateTagShow/', { + params: params + }) + .success(function(data) { + def.resolve(data); + }) + .error(function(data) { + def.reject(data); + }); + return def.promise; + }, updateTagsIndex: function(params) { var def = $q.defer(); $http.post('/api/updateTagsIndex/', { diff --git a/public/views/tags.html b/public/views/tags.html index 0e5fe76..bb6b20d 100644 --- a/public/views/tags.html +++ b/public/views/tags.html @@ -3,7 +3,7 @@
{{ costomTag.name }} ({{ costomTag.cnt || 0 }})
-
+
{{ tag.name }} ({{ tag.cnt || 0 }})
@@ -51,6 +51,8 @@ + +
diff --git a/routes/api.js b/routes/api.js index f93061a..71caa3f 100644 --- a/routes/api.js +++ b/routes/api.js @@ -538,10 +538,7 @@ api.get('/bookmarksByTag', function(req, res) { var userId = req.session.user.id; var params = req.query; - var bookmarks = []; var tagsBookmarks = []; - var totalItems = 0; - var totalItems = 0; var sendData = { totalItems: 0, bookmarks: [], @@ -997,6 +994,49 @@ api.post('/updateTagName', function(req, res) { }); }); +api.post('/updateTagShow', function(req, res) { + console.log("updateTagShow username = ", req.session.username); + if (!req.session.user) { + res.send(401); + return; + } + var tag = req.body.params; + var userId = req.session.user.id; + + db.getTags(userId) + .then((tags) => { + for (var i = 0; i < tags.length; i++) { + if (tags[i].id != tag.id && tags[i].name == tag.name) { + return Promise.resolve(-1); + } + } + return db.updateTagShow(tag); + }) + .then((affectedRows) => { + var msg = ""; + if (affectedRows == -1) { + msg += " 您已经有这个分类了,不允许更新"; + } else if (affectedRows == 0) { + msg += " 更新失败"; + } else if (affectedRows == 1) { + msg = " 更新成功"; + } else { + msg += " 更新失败"; + } + res.json({ + retCode: (affectedRows == 1) ? 0 : 1, + msg: msg, + }) + }) + .catch((err) => { + console.log('updateTagShow err', err); + res.json({ + retCode: 1, + msg: tag.name + " 更新失败: " + JSON.stringify(err), + }) + }); +}); + api.post('/updateTagsIndex', function(req, res) { console.log("updateTagsIndex username = ", req.session.username); if (!req.session.user) { diff --git a/schema.sql b/schema.sql index a6deabf..73b0d56 100644 --- a/schema.sql +++ b/schema.sql @@ -41,6 +41,7 @@ CREATE TABLE `tags` ( `name` varchar(32) NOT NULL, -- 标签 `last_use` datetime DEFAULT now(), -- 最后使用标签的时间 `sort` tinyint(8) DEFAULT 0, -- 书签排序 + `show` tinyint(8) DEFAULT 1, -- 书签是否显示 PRIMARY KEY (`id`), KEY `userIdIdx` (`user_id`) );