403 lines
12 KiB
JavaScript
403 lines
12 KiB
JavaScript
var cloudj = jQuery.noConflict();
|
||
|
||
if (typeof disallowfloat == 'undefined' || disallowfloat === null) {
|
||
var disallowfloat = '';
|
||
}
|
||
|
||
var currentNormalEditDisplay = 0;
|
||
|
||
cloudj(document).ready(function() {
|
||
ajaxGetSearchResultThreads();
|
||
|
||
cloudj('#previewForm').submit(function() {
|
||
return previewFormSubmit();
|
||
});
|
||
|
||
});
|
||
|
||
function previewFormSubmit() {
|
||
saveAllThread();
|
||
|
||
if (!selectedTopicId) {
|
||
alert('请推送头条信息');
|
||
return false;
|
||
}
|
||
if (selectedNormalIds.length < 1) {
|
||
alert('请至少推送一条信息到列表区域');
|
||
return false;
|
||
}
|
||
|
||
var i = 1;
|
||
for (var k = 1; k <= 5; k++) {
|
||
var input_displayorder = cloudj('#normal_thread_' + k).find('.preview_displayorder');
|
||
if (input_displayorder.size()) {
|
||
input_displayorder.val(i);
|
||
i++;
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
function initSelect() {
|
||
var initTopicObj = cloudj('#search_result .qqqun_op .qqqun_op_topon');
|
||
initTopicObj.addClass('qqqun_op_top');
|
||
initTopicObj.removeClass('qqqun_op_topon');
|
||
var initNormalObj = cloudj('#search_result .qqqun_op .qqqun_op_liston');
|
||
initNormalObj.addClass('qqqun_op_list');
|
||
initNormalObj.removeClass('qqqun_op_liston');
|
||
selectedTopicId = parseInt(selectedTopicId);
|
||
if (selectedTopicId) {
|
||
cloudj('#thread_addtop_' + selectedTopicId).addClass('qqqun_op_topon');
|
||
cloudj('#thread_addtop_' + selectedTopicId).removeClass('qqqun_op_top');
|
||
}
|
||
cloudj.each(selectedNormalIds, function(k, v) {
|
||
v = parseInt(v);
|
||
if (v) {
|
||
cloudj('#thread_addlist_' + v).addClass('qqqun_op_liston');
|
||
cloudj('#thread_addlist_' + v).removeClass('qqqun_op_list');
|
||
}
|
||
});
|
||
}
|
||
|
||
function ajaxChangeSearch() {
|
||
cloudj('#srchtid').val('');
|
||
ajaxGetSearchResultThreads();
|
||
}
|
||
|
||
function ajaxGetSearchResultThreads() {
|
||
cloudj('#search_result').html('<tr><td colspan="3">加载中...</td></tr>');
|
||
qqgroupajaxpost('search_form', 'search_result', 'search_result', null, null, function() {initSelect(); return false});
|
||
return false;
|
||
}
|
||
|
||
function ajaxGetPageResultThreads(page, mpurl) {
|
||
cloudj('#search_result').html('<tr><td colspan="3">加载中...</td></tr>');
|
||
if (typeof page == 'undefined' || page === null) {
|
||
page = 1;
|
||
}
|
||
if (typeof mpurl == 'undefined' || !mpurl) {
|
||
return false;
|
||
}
|
||
ajaxget(mpurl + '&page=' + page, 'search_result', null, null, null, function() {initSelect();} );
|
||
}
|
||
|
||
function addMiniportalTop(tid) {
|
||
tid = parseInt(tid);
|
||
if (cloudj.inArray(tid, selectedNormalIds) > -1) {
|
||
removeNormalThreadByTid(tid);
|
||
}
|
||
addMiniportalTopId(tid);
|
||
initSelect();
|
||
ajaxget(adminscript + '?action=cloud&operation=qqgroup&anchor=block&op=getTopicThread&tid=' + tid, 'topicDiv', null, null, null, function() { clickTopicEditor(); });
|
||
}
|
||
|
||
function addMiniportalTopId(tid) {
|
||
selectedTopicId = tid;
|
||
}
|
||
|
||
function showPreviewEditor(topic, hideall) {
|
||
if (hideall) {
|
||
cloudj('.qqqun_list .qqqun_editor').hide();
|
||
cloudj('.qqqun_list .qqqun_xl li').removeClass('current');
|
||
cloudj('.qqqun_list').removeClass('qqqun_list_editor');
|
||
cloudj('.qqqun_top .qqqun_editor').hide();
|
||
cloudj('.qqqun_top').removeClass('qqqun_top_editor');
|
||
} else {
|
||
if (topic) {
|
||
cloudj('.qqqun_list .qqqun_editor').hide();
|
||
cloudj('.qqqun_list .qqqun_xl li').removeClass('current');
|
||
cloudj('.qqqun_list').removeClass('qqqun_list_editor');
|
||
cloudj('.qqqun_top .qqqun_editor').show();
|
||
cloudj('.qqqun_top').addClass('qqqun_top_editor');
|
||
} else {
|
||
cloudj('.qqqun_list .qqqun_editor').show();
|
||
cloudj('.qqqun_list').addClass('qqqun_list_editor');
|
||
cloudj('.qqqun_list .qqqun_xl li').removeClass('current');
|
||
cloudj('.qqqun_top .qqqun_editor').hide();
|
||
cloudj('.qqqun_top').removeClass('qqqun_top_editor');
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
function clickTopicEditor(topicFocus) {
|
||
if (typeof topicFocus == 'undefined') {
|
||
var topicFocus = 'title';
|
||
}
|
||
showPreviewEditor(true, false);
|
||
if (topicFocus == 'title') {
|
||
cloudj('#topic-editor-input-title').addClass('pt_focus');
|
||
cloudj('#topic-editor-input-title').focus();
|
||
} else if (topicFocus == 'content') {
|
||
cloudj('#topic-editor-textarea-content').addClass('pt_focus');
|
||
cloudj('#topic-editor-textarea-content').focus();
|
||
}
|
||
currentNormalEditDisplay = 0;
|
||
}
|
||
|
||
function blurTopic(obj) {
|
||
var thisobj = cloudj(obj);
|
||
thisobj.removeClass('pt_focus');
|
||
}
|
||
|
||
function clickNormalEditor(obj) {
|
||
var thisobj = cloudj(obj);
|
||
showPreviewEditor(false, false);
|
||
thisobj.addClass('pt_focus');
|
||
thisobj.focus();
|
||
currentNormalEditDisplay = parseInt(thisobj.parent().attr('displayorder'));
|
||
}
|
||
|
||
function blurNormalTextarea(obj) {
|
||
var thisobj = cloudj(obj);
|
||
liObj = thisobj.parent();
|
||
var displayorder = parseInt(liObj.attr('displayorder'));
|
||
if (displayorder == currentNormalEditDisplay) {
|
||
liObj.addClass('current');
|
||
}
|
||
cloudj('.qqqun_list .qqqun_xl textarea').removeClass('pt_focus');
|
||
}
|
||
|
||
function addMiniportalList(tid) {
|
||
tid = parseInt(tid);
|
||
if (cloudj.inArray(tid, selectedNormalIds) > -1) {
|
||
return false;
|
||
}
|
||
if (selectedNormalIds.length >= 5) {
|
||
alert('推送帖子已达到5条,请在右侧取消一些再重试。');
|
||
return false;
|
||
}
|
||
if (tid == selectedTopicId) {
|
||
selectedTopicId = 0;
|
||
ajaxget(adminscript + '?action=cloud&operation=qqgroup&anchor=block&op=getTopicThread&tid=0', 'topicDiv');
|
||
}
|
||
addMiniportalListId(tid);
|
||
initSelect();
|
||
var insertPos = 'normal_thread_' + selectedNormalIds.length;
|
||
ajaxget(adminscript + '?action=cloud&operation=qqgroup&anchor=block&op=getNormalThread&tid=' + tid, insertPos, null, null, null, function() { clickNormalEditor(cloudj('#' + insertPos).find('textarea')); });
|
||
}
|
||
|
||
function addMiniportalListId(tid) {
|
||
selectedNormalIds.push(tid);
|
||
}
|
||
|
||
function editNormalThread() {
|
||
var threadLi = cloudj('#normal_thread_' + currentNormalEditDisplay);
|
||
clickNormalEditor(threadLi.find('textarea'));
|
||
}
|
||
|
||
function saveAllThread() {
|
||
|
||
showPreviewEditor(false, true);
|
||
|
||
currentNormalEditDisplay = 0;
|
||
}
|
||
|
||
function moveNormalThread(up) {
|
||
var displayorder = currentNormalEditDisplay;
|
||
var threadLi = cloudj('#normal_thread_' + displayorder);
|
||
if (!threadLi.attr('id') || !displayorder) {
|
||
return false;
|
||
}
|
||
var newDisplayorder = 0;
|
||
if (up) {
|
||
newDisplayorder = displayorder - 1;
|
||
} else {
|
||
newDisplayorder = displayorder + 1;
|
||
}
|
||
if (newDisplayorder < 1 || newDisplayorder > 5) {
|
||
return false;
|
||
}
|
||
var newLiId = 'normal_thread_' + newDisplayorder;
|
||
var newThreadLi = cloudj('#' + newLiId);
|
||
if (!newThreadLi.find('textarea').size()) {
|
||
return false;
|
||
}
|
||
var tmpHtml = newThreadLi.html();
|
||
newThreadLi.html(threadLi.html());
|
||
threadLi.html(tmpHtml);
|
||
newThreadLi.addClass('current');
|
||
threadLi.removeClass('current');
|
||
currentNormalEditDisplay = newDisplayorder;
|
||
}
|
||
|
||
function removeTopicThread(tid) {
|
||
tid = parseInt(tid);
|
||
selectedTopicId = 0;
|
||
initSelect();
|
||
ajaxget(adminscript + '?action=cloud&operation=qqgroup&anchor=block&op=getTopicThread', 'topicDiv', null, null, null, function() { showPreviewEditor(false, true)});
|
||
}
|
||
|
||
function removeNormalThread() {
|
||
var displayorder = currentNormalEditDisplay;
|
||
var removeTid = parseInt(cloudj('#normal_thread_' + displayorder).find('.normal_thread_tid').val());
|
||
return removeNormalThreadByDisplayorderAndTid(displayorder, removeTid, true);
|
||
}
|
||
|
||
function removeNormalThreadByTid(tid) {
|
||
tid = parseInt(tid);
|
||
var threadInput = cloudj('.qqqun_list .qqqun_xl .normal_thread_tid[value="' + tid + '"]');
|
||
if (threadInput.size()) {
|
||
var displayorder = threadInput.parent().attr('displayorder');
|
||
var removeTid = tid;
|
||
return removeNormalThreadByDisplayorderAndTid(displayorder, removeTid, false);
|
||
}
|
||
}
|
||
|
||
function removeNormalThreadByDisplayorderAndTid(displayorder, removeTid, inNormalEditor) {
|
||
displayorder = parseInt(displayorder);
|
||
removeTid = parseInt(removeTid);
|
||
var threadLi = cloudj('#normal_thread_' + displayorder);
|
||
if (!threadLi.attr('id') || !displayorder) {
|
||
return false;
|
||
}
|
||
threadLi.removeClass('current');
|
||
var index = cloudj.inArray(removeTid, selectedNormalIds);
|
||
if (index != -1) {
|
||
selectedNormalIds.splice(index, 1);
|
||
}
|
||
initSelect();
|
||
if (typeof inNormalEditor == 'udefined') {
|
||
var inNormalEditor = false;
|
||
}
|
||
threadLi.slideUp(100, function() { removeNormalThreadRecall(displayorder, inNormalEditor)});
|
||
|
||
}
|
||
|
||
function removeNormalThreadRecall(displayorder, inNormalEditor) {
|
||
for (var i = displayorder; i <= 5; i++) {
|
||
var currentDisplayorder = i;
|
||
var nextDisplayorder = i + 1;
|
||
var currentLiId = 'normal_thread_' + currentDisplayorder;
|
||
var currentThreadLi = cloudj('#' + currentLiId);
|
||
var nextLiId = 'normal_thread_' + nextDisplayorder;
|
||
var nextThreadLi = cloudj('#' + nextLiId);
|
||
if (nextThreadLi.find('textarea').size()) {
|
||
currentThreadLi.html(nextThreadLi.html());
|
||
currentThreadLi.show();
|
||
} else {
|
||
currentThreadLi.html('');
|
||
currentThreadLi.hide();
|
||
break;
|
||
}
|
||
}
|
||
var threadLi = cloudj('#normal_thread_' + displayorder);
|
||
var prevDisplayorder = displayorder - 1;
|
||
if (threadLi.find('textarea').size()) {
|
||
if (inNormalEditor) {
|
||
threadLi.addClass('current');
|
||
}
|
||
currentNormalEditDisplay = displayorder;
|
||
} else if (prevDisplayorder) {
|
||
var prevThreadLi = cloudj('#normal_thread_' + prevDisplayorder);
|
||
if (inNormalEditor) {
|
||
prevThreadLi.addClass('current');
|
||
}
|
||
currentNormalEditDisplay = prevDisplayorder;
|
||
} else {
|
||
var firstThreadLi = cloudj('#normal_thread_1');
|
||
if (inNormalEditor) {
|
||
saveAllThread();
|
||
}
|
||
firstThreadLi.html('<div class="tips">点击左侧 <img src="static/image/admincp/cloud/qun_op_list.png" align="absmiddle" /> 将信息推送到列表</div>');
|
||
firstThreadLi.show();
|
||
}
|
||
}
|
||
|
||
function ajaxUploadQQGroupImage() {
|
||
cloudj('#uploadImageResult').parent().show();
|
||
cloudj('#uploadImageResult').text('图片上传中,请稍后...');
|
||
qqgroupajaxpost('uploadImage', 'uploadImageResult', 'uploadImageResult', null, null, 'uploadRecall()');
|
||
}
|
||
|
||
function uploadRecall() {
|
||
if(cloudj('#uploadImageResult').find('#upload_msg_success').size()) {
|
||
cloudj('#uploadImageResult').parent().show();
|
||
var debug_rand = Math.random();
|
||
var imagePath = cloudj('#uploadImageResult #upload_msg_imgpath').text();
|
||
var imageUrl = cloudj('#uploadImageResult #upload_msg_imgurl').text();
|
||
cloudj('#topic_image_value').val(imagePath);
|
||
cloudj('#topic_editor_thumb').attr('src', imageUrl + '?' + debug_rand);
|
||
cloudj('#topic_preview_thumb').attr('src', imageUrl + '?' + debug_rand);
|
||
setTimeout(function() {hideWindow('uploadImgWin');}, 2000);
|
||
}
|
||
}
|
||
|
||
function qqgroupajaxpost(formid, showid, waitid, showidclass, submitbtn, recall) {
|
||
var waitid = typeof waitid == 'undefined' || waitid === null ? showid : (waitid !== '' ? waitid : '');
|
||
var showidclass = !showidclass ? '' : showidclass;
|
||
var ajaxframeid = 'ajaxframe';
|
||
var ajaxframe = $(ajaxframeid);
|
||
var formtarget = $(formid).target;
|
||
|
||
var handleResult = function() {
|
||
var s = '';
|
||
var evaled = false;
|
||
|
||
showloading('none');
|
||
|
||
ajaxResponse = cloudj('#' + ajaxframeid).contents().text();
|
||
var regex = /<\!\[CDATA\[(.*)\]\]>/;
|
||
var regexed = regex.exec(ajaxResponse);
|
||
if (regexed && regexed[1]) {
|
||
s = regexed[1];
|
||
} else {
|
||
s = ajaxResponse;
|
||
}
|
||
if (!s) {
|
||
s = '内部错误,无法显示此内容';
|
||
}
|
||
|
||
if(s != '' && s.indexOf('ajaxerror') != -1) {
|
||
evalscript(s);
|
||
evaled = true;
|
||
}
|
||
if(showidclass) {
|
||
if(showidclass != 'onerror') {
|
||
cloudj(showid).addClass(showidclass);
|
||
} else {
|
||
showError(s);
|
||
ajaxerror = true;
|
||
}
|
||
}
|
||
if(submitbtn) {
|
||
cloudj(submitbtn).attr('disabled', false);
|
||
}
|
||
if(!evaled && (typeof ajaxerror == 'undefined' || !ajaxerror)) {
|
||
ajaxinnerhtml($(showid), s);
|
||
}
|
||
ajaxerror = null;
|
||
cloudj('#' + formid).attr('target', formtarget);
|
||
if(typeof recall == 'function') {
|
||
recall();
|
||
} else {
|
||
eval(recall);
|
||
}
|
||
if(!evaled) evalscript(s);
|
||
ajaxframe.loading = 0;
|
||
cloudj(ajaxframe.parentNode).remove();
|
||
};
|
||
if(!ajaxframe) {
|
||
var div = cloudj('<div>');
|
||
div.css('display', 'none');
|
||
div.html('<iframe name="' + ajaxframeid + '" id="' + ajaxframeid + '" loading="1">');
|
||
cloudj('#append_parent').append(div);
|
||
ajaxframe = $(ajaxframeid);
|
||
} else if(ajaxframe.loading) {
|
||
return false;
|
||
}
|
||
|
||
_attachEvent(ajaxframe, 'load', handleResult);
|
||
|
||
showloading();
|
||
cloudj('#' + formid).attr('target', ajaxframeid);
|
||
var action = cloudj('#' + formid).attr('action');
|
||
action = hostconvert(action);
|
||
cloudj('#' + formid).attr('action', action.replace(/\&inajax\=1/g, '')+'&inajax=1');
|
||
$(formid).submit();
|
||
if(submitbtn) {
|
||
cloudj(submitbtn).attr('disabled', true);
|
||
}
|
||
doane();
|
||
return false;
|
||
} |