
var CView = function(refData, Parent) { var refThis = this; refThis.refData = refData; this.Init = function() { var divView = _newElement("div", "CatView"); divView.id = refData.id; divView.path = refData.path; divView.CatDB = refData.CatDB; if (refData.toolbar) refThis.ToolBar(divView); divView.callback = function(flag, value) { switch (flag) { case 'path': { divView.tInput.value = value; if (refThis.list) { divView.lInput.value = ''; divView.listItem = null; } } break; case 'url': { divView.url = value; var sa = value.split('/'); if (sa.length > 1 && refThis.list) { divView.treeId = sa[sa.length - 2]; var url = refData.url.replace(/treeid/gi, divView.treeId); refThis.list.Load(url); } } break; case 'listItem': { divView.lInput.value = value.name; divView.listItem = value; if (refData.onListItem) refData.onListItem(value); } break; case 'tree': { refThis.tree = value; } break; case 'list': { refThis.list = value; } break; } }; var table = _newElement("table", "tview"); var tbody = _newElement("tbody"); table.appendChild(tbody); var row = tbody.insertRow(0); var cell0 = row.insertCell(0); cell0.className = "td0"; var cell1 = row.insertCell(1); cell1.className = "td1"; var tFrame = _newElement("iframe", "tFrame"); tFrame.id = divView.id + "tFrame" + Math.random(); tFrame.name = tFrame.id; var lFrame = _newElement("iframe", "lFrame"); lFrame.id = divView.id + "lFrame" + Math.random(); lFrame.name = lFrame.id; cell0.appendChild(tFrame); cell1.appendChild(lFrame); var tInput = _newElement("input", "iText"); var lInput = _newElement("input", "iText"); if (!refData.toolbar) { tInput.type = "hidden"; lInput.type = "hidden"; } else { tInput.type = "text"; lInput.type = "text"; } divView.tFrame = tFrame; divView.lFrame = lFrame; divView.tInput = tInput; divView.lInput = lInput; divView.appendChild(table); divView.appendChild(tInput); divView.appendChild(lInput); Parent.appendChild(divView); refThis.eView = divView; var cssHref = [ '/css/style.css', '/sys/list/list.css', '/sys/tree/tree.css' ]; AttachFrameOnLoad({ id: tFrame.id, onLoad: function(doc) { var page = doc.createElement("div"); doc.body.appendChild(page); var url = divView.path; var obj = { id: divView.id + 'cviewtree', url: url, callback: divView.callback }; var tree = new Tree(obj, page); }, cssHref: cssHref }); AttachFrameOnLoad({ id: lFrame.id, onLoad: function(doc) { var page = doc.createElement("div"); doc.body.appendChild(page); var obj = { id: divView.id + 'cviewlist', callback: divView.callback, vStyle: 'rList' }; var list = new List(obj, page); }, cssHref: cssHref }); Parent.onSizeChanged = function() { var minH = 320; var subH = 160; if (Parent.minH) minH = Parent.minH; if (Parent.subH) subH = Parent.subH; var rect = getRect(Parent.parentNode); var h = rect.bottom - rect.top; if (h > minH) { h -= subH; lFrame.style.height = h + "px"; tFrame.style.height = h + "px"; } }; Parent.onClose = function() { if (refThis.catView) { refThis.catView.Close(); } if (refThis.lnkView) { refThis.lnkView.Close(); } }; }; this.reloadList = function() { var url = refData.url.replace(/treeid/gi, refThis.eView.treeId); refThis.list.Load(url); }; this.ToolBar = function(divView) { function onSicon() { refThis.list.vStyle('sList'); } function onLicon() { refThis.list.vStyle("lList"); } function onRlist() { refThis.list.vStyle("rList"); } function todoCat(todo) { function onTree(name, description) { if (todo == 'set') { refThis.tree.setSelected(name); } else { refThis.tree.refSelected(true); } } if (divView.treeId != null) { if (!refThis.catView) { refThis.catView = new Cbox({ name: 'class', title: divView.tInput.value + "@" + todo + Local.cat, cssName: "CDlg", width: 256, height: 180, divView: divView, todo: todo, callBack: onTree, url: '/xml/class.add.xml' }, document.body); refThis.catView.Close = function() { _removeNode(refThis.catView.eCbox); delete refThis.catView; refThis.catView = null; } } } } function onAddCat() { if (divView.treeId == null) divView.treeId = 0; todoCat('add'); } function onSetCat() { todoCat('set'); } function onDelCat() { if (divView.treeId != null && refThis.tree != null) { function onResponse(response) { if (response) { var rootNode = response.responseXML.documentElement; if (rootNode && rootNode.tagName == "class") { var ret = rootNode.getElementsByTagName('del')[0]; if (ret != null) { ret = parseInt(_text(ret)); if (ret > 0) { refThis.tree.delSelected(); } } } } } var data = "&db=" + divView.CatDB + "&cid=" + divView.treeId; Request.POST("/webx/Cat.aspx?todo=del", data, onResponse); } } function todoLnk(todo) { function onList() { refThis.tree.refSelected(false); } if (divView.treeId != null) { if (!refThis.lnkView) { refThis.lnkView = new Cbox({ name: 'link', title: divView.tInput.value + "@" + todo + Local.lnk, cssName: "CDlg", width: 400, height: 280, divView: divView, todo: todo, callBack: onList, url: '/xml/link.add.xml' }, document.body); refThis.lnkView.Close = function() { _removeNode(refThis.lnkView.eCbox); delete refThis.lnkView; refThis.lnkView = null; } } } } function onAddLnk() { todoLnk('add'); } function onSetLnk() { todoLnk('set'); } function onDelLnk() { if (divView.listItem != null && refThis.list != null) { function onResponse(response) { if (response) { var rootNode = response.responseXML.documentElement; if (rootNode && rootNode.tagName == "link") { var ret = rootNode.getElementsByTagName('del')[0]; if (ret != null) { ret = parseInt(_text(ret)); if (ret > 0) { divView.listItem = null; refThis.tree.refSelected(false); } } } } } var data = "&db=" + divView.CatDB + "&lnk=" + divView.listItem.lid; Request.POST("/webx/Lnk.aspx?todo=del", data, onResponse); } } function onLinkUp(bUp) { if (bUp == null) bUp = true; var lnks = refThis.list.Move(divView.listItem.lid, bUp); if (lnks != null) { function onResponse(response) { if (response) { var rootNode = response.responseXML.documentElement; if (rootNode && rootNode.tagName == "link") { var ret = rootNode.getElementsByTagName('sort')[0]; if (ret != null) { ret = parseInt(_text(ret)); if (ret > 0) { divView.listItem = null; refThis.tree.refSelected(false); } } } } } var data = "&db=" + divView.CatDB + "&lnks=" + lnks; Request.POST("/webx/Lnk.aspx?todo=sort", data, onResponse); } } function onLinkDn() { onLinkUp(false); } var litems = [ { icon: '/img/item.gif', text: Local.add + Local.cat, onclick: onAddCat }, { icon: '/img/item.gif', text: Local.edit, onclick: onSetCat }, { icon: '/img/del.gif', text: Local.del, onclick: onDelCat } ]; var ritems = [ { icon: '/img/item.gif', text: Local.add + Local.lnk, onclick: onAddLnk }, { icon: '/img/item.gif', text: Local.edit, onclick: onSetLnk }, { icon: '/img/item.gif', text: Local.del, onclick: onDelLnk }, {}, { icon: '/img/item.gif', text: Local.lnkUp, onclick: onLinkUp }, { icon: '/img/item.gif', text: Local.lnkDn, onclick: onLinkDn } ]; var divBar = _newElement("div", "toolBar"); refThis.lbar = new Mbar({ id: divView.id + 'rbar', items: litems, styleFloat: 'left' }, divBar); refThis.rbar = new Mbar({ id: divView.id + 'lbar', items: ritems, styleFloat: 'right' }, divBar); divView.appendChild(divBar); }; this.Free = function() { _removeNode(refThis.eView.tFrame); _removeNode(refThis.eView.lFrame); delete refThis.eView.tFrame; delete refThis.eView.lFrame; _removeNode(refThis.eView); delete refThis; }; this.Init(); }; var CatView = function(refData, Parent, caller) { function doView() { var cbox = new Cbox({title:refData.title, screenCover:true, cssName:'CDlg', width:680,height:460, caller:caller}, Parent); refData.toolbar = true; var cview = new CView(refData, cbox.eContent); cbox.eContent.onSizeChanged(); cbox.onClose = function() { if(refData.onOpen && ref.url) { refData.onOpen(ref.url); } cview.Free(); }; } if(caller != null) { doView(); } else { EnsureUser(doView); } }; 
