From 7cae54117acaff0da49f8dff5723c1dd30bffe81 Mon Sep 17 00:00:00 2001 From: luchenqun Date: Sun, 11 Jun 2017 16:28:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BF=AB=E6=8D=B7=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E5=A4=8D=E5=88=B6=E9=93=BE=E6=8E=A5=EF=BC=8C=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E4=B9=A6=E7=AD=BE=EF=BC=8C=E5=88=A0=E9=99=A4=E4=B9=A6?= =?UTF-8?q?=E7=AD=BE=E7=AD=89=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/bookmarks-controller.js | 68 ++++++++++++------- public/scripts/controllers/hot-controller.js | 20 ++++++ .../scripts/controllers/menus-controller.js | 10 +++ public/scripts/controllers/note-controller.js | 23 +++++++ .../scripts/controllers/search-controller.js | 26 ++++++- .../controllers/settings-controller.js | 2 + public/scripts/controllers/tags-controller.js | 2 +- public/scripts/services/data-service.js | 4 ++ public/views/bookmarks.html | 16 ++--- public/views/hot.html | 4 +- public/views/menus.html | 2 +- public/views/note.html | 2 +- public/views/search.html | 2 +- public/views/settings.html | 7 +- 14 files changed, 141 insertions(+), 47 deletions(-) diff --git a/public/scripts/controllers/bookmarks-controller.js b/public/scripts/controllers/bookmarks-controller.js index fb16732..409fcbb 100644 --- a/public/scripts/controllers/bookmarks-controller.js +++ b/public/scripts/controllers/bookmarks-controller.js @@ -1,12 +1,12 @@ -app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', '$window', '$timeout', 'ngDialog', 'bookmarkService', 'pubSubService', 'dataService', function($scope, $state, $stateParams, $filter, $window, $timeout, ngDialog, bookmarkService, pubSubService, dataService) { +app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', '$window', '$timeout', '$document', 'ngDialog', 'bookmarkService', 'pubSubService', 'dataService', function($scope, $state, $stateParams, $filter, $window, $timeout, $document, ngDialog, bookmarkService, pubSubService, dataService) { console.log("Hello bookmarksCtr...", $stateParams); $scope.bookmarks = []; // 书签数据 $scope.showSearch = false; // 搜索对话框 $scope.bookmarkNormalHover = false; $scope.bookmarkEditHover = false; + $scope.hoverBookmark = null; var menusScope = $('div[ng-controller="menuCtr"]').scope(); $scope.showStyle = ($stateParams && $stateParams.showStyle) || (menusScope && menusScope.showStyle); // 显示风格'navigate', 'costomTag', 'card', 'table' - $scope.edit = false; const perPageItems = 20; var dialog = null; $scope.totalPages = 0; @@ -48,33 +48,28 @@ app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', ' } $scope.jumpToUrl = function(url, id) { - if (!$scope.edit) { - $window.open(url, '_blank'); - bookmarkService.clickBookmark({ - id: id - }); + $window.open(url, '_blank'); + bookmarkService.clickBookmark({ + id: id + }); - if ($scope.showStyle != 'navigate') { - var bookmarks = $scope.showStyle == 'table' ? $scope.bookmarkData.bookmarks : $scope.bookmarkData; - bookmarks.forEach(function(bookmark) { - if (bookmark.id == id) { - bookmark.click_count += 1; - bookmark.last_click = $filter("date")(new Date(), "yyyy-MM-dd HH:mm:ss"); - } - }) - } else { + if ($scope.showStyle != 'navigate') { + var bookmarks = $scope.showStyle == 'table' ? $scope.bookmarkData.bookmarks : $scope.bookmarkData; + bookmarks.forEach(function(bookmark) { + if (bookmark.id == id) { + bookmark.click_count += 1; + bookmark.last_click = $filter("date")(new Date(), "yyyy-MM-dd HH:mm:ss"); + } + }) + } else { - } - - $timeout(function() { - timeagoInstance.cancel(); - timeagoInstance.render(document.querySelectorAll('.need_to_be_rendered'), 'zh_CN'); - }, 100) } + + $timeout(function() { + timeagoInstance.cancel(); + timeagoInstance.render(document.querySelectorAll('.need_to_be_rendered'), 'zh_CN'); + }, 100) } - $scope.toggleMode = function() { - $scope.edit = !$scope.edit - }; $scope.delBookmark = function(bookmark) { console.log('delBookmark..........') @@ -256,6 +251,29 @@ app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', ' } }); + $scope.setHoverBookmark = function(bookmark) { + $scope.hoverBookmark = bookmark; + } + + // 在输入文字的时候也会触发,所以不要用Ctrl,Shift之类的按键 + $document.bind("keydown", function(event) { + $scope.$apply(function() { + var key = event.key.toUpperCase(); + console.log(key); + if ($scope.hoverBookmark && dataService.keyShortcuts()) { + if (key == 'E') { + $scope.editBookmark($scope.hoverBookmark.id) + } else if (key == 'I') { + $scope.detailBookmark($scope.hoverBookmark) + } else if (key == 'D') { + $scope.delBookmark($scope.hoverBookmark) + } else if (key == 'C') { + $scope.copy($scope.hoverBookmark.url) + } + } + }) + }); + function getBookmarks() { var params = {} params.showStyle = $scope.showStyle diff --git a/public/scripts/controllers/hot-controller.js b/public/scripts/controllers/hot-controller.js index c4e6f93..37ad803 100644 --- a/public/scripts/controllers/hot-controller.js +++ b/public/scripts/controllers/hot-controller.js @@ -1,5 +1,7 @@ app.controller('hotCtr', ['$scope', '$state', '$stateParams', '$filter', '$window', '$timeout', '$document', 'ngDialog', 'bookmarkService', 'pubSubService', 'dataService', function($scope, $state, $stateParams, $filter, $window, $timeout, $document, ngDialog, bookmarkService, pubSubService, dataService) { console.log("Hello hotCtr..."); + + $scope.hoverBookmark = null; $scope.bookmarks = []; // 书签数据 $scope.bookmarkNormalHover = false; $scope.bookmarkEditHover = false; @@ -140,6 +142,24 @@ app.controller('hotCtr', ['$scope', '$state', '$stateParams', '$filter', '$windo } } + $scope.setHoverBookmark = function(bookmark) { + $scope.hoverBookmark = bookmark; + } + + // 在输入文字的时候也会触发,所以不要用Ctrl,Shift之类的按键 + $document.bind("keydown", function(event) { + $scope.$apply(function() { + var key = event.key.toUpperCase(); + if ($scope.hoverBookmark && dataService.keyShortcuts()) { + if (key == 'I') { + $scope.detailBookmark($scope.hoverBookmark) + } else if (key == 'C') { + $scope.copy($scope.hoverBookmark.url) + } + } + }) + }); + function getHotBookmarks() { getHotBookmarksbyAPI(); // 先实时获取,实时获取失败再从缓存中获取 diff --git a/public/scripts/controllers/menus-controller.js b/public/scripts/controllers/menus-controller.js index f96961e..bb56223 100644 --- a/public/scripts/controllers/menus-controller.js +++ b/public/scripts/controllers/menus-controller.js @@ -191,6 +191,16 @@ app.controller('menuCtr', ['$scope', '$stateParams', '$state', '$window', '$time // toastr.error('获取信息失败。错误信息:' + JSON.stringify(err), "错误"); }); + $timeout(function() { + $('.suggest') + .popup({ + title: '操作提示', + position: 'bottom center', + variation: "very wide", + html: '1、在任意页面,按A键添加备忘录。
2、在热门收藏页面,按R键随机查看热门收藏。
3、在任意页面,按数字键切换菜单栏。
4、在书签页面鼠标放在书签上,按C复制书签链接
5、在书签页面鼠标放在书签上,按E编辑书签
6、在书签页面鼠标放在书签上,按D删除书签
7、在书签页面鼠标放在书签上,按I查看书签详情
8、在任意页面,按INSERT做添加书签
9、在任意页面,按ESC退出弹窗
' + }); + }, 1000) + // 在输入文字的时候也会触发,所以不要用Ctrl,Shift之类的按键 $document.bind("keydown", function(event) { $scope.$apply(function() { diff --git a/public/scripts/controllers/note-controller.js b/public/scripts/controllers/note-controller.js index af3bbe9..1c1bd78 100644 --- a/public/scripts/controllers/note-controller.js +++ b/public/scripts/controllers/note-controller.js @@ -3,6 +3,7 @@ app.controller('noteCtr', ['$scope', '$state', '$stateParams', '$filter', '$wind const perPageItems = 35; var dialog = null; + $scope.hoverNote = null; $scope.loadBusy = false; $scope.add = false; $scope.edit = false; @@ -214,6 +215,28 @@ app.controller('noteCtr', ['$scope', '$state', '$stateParams', '$filter', '$wind }); } + $scope.setHoverNote = function(note) { + $scope.hoverNote = note; + } + + // 在输入文字的时候也会触发,所以不要用Ctrl,Shift之类的按键 + $document.bind("keydown", function(event) { + $scope.$apply(function() { + var key = event.key.toUpperCase(); + if ($scope.hoverNote && dataService.keyShortcuts()) { + if (key == 'E') { + $scope.editNote($scope.hoverNote.id, $scope.hoverNote.content) + } else if (key == 'I') { + $scope.detailNote($scope.hoverNote.content) + } else if (key == 'D') { + $scope.delNote($scope.hoverNote.id, $scope.hoverNote.content) + } else if (key == 'C') { + $scope.copy($scope.hoverNote.content) + } + } + }) + }); + function getNotes() { $scope.loadBusy = true; var params = { diff --git a/public/scripts/controllers/search-controller.js b/public/scripts/controllers/search-controller.js index d06c227..6b6bee4 100644 --- a/public/scripts/controllers/search-controller.js +++ b/public/scripts/controllers/search-controller.js @@ -1,7 +1,8 @@ -app.controller('searchCtr', ['$scope', '$state', '$stateParams', '$filter', '$window', '$timeout', 'ngDialog', 'bookmarkService', 'pubSubService', 'dataService', function($scope, $state, $stateParams, $filter, $window, $timeout, ngDialog, bookmarkService, pubSubService, dataService) { +app.controller('searchCtr', ['$scope', '$state', '$stateParams', '$filter', '$window', '$timeout', '$document', 'ngDialog', 'bookmarkService', 'pubSubService', 'dataService', function($scope, $state, $stateParams, $filter, $window, $timeout, $document, ngDialog, bookmarkService, pubSubService, dataService) { console.log("Hello searchCtr...", $stateParams); const perPageItems = 20; var dialog = null; + $scope.hoverBookmark = null; $scope.searchBookmarks = []; // 书签数据 $scope.showSearch = false; // $scope.showTags = false; // @@ -220,6 +221,29 @@ app.controller('searchCtr', ['$scope', '$state', '$stateParams', '$filter', '$wi $('.ui.dropdown.js-search-tags .text').text(text); } + $scope.setHoverBookmark = function(bookmark) { + $scope.hoverBookmark = bookmark; + } + + // 在输入文字的时候也会触发,所以不要用Ctrl,Shift之类的按键 + $document.bind("keydown", function(event) { + $scope.$apply(function() { + var key = event.key.toUpperCase(); + console.log($scope.hoverBookmark); + if ($scope.hoverBookmark && dataService.keyShortcuts()) { + if (key == 'E' && $scope.hoverBookmark.own) { + $scope.editBookmark($scope.hoverBookmark.id) + } else if (key == 'I') { + $scope.detailBookmark($scope.hoverBookmark) + } else if (key == 'D' && $scope.hoverBookmark.own) { + $scope.delBookmark($scope.hoverBookmark) + } else if (key == 'C') { + $scope.copy($scope.hoverBookmark.url) + } + } + }) + }); + pubSubService.subscribe('EditCtr.inserBookmarsSuccess', $scope, function(event, data) { console.log('subscribe EditCtr.inserBookmarsSuccess', JSON.stringify(data)); $scope.searchBookmarks.forEach((bookmark) => { diff --git a/public/scripts/controllers/settings-controller.js b/public/scripts/controllers/settings-controller.js index 959e79a..21ac041 100644 --- a/public/scripts/controllers/settings-controller.js +++ b/public/scripts/controllers/settings-controller.js @@ -1,5 +1,7 @@ app.controller('settingsCtr', ['$scope', '$stateParams', '$filter', '$state', '$window', '$timeout', 'bookmarkService', 'pubSubService', 'dataService', function($scope, $stateParams, $filter, $state, $window, $timeout, bookmarkService, pubSubService, dataService) { console.log('Hello settingsCtr......', $stateParams); + + $scope.forbidQuickKey = dataService.forbidQuickKey $scope.form = [false, false, false, false]; $scope.passwordOrgin = ""; $scope.passwordNew1 = ""; diff --git a/public/scripts/controllers/tags-controller.js b/public/scripts/controllers/tags-controller.js index 6d01339..e296349 100644 --- a/public/scripts/controllers/tags-controller.js +++ b/public/scripts/controllers/tags-controller.js @@ -6,7 +6,7 @@ app.controller('tagsCtr', ['$scope', '$filter', '$window', '$stateParams', '$tim var dialog = null; $scope.hoverBookmark = null; $scope.order = [false, false, false]; - $scope.order[($stateParams && $stateParams.orderIndex) || 1] = true; + $scope.order[($stateParams && $stateParams.orderIndex) || 0] = true; $scope.loadBookmarks = false; $scope.loadTags = false; $scope.tags = []; // 书签数据 diff --git a/public/scripts/services/data-service.js b/public/scripts/services/data-service.js index 66ff667..62ea9cf 100644 --- a/public/scripts/services/data-service.js +++ b/public/scripts/services/data-service.js @@ -58,6 +58,10 @@ app.factory('dataService', [function() { showStyles: ['navigate', 'costomTag', 'card', 'table'], forbidQuickKey: { 'A': '在任意界面,已用做新增备忘录', + 'C': '在有关书签页面,用作复制书签链接', + 'E': '在有关书签页面,用作编辑书签', + 'D': '在有关书签页面,用作删除书签', + 'I': '在有关书签页面,用作查看书签详情', 'R': '在热门收藏界面,已用作随机查看热门收藏', 'INSERT': '全局页面,已用做添加书签', 'ESC': '全局页面,已用做退出弹窗', diff --git a/public/views/bookmarks.html b/public/views/bookmarks.html index 9aa9105..66eed4f 100644 --- a/public/views/bookmarks.html +++ b/public/views/bookmarks.html @@ -22,26 +22,22 @@
- - {{ bookmark.title}}
-
@@ -62,8 +58,8 @@
- + @@ -130,7 +126,7 @@
-
+
{{bookmark.title}} diff --git a/public/views/hot.html b/public/views/hot.html index f6b5d6b..2880727 100644 --- a/public/views/hot.html +++ b/public/views/hot.html @@ -1,7 +1,7 @@
-
-
+
+
{{bookmark.title}} diff --git a/public/views/menus.html b/public/views/menus.html index 56ff318..876a714 100644 --- a/public/views/menus.html +++ b/public/views/menus.html @@ -73,7 +73,7 @@
- +
diff --git a/public/views/note.html b/public/views/note.html index 8f671d8..5a7d545 100644 --- a/public/views/note.html +++ b/public/views/note.html @@ -25,7 +25,7 @@
-
+
{{ note.content }}
diff --git a/public/views/search.html b/public/views/search.html index 2af642f..939b0d3 100644 --- a/public/views/search.html +++ b/public/views/search.html @@ -131,7 +131,7 @@ - +

功能说明:可在该页面,设置全局快速打开的链接。快捷键只能是字母a ~ z,字母不区分大小写。

-

以下几个系统默认使用的按键无法使用: -
- A: 在任意界面,已用做新增备忘录。 -
- R: 在热门收藏界面,已用作随机查看热门收藏。 +

以下几个系统默认使用的按键无法使用:
+ {{key}}:{{value}}