做了一下卡片
This commit is contained in:
parent
cb62f6cdb4
commit
82f58160f2
|
|
@ -30,6 +30,7 @@ code {
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
.bookmarkNormalHover {
|
.bookmarkNormalHover {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
@ -44,6 +45,9 @@ code {
|
||||||
.bookmarkOperaterHover {
|
.bookmarkOperaterHover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
.tags {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
.bookmarkEditHover {
|
.bookmarkEditHover {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|
|
||||||
|
|
@ -56,5 +56,6 @@
|
||||||
<script src="/scripts/externe/semantic.min.js"></script>
|
<script src="/scripts/externe/semantic.min.js"></script>
|
||||||
<script src="/scripts/externe/calendar.min.js"></script>
|
<script src="/scripts/externe/calendar.min.js"></script>
|
||||||
<script src="/scripts/externe/jquery.uploadfile.min.js"></script>
|
<script src="/scripts/externe/jquery.uploadfile.min.js"></script>
|
||||||
|
<script src="/scripts/externe/ng-infinite-scroll.min.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
var app = angular.module('bookmarkApp', ['ui.router', 'ngCookies']);
|
var app = angular.module('bookmarkApp', ['ui.router', 'ngCookies', 'infinite-scroll']);
|
||||||
|
|
||||||
app.config(function($stateProvider, $urlRouterProvider, $httpProvider) {
|
app.config(function($stateProvider, $urlRouterProvider, $httpProvider) {
|
||||||
$httpProvider.interceptors.push('httpInterceptor');
|
$httpProvider.interceptors.push('httpInterceptor');
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,15 @@ app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', '
|
||||||
$scope.showSearch = false; // 搜索对话框
|
$scope.showSearch = false; // 搜索对话框
|
||||||
$scope.bookmarkNormalHover = false;
|
$scope.bookmarkNormalHover = false;
|
||||||
$scope.bookmarkEditHover = false;
|
$scope.bookmarkEditHover = false;
|
||||||
$scope.showStyle = ($stateParams && $stateParams.showStyle) || 'navigate'; // 显示风格'navigate', 'card', 'table'
|
$scope.showStyle = 'card';
|
||||||
|
($stateParams && $stateParams.showStyle) || 'navigate'; // 显示风格'navigate', 'card', 'table'
|
||||||
$('.js-radio-' + $scope.showStyle).checkbox('set checked');
|
$('.js-radio-' + $scope.showStyle).checkbox('set checked');
|
||||||
$scope.edit = false;
|
$scope.edit = false;
|
||||||
const perPageItems = 20;
|
const perPageItems = 20;
|
||||||
$scope.totalPages = 0;
|
$scope.totalPages = 0;
|
||||||
$scope.currentPage = 1;
|
$scope.currentPage = 1;
|
||||||
$scope.inputPage = '';
|
$scope.inputPage = '';
|
||||||
|
$scope.loadBusy = false;
|
||||||
$scope.changeCurrentPage = function(currentPage) {
|
$scope.changeCurrentPage = function(currentPage) {
|
||||||
currentPage = parseInt(currentPage) || 0;
|
currentPage = parseInt(currentPage) || 0;
|
||||||
console.log(currentPage);
|
console.log(currentPage);
|
||||||
|
|
@ -93,6 +94,13 @@ app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', '
|
||||||
$(".js-msg").remove();
|
$(".js-msg").remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$scope.loadCardData = function() {
|
||||||
|
console.log('loadCardData.........')
|
||||||
|
$scope.currentPage += 1;
|
||||||
|
$scope.changeCurrentPage($scope.currentPage);
|
||||||
|
$scope.loadBusy = true;
|
||||||
|
}
|
||||||
|
|
||||||
pubSubService.subscribe('EditCtr.inserBookmarsSuccess', $scope, function(event, params) {
|
pubSubService.subscribe('EditCtr.inserBookmarsSuccess', $scope, function(event, params) {
|
||||||
params.showStyle = $scope.showStyle;
|
params.showStyle = $scope.showStyle;
|
||||||
console.log('subscribe EditCtr.inserBookmarsSuccess', params);
|
console.log('subscribe EditCtr.inserBookmarsSuccess', params);
|
||||||
|
|
@ -113,7 +121,14 @@ app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', '
|
||||||
toastr.info('您还没有书签,请点击菜单栏的添加按钮进行添加', "提示");
|
toastr.info('您还没有书签,请点击菜单栏的添加按钮进行添加', "提示");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$scope.bookmarks = data;
|
if (params.showStyle == 'card') {
|
||||||
|
console.log('loadCardData end.........')
|
||||||
|
$scope.bookmarks = $scope.bookmarks.concat(data);
|
||||||
|
$scope.loadBusy = false;
|
||||||
|
} else {
|
||||||
|
$scope.bookmarks = data;
|
||||||
|
}
|
||||||
|
|
||||||
if ($scope.bookmarks.length <= 2) {
|
if ($scope.bookmarks.length <= 2) {
|
||||||
$(".js-msg").removeClass("hidden");
|
$(".js-msg").removeClass("hidden");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
/* ng-infinite-scroll - v1.0.0 - 2013-02-23 */
|
||||||
|
var mod;mod=angular.module("infinite-scroll",[]),mod.directive("infiniteScroll",["$rootScope","$window","$timeout",function(i,n,e){return{link:function(t,l,o){var r,c,f,a;return n=angular.element(n),f=0,null!=o.infiniteScrollDistance&&t.$watch(o.infiniteScrollDistance,function(i){return f=parseInt(i,10)}),a=!0,r=!1,null!=o.infiniteScrollDisabled&&t.$watch(o.infiniteScrollDisabled,function(i){return a=!i,a&&r?(r=!1,c()):void 0}),c=function(){var e,c,u,d;return d=n.height()+n.scrollTop(),e=l.offset().top+l.height(),c=e-d,u=n.height()*f>=c,u&&a?i.$$phase?t.$eval(o.infiniteScroll):t.$apply(o.infiniteScroll):u?r=!0:void 0},n.on("scroll",c),t.$on("$destroy",function(){return n.off("scroll",c)}),e(function(){return o.infiniteScrollImmediateCheck?t.$eval(o.infiniteScrollImmediateCheck)?c():void 0:c()},0)}}}]);
|
||||||
|
|
@ -92,19 +92,31 @@
|
||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
<div class="ui segment" ng-if="showStyle === 'card'">
|
<div class="ui segment" ng-if="showStyle === 'card'">
|
||||||
<div class="ui five stackable cards">
|
<div class="ui five link stackable cards" infinite-scroll='loadCardData()' infinite-scroll-disabled='loadBusy' infinite-scroll-distance='1'>
|
||||||
<div class="card link raised" ng-repeat="bookmark in bookmarks">
|
<div class="card" ng-repeat="bookmark in bookmarks">
|
||||||
<div class="image">
|
<div class="image" href="{{ bookmark.url }}" ng-click="jumpToUrl(bookmark.url, bookmark.id)">
|
||||||
<img ng-src="./images/snap/{{bookmark.id}}.png" err-src="./images/snap/default.png"/>
|
<img ng-src="./images/snap/{{bookmark.id}}.png" err-src="./images/snap/default.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="content" href="{{ bookmark.url }}">
|
<div class="content" ng-click="jumpToTags(tag.id)">
|
||||||
<div class="description bookmarkTitle">
|
<div class="description bookmarkTitle">
|
||||||
{{bookmark.title}}
|
{{bookmark.title}}
|
||||||
</div>
|
</div>
|
||||||
<div class="meta">
|
</div>
|
||||||
<span class="date">{{ bookmark.created_at }}</span>
|
<div class="extra content tags">
|
||||||
|
<div class="ui label" ng-repeat="tag in bookmark.tags" tag-id="{{ tag.id }}" ng-click="jumpToTags(tag.id)">
|
||||||
|
{{ tag.name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="extra content" ng-click="jumpToUrl(bookmark.url, bookmark.id)">
|
||||||
|
<span class="left floated like">
|
||||||
|
<i class="add to calendar icon"></i>
|
||||||
|
{{ bookmark.created_at }}
|
||||||
|
</span>
|
||||||
|
<span class="right floated like">
|
||||||
|
<i class="pointing up icon"></i>
|
||||||
|
{{ bookmark.click_count }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,6 @@ var multer = require('multer');
|
||||||
var webshot = require('webshot');
|
var webshot = require('webshot');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
var webshotOptions = {
|
|
||||||
shotSize: {
|
|
||||||
width: 320,
|
|
||||||
height: 320
|
|
||||||
},
|
|
||||||
timeout: 50000,
|
|
||||||
};
|
|
||||||
|
|
||||||
var storage = multer.diskStorage({
|
var storage = multer.diskStorage({
|
||||||
destination: function(req, file, cb) {
|
destination: function(req, file, cb) {
|
||||||
cb(null, 'uploads/')
|
cb(null, 'uploads/')
|
||||||
|
|
@ -535,13 +527,13 @@ api.post('/uploadBookmarkFile', upload.single('bookmark'), function(req, res) {
|
||||||
|
|
||||||
var tags = [];
|
var tags = [];
|
||||||
item.tags.forEach((tag) => {
|
item.tags.forEach((tag) => {
|
||||||
allTags.forEach((at) => {
|
allTags.forEach((at) => {
|
||||||
if (at.name == tag) {
|
if (at.name == tag) {
|
||||||
tags.push(at.id);
|
tags.push(at.id);
|
||||||
}
|
}
|
||||||
})
|
|
||||||
})
|
})
|
||||||
// 插入书签
|
})
|
||||||
|
// 插入书签
|
||||||
db.addBookmark(userId, bookmark) // 插入书签
|
db.addBookmark(userId, bookmark) // 插入书签
|
||||||
.then((bookmark_id) => {
|
.then((bookmark_id) => {
|
||||||
db.delBookmarkTags(bookmark_id); // 不管3721,先删掉旧的分类
|
db.delBookmarkTags(bookmark_id); // 不管3721,先删掉旧的分类
|
||||||
|
|
@ -627,6 +619,7 @@ api.post('/getTitle', function(req, response) {
|
||||||
|
|
||||||
api.getSnapByTimer = function() {
|
api.getSnapByTimer = function() {
|
||||||
console.log('getSnapByTimer...........');
|
console.log('getSnapByTimer...........');
|
||||||
|
var timeout = 5000
|
||||||
setInterval(function() {
|
setInterval(function() {
|
||||||
var today = new Date().getDate();
|
var today = new Date().getDate();
|
||||||
db.getBookmarkWaitSnap(today)
|
db.getBookmarkWaitSnap(today)
|
||||||
|
|
@ -644,6 +637,13 @@ api.getSnapByTimer = function() {
|
||||||
db.updateBookmarkSnapState(id, today + 31);
|
db.updateBookmarkSnapState(id, today + 31);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
var webshotOptions = {
|
||||||
|
shotSize: {
|
||||||
|
width: 320,
|
||||||
|
height: 160
|
||||||
|
},
|
||||||
|
timeout: timeout,
|
||||||
|
};
|
||||||
webshot(url, finePath, webshotOptions, function(err) {
|
webshot(url, finePath, webshotOptions, function(err) {
|
||||||
var newSnapState = -1;
|
var newSnapState = -1;
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
@ -661,7 +661,7 @@ api.getSnapByTimer = function() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => console.log('getBookmarkWaitSnap err', err));
|
.catch((err) => console.log('getBookmarkWaitSnap err', err));
|
||||||
}, 60000);
|
}, timeout + 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
function md5(str) {
|
function md5(str) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue