使用域名替换IP获取favicon

This commit is contained in:
luchenqun 2019-04-19 09:47:08 +08:00
parent c6d92c19f1
commit 0000274d09
5 changed files with 580 additions and 580 deletions

View File

@ -1,63 +1,63 @@
app.controller('bookmarkInfoCtr', ['$scope', '$state', '$timeout', '$sce', '$window', '$filter', '$document', '$timeout', 'bookmarkService', 'pubSubService', 'dataService', function($scope, $state, $timeout, $sce, $window, $filter, $document, $timeout, bookmarkService, pubSubService, dataService) {
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({
closable: false,
}).modal('setting', 'transition', dataService.animation()).modal('show');
bookmark.favicon_url = bookmark.favicon_url || ('http://47.75.89.228:3000/?url=' + bookmark.url);
bookmark.snap_url = bookmark.snap_url || ('./images/snap/' + bookmark.id + '.png');
$scope.bookmark = bookmark;
$scope.bookmark.description = $sce.trustAsHtml(bookmark.description);
$scope.content = '';
var params = {
url: bookmark.url,
requestId: 1
}
$scope.loading = true;
$timeout(function() {
$('.ui.modal.js-bookmark-info').modal("refresh");
$("p").css("word-wrap", "break-word");
}, 500);
bookmarkService.getArticle(params)
.then((data) => {
$scope.content = data.content ? $sce.trustAsHtml(data.content) : $sce.trustAsHtml('<p>数据获取失败可能是服务器不允许获取或者是https网站</p>');
setTimeout(function() {
$('.ui.modal.js-bookmark-info').modal && $('.ui.modal.js-bookmark-info').modal("refresh");
}, 100);
$scope.loading = false;
})
.catch((err) => {
$scope.content = $sce.trustAsHtml('<p>数据获取失败:' + JSON.stringify(err) + '</p>');
$scope.loading = false;
})
});
$scope.jumpToUrl = function(url, id) {
$window.open(url, '_blank');
if ($scope.bookmark.own) {
bookmarkService.clickBookmark({
id: id
});
$scope.bookmark.click_count += 1;
$scope.bookmark.last_click = $filter("date")(new Date(), "yyyy-MM-dd HH:mm:ss");
}
}
$scope.copy = function(url) {
dataService.clipboard(url);
}
$document.bind("keydown", function(event) {
$scope.$apply(function() {
// Esc按键退出
if (event.keyCode == 27) {
$('.ui.modal.js-bookmark-info').modal("hide");
}
})
});
}]);
app.controller('bookmarkInfoCtr', ['$scope', '$state', '$timeout', '$sce', '$window', '$filter', '$document', '$timeout', 'bookmarkService', 'pubSubService', 'dataService', function($scope, $state, $timeout, $sce, $window, $filter, $document, $timeout, bookmarkService, pubSubService, dataService) {
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({
closable: false,
}).modal('setting', 'transition', dataService.animation()).modal('show');
bookmark.favicon_url = bookmark.favicon_url || ('http://favicon.luchenqun.com/?url=' + bookmark.url);
bookmark.snap_url = bookmark.snap_url || ('./images/snap/' + bookmark.id + '.png');
$scope.bookmark = bookmark;
$scope.bookmark.description = $sce.trustAsHtml(bookmark.description);
$scope.content = '';
var params = {
url: bookmark.url,
requestId: 1
}
$scope.loading = true;
$timeout(function() {
$('.ui.modal.js-bookmark-info').modal("refresh");
$("p").css("word-wrap", "break-word");
}, 500);
bookmarkService.getArticle(params)
.then((data) => {
$scope.content = data.content ? $sce.trustAsHtml(data.content) : $sce.trustAsHtml('<p>数据获取失败可能是服务器不允许获取或者是https网站</p>');
setTimeout(function() {
$('.ui.modal.js-bookmark-info').modal && $('.ui.modal.js-bookmark-info').modal("refresh");
}, 100);
$scope.loading = false;
})
.catch((err) => {
$scope.content = $sce.trustAsHtml('<p>数据获取失败:' + JSON.stringify(err) + '</p>');
$scope.loading = false;
})
});
$scope.jumpToUrl = function(url, id) {
$window.open(url, '_blank');
if ($scope.bookmark.own) {
bookmarkService.clickBookmark({
id: id
});
$scope.bookmark.click_count += 1;
$scope.bookmark.last_click = $filter("date")(new Date(), "yyyy-MM-dd HH:mm:ss");
}
}
$scope.copy = function(url) {
dataService.clipboard(url);
}
$document.bind("keydown", function(event) {
$scope.$apply(function() {
// Esc按键退出
if (event.keyCode == 27) {
$('.ui.modal.js-bookmark-info').modal("hide");
}
})
});
}]);

View File

@ -1,162 +1,162 @@
<div class="ui hidden info message js-msg" ng-if="showStyle === 'navigate' && bookmarks.length <= 2">
<i class="close icon" ng-click="closeMsg()"></i>
<div class="content">
<div class="header">系统检测到您好像还没添加过书签哦!
</div>
<ul class="list">
<li>您可以将您的IE浏览器或者谷歌浏览器上面的书签导入系统<a style="cursor:pointer;" ng-click="addBookmarkbyFile()">现在就去</a>
</li>
<li>您也可以点击菜单栏上面的<i class="add square icon"></i>图标进行添加。也可以使用快捷键Insert键打开添加页面再次按Insert键保存书签Esc取消添加。</li>
</ul>
</div>
</div>
<div class="ui segment js-segment-navigate" ng-if="showStyle === 'navigate'" ng-show="!loadBusy">
<div class="ui container" ng-repeat="tag in bookmarks" ng-init="tagIndex=$index">
<div class="ui grid">
<div class="row">
<div class="wrap" style="width:88px;color:#0aa770;text-align:left;margin-left:20px;">
<span title="{{ tag.name }} - 点击查看该分类所有书签" ng-click="jumpToTags(tag.id)" style="cursor:pointer;">{{ tag.name }}</span>
</div>
<div class="fourteen wide column" ng-if="tag.bookmarks.length">
<div class="ui grid container">
<div
class="four wide column js-navigate-bookmark"
ng-class="{bookmarkNormalHover:bookmarkNormalHover, bookmarkEditHover:bookmarkEditHover, bookmark:(!bookmarkNormalHover && !bookmarkEditHover)}"
ng-mouseover="bookmarkNormalHover=true; setHoverBookmark(bookmark)"
ng-mouseleave="bookmarkNormalHover=false; setHoverBookmark(null)"
ng-repeat="bookmark in tag.bookmarks"
ng-click="jumpToUrl(bookmark.url, bookmark.id)"
title="{{ bookmark.title }}"
id="{{bookmark.id}}">
<img
class="ui ui middle aligned tiny image bookmarkInfo"
ng-src="./images/favicon/{{bookmark.id}}.ico"
style="width:16px;height:16px;"
ng-click="detailBookmark(bookmark);$event.stopPropagation()"
favicon-err="http://47.75.89.228:3000/?url={{bookmark.url}}">
<span>{{ bookmark.title}}</span>
</div>
</div>
</div>
</div>
</div>
<div class="ui divider"></div>
</div>
</div>
<div class="ui segment js-segment-costomTag" ng-if="showStyle === 'costomTag'" ng-show="!loadBusy">
<div class="ui container">
<div class="ui grid">
<div class="two wide column js-costomTag-label" ng-repeat="tag in costomTags">
<div class="ui small label" ng-class="{green:tag.clicked}" ng-click="updateCostomTagBookmarks(tag.index)">
{{ tag.name }}
</div>
</div>
</div>
</div>
<div class="ui divider"></div>
<div class="ui five column grid">
<div
class="column js-costomTag-item"
ng-class="{bookmarkNormalHover:bookmarkNormalHover, bookmark:(!bookmarkNormalHover)}"
ng-mouseover="bookmarkNormalHover=true; setHoverBookmark(bookmark)"
ng-mouseleave="bookmarkNormalHover=false; setHoverBookmark(null)"
ng-repeat="bookmark in bookmarks"
ng-click="jumpToUrl(bookmark.url, bookmark.id)"
title="{{ bookmark.title }}"
id="{{bookmark.id}}">
<img
class="ui ui middle aligned tiny image bookmarkInfo"
ng-src="./images/favicon/{{bookmark.id}}.ico"
style="width:16px;height:16px;"
ng-click="detailBookmark(bookmark);$event.stopPropagation()"
favicon-err="http://47.75.89.228:3000/?url={{bookmark.url}}">
<span>{{ bookmark.title}}</span>
</div>
</div>
</div>
<table class="ui selectable sortable celled table js-table-bookmarks" ng-if="showStyle === 'table'" ng-show="!loadBusy">
<thead>
<tr>
<th class="forbid_sorted">标题</th>
<th class="forbid_sorted">链接</th>
<th style="width:90px;" ng-class="{descending: order[0], sorted:order[0]}" ng-click="changeOrder(0)" title="点击可对表格进行排序">点击次数</th>
<th style="width:100px;" ng-class="{descending: order[1], sorted:order[1]}" ng-click="changeOrder(1)" title="点击可对表格进行排序">创建日期</th>
<th style="width:100px;" ng-class="{descending: order[2], sorted:order[2]}" ng-click="changeOrder(2)" title="点击可对表格进行排序">最后点击</th>
<th style="width:150px;" class="forbid_sorted">分类</th>
<th style="width:88px;" class="forbid_sorted">操作</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="bookmark in bookmarks" id="{{ bookmark.id }}" ng-mouseover="setHoverBookmark(bookmark)" ng-mouseleave="setHoverBookmark(null)">
<td>
<img class="ui ui middle aligned tiny image" ng-src="./images/favicon/{{bookmark.id}}.ico" style="width:16px;height:16px;cursor:pointer;" ng-click="jumpToUrl(bookmark.url, bookmark.id)" favicon-err="http://47.75.89.228:3000/?url={{bookmark.url}}">
<span ng-click="jumpToUrl(bookmark.url, bookmark.id)" title="{{bookmark.title}}" style="cursor:pointer;">
{{ bookmark.title }}
</span>
</td>
<td>
<span title="{{bookmark.url}} 点击复制链接" ng-click="copy(bookmark.url)" style="cursor:default;">{{ bookmark.url }}</span>
</td>
<td>{{ bookmark.click_count }}</td>
<td>
<span title="{{bookmark.created_at}}" class="need_to_be_rendered" data-timeago="{{bookmark.created_at}}"></span>
</td>
<td>
<span id="time{{bookmark.id}}" title="{{bookmark.last_click}}" class="need_to_be_rendered" data-timeago="{{bookmark.last_click}}"></span>
</td>
<td>
<div class="ui label" ng-repeat="tag in bookmark.tags" tag-id="{{ tag.id }}" ng-click="jumpToTags(tag.id)">
{{ tag.name }}
</div>
</td>
<td>
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/delete.png" ng-click="delBookmark(bookmark)" title="删除书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/edit-bookmark.png" ng-click="editBookmark(bookmark.id)" title="编辑书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/detail.png" ng-click="detailBookmark(bookmark)" title="书签详情">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="7">
<pagination></pagination>
</th>
</tr>
</tfoot>
</table>
<div class="ui segment js-segment-card" ng-if="showStyle === 'card'" ng-show="!loadBusy || currentPage>1">
<div class="ui five stackable cards" infinite-scroll='loadCardData()' infinite-scroll-immediate-check="false">
<div class="card" ng-repeat="bookmark in bookmarks" id="{{bookmark.id}}" ng-mouseover="setHoverBookmark(bookmark)" ng-mouseleave="setHoverBookmark(null)">
<div class="content" ng-click="jumpToUrl(bookmark.url, bookmark.id)" style="max-height:70px;cursor:pointer">
<div class="description bookmarkTitle">
{{bookmark.title}}
</div>
</div>
<div class="image" href="{{ bookmark.url }}" ng-click="jumpToUrl(bookmark.url, bookmark.id)" style="cursor:pointer">
<img ng-src="./images/snap/{{bookmark.id}}.png" err-src="./images/default.jpg"/>
</div>
<div class="extra content tags" style="height:50px;">
<div class="ui label" ng-repeat="tag in bookmark.tags" tag-id="{{ tag.id }}" ng-click="jumpToTags(tag.id)">
{{ tag.name }}
</div>
</div>
<div class="extra content" ng-show="!bookmark.edit" style="height:50px;padding-right:2px;padding-left:8px;">
<span class="left floated like" style="margin-top:6px;">
<img class="ui ui middle aligned tiny image" ng-src="./images/favicon/{{bookmark.id}}.ico" style="width:16px;height:16px;cursor:pointer;" ng-click="jumpToUrl(bookmark.url, bookmark.id)" favicon-err="http://47.75.89.228:3000/?url={{bookmark.url}}">
创建于:
<span title="{{bookmark.created_at}}" class="need_to_be_rendered" data-timeago="{{bookmark.created_at}}"></span>
<!-- {{ bookmark.created_at }} -->
</span>
<i class="ellipsis horizontal icon right floated" style="margin-top:8px;" ng-mouseover="bookmark.edit=true;"></i>
</div>
<div class="extra content" ng-show="bookmark.edit" ng-mouseleave="bookmark.edit=false;" style="height:50px;">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 8px;margin-top:8px;" ng-src="./images/delete.png" ng-click="delBookmark(bookmark)" title="删除书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 8px;margin-top:8px;" ng-src="./images/edit-bookmark.png" ng-click="editBookmark(bookmark.id)" title="编辑书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 8px;margin-top:8px;" ng-src="./images/copy.png" ng-click="copy(bookmark.url)" title="复制链接">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 8px;margin-top:8px;" ng-src="./images/detail.png" ng-click="detailBookmark(bookmark)" title="书签详情">
</div>
</div>
</div>
</div>
<div class="ui massive text centered inline loader" ng-class="{active:loadBusy, disabled:!loadBusy}">
正在加载中...</div>
<div class="ui hidden info message js-msg" ng-if="showStyle === 'navigate' && bookmarks.length <= 2">
<i class="close icon" ng-click="closeMsg()"></i>
<div class="content">
<div class="header">系统检测到您好像还没添加过书签哦!
</div>
<ul class="list">
<li>您可以将您的IE浏览器或者谷歌浏览器上面的书签导入系统<a style="cursor:pointer;" ng-click="addBookmarkbyFile()">现在就去</a>
</li>
<li>您也可以点击菜单栏上面的<i class="add square icon"></i>图标进行添加。也可以使用快捷键Insert键打开添加页面再次按Insert键保存书签Esc取消添加。</li>
</ul>
</div>
</div>
<div class="ui segment js-segment-navigate" ng-if="showStyle === 'navigate'" ng-show="!loadBusy">
<div class="ui container" ng-repeat="tag in bookmarks" ng-init="tagIndex=$index">
<div class="ui grid">
<div class="row">
<div class="wrap" style="width:88px;color:#0aa770;text-align:left;margin-left:20px;">
<span title="{{ tag.name }} - 点击查看该分类所有书签" ng-click="jumpToTags(tag.id)" style="cursor:pointer;">{{ tag.name }}</span>
</div>
<div class="fourteen wide column" ng-if="tag.bookmarks.length">
<div class="ui grid container">
<div
class="four wide column js-navigate-bookmark"
ng-class="{bookmarkNormalHover:bookmarkNormalHover, bookmarkEditHover:bookmarkEditHover, bookmark:(!bookmarkNormalHover && !bookmarkEditHover)}"
ng-mouseover="bookmarkNormalHover=true; setHoverBookmark(bookmark)"
ng-mouseleave="bookmarkNormalHover=false; setHoverBookmark(null)"
ng-repeat="bookmark in tag.bookmarks"
ng-click="jumpToUrl(bookmark.url, bookmark.id)"
title="{{ bookmark.title }}"
id="{{bookmark.id}}">
<img
class="ui ui middle aligned tiny image bookmarkInfo"
ng-src="./images/favicon/{{bookmark.id}}.ico"
style="width:16px;height:16px;"
ng-click="detailBookmark(bookmark);$event.stopPropagation()"
favicon-err="http://favicon.luchenqun.com/?url={{bookmark.url}}">
<span>{{ bookmark.title}}</span>
</div>
</div>
</div>
</div>
</div>
<div class="ui divider"></div>
</div>
</div>
<div class="ui segment js-segment-costomTag" ng-if="showStyle === 'costomTag'" ng-show="!loadBusy">
<div class="ui container">
<div class="ui grid">
<div class="two wide column js-costomTag-label" ng-repeat="tag in costomTags">
<div class="ui small label" ng-class="{green:tag.clicked}" ng-click="updateCostomTagBookmarks(tag.index)">
{{ tag.name }}
</div>
</div>
</div>
</div>
<div class="ui divider"></div>
<div class="ui five column grid">
<div
class="column js-costomTag-item"
ng-class="{bookmarkNormalHover:bookmarkNormalHover, bookmark:(!bookmarkNormalHover)}"
ng-mouseover="bookmarkNormalHover=true; setHoverBookmark(bookmark)"
ng-mouseleave="bookmarkNormalHover=false; setHoverBookmark(null)"
ng-repeat="bookmark in bookmarks"
ng-click="jumpToUrl(bookmark.url, bookmark.id)"
title="{{ bookmark.title }}"
id="{{bookmark.id}}">
<img
class="ui ui middle aligned tiny image bookmarkInfo"
ng-src="./images/favicon/{{bookmark.id}}.ico"
style="width:16px;height:16px;"
ng-click="detailBookmark(bookmark);$event.stopPropagation()"
favicon-err="http://favicon.luchenqun.com/?url={{bookmark.url}}">
<span>{{ bookmark.title}}</span>
</div>
</div>
</div>
<table class="ui selectable sortable celled table js-table-bookmarks" ng-if="showStyle === 'table'" ng-show="!loadBusy">
<thead>
<tr>
<th class="forbid_sorted">标题</th>
<th class="forbid_sorted">链接</th>
<th style="width:90px;" ng-class="{descending: order[0], sorted:order[0]}" ng-click="changeOrder(0)" title="点击可对表格进行排序">点击次数</th>
<th style="width:100px;" ng-class="{descending: order[1], sorted:order[1]}" ng-click="changeOrder(1)" title="点击可对表格进行排序">创建日期</th>
<th style="width:100px;" ng-class="{descending: order[2], sorted:order[2]}" ng-click="changeOrder(2)" title="点击可对表格进行排序">最后点击</th>
<th style="width:150px;" class="forbid_sorted">分类</th>
<th style="width:88px;" class="forbid_sorted">操作</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="bookmark in bookmarks" id="{{ bookmark.id }}" ng-mouseover="setHoverBookmark(bookmark)" ng-mouseleave="setHoverBookmark(null)">
<td>
<img class="ui ui middle aligned tiny image" ng-src="./images/favicon/{{bookmark.id}}.ico" style="width:16px;height:16px;cursor:pointer;" ng-click="jumpToUrl(bookmark.url, bookmark.id)" favicon-err="http://favicon.luchenqun.com/?url={{bookmark.url}}">
<span ng-click="jumpToUrl(bookmark.url, bookmark.id)" title="{{bookmark.title}}" style="cursor:pointer;">
{{ bookmark.title }}
</span>
</td>
<td>
<span title="{{bookmark.url}} 点击复制链接" ng-click="copy(bookmark.url)" style="cursor:default;">{{ bookmark.url }}</span>
</td>
<td>{{ bookmark.click_count }}</td>
<td>
<span title="{{bookmark.created_at}}" class="need_to_be_rendered" data-timeago="{{bookmark.created_at}}"></span>
</td>
<td>
<span id="time{{bookmark.id}}" title="{{bookmark.last_click}}" class="need_to_be_rendered" data-timeago="{{bookmark.last_click}}"></span>
</td>
<td>
<div class="ui label" ng-repeat="tag in bookmark.tags" tag-id="{{ tag.id }}" ng-click="jumpToTags(tag.id)">
{{ tag.name }}
</div>
</td>
<td>
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/delete.png" ng-click="delBookmark(bookmark)" title="删除书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/edit-bookmark.png" ng-click="editBookmark(bookmark.id)" title="编辑书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/detail.png" ng-click="detailBookmark(bookmark)" title="书签详情">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="7">
<pagination></pagination>
</th>
</tr>
</tfoot>
</table>
<div class="ui segment js-segment-card" ng-if="showStyle === 'card'" ng-show="!loadBusy || currentPage>1">
<div class="ui five stackable cards" infinite-scroll='loadCardData()' infinite-scroll-immediate-check="false">
<div class="card" ng-repeat="bookmark in bookmarks" id="{{bookmark.id}}" ng-mouseover="setHoverBookmark(bookmark)" ng-mouseleave="setHoverBookmark(null)">
<div class="content" ng-click="jumpToUrl(bookmark.url, bookmark.id)" style="max-height:70px;cursor:pointer">
<div class="description bookmarkTitle">
{{bookmark.title}}
</div>
</div>
<div class="image" href="{{ bookmark.url }}" ng-click="jumpToUrl(bookmark.url, bookmark.id)" style="cursor:pointer">
<img ng-src="./images/snap/{{bookmark.id}}.png" err-src="./images/default.jpg"/>
</div>
<div class="extra content tags" style="height:50px;">
<div class="ui label" ng-repeat="tag in bookmark.tags" tag-id="{{ tag.id }}" ng-click="jumpToTags(tag.id)">
{{ tag.name }}
</div>
</div>
<div class="extra content" ng-show="!bookmark.edit" style="height:50px;padding-right:2px;padding-left:8px;">
<span class="left floated like" style="margin-top:6px;">
<img class="ui ui middle aligned tiny image" ng-src="./images/favicon/{{bookmark.id}}.ico" style="width:16px;height:16px;cursor:pointer;" ng-click="jumpToUrl(bookmark.url, bookmark.id)" favicon-err="http://favicon.luchenqun.com/?url={{bookmark.url}}">
创建于:
<span title="{{bookmark.created_at}}" class="need_to_be_rendered" data-timeago="{{bookmark.created_at}}"></span>
<!-- {{ bookmark.created_at }} -->
</span>
<i class="ellipsis horizontal icon right floated" style="margin-top:8px;" ng-mouseover="bookmark.edit=true;"></i>
</div>
<div class="extra content" ng-show="bookmark.edit" ng-mouseleave="bookmark.edit=false;" style="height:50px;">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 8px;margin-top:8px;" ng-src="./images/delete.png" ng-click="delBookmark(bookmark)" title="删除书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 8px;margin-top:8px;" ng-src="./images/edit-bookmark.png" ng-click="editBookmark(bookmark.id)" title="编辑书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 8px;margin-top:8px;" ng-src="./images/copy.png" ng-click="copy(bookmark.url)" title="复制链接">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 8px;margin-top:8px;" ng-src="./images/detail.png" ng-click="detailBookmark(bookmark)" title="书签详情">
</div>
</div>
</div>
</div>
<div class="ui massive text centered inline loader" ng-class="{active:loadBusy, disabled:!loadBusy}">
正在加载中...</div>

