📄 postedit.js
字号:
// for post edit
// x_core.js, x_event.js, ajax.js, main.js, xwindow.js needed
function bodyLarger(){
var bodyText = xGetElementById('PostBody');
bodyText.rows += 2;
}
function bodySmaller(){
var bodyText = xGetElementById('PostBody');
if(bodyText.rows < 3){
return;
}
bodyText.rows -= 2;
}
var uploadWin, uploadCheck;
function updatePost(){
var bodyText = xGetElementById('PostBody').value;
var extraReason = '';
if(bodyText.length == 0){
alert('您需要填写正文。');
return;
}
if(type == 'edit'){
extraReason = xGetElementById('PostReason').value;
if(extraReason.length == 0){
alert('您需要填写修改原因。');
return;
}
}
var moodEnabled, codeEnabled;
try{
moodEnabled = xGetElementById('PostMoodEnabled').checked;
}catch(e){
moodEnabled = false;
}
try{
codeEnabled = xGetElementById('PostCodeEnabled').checked;
}catch(e){
codeEnabled = false;
}
var btn = xGetElementById('PostSubmit');
setInputDisabled(btn, true);
var params = 'type=' + type + '&mood=' + moodEnabled + '&code=' + codeEnabled;
switch(type){
case 'edit':
params += '&reason=' + encodeURIComponent(extraReason) + '&id=' + postId;
break;
case 'reply':
params += '&topicid=' + topicId;
break;
case 'topic':
//vote_body need not encoding, for encoded on start
params += '&topic_title=' + encodeURIComponent(topic_title) + '&topic_boardid=' + topic_boardId + '&topic_notifyposterwhenreplied=' + topic_notifyposterwhenreplied + '&vote=' + vote + '&vote_title=' + encodeURIComponent(vote_title) + '&vote_otherenabled=' + vote_otherenabled + '&vote_optionlimit=' + vote_optionlimit + '&vote_body=' + vote_body;
break;
}
params += '&return=result&body=' + encodeURIComponent(bodyText);
var loader = new ajax.loader('PostEdit.aspx', 'POST', updatePost_onload, updatePost_onerror, params);
loader.btn = btn;
}
function updatePost_onload(){
var xmlDoc = this.req.responseXML;
var errInfo = getXmlElementText(xmlDoc, 'Error');
if(errInfo){
alert(errInfo);
setInputDisabled(this.btn, false);
}else{
switch(type){
case 'edit':
if(referrerUrl.length == 0){
referrerUrl = 'Topic.aspx?id=' + topicId;
}
break;
case 'topic':
postId = parseInt(getXmlElementText(xmlDoc, 'ID'));
referrerUrl = 'Board.aspx?id=' + topic_boardId;
break;
case 'reply':
postId = parseInt(getXmlElementText(xmlDoc, 'ID'));
referrerUrl = 'Topic.aspx?id=' + topicId + '&page=last';
break;
}
var upCount;
try{
upCount = parseInt(xGetElementById('PostUploadCount').value);
}catch(e){
}
if(isNaN(upCount)){
upCount = 0;
}
if(upCount > 0){
var uploadBtn = xGetElementById('UploadSubmit');
uploadBtn.onclick = new Function('updatePost_uploadFiles(this, ' + postId + ', ' + upCount + ')');
setElementVisible(uploadBtn, true);
setInputDisabled('PostUploadCount', true);
alert('提交帖子信息成功。单击“上传附件”将弹出上传向导。');
}else{
window.location.href = referrerUrl;
}
}
}
function updatePost_onerror(){
alert('提交帖子过程中出错。');
setInputDisabled(this.btn, false);
}
function updatePost_uploadFiles(uploadBtn, postId, upCount){
setInputDisabled(uploadBtn, true);
uploadWin = new xWindow('AttachmentsUploader', 600, 400, -1, -1, 0, 0, 0, 1, 1, 0);
uploadWin.load('Upload.aspx?upload=attachment&postid=' + postId + '&count=' + upCount);
uploadCheck = setInterval('updatePost_checkUploadFinished()', 2000);
}
function updatePost_checkUploadFinished(){
if(uploadWin.w.closed){
clearInterval(uploadCheck);
window.location.href = referrerUrl;
}
}
function deleteAttachment(e, uploadId){
var btn = new xEvent(e).target;
if(!confirm('确定要删除该附件吗?')){
return;
}
setInputDisabled(btn, true);
var params = 'type=removeattachment&return=result&uploadid=' + uploadId;
var loader = new ajax.loader('PostEdit.aspx', 'POST', deleteAttachment_onload, deleteAttachment_onerror, params);
loader.btn = btn;
}
function deleteAttachment_onload(){
var xmlDoc = this.req.responseXML;
var errInfo = getXmlElementText(xmlDoc, 'Error');
if(errInfo){
alert(errInfo);
setInputDisabled(this.btn, false);
}else{
var tb = xGetElementById(this.btn).parentNode.parentNode.parentNode; //tbody
tb.deleteRow(0); //only one row
var count_span = xGetElementById('UploadCount');
count_span.innerHTML = (parseInt(count_span.innerHTML) - 1).toString();
}
}
function deleteAttachment_onerror(){
alert('删除附件过程中出错。');
setInputDisabled(this.btn, false);
}
function previewPostBody(preview){
setElementVisible('PostBodyEditorContainer', !preview);
setElementVisible('PostBodyPreviewerContainer', preview);
if(preview){
xGetElementById('PostBodyPreviewerStatus').innerHTML = '正在加载预览,请稍候……';
xGetElementById('PostBodyPreviewerBody').innerHTML = '';
var moodEnabled, codeEnabled;
try{
moodEnabled = xGetElementById('PostMoodEnabled').checked;
}catch(e){
moodEnabled = false;
}
try{
codeEnabled = xGetElementById('PostCodeEnabled').checked;
}catch(e){
codeEnabled = false;
}
var params = 'type=preview&return=result&body=' + encodeURIComponent(xGetElementById('PostBody').value) + '&mood=' + moodEnabled + '&code=' + codeEnabled;
var loader = new ajax.loader('PostEdit.aspx', 'POST', previewPostBody_onload, previewPostBody_onerror, params);
}else{
xGetElementById('PostBodyPreviewerBody').innerHTML = '';
}
}
function previewPostBody_onload(){
var xmlDoc = this.req.responseXML;
var errInfo = getXmlElementText(xmlDoc, 'Error');
if(errInfo){
xGetElementById('PostBodyPreviewerStatus').innerHTML = errInfo;
}else{
xGetElementById('PostBodyPreviewerStatus').innerHTML = '';
xGetElementById('PostBodyPreviewerBody').innerHTML = getXmlElementText(xmlDoc, 'Return');
}
}
function previewPostBody_onerror(){
xGetElementById('PostBodyPreviewerStatus').innerHTML = '加载预览结果过程中出错。';
}
var partialMoodListVisible = false;
function viewMoodList(invoker){
if(currentMenu == null){
partialMoodListVisible = false;
}
if(!partialMoodListVisible){
loadPartialMoodList();
showMenu('PartialMoodListContainer', invoker);
}else{
hideMenu(null);
}
partialMoodListVisible = !partialMoodListVisible;
}
function browseMoodList(){
var winChild = new xWindow('SystemMoodsBrowser', 600, 400, -1, -1, 0, 0, 0, 1, 0, 0);
winChild.load('SysImgViewer.aspx?type=1');
if(partialMoodListVisible){
hideMenu(null);
}
}
var partialMoodListLoadStatus = 0;
function loadPartialMoodList(){
if(partialMoodListLoadStatus != 0){
return;
}
partialMoodListLoadStatus = 1;
var container = xGetElementById('PartialMoodList');
container.innerHTML = '正在加载部分表情列表……';
var params = 'type=moodlist&return=result';
var loader = new ajax.loader('PostEdit.aspx', 'POST', loadPartialMoodList_onload, loadPartialMoodList_onerror, params);
loader.container = container;
}
function loadPartialMoodList_onload(){
var xmlDoc = this.req.responseXML;
var errInfo = getXmlElementText(xmlDoc, 'Error');
if(errInfo){
this.container.innerHTML = encodeHtml(errInfo);
partialMoodListLoadStatus = 0;
}else{
this.container.innerHTML = getXmlElementText(xmlDoc, 'Return');
partialMoodListLoadStatus = 2;
}
}
function loadPartialMoodList_onerror(){
this.container.innerHTML = '加载表情列表过程中出错。';
partialMoodListLoadStatus = 0;
}
function PostBody_onkeydown(e){
e = (e) ? e : window.event;
if(e.keyCode == 9){
// tab support
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue = false;
}
richTextCtrl.replaceText('\t');
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -