public static string GetScript(SiteInfo siteInfo, ELoadingType loadingType, string contentModelPluginId, NameValueCollection additional) { var script = @" <script language=""JavaScript""> function getTreeLevel(e) { var length = 0; if (e){ if (e.tagName == 'TR') { length = parseInt(e.getAttribute('treeItemLevel')); } } return length; } function getTrElement(element){ if (!element) return; for (element = element.parentNode;;){ if (element != null && element.tagName == 'TR'){ break; }else{ element = element.parentNode; } } return element; } function getImgClickableElementByTr(element){ if (!element || element.tagName != 'TR') return; var img = null; if (element.childNodes){ var imgCol = element.getElementsByTagName('IMG'); if (imgCol){ for (x=0;x<imgCol.length;x++){ if (imgCol.item(x).getAttribute('isOpen')){ img = imgCol.item(x); break; } } } } return img; } var activeTrElement = null; function fontWeightLink(element){ if (activeTrElement) { activeTrElement.setAttribute('class', ''); } activeTrElement = getTrElement(element); if (activeTrElement) { activeTrElement.setAttribute('class', 'table-active'); } } function unSelectRow(tr) { tr = $(tr); var cb = tr.find('input:checkbox:first'); if (cb.length === 0) return; var checked = cb.is(':checked'); cb[0].checked = false; tr.removeClass('table-active'); } var completedChannelId = null; function displayChildren(img){ if (!img) return; var tr = getTrElement(img); var isToOpen = img.getAttribute('isOpen') == 'false'; var isByAjax = img.getAttribute('isAjax') == 'true'; var channelId = img.getAttribute('id'); if (img && img.getAttribute('isOpen') != null){ if (img.getAttribute('isOpen') == 'false'){ img.setAttribute('isOpen', 'true'); img.setAttribute('src', '{iconMinusUrl}'); }else{ img.setAttribute('isOpen', 'false'); img.setAttribute('src', '{iconPlusUrl}'); } } if (isToOpen && isByAjax) { var div = document.createElement('div'); div.innerHTML = ""<img align='absmiddle' width='30' height='12' border='0' src='{iconLoadingUrl}' />""; img.parentNode.appendChild(div); $(div).addClass('loading'); loadingChannels(tr, img, div, channelId); } else { var level = getTreeLevel(tr); var collection = new Array(); var index = 0; for ( var e = tr.nextSibling; e != null ; e = e.nextSibling) { if (e && e.tagName && e.tagName == 'TR'){ var currentLevel = getTreeLevel(e); if (currentLevel <= level) break; if(e.style.display == '') { e.style.display = 'none'; unSelectRow(e); }else{ if (currentLevel != level + 1) continue; e.style.display = ''; var imgClickable = getImgClickableElementByTr(e); if (imgClickable){ if (imgClickable.getAttribute('isOpen') && imgClickable.getAttribute('isOpen') =='true'){ imgClickable.setAttribute('isOpen', 'false'); imgClickable.setAttribute('src', '{iconPlusUrl}'); collection[index] = imgClickable; index++; } } } } } if (index > 0){ for (i=0;i<=index;i++){ displayChildren(collection[i]); } } } } "; script += $@" function loadingChannels(tr, img, div, channelId){{ var url = '{AjaxOtherService.GetGetLoadingChannelsUrl()}'; var pars = '{AjaxOtherService.GetGetLoadingChannelsParameters(siteInfo.Id, contentModelPluginId, loadingType, additional)}&parentID=' + channelId; jQuery.post(url, pars, function(data, textStatus) {{ $($.parseHTML(data)).insertAfter($(tr)); img.setAttribute('isAjax', 'false'); img.parentNode.removeChild(div); }}); completedChannelId = channelId; }} function loadingChannelsOnLoad(paths){{ if (paths && paths.length > 0){{ var channelIds = paths.split(','); var channelId = channelIds[0]; var img = $('#' + channelId); if (img.attr('isOpen') == 'false'){{ displayChildren(img[0]); if (completedChannelId && completedChannelId == channelId){{ if (paths.indexOf(',') != -1){{ paths = paths.substring(paths.indexOf(',') + 1); setTimeout(""loadingChannelsOnLoad('"" + paths + ""')"", 1000); }} }} }} }} }} </script> "; var treeDirectoryUrl = SiteServerAssets.GetIconUrl("tree"); script = script.Replace("{iconEmptyUrl}", PageUtils.Combine(treeDirectoryUrl, "empty.gif")); script = script.Replace("{iconMinusUrl}", PageUtils.Combine(treeDirectoryUrl, "minus.png")); script = script.Replace("{iconPlusUrl}", PageUtils.Combine(treeDirectoryUrl, "plus.png")); script = script.Replace("{iconLoadingUrl}", SiteServerAssets.GetUrl("layer/skin/default/xubox_loading0.gif")); return(script); }
public static string GetScript(PublishmentSystemInfo publishmentSystemInfo, ELoadingType loadingType, NameValueCollection additional) { var script = @" <script language=""JavaScript""> function getTreeLevel(e) { var length = 0; if (!isNull(e)){ if (e.tagName == 'TR') { length = parseInt(e.getAttribute('treeItemLevel')); } } return length; } function getTrElement(element){ if (isNull(element)) return; for (element = element.parentNode;;){ if (element != null && element.tagName == 'TR'){ break; }else{ element = element.parentNode; } } return element; } function getImgClickableElementByTr(element){ if (isNull(element) || element.tagName != 'TR') return; var img = null; if (!isNull(element.childNodes)){ var imgCol = element.getElementsByTagName('IMG'); if (!isNull(imgCol)){ for (x=0;x<imgCol.length;x++){ if (!isNull(imgCol.item(x).getAttribute('isOpen'))){ img = imgCol.item(x); break; } } } } return img; } var weightedLink = null; function fontWeightLink(element){ if (weightedLink != null) { weightedLink.style.fontWeight = 'normal'; } element.style.fontWeight = 'bold'; weightedLink = element; } var completedNodeID = null; function displayChildren(img){ if (isNull(img)) return; var tr = getTrElement(img); var isToOpen = img.getAttribute('isOpen') == 'false'; var isByAjax = img.getAttribute('isAjax') == 'true'; var nodeID = img.getAttribute('id'); if (!isNull(img) && img.getAttribute('isOpen') != null){ if (img.getAttribute('isOpen') == 'false'){ img.setAttribute('isOpen', 'true'); img.setAttribute('src', '{iconMinusUrl}'); }else{ img.setAttribute('isOpen', 'false'); img.setAttribute('src', '{iconPlusUrl}'); } } if (isToOpen && isByAjax) { var div = document.createElement('div'); div.innerHTML = ""<img align='absmiddle' border='0' src='{iconLoadingUrl}' /> 加载中,请稍候...""; img.parentNode.appendChild(div); $(div).addClass('loading'); loadingChannels(tr, img, div, nodeID); } else { var level = getTreeLevel(tr); var collection = new Array(); var index = 0; for ( var e = tr.nextSibling; !isNull(e) ; e = e.nextSibling) { if (!isNull(e) && !isNull(e.tagName) && e.tagName == 'TR'){ var currentLevel = getTreeLevel(e); if (currentLevel <= level) break; if(e.style.display == '') { e.style.display = 'none'; }else{ if (currentLevel != level + 1) continue; e.style.display = ''; var imgClickable = getImgClickableElementByTr(e); if (!isNull(imgClickable)){ if (!isNull(imgClickable.getAttribute('isOpen')) && imgClickable.getAttribute('isOpen') =='true'){ imgClickable.setAttribute('isOpen', 'false'); imgClickable.setAttribute('src', '{iconPlusUrl}'); collection[index] = imgClickable; index++; } } } } } if (index > 0){ for (i=0;i<=index;i++){ displayChildren(collection[i]); } } } } "; script += $@" function loadingChannels(tr, img, div, nodeID){{ var url = '{AjaxOtherService.GetGetLoadingChannelsUrl()}'; var pars = '{AjaxOtherService.GetGetLoadingChannelsParameters(publishmentSystemInfo.PublishmentSystemId, loadingType, additional)}&parentID=' + nodeID; jQuery.post(url, pars, function(data, textStatus) {{ $($.parseHTML(data)).insertAfter($(tr)); img.setAttribute('isAjax', 'false'); img.parentNode.removeChild(div); }}); completedNodeID = nodeID; }} function loadingChannelsOnLoad(paths){{ if (paths && paths.length > 0){{ var nodeIDs = paths.split(','); var nodeID = nodeIDs[0]; var img = $('#' + nodeID); if (img.attr('isOpen') == 'false'){{ displayChildren(img[0]); if (completedNodeID && completedNodeID == nodeID){{ if (paths.indexOf(',') != -1){{ paths = paths.substring(paths.indexOf(',') + 1); setTimeout(""loadingChannelsOnLoad('"" + paths + ""')"", 1000); }} }} }} }} }} </script> "; var item = new NodeTreeItem(); script = script.Replace("{iconEmptyUrl}", item._iconEmptyUrl); script = script.Replace("{iconFolderUrl}", item._iconFolderUrl); script = script.Replace("{iconMinusUrl}", item._iconMinusUrl); script = script.Replace("{iconOpenedFolderUrl}", item._iconOpenedFolderUrl); script = script.Replace("{iconPlusUrl}", item._iconPlusUrl); script = script.Replace("{iconLoadingUrl}", SiteServerAssets.GetIconUrl("loading.gif")); return(script); }