Commit 62c872b2 authored by Liang Ding's avatar Liang Ding

Merge remote-tracking branch 'origin/3.0.0-dev' into 3.0.0-dev

parents ff02041b 88c7acb5
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
   
<span id="postToCommunityPanel"> <span id="postToCommunityPanel">
<label class="checkbox"> <label class="checkbox">
<input id="postToCommunity" type="checkbox" /> <input id="postToCommunity" type="checkbox" checked="checked" />
<a href="https://hacpai.com/article/1546941897596" target="_blank">${syncToCommunityLabel}</a> <a href="https://hacpai.com/article/1546941897596" target="_blank">${syncToCommunityLabel}</a>
</label> </label>
</span> </span>
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
}; };
var Label = { var Label = {
"uploadMsg": '${uploadMsg}',
"uploadToken": "${uploadToken}", "uploadToken": "${uploadToken}",
"uploadURL": "${uploadURL}", "uploadURL": "${uploadURL}",
"markedAvailable": ${markedAvailable?c}, "markedAvailable": ${markedAvailable?c},
......
...@@ -156,7 +156,7 @@ admin.article = { ...@@ -156,7 +156,7 @@ admin.article = {
if ($('#articleThumbnail').prop('checked')) { if ($('#articleThumbnail').prop('checked')) {
var bgImage = $('.thumbnail__img').css('background-image') var bgImage = $('.thumbnail__img').css('background-image')
articleContent = '![](' + bgImage.substring(5, bgImage.length - 2) + articleContent = '![](' + bgImage.substring(5, bgImage.length - 2).replace('w/768', 'w/960').replace('h/432', 'h/540') +
')\n\n' + articleContent ')\n\n' + articleContent
} }
...@@ -334,19 +334,12 @@ admin.article = { ...@@ -334,19 +334,12 @@ admin.article = {
$('#unSubmitArticle').hide() $('#unSubmitArticle').hide()
$('#saveArticle').show() $('#saveArticle').show()
} }
if (this.status.articleHadBeenPublished) {
$('#postToCommunityPanel').hide()
} else {
$('#postToCommunityPanel').show()
}
} else { } else {
$('#submitArticle').show() $('#submitArticle').show()
$('#unSubmitArticle').hide() $('#unSubmitArticle').hide()
$('#saveArticle').show() $('#saveArticle').show()
$('#postToCommunityPanel').show() $('#postToCommunityPanel').show()
} }
$('#postToCommunity').attr('checked', 'checked')
}, },
/** /**
* @description 清除发布文章页面的输入框的内容 * @description 清除发布文章页面的输入框的内容
...@@ -393,6 +386,8 @@ admin.article = { ...@@ -393,6 +386,8 @@ admin.article = {
$(this).addClass('selected') $(this).addClass('selected')
}) })
$('#tipMsg').text(Label.uploadMsg)
// For tag auto-completion // For tag auto-completion
$.ajax({// Gets all tags $.ajax({// Gets all tags
url: latkeConfig.servePath + '/console/tags', url: latkeConfig.servePath + '/console/tags',
...@@ -623,7 +618,7 @@ admin.register.article = { ...@@ -623,7 +618,7 @@ admin.register.article = {
admin.editors.abstractEditor.setContent('') admin.editors.abstractEditor.setContent('')
admin.editors.articleEditor.setContent('') admin.editors.articleEditor.setContent('')
$('#loadMsg').text('') $('#loadMsg').text('')
$('#tipMsg').text('') $('#tipMsg').text(Label.uploadMsg)
}, },
} }
......
...@@ -20,287 +20,302 @@ ...@@ -20,287 +20,302 @@
* *
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a> * @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.1.2.4, Feb 8, 2019 * @version 1.1.2.5, Feb 10, 2019
*/ */
/* user-list 相关操作 */ /* user-list 相关操作 */
admin.userList = { admin.userList = {
tablePagination: new TablePaginate("user"), tablePagination: new TablePaginate('user'),
pageInfo: { pageInfo: {
currentCount: 1, currentCount: 1,
pageCount: 1, pageCount: 1,
currentPage: 1 currentPage: 1,
}, },
userInfo: { userInfo: {
'oId': "", 'oId': '',
"userRole": "" 'userRole': '',
}, },
/* /*
* 初始化 table, pagination * 初始化 table, pagination
*/ */
init: function(page) { init: function (page) {
this.tablePagination.buildTable([{ this.tablePagination.buildTable([
style: "padding-left: 12px;", {
text: Label.userNameLabel, style: 'padding-left: 12px;',
index: "userName", text: Label.userNameLabel,
width: 230 index: 'userName',
}, { width: 230,
style: "padding-left: 12px;", }, {
text: Label.commentEmailLabel, style: 'padding-left: 12px;',
index: "userEmail", text: Label.commentEmailLabel,
minWidth: 180 index: 'userEmail',
}, { minWidth: 180,
style: "padding-left: 12px;", }, {
text: Label.roleLabel, style: 'padding-left: 12px;',
index: "isAdmin", text: Label.roleLabel,
width: 120 index: 'isAdmin',
}]); width: 120,
}])
this.tablePagination.initPagination(); this.tablePagination.initPagination()
this.getList(page); this.getList(page)
$("#userUpdate").dialog({ $('#userUpdate').dialog({
width: 700, width: 700,
height: 450, height: 450,
"modal": true, 'modal': true,
"hideFooter": true 'hideFooter': true,
}); })
}, },
/* /*
* 根据当前页码获取列表 * 根据当前页码获取列表
* @pagNum 当前页码 * @pagNum 当前页码
*/ */
getList: function(pageNum) { getList: function (pageNum) {
$("#loadMsg").text(Label.loadingLabel); $('#loadMsg').text(Label.loadingLabel)
$("#tipMsg").text(""); $('#tipMsg').text('')
this.pageInfo.currentPage = pageNum; this.pageInfo.currentPage = pageNum
var that = this; var that = this
$.ajax({ $.ajax({
url: latkeConfig.servePath + "/console/users/" + pageNum + "/" + Label.PAGE_SIZE + "/" + Label.WINDOW_SIZE, url: latkeConfig.servePath + '/console/users/' + pageNum + '/' +
type: "GET", Label.PAGE_SIZE + '/' + Label.WINDOW_SIZE,
cache: false, type: 'GET',
success: function(result, textStatus) { cache: false,
$("#tipMsg").text(result.msg); success: function (result, textStatus) {
if (!result.sc) { $('#tipMsg').text(result.msg)
$("#loadMsg").text(""); if (!result.sc) {
return; $('#loadMsg').text('')
} return
}
var users = result.users; var users = result.users
var userData = []; var userData = []
admin.userList.pageInfo.currentCount = users.length; admin.userList.pageInfo.currentCount = users.length
admin.userList.pageInfo.pageCount = result.pagination.paginationPageCount; admin.userList.pageInfo.pageCount = result.pagination.paginationPageCount
if (users.length < 1) { if (users.length < 1) {
$("#tipMsg").text("No user " + Label.reportIssueLabel); $('#tipMsg').text('No user ' + Label.reportIssueLabel)
$("#loadMsg").text(""); $('#loadMsg').text('')
return; return
} }
$('#tipMsg').text(Label.uploadMsg)
for (var i = 0; i < users.length; i++) { for (var i = 0; i < users.length; i++) {
userData[i] = {}; userData[i] = {}
userData[i].userName = users[i].userName; userData[i].userName = users[i].userName
userData[i].userEmail = users[i].userEmail; userData[i].userEmail = users[i].userEmail
if ("adminRole" === users[i].userRole) { if ('adminRole' === users[i].userRole) {
userData[i].isAdmin = "&nbsp;" + Label.administratorLabel; userData[i].isAdmin = '&nbsp;' + Label.administratorLabel
userData[i].expendRow = "<a href='javascript:void(0)' onclick=\"admin.userList.get('" + userData[i].expendRow = '<a href=\'javascript:void(0)\' onclick="admin.userList.get(\'' +
users[i].oId + "', '" + users[i].userRole + "')\">" + Label.updateLabel + "</a>"; users[i].oId + '\', \'' + users[i].userRole + '\')">' +
} else { Label.updateLabel + '</a>'
userData[i].expendRow = "<a href='javascript:void(0)' onclick=\"admin.userList.get('" + } else {
users[i].oId + "', '" + users[i].userRole + "')\">" + Label.updateLabel + "</a>\ userData[i].expendRow = '<a href=\'javascript:void(0)\' onclick="admin.userList.get(\'' +
<a href='javascript:void(0)' onclick=\"admin.userList.del('" + users[i].oId + "', '" + encodeURIComponent(users[i].userName) + "')\">" + Label.removeLabel + "</a> " + users[i].oId + '\', \'' + users[i].userRole + '\')">' +
"<a href='javascript:void(0)' onclick=\"admin.userList.changeRole('" + users[i].oId + "')\">" + Label.changeRoleLabel + "</a>"; Label.updateLabel + '</a>\
if ("defaultRole" === users[i].userRole) { <a href=\'javascript:void(0)\' onclick="admin.userList.del(\'' +
userData[i].isAdmin = Label.commonUserLabel; users[i].oId + '\', \'' + encodeURIComponent(users[i].userName) +
} '\')">' + Label.removeLabel + '</a> ' +
else { '<a href=\'javascript:void(0)\' onclick="admin.userList.changeRole(\'' +
userData[i].isAdmin = Label.visitorUserLabel; users[i].oId + '\')">' + Label.changeRoleLabel + '</a>'
} if ('defaultRole' === users[i].userRole) {
} userData[i].isAdmin = Label.commonUserLabel
}
else {
userData[i].isAdmin = Label.visitorUserLabel
}
}
that.tablePagination.updateTablePagination(userData, pageNum, result.pagination); that.tablePagination.updateTablePagination(userData, pageNum,
result.pagination)
$("#loadMsg").text(""); }
} $('#loadMsg').text('')
} },
}); })
}, },
/* /*
* 获取用户 * 获取用户
* @id 用户 id * @id 用户 id
*/ */
get: function(id, userRole) { get: function (id, userRole) {
$("#loadMsg").text(Label.loadingLabel); $('#loadMsg').text(Label.loadingLabel)
$("#tipMsg").text(""); $('#tipMsg').text('')
$("#userUpdate").dialog("open"); $('#userUpdate').dialog('open')
$.ajax({ $.ajax({
url: latkeConfig.servePath + "/console/user/" + id, url: latkeConfig.servePath + '/console/user/' + id,
type: "GET", type: 'GET',
cache: false, cache: false,
success: function(result, textStatus) { success: function (result, textStatus) {
$("#tipMsg").text(result.msg); $('#tipMsg').text(result.msg)
if (!result.sc) { if (!result.sc) {
$("#loadMsg").text(""); $('#loadMsg').text('')
return; return
} }
var $userEmailUpdate = $("#userEmailUpdate"); var $userEmailUpdate = $('#userEmailUpdate')
$("#userNameUpdate").val(result.user.userName).data("userInfo", { $('#userNameUpdate').val(result.user.userName).data('userInfo', {
'oId': id, 'oId': id,
"userRole": userRole 'userRole': userRole,
}); })
$userEmailUpdate.val(result.user.userEmail); $userEmailUpdate.val(result.user.userEmail)
$("#userURLUpdate").val(result.user.userURL); $('#userURLUpdate').val(result.user.userURL)
$("#userAvatarUpdate").val(result.user.userAvatar); $('#userAvatarUpdate').val(result.user.userAvatar)
$("#userB3KeyUpdate").val(result.user.userB3Key); $('#userB3KeyUpdate').val(result.user.userB3Key)
$("#loadMsg").text(""); $('#loadMsg').text('')
} },
}); })
}, },
/* /*
* 更新用户 * 更新用户
*/ */
update: function() { update: function () {
if (this.validate("Update")) { if (this.validate('Update')) {
$("#loadMsg").text(Label.loadingLabel); $('#loadMsg').text(Label.loadingLabel)
$("#tipMsg").text(""); $('#tipMsg').text('')
var userInfo = $("#userNameUpdate").data("userInfo"); var userInfo = $('#userNameUpdate').data('userInfo')
var requestJSONObject = { var requestJSONObject = {
"userName": $("#userNameUpdate").val(), 'userName': $('#userNameUpdate').val(),
"oId": userInfo.oId, 'oId': userInfo.oId,
"userEmail": $("#userEmailUpdate").val(), 'userEmail': $('#userEmailUpdate').val(),
"userURL": $("#userURLUpdate").val(), 'userURL': $('#userURLUpdate').val(),
"userRole": userInfo.userRole, 'userRole': userInfo.userRole,
"userAvatar": $("#userAvatarUpdate").val(), 'userAvatar': $('#userAvatarUpdate').val(),
"userB3Key": $("#userB3KeyUpdate").val() 'userB3Key': $('#userB3KeyUpdate').val(),
}; }
$.ajax({ $.ajax({
url: latkeConfig.servePath + "/console/user/", url: latkeConfig.servePath + '/console/user/',
type: "PUT", type: 'PUT',
cache: false, cache: false,
data: JSON.stringify(requestJSONObject), data: JSON.stringify(requestJSONObject),
success: function(result, textStatus) { success: function (result, textStatus) {
$("#userUpdate").dialog("close"); $('#userUpdate').dialog('close')
$("#tipMsg").text(result.msg); $('#tipMsg').text(result.msg)
if (!result.sc) { if (!result.sc) {
$("#loadMsg").text(""); $('#loadMsg').text('')
return; return
} }
admin.userList.getList(admin.userList.pageInfo.currentPage); admin.userList.getList(admin.userList.pageInfo.currentPage)
$("#loadMsg").text(""); $('#loadMsg').text('')
} },
}); })
} }
}, },
/* /*
* 删除用户 * 删除用户
* @id 用户 id * @id 用户 id
* @userName 用户名称 * @userName 用户名称
*/ */
del: function(id, userName) { del: function (id, userName) {
var isDelete = confirm(Label.confirmRemoveLabel + Label.userLabel + '"' + Util.htmlDecode(userName) + '"?'); var isDelete = confirm(Label.confirmRemoveLabel + Label.userLabel + '"' +
if (isDelete) { Util.htmlDecode(userName) + '"?')
$("#loadMsg").text(Label.loadingLabel); if (isDelete) {
$("#tipMsg").text(""); $('#loadMsg').text(Label.loadingLabel)
$('#tipMsg').text('')
$.ajax({ $.ajax({
url: latkeConfig.servePath + "/console/user/" + id, url: latkeConfig.servePath + '/console/user/' + id,
type: "DELETE", type: 'DELETE',
cache: false, cache: false,
success: function(result, textStatus) { success: function (result, textStatus) {
$("#tipMsg").text(result.msg); $('#tipMsg').text(result.msg)
if (!result.sc) { if (!result.sc) {
$("#loadMsg").text(""); $('#loadMsg').text('')
return; return
} }
var pageNum = admin.userList.pageInfo.currentPage; var pageNum = admin.userList.pageInfo.currentPage
if (admin.userList.pageInfo.currentCount === 1 && admin.userList.pageInfo.pageCount !== 1 && if (admin.userList.pageInfo.currentCount === 1 &&
admin.userList.pageInfo.currentPage === admin.userList.pageInfo.pageCount) { admin.userList.pageInfo.pageCount !== 1 &&
admin.userList.pageInfo.pageCount--; admin.userList.pageInfo.currentPage ===
pageNum = admin.userList.pageInfo.pageCount; admin.userList.pageInfo.pageCount) {
} admin.userList.pageInfo.pageCount--
var hashList = window.location.hash.split("/"); pageNum = admin.userList.pageInfo.pageCount
if (pageNum !== parseInt(hashList[hashList.length - 1])) { }
admin.setHashByPage(pageNum); var hashList = window.location.hash.split('/')
} if (pageNum !== parseInt(hashList[hashList.length - 1])) {
admin.userList.getList(pageNum); admin.setHashByPage(pageNum)
}
admin.userList.getList(pageNum)
$("#loadMsg").text(""); $('#loadMsg').text('')
} },
}); })
}
},
/**
* 修改角色
* @param id
*/
changeRole: function (id) {
$('#tipMsg').text('')
$.ajax({
url: latkeConfig.servePath + '/console/changeRole/' + id,
type: 'GET',
cache: false,
success: function (result, textStatus) {
$('#tipMsg').text(result.msg)
if (!result.sc) {
$('#loadMsg').text('')
return
} }
},
/**
* 修改角色
* @param id
*/
changeRole: function(id) {
$("#tipMsg").text("");
$.ajax({
url: latkeConfig.servePath + "/console/changeRole/" + id,
type: "GET",
cache: false,
success: function(result, textStatus) {
$("#tipMsg").text(result.msg);
if (!result.sc) {
$("#loadMsg").text("");
return;
}
var pageNum = admin.userList.pageInfo.currentPage;
if (admin.userList.pageInfo.currentCount === 1 && admin.userList.pageInfo.pageCount !== 1 &&
admin.userList.pageInfo.currentPage === admin.userList.pageInfo.pageCount) {
admin.userList.pageInfo.pageCount--;
pageNum = admin.userList.pageInfo.pageCount;
}
var hashList = window.location.hash.split("/");
if (pageNum !== parseInt(hashList[hashList.length - 1])) {
admin.setHashByPage(pageNum);
}
admin.userList.getList(pageNum);
$("#loadMsg").text(""); var pageNum = admin.userList.pageInfo.currentPage
} if (admin.userList.pageInfo.currentCount === 1 &&
}); admin.userList.pageInfo.pageCount !== 1 &&
}, admin.userList.pageInfo.currentPage ===
/* admin.userList.pageInfo.pageCount) {
* 验证字段 admin.userList.pageInfo.pageCount--
* @status 更新或者添加时进行验证 pageNum = admin.userList.pageInfo.pageCount
*/
validate: function(status) {
if (!status) {
status = "";
} }
var userName = $("#userName" + status).val().replace(/(^\s*)|(\s*$)/g, ""); var hashList = window.location.hash.split('/')
if (2 > userName.length || userName.length > 20) { if (pageNum !== parseInt(hashList[hashList.length - 1])) {
$("#tipMsg").text(Label.nameTooLongLabel); admin.setHashByPage(pageNum)
$("#userName" + status).focus();
} else if ($("#userEmail" + status).val().replace(/\s/g, "") === "") {
$("#tipMsg").text(Label.mailCannotEmptyLabel);
$("#userEmail" + status).focus();
} else if (!/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test($("#userEmail" + status).val())) {
$("#tipMsg").text(Label.mailInvalidLabel);
$("#userEmail" + status).focus();
} else {
return true;
} }
return false; admin.userList.getList(pageNum)
$('#loadMsg').text('')
},
})
},
/*
* 验证字段
* @status 更新或者添加时进行验证
*/
validate: function (status) {
if (!status) {
status = ''
}
var userName = $('#userName' + status).val().replace(/(^\s*)|(\s*$)/g, '')
if (2 > userName.length || userName.length > 20) {
$('#tipMsg').text(Label.nameTooLongLabel)
$('#userName' + status).focus()
} else if ($('#userEmail' + status).val().replace(/\s/g, '') === '') {
$('#tipMsg').text(Label.mailCannotEmptyLabel)
$('#userEmail' + status).focus()
} else if (!/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(
$('#userEmail' + status).val())) {
$('#tipMsg').text(Label.mailInvalidLabel)
$('#userEmail' + status).focus()
} else {
return true
} }
}; return false
},
}
/* /*
* 注册到 admin 进行管理 * 注册到 admin 进行管理
*/ */
admin.register["user-list"] = { admin.register['user-list'] = {
"obj": admin.userList, 'obj': admin.userList,
"init": admin.userList.init, 'init': admin.userList.init,
"refresh": admin.userList.getList 'refresh': admin.userList.getList,
} }
\ No newline at end of file
Subproject commit bb908f197414ccdff6c24ed282ccc018efd5cebc Subproject commit 2248d25866e509e090ab43c4a653f9646419d376
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment