/**
* 更新嘉宾发言
*
* @param nodParent - 父节点
* @param strMarkDelIds - 要删除的嘉宾发言的 id
* @param jsonModified - 要修改的嘉宾发言对象数组
* @param jsonRecents - 要增加的嘉宾发言对象数组
* @param strIdPre - 节点的 id 属性前缀
* @param bolEdit - 是否可以编辑,如果可以编辑,自动加上编辑功能
* @param nodTempParent - 临时嘉宾发言的父节点
* @param strTempIdPre - 临时节点的 id 属性前缀
* @param lngMaxId - 要被删除的临时嘉宾发言的最大 id,为空 时不移除临时嘉宾发言
*/
function refreshVipLogs(nodParent, strMarkDelIds, jsonModified, jsonRecents, strIdPre, bolEdit, nodTempParent, strTempIdPre, lngMaxId) {
if (isNotBlankStr(strMarkDelIds)) { // 移除被删除的嘉宾发言
delChildNodes(nodParent, splitStr(strMarkDelIds, " ", strIdPre));
}
if (isNotEmptyArray(jsonModified)) { // 更新被修改的嘉宾发言
updateChildNodes(nodParent, createVipLogNodes(jsonModified, strIdPre, bolEdit));
}
if (lngMaxId != null) { // 移除临时增加的嘉宾发言
delTempVipLogs(nodTempParent, strTempIdPre, lngMaxId);
}
if (isNotEmptyArray(jsonRecents)) { // 添加新增的嘉宾发言
addChildNodes(nodParent, createVipLogNodes(jsonRecents, strIdPre, bolEdit));
}
}
/**
* 删除临时子节点
*
* @param nodParent - 父节点
* @param strIdPre - TR 元素的 ID 属性前缀
* @param maxId - 要删除到的最大的 ID
*/
function delTempVipLogs(nodParent, strIdPre, maxId) {
var element;
while(nodParent.getElementsByTagName("li").length > 0) {
element = nodParent.getElementsByTagName("li")[0];
if (parseInt(element.getAttribute("id").substr(strIdPre.length)) <= maxId) {
nodParent.removeChild(element);
} else {
return;
}
}
}
/**
* 创建嘉宾发言对象数组对应的节点数组
*
* @param jsonVipLogs - 嘉宾发言对象
* @param strIdPre - 节点的 id 属性前缀
* @param bolEdit - 是否可以编辑,如果可以编辑,自动加上编辑功能
*/
function createVipLogNodes(jsonVipLogs, strIdPre, bolEdit) {
var arrNodes = new Array(jsonVipLogs.length);
var objVipLog, nodLi, strTxt, strHref;
for(var i = 0; i < jsonVipLogs.length; i++) {
objVipLog = jsonVipLogs[i];
nodLi = document.createElement("li");
nodLi.setAttribute("id", strIdPre + objVipLog.id);
strTxt = "";
if (objVipLog.create != null) {
strTxt += "[" + objVipLog.create + "] ";
}
if (objVipLog.vip != null) {
strTxt += objVipLog.vip + " 说: ";
}
if (objVipLog.content != null) {
strTxt += objVipLog.content;
}
if ((bolEdit != null) && bolEdit) {
strHref = "javascript:editVipLog(" + objVipLog.id + ")";
nodLi.appendChild(createANode(strHref, strTxt));
nodLi.appendChild(document.createTextNode(" "));
strHref = "javascript:deleteVipLog(" + objVipLog.id + ")";
nodLi.appendChild(createANode(strHref, "[删]"));
} else {
nodLi.appendChild(document.createTextNode(strTxt));
}
arrNodes[i] = nodLi;
}
return arrNodes;
}
/*--------------------------------------------------------------------------*/
/**
* 更新来宾提问
*
* @param nodParent - 父节点
* @param jsonGuestLogs - 要更新的来宾提问对象数组
*/
function refreshGuestLogs(nodParent, jsonGuestLogs) {
if ((nodParent != null) && (isNotEmptyArray(jsonGuestLogs))) {
delAllChildNodes(nodParent);
addChildNodes(nodParent, createGuestLogNodes(jsonGuestLogs));
}
}
/**
* 创建来宾提问对象数组对应的节点数组
*
* @param jsonGuestLogs - 来宾提问对象数组
*/
function createGuestLogNodes(jsonGuestLogs) {
var arrNodes = new Array(jsonGuestLogs.length);
var objGuestLog, nodLi, strTxt;
for(var i = 0; i < jsonGuestLogs.length; i++) {
objGuestLog = jsonGuestLogs[i];
nodLi = document.createElement("li");
strTxt = "";
if (objGuestLog.create != null) {
strTxt += "[" + objGuestLog.create + "] ";
}
if (objGuestLog.nickname != null) {
strTxt += objGuestLog.nickname + " 问: ";
}
if (objGuestLog.question != null) {
strTxt += objGuestLog.question;
}
nodLi.appendChild(document.createTextNode(strTxt));
arrNodes[i] = nodLi;
}
return arrNodes;
}