View File

@ -1,196 +1,196 @@
<div class="ui huge text centered inline loader" ng-class="{active:loading, disabled: !loading}">
加载中,请稍候...</div>
<div class="ui grid" style="height:45px" ng-show="!loading">
<div class="fourteen wide column" ng-show="!showSearch">
共为您找到相关书签约{{bookmarkCount}}个
</div>
<div class="left floated right aligned two wide column" ng-show="!showSearch">
<img class="ui ui middle aligned tiny image" ng-src="./images/cocktail.png" style="width:16px;height:16px" ng-click="showSearch = !showSearch">
<span ng-click="showSearch = !showSearch">搜索工具</span>
</div>
<div class="two wide column" ng-show="showSearch">
<div class="ui dropdown js-user-range" js-dropdown-user-range-init>
<div class="text">搜索范围</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="active item" data-value="1">自己书签</div>
<div class="item" data-value="2">全站书签</div>
<div class="item" data-value="3">热门收藏</div>
</div>
</div>
</div>
<div class="four wide column" ng-show="showSearch">
<div class="ui dropdown item js-create-date" js-data-create-init>
<div class="text">创建时间不限</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="active item" data-value='-1'>创建时间不限</div>
<div class="item" data-value='0'>今天</div>
<div class="item" data-value='7'>一周内</div>
<div class="item" data-value='31'>一月内</div>
<div class="item" data-value='365'>一年内</div>
<div class="divider"></div>
<div class="header">自定义</div>
<div class="ui transparent input">
<div class="ui calendar js-date-create-begin">
<div class="ui transparent input left icon">
<i class="calendar icon"></i>
<input type="text" placeholder="开始日期" ng-model="dateCreateBegin">
</div>
</div>
</div>
<div class="ui transparent input">
<div class="ui calendar js-date-create-end">
<div class="ui transparent input left icon">
<i class="calendar icon"></i>
<input type="text" placeholder="结束日期" ng-model="dateCreateEnd">
</div>
</div>
</div>
<div class="ui transparent input">
<div class="ui basic button" ng-click="updateCreateDate()">确定</div>
</div>
</div>
</div>
</div>
<div class="four wide column" ng-show="showSearch">
<div class="ui dropdown item js-click-date" js-data-click-init>
<div class="text">点击时间不限</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="active item" data-value='-1'>点击时间不限</div>
<div class="item" data-value='0'>今天</div>
<div class="item" data-value='7'>一周内</div>
<div class="item" data-value='31'>一月内</div>
<div class="item" data-value='365'>一年内</div>
<div class="divider"></div>
<div class="header">自定义</div>
<div class="ui transparent input">
<div class="ui calendar js-date-click-begin">
<div class="ui transparent input left icon">
<i class="calendar icon"></i>
<input type="text" placeholder="开始日期" ng-model="dateClickBegin">
</div>
</div>
</div>
<div class="ui transparent input">
<div class="ui calendar js-date-click-end">
<div class="ui transparent input left icon">
<i class="calendar icon"></i>
<input type="text" placeholder="结束日期" ng-model="dateClickEnd">
</div>
</div>
</div>
<div class="ui transparent input">
<div class="ui basic button" ng-click="updateClickDate()">确定</div>
</div>
</div>
</div>
</div>
<div class="two wide column" ng-show="showSearch">
<div class="ui transparent icon input" ng-show="(!showTags) && (!searchHotBookmarks)">
<input class="prompt" type="text" placeholder="用户账号" ng-model="username" ng-keypress="($event.which === 13)?search(1):0">
</div>
<div class="ui grid container" style="padding-top: 8px;">
<div class="ui multiple dropdown js-search-tags" style="padding:0;" ng-show="showTags" js-dropdown-tags-init>
<div class="default text">分类选择</div>
<i class="dropdown icon"></i>
<div class="menu" ng-click="updateTagsSelect()">
<div class="item" data-value='{{tag.id}}' ng-repeat="tag in tags">{{tag.name}}</div>
</div>
</div>
</div>
</div>
<div class="two wide column" ng-show="showSearch">
<div class="ui transparent input">
<input type="text" placeholder="标题,链接..." ng-model="searchWord" ng-keypress="($event.which === 13)?search(1):0">
</div>
</div>
<div class=" left floated right aligned two wide column" ng-show=" showSearch">
<div class="ui grid">
<div class="four wide column">
<i class="search icon" title="搜索" ng-click="currentPage=1;search()"></i>
</div>
<div class="twelve wide column">
<img class="ui ui middle aligned tiny image" ng-src="./images/hide.png" style="width:16px;height:16px" ng-click="showSearch = !showSearch">
<span ng-click="showSearch = !showSearch">收起</span>
</div>
</div>
</div>
</div>
<table class="ui selectable celled table js-table-search" ng-show="!loading">
<thead>
<tr>
<th>标题</th>
<th>链接</th>
<th style="width:90px;">{{ searchHotBookmarks ? '收藏人数' : '点击次数'}}</th>
<th style="width:100px;">创建日期</th>
<th style="width:100px;">最后点击</th>
<th style="width:150px;">{{ searchHotBookmarks ? '来源信息' : '分类'}}</th>
<th style="width:88px;">操作</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="bookmark in searchBookmarks" id="{{ bookmark.id }}" ng-mouseover="setHoverBookmark(bookmark)" ng-mouseleave="setHoverBookmark(null)">
<td>
<img
class="ui ui middle aligned mini image"
ng-src="{{ bookmark.favicon_url }}"
style="width:16px;height:16px;cursor:pointer;"
ng-click="jumpToUrl(bookmark.url, bookmark.id)"
favicon-err="./images/favicon/{{bookmark.id}}.ico"
ng-if="searchHotBookmarks">
<img
class="ui ui middle aligned mini image"
ng-src="./images/favicon/{{bookmark.id}}.ico"
style="width:16px;height:16px;cursor:pointer;"
ng-click="jumpToUrl(bookmark.url, bookmark.id)"
favicon-err="http://47.75.89.228:3000/?url={{bookmark.url}}"
ng-if="!searchHotBookmarks">
<span ng-click="jumpToUrl(bookmark.url, bookmark.id)" title="{{bookmark.title}}" style="cursor:pointer;">
{{ bookmark.title }}
</span>
</td>
<td>
<span title="{{bookmark.url}} 点击复制链接" ng-click="copy(bookmark.url)" style="cursor:default;">{{ bookmark.url }}</span>
</td>
<td>{{ bookmark.click_count || bookmark.fav_count }}</td>
<td>
<span title="{{bookmark.created_at}}" class="need_to_be_rendered" data-timeago="{{bookmark.created_at}}"></span>
</td>
<td>
<span id="time{{bookmark.id}}" title="{{bookmark.last_click}}" class="need_to_be_rendered" data-timeago="{{bookmark.last_click}}"></span>
</td>
<td>
<div class="ui label" ng-repeat="tag in bookmark.tags" tag-id="{{ tag.id }}" ng-if="!searchHotBookmarks">
{{ tag.name }}
</div>
<span ng-if="searchHotBookmarks">
{{ bookmark.created_by }}
</span>
</td>
<td>
<span ng-show="bookmark.own">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/delete.png" ng-click="delBookmark(bookmark)" title="删除书签">
</span>
<span ng-show="bookmark.own">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/edit-bookmark.png" ng-click="editBookmark(bookmark.id)" title="编辑书签">
</span>
<span ng-show="!bookmark.own">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/favorite.png" ng-click="favoriteBookmark(bookmark)" title="一键收藏">
</span>
<span ng-show="!bookmark.own">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/store-bookmark.png" ng-click="storeBookmark(bookmark)" title="转存到我的书签">
</span>
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/detail.png" ng-click="detailBookmark(bookmark)" title="书签详情">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="7">
<pagination></pagination>
</th>
</tr>
</tfoot>
</table>
<div class="ui huge text centered inline loader" ng-class="{active:loading, disabled: !loading}">
加载中,请稍候...</div>
<div class="ui grid" style="height:45px" ng-show="!loading">
<div class="fourteen wide column" ng-show="!showSearch">
共为您找到相关书签约{{bookmarkCount}}个
</div>
<div class="left floated right aligned two wide column" ng-show="!showSearch">
<img class="ui ui middle aligned tiny image" ng-src="./images/cocktail.png" style="width:16px;height:16px" ng-click="showSearch = !showSearch">
<span ng-click="showSearch = !showSearch">搜索工具</span>
</div>
<div class="two wide column" ng-show="showSearch">
<div class="ui dropdown js-user-range" js-dropdown-user-range-init>
<div class="text">搜索范围</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="active item" data-value="1">自己书签</div>
<div class="item" data-value="2">全站书签</div>
<div class="item" data-value="3">热门收藏</div>
</div>
</div>
</div>
<div class="four wide column" ng-show="showSearch">
<div class="ui dropdown item js-create-date" js-data-create-init>
<div class="text">创建时间不限</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="active item" data-value='-1'>创建时间不限</div>
<div class="item" data-value='0'>今天</div>
<div class="item" data-value='7'>一周内</div>
<div class="item" data-value='31'>一月内</div>
<div class="item" data-value='365'>一年内</div>
<div class="divider"></div>
<div class="header">自定义</div>
<div class="ui transparent input">
<div class="ui calendar js-date-create-begin">
<div class="ui transparent input left icon">
<i class="calendar icon"></i>
<input type="text" placeholder="开始日期" ng-model="dateCreateBegin">
</div>
</div>
</div>
<div class="ui transparent input">
<div class="ui calendar js-date-create-end">
<div class="ui transparent input left icon">
<i class="calendar icon"></i>
<input type="text" placeholder="结束日期" ng-model="dateCreateEnd">
</div>
</div>
</div>
<div class="ui transparent input">
<div class="ui basic button" ng-click="updateCreateDate()">确定</div>
</div>
</div>
</div>
</div>
<div class="four wide column" ng-show="showSearch">
<div class="ui dropdown item js-click-date" js-data-click-init>
<div class="text">点击时间不限</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="active item" data-value='-1'>点击时间不限</div>
<div class="item" data-value='0'>今天</div>
<div class="item" data-value='7'>一周内</div>
<div class="item" data-value='31'>一月内</div>
<div class="item" data-value='365'>一年内</div>
<div class="divider"></div>
<div class="header">自定义</div>
<div class="ui transparent input">
<div class="ui calendar js-date-click-begin">
<div class="ui transparent input left icon">
<i class="calendar icon"></i>
<input type="text" placeholder="开始日期" ng-model="dateClickBegin">
</div>
</div>
</div>
<div class="ui transparent input">
<div class="ui calendar js-date-click-end">
<div class="ui transparent input left icon">
<i class="calendar icon"></i>
<input type="text" placeholder="结束日期" ng-model="dateClickEnd">
</div>
</div>
</div>
<div class="ui transparent input">
<div class="ui basic button" ng-click="updateClickDate()">确定</div>
</div>
</div>
</div>
</div>
<div class="two wide column" ng-show="showSearch">
<div class="ui transparent icon input" ng-show="(!showTags) && (!searchHotBookmarks)">
<input class="prompt" type="text" placeholder="用户账号" ng-model="username" ng-keypress="($event.which === 13)?search(1):0">
</div>
<div class="ui grid container" style="padding-top: 8px;">
<div class="ui multiple dropdown js-search-tags" style="padding:0;" ng-show="showTags" js-dropdown-tags-init>
<div class="default text">分类选择</div>
<i class="dropdown icon"></i>
<div class="menu" ng-click="updateTagsSelect()">
<div class="item" data-value='{{tag.id}}' ng-repeat="tag in tags">{{tag.name}}</div>
</div>
</div>
</div>
</div>
<div class="two wide column" ng-show="showSearch">
<div class="ui transparent input">
<input type="text" placeholder="标题,链接..." ng-model="searchWord" ng-keypress="($event.which === 13)?search(1):0">
</div>
</div>
<div class=" left floated right aligned two wide column" ng-show=" showSearch">
<div class="ui grid">
<div class="four wide column">
<i class="search icon" title="搜索" ng-click="currentPage=1;search()"></i>
</div>
<div class="twelve wide column">
<img class="ui ui middle aligned tiny image" ng-src="./images/hide.png" style="width:16px;height:16px" ng-click="showSearch = !showSearch">
<span ng-click="showSearch = !showSearch">收起</span>
</div>
</div>
</div>
</div>
<table class="ui selectable celled table js-table-search" ng-show="!loading">
<thead>
<tr>
<th>标题</th>
<th>链接</th>
<th style="width:90px;">{{ searchHotBookmarks ? '收藏人数' : '点击次数'}}</th>
<th style="width:100px;">创建日期</th>
<th style="width:100px;">最后点击</th>
<th style="width:150px;">{{ searchHotBookmarks ? '来源信息' : '分类'}}</th>
<th style="width:88px;">操作</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="bookmark in searchBookmarks" id="{{ bookmark.id }}" ng-mouseover="setHoverBookmark(bookmark)" ng-mouseleave="setHoverBookmark(null)">
<td>
<img
class="ui ui middle aligned mini image"
ng-src="{{ bookmark.favicon_url }}"
style="width:16px;height:16px;cursor:pointer;"
ng-click="jumpToUrl(bookmark.url, bookmark.id)"
favicon-err="./images/favicon/{{bookmark.id}}.ico"
ng-if="searchHotBookmarks">
<img
class="ui ui middle aligned mini image"
ng-src="./images/favicon/{{bookmark.id}}.ico"
style="width:16px;height:16px;cursor:pointer;"
ng-click="jumpToUrl(bookmark.url, bookmark.id)"
favicon-err="http://favicon.luchenqun.com/?url={{bookmark.url}}"
ng-if="!searchHotBookmarks">
<span ng-click="jumpToUrl(bookmark.url, bookmark.id)" title="{{bookmark.title}}" style="cursor:pointer;">
{{ bookmark.title }}
</span>
</td>
<td>
<span title="{{bookmark.url}} 点击复制链接" ng-click="copy(bookmark.url)" style="cursor:default;">{{ bookmark.url }}</span>
</td>
<td>{{ bookmark.click_count || bookmark.fav_count }}</td>
<td>
<span title="{{bookmark.created_at}}" class="need_to_be_rendered" data-timeago="{{bookmark.created_at}}"></span>
</td>
<td>
<span id="time{{bookmark.id}}" title="{{bookmark.last_click}}" class="need_to_be_rendered" data-timeago="{{bookmark.last_click}}"></span>
</td>
<td>
<div class="ui label" ng-repeat="tag in bookmark.tags" tag-id="{{ tag.id }}" ng-if="!searchHotBookmarks">
{{ tag.name }}
</div>
<span ng-if="searchHotBookmarks">
{{ bookmark.created_by }}
</span>
</td>
<td>
<span ng-show="bookmark.own">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/delete.png" ng-click="delBookmark(bookmark)" title="删除书签">
</span>
<span ng-show="bookmark.own">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/edit-bookmark.png" ng-click="editBookmark(bookmark.id)" title="编辑书签">
</span>
<span ng-show="!bookmark.own">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/favorite.png" ng-click="favoriteBookmark(bookmark)" title="一键收藏">
</span>
<span ng-show="!bookmark.own">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/store-bookmark.png" ng-click="storeBookmark(bookmark)" title="转存到我的书签">
</span>
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/detail.png" ng-click="detailBookmark(bookmark)" title="书签详情">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="7">
<pagination></pagination>
</th>
</tr>
</tfoot>
</table>

