增加删除留言的功能

This commit is contained in:
HelloWorld 2020-02-23 18:46:01 +08:00
parent ca37eba757
commit 85bed0e0f5
9 changed files with 119 additions and 68 deletions

View File

@ -1170,6 +1170,20 @@ db.delNote = function (id) {
});
}
db.delCommit = function (id, user_id) {
var sql = "DELETE FROM `advices` WHERE `id` = '" + id + "' AND `user_id` = '" + user_id + "'";
console.log(sql);
return new Promise(function (resolve, reject) {
client.query(sql, (err, result) => {
if (err) {
reject(err);
} else {
resolve(result.affectedRows);
}
});
});
}
db.updateNote = function (id, content, tag_id) {
var sql = "UPDATE `notes` SET `content`=" + client.escape(content) + ", `tag_id`='" + tag_id + "' WHERE (`id`='" + id + "')";
console.log(sql);

BIN
public/images/admin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -4,16 +4,17 @@ app.controller('adviceCtr', ['$scope', '$state', '$timeout', 'bookmarkService',
$window.location = "http://m.mybookmark.cn/#/tags";
return;
}
var maxSelections = 3;
$scope.comment = '';
$scope.advices = [];
$scope.curAdvice = {};
$scope.category = ["功能", "BUG", "其他"];
$scope.user = {};
bookmarkService.userInfo({})
.then((data) => {
$scope.user = data;
console.log(data);
})
.catch((err) => {
@ -49,6 +50,28 @@ app.controller('adviceCtr', ['$scope', '$state', '$timeout', 'bookmarkService',
});
}
$scope.showDelComment = function (advice) {
$scope.curAdvice = advice;
$('.js-comment-del').modal('show');
}
$scope.delComment = function () {
// console.log($scope.curAdvice);
bookmarkService.delComment($scope.curAdvice)
.then((data) => {
if (data.result == 1) {
toastr.success('删除成功', "提示");
getAdvices({});
} else {
toastr.error('删除失败', "错误");
}
})
.catch((err) => {
toastr.error('删除失败', "错误");
});
$('.js-comment-del').modal('hide');
}
function getAdvices(params) {
bookmarkService.getAdvices(params)
.then((data) => {

View File

@ -20,7 +20,13 @@ app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', '
$scope.order = [false, false, false];
$scope.order[($stateParams && $stateParams.orderIndex) || 0] = true;
$scope.bookmarkData = {};
var timeagoInstance = timeago();
var menusScope = $('div[ng-controller="menuCtr"]').scope();
var login = (menusScope && menusScope.login) || false;
pubSubService.publish('Common.menuActive', {
login: login,
index: login ? dataService.LoginIndexBookmarks : dataService.NotLoginIndexBookmarks
});
getBookmarks();
@ -91,66 +97,26 @@ app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', '
function getBookmarks() {
var params = {}
params.showStyle = $scope.showStyle
params.showStyle = 'navigate';
params.currentPage = $scope.currentPage;
params.perPageItems = perPageItems;
if (!params.showStyle) {
bookmarkService.userInfo({})
.then((user) => {
$scope.showStyle = (user && user.show_style) || 'navigate';
updateShowStyle();
getBookmarks(); // 拿到默认显示风格了,继续取获取书签
})
.catch((err) => dataService.netErrorHandle(err, $state));
} else {
$scope.loadBusy = true;
if (params.showStyle == 'table' && (!$scope.forbidTransition)) {
$('.js-table-bookmarks').transition('hide');
}
bookmarkService.getBookmarks(params)
.then((data) => {
$scope.bookmarks = data;
if ($scope.bookmarks.length <= 2) {
$(".js-msg").removeClass("hidden");
}
if ($scope.bookmarks.length == 0) {
toastr.info('您还没有书签,请点击菜单栏的添加按钮进行添加', "提示");
}
$scope.loadBusy = true;
bookmarkService.getBookmarks(params)
.then((data) => {
$scope.bookmarks = data;
if ($scope.bookmarks.length <= 2) {
$(".js-msg").removeClass("hidden");
}
if ($scope.bookmarks.length == 0) {
toastr.info('您还没有书签,请点击菜单栏的添加按钮进行添加', "提示");
}
$scope.loadBusy = false;
})
.catch((err) => {
dataService.netErrorHandle(err, $state);
$scope.loadBusy = false;
});
pubSubService.publish('Common.menuActive', {
login: true,
index: dataService.LoginIndexBookmarks
});
if (!$scope.forbidTransition) {
transition();
}
$scope.forbidTransition = false;
$scope.loadBusy = false;
})
.catch((err) => {
dataService.netErrorHandle(err, $state);
$scope.loadBusy = false;
});
}
}
function transition() {
if ($scope.showStyle == 'card' && $scope.currentPage > 1) {
return;
}
var className = 'js-segment-navigate';
if ($scope.showStyle == 'card') {
className = 'js-segment-card'
} else if ($scope.showStyle == 'table') {
className = 'js-table-bookmarks'
} else if ($scope.showStyle == 'costomTag') {
className = 'js-segment-costomTag'
}
$('.' + className).transition('hide');
$('.' + className).transition({
animation: dataService.animation(),
duration: 500,
});
}
}]);

View File

@ -1,6 +1,6 @@
app.controller('menuCtr', ['$scope', '$stateParams', '$state', '$window', '$timeout', '$document', 'ngDialog', 'pubSubService', 'bookmarkService', 'dataService', function ($scope, $stateParams, $state, $window, $timeout, $document, ngDialog, pubSubService, bookmarkService, dataService) {
console.log("Hello menuCtr")
$scope.login = true; /**< 是否登陆 */
$scope.login = false; /**< 是否登陆 */
$scope.selectLoginIndex = 0; /**< 默认登陆之后的选择的菜单索引,下表从 0 开始 */
$scope.selectNotLoginIndex = 0; /**< 默认未登陆之后的选择的菜单索引,下表从 0 开始 */
$scope.searchWord = ''; /**< 搜索关键字 */
@ -14,6 +14,8 @@ app.controller('menuCtr', ['$scope', '$stateParams', '$state', '$window', '$time
$scope.showSearchBtn = true;
$scope.user = {};
// 防止在登陆的情况下在浏览器里面直接输入url这时候要更新菜单选项
pubSubService.subscribe('Common.menuActive', $scope, function (event, params) {
console.log("subscribe Common.menuActive, login = " + params.login + ", index = " + params.index);
@ -26,6 +28,10 @@ app.controller('menuCtr', ['$scope', '$stateParams', '$state', '$window', '$time
$scope.quickUrl = params.quickUrl;
});
pubSubService.subscribe('loginCtr.login', $scope, function (event, params) {
$scope.login = params.login;
});
$scope.loginMenus = dataService.loginMenus; // 登陆之后显示的菜单数据。uiSerf内部跳转链接。
$scope.notLoginMenus = dataService.notLoginMenus; // 未登陆显示的菜单数据
@ -34,11 +40,13 @@ app.controller('menuCtr', ['$scope', '$stateParams', '$state', '$window', '$time
pubSubService.publish('loginCtr.login', {
'login': data.logined,
});
$scope.login = data.logined;
})
.catch((err) => {
pubSubService.publish('loginCtr.login', {
'login': data.logined,
});
$scope.login = false;
});
bookmarkService.userInfo({})

View File

@ -256,6 +256,19 @@ app.factory('bookmarkService', ['$http', '$q', function ($http, $q) {
});
return def.promise;
},
delComment: function (params) {
var def = $q.defer();
$http.delete('/api/delComment/', {
params: params
})
.success(function (data) {
def.resolve(data);
})
.error(function (data) {
def.reject(data);
});
return def.promise;
},
/**
* @func
* @desc 根据显示页数的索引获取书签的数据

View File

@ -10,10 +10,9 @@ app.factory('dataService', [function () {
LoginIndexPraise: 6,
// 非登陆索引
NotLoginIndexHome: 0,
NotLoginIndexBookmarks: 0,
NotLoginIndexLogin: 1,
NotLoginIndexHot: 2,
NotLoginIndexPraise: 3,
loginMenus: [{
uiSref: 'bookmarks',

View File

@ -28,8 +28,8 @@
<h3 class="ui header">最新100条留言</h3>
<div class="comment" ng-repeat="advice in advices">
<a class="avatar">
<img ng-if="advice.username == 'lcq'" src="./images/admin.jpg" />
<img ng-if="advice.username != 'lcq'" ng-src="data:image/png;base64,{{advice.imgData}}" />
<img ng-if="advice.username == 'admin'" src="./images/admin.png" />
<img ng-if="advice.username != 'admin'" ng-src="data:image/png;base64,{{advice.imgData}}" />
</a>
<div class="content">
<a class="author">{{ advice.username }}</a>
@ -39,8 +39,21 @@
<div class="metadata">
<span class="category">{{ category[advice.category] }}</span>
</div>
<div class="metadata" ng-if="user.username === 'admin' || user.username === advice.username">
<i class="red trash alternate outline icon" ng-click="showDelComment(advice)"></i>
</div>
<div class="text">{{ advice.comment }}</div>
</div>
</div>
</div>
<div class="ui mini js-comment-del modal">
<div class="header">删除留言</div>
<div class="content">
<p>您确认要删除留言 {{ curAdvice.comment }} 吗?删除之后再也无法恢复了!</p>
</div>
<div class="actions">
<div class="ui negative button">不删除</div>
<div class="ui positive button" ng-click="delComment(advice)">删除</div>
</div>
</div>
</div>

View File

@ -332,6 +332,25 @@ api.delete('/delBookmark', function (req, res) {
.catch((err) => console.log('delBookmark err', err));
})
api.delete('/delComment', function (req, res) {
console.log("delComment username = ", req.session.username);
if (!req.session.user) {
res.send(401);
return;
}
var userId = req.session.username === 'admin' ? req.query.user_id : req.session.user.id;
db.delCommit(req.query.id, userId)
.then((affectedRows) => {
res.json({
code: 0,
result: affectedRows
});
})
.catch((err) => console.log('delComment err', err));
})
api.post('/updateBookmark', function (req, res) {
console.log("updateBookmark username = ", req.session.username);
if (!req.session.user) {
@ -393,10 +412,6 @@ api.get('/bookmark', function (req, res) {
api.get('/bookmarks', function (req, res) {
console.log("bookmarks username = ", req.session.username);
if (!req.session.user) {
res.send(401);
return;
}
var userId = 226; //req.session.user.id;
db.getTags(userId)
.then((tags) => db.getBookmarksNavigate(tags))