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 @@
功能说明:可在该页面,设置全局快速打开的链接。快捷键只能是字母a ~ z,字母不区分大小写。
-以下几个系统默认使用的按键无法使用:
-
- A: 在任意界面,已用做新增备忘录。
-
- R: 在热门收藏界面,已用作随机查看热门收藏。
+
以下几个系统默认使用的按键无法使用:
+ {{key}}:{{value}}