View File

@ -1,159 +1,159 @@
<div class="ui segment js-tags">
<div class="ui container" ng-show="!editMode" style="cursor:default;">
<div class="ui grid">
<div class="two wide column js-tag-label">
<div class="ui small label" ng-class="{green:costomTag.bookmarkClicked}" ng-click="getBookmarks(-1, 1)">
{{ costomTag.name }} ({{ costomTag.cnt || 0 }})
</div>
</div>
<div class="two wide column js-tag-label" ng-if="tag.cnt" ng-repeat="tag in tags">
<div class="ui small label" ng-class="{green:tag.bookmarkClicked}" ng-click="getBookmarks(tag.id, 1)">
{{ tag.name }} ({{ tag.cnt || 0 }})
</div>
</div>
<div class="two wide column js-tag-label">
<div class="ui small label" ng-class="{green:costomAllUsersTag.bookmarkClicked}" ng-click="getBookmarks(-2, 1)">
{{ costomAllUsersTag.name }} ({{ costomAllUsersTag.cnt || 0 }})
</div>
</div>
<div class="two wide column js-tag-label">
<div class="ui small label">
<i class="plus icon" data-content="点击添加分类" data-position="top center" ng-click="showAddTag()"></i>
<i class="pencil alternate icon" data-content="点击进入分类编辑模式" data-position="top center" ng-click="toggleMode(true)"></i>
<i class="table icon" style="margin-right:0px;" data-content="点击以条目显示" data-position="top center" ng-show="showMode=='table'" ng-click="toggleShowMode('item')"></i>
<i class="list icon" style="margin-right:0px;" data-content="点击以表格显示" data-position="top center" ng-show="showMode=='item'" ng-click="toggleShowMode('table')"></i>
</div>
</div>
</div>
</div>
<div class="ui container" ng-show="editMode" ng-mousedown="storeTagIndex()" ng-mouseup="updateTagIndex()">
<p>提示:拖拽分类即可进行排序。如果添加新的分类,返回之后不会显示添加的分类,因为默认只显示有书签的分类。</p>
<div class="ui six stackable cards" sv-root sv-part="tags">
<div class="card" style="background-color:#F5F5F5;" ng-click="showAddTag()" data-tooltip="添加书签">
<div class="image">
<img src="./images/add-tag.png">
</div>
</div>
<div class="card" style="background-color:#F5F5F5;" ng-click="toggleMode(false)" data-tooltip="退出编辑模式">
<div class="image">
<img src="./images/back-tag.png">
</div>
</div>
<div class="card" ng-repeat="tag in tags" id="tag{{tag.id}}" sv-element>
<div class="content">
<div class="header" ng-if="!tag.edit">{{ tag.name }}</div>
<div class="ui large fluid transparent input" style="height:19px;" ng-if="tag.edit">
<input type="text" ng-model="tag.name" style="font-size:18px;" id="tagedit{{tag.id}}">
<i class="checkmark icon" style="cursor:pointer;" ng-click="updateTag(tag)" title="更新分类"></i>
<i class="mail forward icon" style="cursor:pointer;" ng-click="backTag(tag)" title="放弃更新"></i>
</div>
</div>
<div class="content" style="cursor: move" sv-handle>
<div class="description">
<p>书签:{{ tag.cnt || 0 }}个</p>
<p>{{ tag.last_use }}</p>
</div>
</div>
<div class="extra content">
<img class="ui mini spaced image right floated" style="width:16px;height:16px;margin:0 5px" ng-src="./images/delete.png"
ng-click="delTag(tag)" title="删除分类">
<label for="tagedit{{tag.id}}" ng-show="!tag.edit">
<img class="ui mini spaced image right floated" style="width:16px;height:16px;margin:0 5px" ng-src="./images/edit-bookmark.png"
ng-click="editTag(tag)" title="编辑分类">
</label>
</div>
</div>
</div>
</div>
</div>
<div class="ui huge text centered inline loader" ng-class="{active:loadBookmarks, disabled: !loadBookmarks}">
正在加载中...
</div>
<table class="ui selectable sortable celled table js-tags-table" ng-if="bookmarkCount > 0 && showMode=='table'" style="margin-top:-15px;"
ng-show="!loadBookmarks && !editMode">
<thead>
<tr>
<th class="forbid_sorted">标题</th>
<th class="forbid_sorted">链接</th>
<th style="width:90px;" ng-class="{descending: order[0], sorted:order[0]}" ng-click="changeOrder(0)" title="点击可对表格进行排序">点击次数</th>
<th style="width:100px;" ng-class="{descending: order[1], sorted:order[1]}" ng-click="changeOrder(1)" title="点击可对表格进行排序">创建日期</th>
<th style="width:100px;" ng-class="{descending: order[2], sorted:order[2]}" ng-click="changeOrder(2)" title="点击可对表格进行排序">最后点击</th>
<th style="width:150px;" class="forbid_sorted">分类</th>
<th style="width:88px;" class="forbid_sorted">操作</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="bookmark in bookmarksByTag" id="{{ bookmark.id }}" ng-mouseover="setHoverBookmark(bookmark)" ng-mouseleave="setHoverBookmark(null)">
<td>
<img class="ui ui middle aligned tiny image" ng-src="./images/favicon/{{bookmark.id}}.ico" style="width:16px;height:16px;cursor:pointer;"
ng-click="jumpToUrl(bookmark.url, bookmark.id)" favicon-err="http://47.75.89.228:3000/?url={{bookmark.url}}">
<span ng-click="jumpToUrl(bookmark.url, bookmark.id)" title="{{bookmark.title}}" style="cursor:pointer;">
{{ bookmark.title }}
</span>
</td>
<td>
<span title="{{bookmark.url}} 点击复制链接" ng-click="copy(bookmark.url)" style="cursor:default;">{{ bookmark.url }}</span>
</td>
<td>{{ bookmark.click_count }}</td>
<td>
<span title="{{bookmark.created_at}}" class="need_to_be_rendered" data-timeago="{{bookmark.created_at}}"></span>
</td>
<td>
<span id="time{{bookmark.id}}" title="{{bookmark.last_click}}" class="need_to_be_rendered" data-timeago="{{bookmark.last_click}}"></span>
</td>
<td>
<div class="ui label" ng-repeat="tag in bookmark.tags" tag-id="{{ tag.id }}" ng-click="getBookmarks(tag.id, 1)">
{{ tag.name }}
</div>
</td>
<td>
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/delete.png" ng-click="delBookmark(bookmark)"
title="删除书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/edit-bookmark.png" ng-click="editBookmark(bookmark.id)"
title="编辑书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/detail.png" ng-click="detailBookmark(bookmark)"
title="书签详情">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="7">
<pagination></pagination>
</th>
</tr>
</tfoot>
</table>
<div class="ui segment js-tag-costomTag" ng-if="bookmarkCount > 0 && showMode=='item'" style="margin-top:-15px;" ng-show="!loadBookmarks && !editMode">
<div class="ui five column grid">
<div ng-repeat="bookmark in bookmarksByTag" class="column js-costomTag-item" ng-class="{bookmarkNormalHover:bookmarkNormalHover, bookmark:(!bookmarkNormalHover)}"
ng-mouseover="bookmarkNormalHover=true; setHoverBookmark(bookmark)" ng-mouseleave="bookmarkNormalHover=false; setHoverBookmark(null)"
ng-click="jumpToUrl(bookmark.url, bookmark.id)" title="{{ bookmark.title }}" id="{{bookmark.id}}">
<img class="ui ui middle aligned tiny image bookmarkInfo" ng-src="./images/favicon/{{bookmark.id}}.ico" style="width:16px;height:16px;"
ng-click="detailBookmark(bookmark);$event.stopPropagation()" favicon-err="http://47.75.89.228:3000/?url={{bookmark.url}}">
<span>{{ bookmark.title}}</span>
</div>
</div>
<div class="ui divider"></div>
<div class="ui grid">
<div class="five wide column" style="margin-top:10px;">
<div class="ui three column grid" style="cursor: default;">
<div class="column" ng-click="changeOrder(1)">
<i class="add to calendar large icon" ng-class="{green: order[1]}" style="margin-bottom:4px;"></i>
<span ng-class="{fontgreen: order[1]}" style="margin-left:-5px;">添加日期</span>
</div>
<div class="column" ng-click="changeOrder(0)">
<i class="sort numeric descending large icon" ng-class="{green: order[0]}" style="margin-bottom:4px;"></i>
<span ng-class="{fontgreen: order[0]}" style="margin-left:-5px;">点击次数</span>
</div>
<div class="column" ng-click="changeOrder(2)">
<i class="sort alphabet descending large icon" ng-class="{green: order[2]}" style="margin-bottom:4px;"></i>
<span ng-class="{fontgreen: order[2]}" style="margin-left:-5px;">最后点击</span>
</div>
</div>
</div>
<div class="eleven wide column">
<pagination></pagination>
</div>
</div>
<div class="ui segment js-tags">
<div class="ui container" ng-show="!editMode" style="cursor:default;">
<div class="ui grid">
<div class="two wide column js-tag-label">
<div class="ui small label" ng-class="{green:costomTag.bookmarkClicked}" ng-click="getBookmarks(-1, 1)">
{{ costomTag.name }} ({{ costomTag.cnt || 0 }})
</div>
</div>
<div class="two wide column js-tag-label" ng-if="tag.cnt" ng-repeat="tag in tags">
<div class="ui small label" ng-class="{green:tag.bookmarkClicked}" ng-click="getBookmarks(tag.id, 1)">
{{ tag.name }} ({{ tag.cnt || 0 }})
</div>
</div>
<div class="two wide column js-tag-label">
<div class="ui small label" ng-class="{green:costomAllUsersTag.bookmarkClicked}" ng-click="getBookmarks(-2, 1)">
{{ costomAllUsersTag.name }} ({{ costomAllUsersTag.cnt || 0 }})
</div>
</div>
<div class="two wide column js-tag-label">
<div class="ui small label">
<i class="plus icon" data-content="点击添加分类" data-position="top center" ng-click="showAddTag()"></i>
<i class="pencil alternate icon" data-content="点击进入分类编辑模式" data-position="top center" ng-click="toggleMode(true)"></i>
<i class="table icon" style="margin-right:0px;" data-content="点击以条目显示" data-position="top center" ng-show="showMode=='table'" ng-click="toggleShowMode('item')"></i>
<i class="list icon" style="margin-right:0px;" data-content="点击以表格显示" data-position="top center" ng-show="showMode=='item'" ng-click="toggleShowMode('table')"></i>
</div>
</div>
</div>
</div>
<div class="ui container" ng-show="editMode" ng-mousedown="storeTagIndex()" ng-mouseup="updateTagIndex()">
<p>提示:拖拽分类即可进行排序。如果添加新的分类,返回之后不会显示添加的分类,因为默认只显示有书签的分类。</p>
<div class="ui six stackable cards" sv-root sv-part="tags">
<div class="card" style="background-color:#F5F5F5;" ng-click="showAddTag()" data-tooltip="添加书签">
<div class="image">
<img src="./images/add-tag.png">
</div>
</div>
<div class="card" style="background-color:#F5F5F5;" ng-click="toggleMode(false)" data-tooltip="退出编辑模式">
<div class="image">
<img src="./images/back-tag.png">
</div>
</div>
<div class="card" ng-repeat="tag in tags" id="tag{{tag.id}}" sv-element>
<div class="content">
<div class="header" ng-if="!tag.edit">{{ tag.name }}</div>
<div class="ui large fluid transparent input" style="height:19px;" ng-if="tag.edit">
<input type="text" ng-model="tag.name" style="font-size:18px;" id="tagedit{{tag.id}}">
<i class="checkmark icon" style="cursor:pointer;" ng-click="updateTag(tag)" title="更新分类"></i>
<i class="mail forward icon" style="cursor:pointer;" ng-click="backTag(tag)" title="放弃更新"></i>
</div>
</div>
<div class="content" style="cursor: move" sv-handle>
<div class="description">
<p>书签:{{ tag.cnt || 0 }}个</p>
<p>{{ tag.last_use }}</p>
</div>
</div>
<div class="extra content">
<img class="ui mini spaced image right floated" style="width:16px;height:16px;margin:0 5px" ng-src="./images/delete.png"
ng-click="delTag(tag)" title="删除分类">
<label for="tagedit{{tag.id}}" ng-show="!tag.edit">
<img class="ui mini spaced image right floated" style="width:16px;height:16px;margin:0 5px" ng-src="./images/edit-bookmark.png"
ng-click="editTag(tag)" title="编辑分类">
</label>
</div>
</div>
</div>
</div>
</div>
<div class="ui huge text centered inline loader" ng-class="{active:loadBookmarks, disabled: !loadBookmarks}">
正在加载中...
</div>
<table class="ui selectable sortable celled table js-tags-table" ng-if="bookmarkCount > 0 && showMode=='table'" style="margin-top:-15px;"
ng-show="!loadBookmarks && !editMode">
<thead>
<tr>
<th class="forbid_sorted">标题</th>
<th class="forbid_sorted">链接</th>
<th style="width:90px;" ng-class="{descending: order[0], sorted:order[0]}" ng-click="changeOrder(0)" title="点击可对表格进行排序">点击次数</th>
<th style="width:100px;" ng-class="{descending: order[1], sorted:order[1]}" ng-click="changeOrder(1)" title="点击可对表格进行排序">创建日期</th>
<th style="width:100px;" ng-class="{descending: order[2], sorted:order[2]}" ng-click="changeOrder(2)" title="点击可对表格进行排序">最后点击</th>
<th style="width:150px;" class="forbid_sorted">分类</th>
<th style="width:88px;" class="forbid_sorted">操作</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="bookmark in bookmarksByTag" id="{{ bookmark.id }}" ng-mouseover="setHoverBookmark(bookmark)" ng-mouseleave="setHoverBookmark(null)">
<td>
<img class="ui ui middle aligned tiny image" ng-src="./images/favicon/{{bookmark.id}}.ico" style="width:16px;height:16px;cursor:pointer;"
ng-click="jumpToUrl(bookmark.url, bookmark.id)" favicon-err="http://favicon.luchenqun.com/?url={{bookmark.url}}">
<span ng-click="jumpToUrl(bookmark.url, bookmark.id)" title="{{bookmark.title}}" style="cursor:pointer;">
{{ bookmark.title }}
</span>
</td>
<td>
<span title="{{bookmark.url}} 点击复制链接" ng-click="copy(bookmark.url)" style="cursor:default;">{{ bookmark.url }}</span>
</td>
<td>{{ bookmark.click_count }}</td>
<td>
<span title="{{bookmark.created_at}}" class="need_to_be_rendered" data-timeago="{{bookmark.created_at}}"></span>
</td>
<td>
<span id="time{{bookmark.id}}" title="{{bookmark.last_click}}" class="need_to_be_rendered" data-timeago="{{bookmark.last_click}}"></span>
</td>
<td>
<div class="ui label" ng-repeat="tag in bookmark.tags" tag-id="{{ tag.id }}" ng-click="getBookmarks(tag.id, 1)">
{{ tag.name }}
</div>
</td>
<td>
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/delete.png" ng-click="delBookmark(bookmark)"
title="删除书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/edit-bookmark.png" ng-click="editBookmark(bookmark.id)"
title="编辑书签">
<img class="ui mini spaced image" style="width:16px;height:16px;margin:0 1px" ng-src="./images/detail.png" ng-click="detailBookmark(bookmark)"
title="书签详情">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="7">
<pagination></pagination>
</th>
</tr>
</tfoot>
</table>
<div class="ui segment js-tag-costomTag" ng-if="bookmarkCount > 0 && showMode=='item'" style="margin-top:-15px;" ng-show="!loadBookmarks && !editMode">
<div class="ui five column grid">
<div ng-repeat="bookmark in bookmarksByTag" class="column js-costomTag-item" ng-class="{bookmarkNormalHover:bookmarkNormalHover, bookmark:(!bookmarkNormalHover)}"
ng-mouseover="bookmarkNormalHover=true; setHoverBookmark(bookmark)" ng-mouseleave="bookmarkNormalHover=false; setHoverBookmark(null)"
ng-click="jumpToUrl(bookmark.url, bookmark.id)" title="{{ bookmark.title }}" id="{{bookmark.id}}">
<img class="ui ui middle aligned tiny image bookmarkInfo" ng-src="./images/favicon/{{bookmark.id}}.ico" style="width:16px;height:16px;"
ng-click="detailBookmark(bookmark);$event.stopPropagation()" favicon-err="http://favicon.luchenqun.com/?url={{bookmark.url}}">
<span>{{ bookmark.title}}</span>
</div>
</div>
<div class="ui divider"></div>
<div class="ui grid">
<div class="five wide column" style="margin-top:10px;">
<div class="ui three column grid" style="cursor: default;">
<div class="column" ng-click="changeOrder(1)">
<i class="add to calendar large icon" ng-class="{green: order[1]}" style="margin-bottom:4px;"></i>
<span ng-class="{fontgreen: order[1]}" style="margin-left:-5px;">添加日期</span>
</div>
<div class="column" ng-click="changeOrder(0)">
<i class="sort numeric descending large icon" ng-class="{green: order[0]}" style="margin-bottom:4px;"></i>
<span ng-class="{fontgreen: order[0]}" style="margin-left:-5px;">点击次数</span>
</div>
<div class="column" ng-click="changeOrder(2)">
<i class="sort alphabet descending large icon" ng-class="{green: order[2]}" style="margin-bottom:4px;"></i>
<span ng-class="{fontgreen: order[2]}" style="margin-left:-5px;">最后点击</span>
</div>
</div>
</div>
<div class="eleven wide column">
<pagination></pagination>
</div>
</div>
</div>

View File

@ -1236,7 +1236,7 @@ api.getFaviconByTimer = function() {
if (/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/.test(url)) {
// http://www.cnblogs.com/zhangwei595806165/p/4984912.html 各种方法都试一遍
var faviconUrl = "http://47.75.89.228:3000/?url=" + url; // 默认地址
var faviconUrl = "http://favicon.luchenqun.com/?url=" + url; // 默认地址
if (faviconState == 1) {
faviconUrl = "http://www.google.com/s2/favicons?domain=" + url;
}