MWF.xApplication.query = MWF.xApplication.query || {}; MWF.xApplication.query.Query = MWF.xApplication.query.Query || {}; MWF.require("MWF.widget.Common", null, false); MWF.require("MWF.xScript.Macro", null, false); MWF.xDesktop.requireApp("query.Query", "lp.zh-cn", null, false); MWF.xApplication.query.Query.Viewer = MWF.QViewer = new Class({ Implements: [Options, Events], Extends: MWF.widget.Common, options: { "style": "default", "resizeNode": true, "paging" : "scroll", "perPageCount" : 50, "isload": "true", "export": false // "actions": { // "lookup": {"uri": "/jaxrs/view/flag/{view}/query/{application}/execute", "method":"PUT"}, // "getView": {"uri": "/jaxrs/view/flag/{view}/query/{application}"} // // }, // "actionRoot": "x_query_assemble_surface" }, initialize: function(container, json, options){ this.setOptions(options); this.path = "/x_component_query_Query/$Viewer/"; this.cssPath = "/x_component_query_Query/$Viewer/"+this.options.style+"/css.wcss"; this._loadCss(); this.lp = MWF.xApplication.query.Query.LP; this.container = $(container); this.json = json; this.viewJson = null; this.filterItems = []; this.searchStatus = "none"; //none, custom, default this.items = []; this.selectedItems = []; this.hideColumns = []; this.openColumns = []; this.gridJson = null; if (this.options.isload){ this.init(function(){ this.load(); }.bind(this)); } }, loadView: function(){ if (this.viewJson){ this.reload(); }else{ this.init(function(){ this.load(); }.bind(this)); } }, init: function(callback){ if (this.json.data){ this.viewJson = JSON.decode(this.json.data); if (callback) callback(); }else{ this.getView(callback); } }, load: function(){ this.loadLayout(); this.createExportNode(); this.createSearchNode(); this.createViewNode({"filterList": this.json.filter ? this.json.filter.clone() : null}); if (this.options.resizeNode){ this.setContentHeightFun = this.setContentHeight.bind(this); this.container.addEvent("resize", this.setContentHeightFun); this.setContentHeightFun(); } }, loadLayout: function(){ this.node = new Element("div", {"styles": this.css.node}).inject(this.container); if (this.options.export) this.exportAreaNode = new Element("div", {"styles": this.css.exportAreaNode}).inject(this.node); this.searchAreaNode = new Element("div", {"styles": this.css.searchAreaNode}).inject(this.node); this.viewAreaNode = new Element("div", {"styles": this.css.viewAreaNode}).inject(this.node); this.viewPageNode = new Element("div", {"styles": this.css.viewPageNode}).inject(this.node); this.viewPageAreaNode = new Element("div", {"styles": this.css.viewPageAreaNode}).inject(this.viewPageNode); }, createExportNode: function(){ if (this.options.export){ MWF.require("MWF.widget.Toolbar", function(){ this.toolbar = new MWF.widget.Toolbar(this.exportAreaNode, {"style": "simple"}, this); var actionNode = new Element("div", { "id": "", "MWFnodetype": "MWFToolBarButton", "MWFButtonImage": this.path+""+this.options.style+"/icon/export.png", "title": this.lp.exportExcel, "MWFButtonAction": "exportView", "MWFButtonText": this.lp.exportExcel }).inject(this.exportAreaNode); this.toolbar.load(); }.bind(this)); //this.exportNode = new Element("button", {"text": this.lp.exportExcel}).inject(this.exportAreaNode); } }, exportView: function(){ var action = MWF.Actions.get("x_query_assemble_surface"); var filterData = this.json.filter ? this.json.filter.clone() : []; if (this.filterItems.length){ this.filterItems.each(function(filter){ filterData.push(filter.data); }.bind(this)); } action.exportViewWithQuery(this.json.viewName, this.json.application, {"filterList": filterData}, function(json){ var uri = action.action.actions.getViewExcel.uri; uri = uri.replace("{flag}", json.data.id); uri = action.action.address+uri; var a = new Element("a", {"href": uri, "target":"_blank"}); a.click(); a.destroy(); }.bind(this)); }, createSearchNode: function(){ if (this.viewJson.customFilterList && this.viewJson.customFilterList.length){ this.searchStatus = "default"; this.loadFilterSearch(); }else{ this.loadSimpleSearch(); } }, loadSimpleSearch: function(){ return false; this.searchSimpleNode = new Element("div", {"styles": this.css.searchSimpleNode}).inject(this.searchAreaNode); this.searchSimpleButtonNode = new Element("div", {"styles": this.css.searchSimpleButtonNode}).inject(this.searchSimpleNode); this.searchSimpleInputNode = new Element("input", {"type":"text", "styles": this.css.searchSimpleInputNode, "value": this.lp.searchKeywork}).inject(this.searchSimpleNode); this.searchSimpleButtonNode.addEvent("click", function(){ this.search(); }.bind(this)); this.searchSimpleInputNode.addEvents({ "focus": function(){ if (this.searchSimpleInputNode.get("value")===this.lp.searchKeywork) this.searchSimpleInputNode.set("value", ""); }.bind(this), "blur": function(){if (!this.searchSimpleInputNode.get("value")) this.searchSimpleInputNode.set("value", this.lp.searchKeywork);}.bind(this), "keydown": function(e){ if (e.code===13) this.search(); }.bind(this) }); }, search: function(){ if (this.gridJson){ var key = this.searchSimpleInputNode.get("value"); var rows = this.viewTable.rows; var first = (this.json.isTitle!=="no") ? 1 : 0; for (var i = first; i10) count = 10; this.showPageCount = Math.min(count, this.pages); var tmp = this.showPageCount/2; var n = tmp.toInt(); var left = this.currentPage-n; if (left<=0) left = 1; var right = this.showPageCount + left-1; if (right>this.pages) right = this.pages; left = right-this.showPageCount+1; if (left<=1) left = 1; this.viewPagePrevNode = new Element("div", {"styles": this.css.viewPagePrevButtonNode}).inject(this.viewPageContentNode); this.loadPageButtonEvent(this.viewPagePrevNode, "viewPagePrevButtonNode_over", "viewPagePrevButtonNode_up", "viewPagePrevButtonNode_down", function(){ if (this.currentPage>1) this.currentPage--; this.loadCurrentPageData(); }.bind(this)); for (i=left; i<=right; i++){ var node = new Element("div", {"styles": this.css.viewPageButtonNode, "text": i}).inject(this.viewPageContentNode); if (i==this.currentPage){ node.setStyles(this.css.viewPageButtonNode_current); }else{ this.loadPageButtonEvent(node, "viewPageButtonNode_over", "viewPageButtonNode_up", "viewPageButtonNode_down", function(e){ this.currentPage = e.target.get("text").toInt(); this.loadCurrentPageData(); }.bind(this)); } } this.viewPageNextNode = new Element("div", {"styles": this.css.viewPageNextButtonNode}).inject(this.viewPageContentNode); this.loadPageButtonEvent(this.viewPageNextNode, "viewPageNextButtonNode_over", "viewPageNextButtonNode_up", "viewPageNextButtonNode_down", function(){ if (this.currentPage<=this.pages-1) this.currentPage++; this.loadCurrentPageData(); }.bind(this)); }, loadPageButtonEvent: function(node, over, out, down, click){ node.addEvents({ "mouseover": function(){node.setStyles(this.css[over])}.bind(this), "mouseout": function(){node.setStyles(this.css[out])}.bind(this), "mousedown": function(){node.setStyles(this.css[down])}.bind(this), "mouseup": function(){node.setStyles(this.css[out])}.bind(this), "click": click, }); }, _loadPageNode: function(){ this.viewPageAreaNode.empty(); this.viewPageFirstNode = new Element("div", {"styles": this.css.viewPageFirstLastNode, "text": this.lp.firstPage}).inject(this.viewPageAreaNode); this.viewPageContentNode = new Element("div", {"styles": this.css.viewPageContentNode}).inject(this.viewPageAreaNode); this.viewPageLastNode = new Element("div", {"styles": this.css.viewPageFirstLastNode, "text": this.lp.lastPage}).inject(this.viewPageAreaNode); this._loadPageCountNode(); this.loadPageButtonEvent(this.viewPageFirstNode, "viewPageFirstLastNode_over", "viewPageFirstLastNode_up", "viewPageFirstLastNode_down", function(){ this.currentPage = 1; this.loadCurrentPageData(); }.bind(this)); this.loadPageButtonEvent(this.viewPageLastNode, "viewPageFirstLastNode_over", "viewPageFirstLastNode_up", "viewPageFirstLastNode_down", function(){ this.currentPage = this.pages; this.loadCurrentPageData(); }.bind(this)); }, _initPage: function(){ this.count = this.bundleItems.length; var i = this.count/this.json.pageSize; this.pages = (i.toInt()1){ this.viewTable.deleteRow(-1); } //this.createLoadding(); this.loadViewRes = this.lookupAction.loadView(this.json.name, this.json.application, d, function(json){ this.viewData = json.data; if (this.viewJson.group.column){ this.gridJson = json.data.groupGrid; this.loadGroupData(); }else{ this.gridJson = json.data.grid; this.loadData(); } if (this.gridJson.length) this._loadPageNode(); if (this.loadingAreaNode){ this.loadingAreaNode.destroy(); this.loadingAreaNode = null; } this.fireEvent("loadView"); }.bind(this)); }, loadData: function(){ if (this.gridJson.length){ // if( !this.options.paging ){ this.gridJson.each(function(line, i){ this.items.push(new MWF.xApplication.query.Query.Viewer.Item(this, line, null, i)); }.bind(this)); // }else{ // this.loadPaging(); // } }else{ if (this.viewPageAreaNode) this.viewPageAreaNode.empty(); } }, loadPaging : function(){ this.isItemsLoading = false; this.pageNumber = 0; this.isItemsLoaded = false; this.isSetedScroll = false; this.setScroll(); this.loadDataByPaging() }, setScroll : function(){ if( this.options.paging && !this.isSetedScroll ){ this.contentAreaNode.setStyle("overflow","auto"); this.scrollContainerFun = function(){ var scrollSize = this.contentAreaNode.getScrollSize(); var clientSize = this.contentAreaNode.getSize(); var scrollHeight = scrollSize.y - clientSize.y; //alert( "clientSize.y=" + clientSize.y + " scrollSize.y="+scrollSize.y + " this.contentAreaNode.scrollTop="+this.contentAreaNode.scrollTop); if (this.contentAreaNode.scrollTop + 150 > scrollHeight ) { if (!this.isItemsLoaded) this.loadDataByPaging(); } }.bind(this); this.isSetedScroll = true; this.contentAreaNode.addEvent("scroll", this.scrollContainerFun ) } }, loadDataByPaging : function(){ if( this.isItemsLoading )return; if( !this.isItemsLoaded ){ var from = Math.min( this.pageNumber * this.options.perPageCount , this.gridJson.length); var to = Math.min( ( this.pageNumber + 1 ) * this.options.perPageCount + 1 , this.gridJson.length); this.isItemsLoading = true; for( var i = from; i"+""+""); this.selectTitleCell.setStyle("cursor", "pointer"); this.selectTitleCell.addEvent("click", this.expandOrCollapseAll.bind(this)); } if (this.gridJson.length){ var i = 0; this.gridJson.each(function(data){ this.items.push(new MWF.xApplication.query.Query.Viewer.ItemCategory(this, data, i)); i += data.list.length; }.bind(this)); if (this.json.isExpand=="yes") this.expandOrCollapseAll(); }else{ if (this.viewPageAreaNode) this.viewPageAreaNode.empty(); } }, expandOrCollapseAll: function(){ var icon = this.selectTitleCell.getElement("span"); if (icon.get("html").indexOf("expand.png")===-1){ this.items.each(function(item){ item.collapse(); icon.set("html", ""); }.bind(this)); }else{ this.items.each(function(item, i){ window.setTimeout(function(){ item.expand(); }.bind(this), 10*i+5); icon.set("html", ""); }.bind(this)); } }, getView: function(callback){ this.getLookupAction(function(){ if (this.json.application){ this.getViewRes = this.lookupAction.getView(this.json.viewName, this.json.application, function(json){ this.viewJson = JSON.decode(json.data.data); this.json = Object.merge(this.json, json.data); if (callback) callback(); }.bind(this)); // this.lookupAction.invoke({"name": "getView","async": true, "parameter": {"view": this.json.viewName, "application": this.json.application},"success": function(json){ // this.viewJson = JSON.decode(json.data.data); // this.json = Object.merge(this.json, json.data); // //var viewData = JSON.decode(json.data.data); // if (callback) callback(); // }.bind(this)}); }else{ this.getViewRes = this.lookupAction.getViewById(this.json.viewId, function(json){ this.viewJson = JSON.decode(json.data.data); this.json.application = json.data.query; this.json = Object.merge(this.json, json.data); if (callback) callback(); }.bind(this)); } }.bind(this)); }, getLookupAction: function(callback){ if (!this.lookupAction){ this.lookupAction = MWF.Actions.get("x_query_assemble_surface"); if (callback) callback(); // var _self = this; // MWF.require("MWF.xDesktop.Actions.RestActions", function(){ // this.lookupAction = new MWF.xDesktop.Actions.RestActions("", this.options.actionRoot, ""); // this.lookupAction.getActions = function(actionCallback){ // this.actions = _self.options.actions; // if (actionCallback) actionCallback(); // }; // if (callback) callback(); // }.bind(this)); }else{ if (callback) callback(); } }, hide: function(){ this.node.setStyle("display", "none"); }, reload: function(){ this.node.setStyle("display", "block"); if (this.loadingAreaNode) this.loadingAreaNode.setStyle("display", "block"); this.filterItems.each(function(filter){ filter.destroy(); }.bind(this)); this.filterItems = []; if (this.viewSearchInputNode) this.viewSearchInputNode.set("text", this.lp.searchKeywork); this.closeCustomSearch(); this.viewAreaNode.empty(); this.createViewNode({"filterList": this.json.filter ? this.json.filter.clone() : null}); }, getFilter: function(){ var filterData = []; if (this.searchStatus==="custom"){ if (this.filterItems.length){ this.filterItems.each(function(filter){ filterData.push(filter.data); }.bind(this)); } } if (this.searchStatus==="default"){ var key = this.viewSearchInputNode.get("value"); if (key && key!==this.lp.searchKeywork){ this.viewJson.customFilterList.each(function(entry){ if (entry.formatType==="textValue"){ var d = { "path": entry.path, "value": key, "formatType": entry.formatType, "logic": "or", "comparison": "like" }; filterData.push(d); } if (entry.formatType==="numberValue"){ var v = key.toFloat(); if (!isNaN(v)){ var d = { "path": entry.path, "value": v, "formatType": entry.formatType, "logic": "or", "comparison": "like" }; filterData.push(d); } } }.bind(this)); } } return (filterData.length) ? filterData : null; }, getData: function(){ if (this.selectedItems.length){ var arr = []; this.selectedItems.each(function(item){ arr.push(item.data); }); return arr; }else{ return []; } } }); MWF.xApplication.query.Query.Viewer.Item = new Class({ initialize: function(view, data, prev, i){ this.view = view; this.data = data; this.css = this.view.css; this.isSelected = false; this.prev = prev; this.idx = i; this.load(); }, load: function(){ debugger; this.node = new Element("tr", {"styles": this.css.viewContentTrNode}); if (this.prev){ this.node.inject(this.prev.node, "after"); }else{ this.node.inject(this.view.viewTable); } //if (this.view.json.select==="single" || this.view.json.select==="multi"){ this.selectTd = new Element("td", {"styles": this.css.viewContentTdNode}).inject(this.node); this.selectTd.setStyles({"cursor": "pointer"}); if (this.view.json.itemStyles) this.selectTd.setStyles(this.view.json.itemStyles); //} //序号 if (this.view.viewJson.isSequence==="yes"){ this.sequenceTd = new Element("td", {"styles": this.css.viewContentTdNode}).inject(this.node); this.sequenceTd.setStyle("width", "10px"); var s= 1+this.view.json.pageSize*(this.view.currentPage-1)+this.idx; this.sequenceTd.set("text", s); } Object.each(this.view.entries, function(c, k){ debugger; var cell = this.data.data[k]; if (cell === undefined) cell = ""; //if (cell){ if (this.view.hideColumns.indexOf(k)===-1){ var td = new Element("td", {"styles": this.css.viewContentTdNode}).inject(this.node); if (k!== this.view.viewJson.group.column){ //var v = (this.view.entries[k].code) ? MWF.Macro.exec(this.view.entries[k].code, {"value": cell, "gridData": this.view.gridJson, "data": this.view.viewData, "entry": this.data}) : cell; var v = cell; if (c.isHtml){ td.set("html", v); }else{ td.set("text", v); } } if (this.view.openColumns.indexOf(k)!==-1){ this.setOpenWork(td, c) } if (this.view.json.itemStyles) td.setStyles(this.view.json.itemStyles); } //} }.bind(this)); // Object.each(this.data.data, function(cell, k){ // if (this.view.hideColumns.indexOf(k)===-1){ // var td = new Element("td", {"styles": this.css.viewContentTdNode}).inject(this.node); // if (k!== this.view.viewJson.group.column){ // var v = (this.view.entries[k].code) ? MWF.Macro.exec(this.view.entries[k].code, {"value": cell, "gridData": this.view.gridJson, "data": this.view.viewData, "entry": this.data}) : cell; // td.set("text", v); // } // if (this.view.openColumns.indexOf(k)!==-1){ // this.setOpenWork(td) // } // if (this.view.json.itemStyles) td.setStyles(this.view.json.itemStyles); // } // }.bind(this)); this.setEvent(); }, setOpenWork: function(td, column){ debugger; td.setStyle("cursor", "pointer"); if( column.clickCode ){ if( !this.view.Macro ){ MWF.require("MWF.xScript.Macro", function () { this.view.businessData = {}; this.view.Macro = new MWF.Macro.PageContext(this.view); }.bind(this), false); } td.addEvent("click", function( ev ){ return this.view.Macro.fire(column.clickCode, this, ev); }.bind(this)); }else{ if (this.view.json.type==="cms"){ td.addEvent("click", this.openCms.bind(this)); }else{ td.addEvent("click", this.openWorkAndCompleted.bind(this)); } } }, openCms: function(e){ var options = {"documentId": this.data.bundle}; this.view.fireEvent("openDocument", [options, this]); layout.desktop.openApplication(e, "cms.Document", options); }, openWorkAndCompleted: function(e){ MWF.Actions.get("x_processplatform_assemble_surface").listWorkByJob(this.data.bundle, function(json){ var workCompletedCount = json.data.workCompletedList.length; var workCount = json.data.workList.length; var count = workCount+workCompletedCount; if (count===1){ if (workCompletedCount) { this.openWorkCompleted(json.data.workCompletedList[0].id, e); }else{ this.openWork(json.data.workList[0].id, e); } }else if (count>1){ var worksAreaNode = this.createWorksArea(); json.data.workCompletedList.each(function(work){ this.createWorkCompletedNode(work, worksAreaNode); }.bind(this)); json.data.workList.each(function(work){ this.createWorkNode(work, worksAreaNode); }.bind(this)); this.showWorksArea(worksAreaNode, e); }else{ } }.bind(this)); }, createWorkNode: function(work, worksAreaNode){ var worksAreaContentNode = worksAreaNode.getLast(); var node = new Element("div", {"styles": this.css.workAreaNode}).inject(worksAreaContentNode); var actionNode = new Element("div", {"styles": this.css.workAreaActionNode, "text": this.view.lp.open}).inject(node); actionNode.store("workId", work.id); actionNode.addEvent("click", function(e){ this.openWork(e.target.retrieve("workId"), e); this.mask.hide(); worksAreaNode.destroy(); }.bind(this)); var areaNode = new Element("div", {"styles": this.css.workAreaLeftNode}).inject(node); var titleNode = new Element("div", {"styles": this.css.workAreaTitleNode, "text": work.title}).inject(areaNode); var contentNode = new Element("div", {"styles": this.css.workAreaContentNode}).inject(areaNode); new Element("div", {"styles": this.css.workAreaContentTitleNode, "text": this.view.lp.activity+": "}).inject(contentNode); new Element("div", {"styles": this.css.workAreaContentTextNode, "text": work.activityName}).inject(contentNode); var taskUsers = []; MWF.Actions.get("x_processplatform_assemble_surface").listTaskByWork(work.id, function(json){ json.data.each(function(task){ taskUsers.push(MWF.name.cn(task.person)); }.bind(this)); new Element("div", {"styles": this.css.workAreaContentTitleNode, "text": this.view.lp.taskPeople+": "}).inject(contentNode); new Element("div", {"styles": this.css.workAreaContentTextNode, "text": taskUsers.join(", ")}).inject(contentNode); }.bind(this)); }, createWorkCompletedNode: function(work, worksAreaNode){ var worksAreaContentNode = worksAreaNode.getLast(); var node = new Element("div", {"styles": this.css.workAreaNode}).inject(worksAreaContentNode); var actionNode = new Element("div", {"styles": this.css.workAreaActionNode, "text": this.view.lp.open}).inject(node); actionNode.store("workId", work.id); actionNode.addEvent("click", function(e){ this.mask.hide(); var id = e.target.retrieve("workId"); worksAreaNode.destroy(); this.openWorkCompleted(id, e); }.bind(this)); var areaNode = new Element("div", {"styles": this.css.workAreaLeftNode}).inject(node); var titleNode = new Element("div", {"styles": this.css.workAreaTitleNode, "text": work.title}).inject(areaNode); var contentNode = new Element("div", {"styles": this.css.workAreaContentNode}).inject(areaNode); new Element("div", {"styles": this.css.workAreaContentTitleNode, "text": this.view.lp.activity+": "}).inject(contentNode); new Element("div", {"styles": this.css.workAreaContentTextNode, "text": this.view.lp.processCompleted}).inject(contentNode); }, createWorksArea: function(){ var worksAreaNode = new Element("div", {"styles": this.css.worksAreaNode}); var worksAreaTitleNode = new Element("div", {"styles": this.css.worksAreaTitleNode}).inject(worksAreaNode); var worksAreaTitleCloseNode = new Element("div", {"styles": this.css.worksAreaTitleCloseNode}).inject(worksAreaTitleNode); worksAreaTitleCloseNode.addEvent("click", function(e){ this.mask.hide(); e.target.getParent().getParent().destroy(); }.bind(this)); var worksAreaContentNode = new Element("div", {"styles": this.css.worksAreaContentNode}).inject(worksAreaNode); return worksAreaNode; }, showWorksArea: function(node, e){ MWF.require("MWF.widget.Mask", null, false); this.mask = new MWF.widget.Mask({"style": "desktop", "loading": false}); this.mask.loadNode(this.view.container); node.inject(this.view.node); this.setWorksAreaPosition(node, e.target); }, setWorksAreaPosition: function(node, td){ var p = td.getPosition(this.view.container); var containerS = this.view.container.getSize(); var containerP = this.view.container.getPosition(this.view.container.getOffsetParent()); var s = node.getSize(); var offX = p.x+s.x-containerS.x; offX = (offX>0) ? offX+20 : 0; var offY = p.y+s.y-containerS.y; offY = (offY>0) ? offY+5 : 0; node.position({ "relativeTo": td, "position": "lefttop", "edge": "lefttop", "offset": { "x": 0-offX, "y": 0-offY } }); }, openWork: function(id, e){ var options = {"workId": id}; this.view.fireEvent("openDocument", [options, this]); layout.desktop.openApplication(e, "process.Work", options); }, openWorkCompleted: function(id, e){ var options = {"workCompletedId": id}; this.view.fireEvent("openDocument", [options, this]); layout.desktop.openApplication(e, "process.Work", options); }, setEvent: function(){ if (this.view.json.select==="single" || this.view.json.select==="multi"){ this.node.addEvents({ "mouseover": function(){ if (!this.isSelected){ var iconName = "checkbox"; if (this.view.json.select==="single") iconName = "radiobox"; this.selectTd.setStyles({"background": "url("+"/x_component_query_Query/$Viewer/default/icon/"+iconName+".png) center center no-repeat"}); } }.bind(this), "mouseout": function(){ if (!this.isSelected) this.selectTd.setStyles({"background": "transparent"}); }.bind(this), "click": function(){this.select();}.bind(this) }); } }, select: function(){ if (this.isSelected){ if (this.view.json.select==="single"){ this.unSelectedSingle(); }else{ this.unSelected(); } }else{ if (this.view.json.select==="single"){ this.selectedSingle(); }else{ this.selected(); } } this.view.fireEvent("select"); }, selected: function(){ this.view.selectedItems.push(this); this.selectTd.setStyles({"background": "url("+"/x_component_query_Query/$Viewer/default/icon/checkbox_checked.png) center center no-repeat"}); this.node.setStyles(this.css.viewContentTrNode_selected); this.isSelected = true; }, unSelected: function(){ this.view.selectedItems.erase(this); this.selectTd.setStyles({"background": "transparent"}); this.node.setStyles(this.css.viewContentTrNode); this.isSelected = false; }, selectedSingle: function(){ if (this.view.currentSelectedItem) this.view.currentSelectedItem.unSelectedSingle(); this.view.selectedItems = [this]; this.view.currentSelectedItem = this; this.selectTd.setStyles({"background": "url("+"/x_component_query_Query/$Viewer/default/icon/radiobox_checked.png) center center no-repeat"}); this.node.setStyles(this.css.viewContentTrNode_selected); this.isSelected = true; }, unSelectedSingle: function(){ this.view.selectedItems = []; this.view.currentSelectedItem = null; this.selectTd.setStyles({"background": "transparent"}); this.node.setStyles(this.css.viewContentTrNode); this.isSelected = false; } }); MWF.xApplication.query.Query.Viewer.ItemCategory = new Class({ initialize: function(view, data, i){ this.view = view; this.data = data; this.css = this.view.css; this.items = []; this.loadChild = false; this.idx = i; this.load(); }, load: function(){ this.node = new Element("tr", {"styles": this.css.viewContentTrNode}).inject(this.view.viewTable); //if (this.view.json.select==="single" || this.view.json.select==="multi"){ this.selectTd = new Element("td", {"styles": this.css.viewContentCategoryTdNode}).inject(this.node); if (this.view.json.itemStyles) this.selectTd.setStyles(this.view.json.itemStyles); //} this.categoryTd = new Element("td", { "styles": this.css.viewContentCategoryTdNode, "colspan": this.view.viewJson.selectList.length+1 }).inject(this.node); this.groupColumn = null; for (var c = 0; c "+text); if (this.view.json.itemStyles) this.categoryTd.setStyles(this.view.json.itemStyles); this.setEvent(); }, setEvent: function(){ //if (this.selectTd){ this.node.addEvents({ "click": function(){this.expandOrCollapse();}.bind(this) }); //} }, expandOrCollapse: function(){ var t = this.node.getElement("span").get("html"); if (t.indexOf("expand.png")===-1){ this.collapse(); }else{ this.expand(); } }, collapse: function(){ this.items.each(function(item){ item.node.setStyle("display", "none"); }.bind(this)); this.node.getElement("span").set("html", ""); }, expand: function(){ this.items.each(function(item){ item.node.setStyle("display", "table-row"); }.bind(this)); this.node.getElement("span").set("html", ""); if (!this.loadChild){ //window.setTimeout(function(){ this.data.list.each(function(line, i){ var s = this.idx+i; this.lastItem = new MWF.xApplication.query.Query.Viewer.Item(this.view, line, (this.lastItem || this), s); this.items.push(this.lastItem); }.bind(this)); this.loadChild = true; //}.bind(this), 10); } } }); MWF.xApplication.query.Query.Viewer.Filter = new Class({ initialize: function(viewer, data, node){ this.viewer = viewer; this.data = data; this.css = this.viewer.css; this.content = node; this.load(); }, load: function(){ this.node = new Element("div", {"styles": this.css.viewSearchFilterNode}).inject(this.content); if (this.viewer.filterItems.length){ this.logicNode = new Element("div", {"styles": this.css.viewSearchFilterSelectAreaNode}).inject(this.node); this.logicSelectNode = new Element("div", { "styles": this.css.viewSearchFilterSelectNode, "text": this.viewer.lp.and, "value": "and" }).inject(this.logicNode); this.logicSelectButtonNode = new Element("div", {"styles": this.css.viewSearchFilterSelectButtonNode}).inject(this.logicNode); this.logicNode.addEvents({ "click": function(){ var v = this.logicSelectNode.get("value"); if (v==="and"){ this.logicSelectButtonNode.setStyle("float", "left"); this.logicSelectNode.setStyle("float", "right"); this.logicSelectNode.set({ "text": this.viewer.lp.or, "value": "or" }); this.data.logic = "or"; }else{ this.logicSelectButtonNode.setStyle("float", "right"); this.logicSelectNode.setStyle("float", "left"); this.logicSelectNode.set({ "text": this.viewer.lp.and, "value": "and" }); this.data.logic = "and"; } this.viewer.searchCustomView(); }.bind(this) }); } this.titleNode = new Element("div", {"styles": this.css.viewSearchFilterTextNode, "text": this.data.title}).inject(this.node); this.comparisonTitleNode = new Element("div", {"styles": this.css.viewSearchFilterTextNode, "text": this.data.comparisonTitle}).inject(this.node); this.valueNode = new Element("div", {"styles": this.css.viewSearchFilterTextNode, "text": "\""+this.data.value+"\""}).inject(this.node); this.deleteNode = new Element("div", {"styles": this.css.viewSearchFilterDeleteNode}).inject(this.node); this.node.addEvents({ "mouseover": function(){ this.node.setStyles(this.css.viewSearchFilterNode_over); this.deleteNode.setStyles(this.css.viewSearchFilterDeleteNode_over); }.bind(this), "mouseout": function(){ this.node.setStyles(this.css.viewSearchFilterNode); this.deleteNode.setStyles(this.css.viewSearchFilterDeleteNode); }.bind(this) }); this.deleteNode.addEvent("click", function(){ this.viewer.searchViewRemoveFilter(this); }.bind(this)); }, destroy: function(){ this.node.destroy(); MWF.release(this); } });