| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- MWF.require("MWF.widget.Mask", null, false);
- MWF.xDesktop.requireApp("process.Application", "WorkExplorer", null, false);
- MWF.xApplication.process.Application.ViewExplorer = new Class({
- Extends: MWF.xApplication.process.Application.WorkExplorer,
- Implements: [Options, Events],
- initialize: function(node, actions, options){
- this.setOptions(options);
- this.setTooltip();
- this.path = "/x_component_process_Application/$WorkExplorer/";
- this.cssPath = "/x_component_process_Application/$WorkExplorer/"+this.options.style+"/css.wcss";
- this._loadCss();
- this.actions = actions;
- this.node = $(node);
- this.items=[];
- },
- load: function(){
- if (!this.actions){
- MWF.xDesktop.requireApp("process.Application", "Actions.RestActions", function(){
- this.actions = new MWF.xApplication.process.Application.Actions.RestActions();
- this.loadToolbar();
- this.loadFilterNode();
- //this.loadFilterConditionNode();
- this.loadContentNode();
- this.setNodeScroll();
- }.bind(this));
- }else{
- this.loadToolbar();
- this.loadFilterNode();
- //this.loadFilterConditionNode();
- this.loadContentNode();
- this.setNodeScroll();
- }
- this.mask = new MWF.widget.Mask({"style": "desktop"});
- this.mask.loadNode(this.node);
- //this.loadElementList();
- },
- createWorkListHead: function(){},
- setContentSize: function(){
- var toolbarSize = this.toolbarNode.getSize();
- var nodeSize = this.node.getSize();
- var pt = this.elementContentNode.getStyle("padding-top").toFloat();
- var pb = this.elementContentNode.getStyle("padding-bottom").toFloat();
- var filterSize = this.filterNode.getSize();
- var height = nodeSize.y-toolbarSize.y-pt-pb-filterSize.y;
- this.elementContentNode.setStyle("height", ""+height+"px");
- this.pageCount = (height/40).toInt()+5;
- },
- createSearchElementNode: function(){
- return false;
- },
- loadFilterNode: function(){
- this.filterNode = new Element("div", {"styles": this.css.filterNode}).inject(this.node);
- this.filterNode.setStyle("padding", "0px 10px");
- //this.filterProcessAreaNode = new Element("div", {"styles": this.css.filterProcessAreaNode}).inject(this.filterNode);
- //this.filterProcessListNode = new Element("div", {"styles": this.css.filterProcessListNode}).inject(this.filterProcessAreaNode);
- this.loadViewList();
- },
- loadViewList: function(){
- this.actions.listView(this.app.options.id, function(json){
- if (json.data.length){
- json.data.each(function(process){
- this.loadViewListNode(process);
- }.bind(this));
- if (this.mask){
- this.mask.hide();
- this.mask = null;
- }
- if (this.currentView){
- this.currentView.click();
- }else{
- this.items[0].click();
- }
- }else{
- this.filterNode.destroy();
- var noElementNode = new Element("div", {
- "styles": this.css.noElementNode,
- "text": this.app.lp.noView
- }).inject(this.elementContentListNode);
- if (this.mask){
- this.mask.hide();
- this.mask = null;
- }
- }
- }.bind(this));
- },
- loadViewListNode: function(view){
- var viewNode = new Element("div", {"styles": this.css.filterViewNode}).inject(this.filterNode);
- viewNode.set("text", view.name);
- viewNode.store("view", view);
- this.items.push(viewNode);
- if (this.app.status){
- if (this.app.status.viewName){
- if (view.name == this.app.status.viewName) this.currentView = viewNode;
- }
- }
- var _self = this;
- viewNode.addEvent("click", function(){
- _self.loadViewData(this);
- });
- viewNode.makeLnk({
- "par": this._getLnkPar(view)
- });
- },
- _getLnkPar: function(view){
- return {
- "icon": this.path+this.options.style+"/viewIcon/lnk.png",
- "title": view.name,
- "par": "process.Application#{\"navi\": 2, \"id\": \""+this.app.options.id+"\", \"viewName\": \""+view.name+"\", \"hideMenu\": true}"
- };
- },
- loadViewData: function(node){
- if (!this.mask){
- this.mask = new MWF.widget.Mask({"style": "desktop"});
- this.mask.loadNode(this.node);
- }
- this.items.each(function(item){
- item.setStyles(this.css.filterViewNode);
- }.bind(this));
- node.setStyles(this.css.filterViewNode_current);
- var view = node.retrieve("view");
- this.actions.loadView(function(json){
- this.showViewData(json.data);
- if (this.mask){
- this.mask.hide();
- this.mask = null;
- }
- }.bind(this), null, view.id, this.app.options.id);
- },
- showViewData: function(data){
- this.elementContentListNode.empty();
- this.viewTable = null;
- this.loadViewDataTitle(data.selectEntryList);
- this.loadViewDataLine(data);
- },
- loadViewDataTitle: function(titleList){
- this.viewTable = new Element("table", {
- "styles": this.css.viewTableNode,
- "width": "100%",
- "border": "0",
- "cellPadding": "0",
- "cellSpacing": "0"
- }).inject(this.elementContentListNode);
- this.viewHeadTr = new Element("tr").inject(this.viewTable);
- titleList.each(function(title){
- var th = new Element("th", {
- "styles": this.css.viewHeadTh,
- "text": title.displayName
- }).inject(this.viewHeadTr);
- }.bind(this));
- },
- loadViewDataLine: function(data){
- if ((data.groupEntry) && (data.groupEntry.column)){
- if (data.groupGrid.length){
- data.groupGrid.each(function(line, idx){
- var groupTr = new Element("tr", {"styles": this.css.viewContentTrNode}).inject(this.viewTable);
- var colSpan = data.selectEntryList.length;
- var td = new Element("td", {"styles": this.css.viewContentGroupTdNode, "colSpan": colSpan}).inject(groupTr);
- var groupAreaNode = new Element("div", {"styles": this.css.viewContentTdGroupNode}).inject(td);
- var groupIconNode = new Element("div", {"styles": this.css.viewContentTdGroupIconNode}).inject(groupAreaNode);
- var groupTextNode = new Element("div", {"styles": this.css.viewContentTdGroupTextNode}).inject(groupAreaNode);
- groupTextNode.set("text", line.group);
- var subtrs = [];
- line.list.each(function(entry){
- var tr = new Element("tr", {"styles": this.css.viewContentTrNode}).inject(this.viewTable);
- tr.setStyle("display", "none")
- var td = new Element("td", {"styles": this.css.viewContentTdNode}).inject(tr);
- Object.each(entry.data, function(d, k){
- if (k!=data.groupEntry.column){
- var td = new Element("td", {"styles": this.css.viewContentTdNode}).inject(tr);
- td.set("text", d);
- }
- }.bind(this));
- subtrs.push(tr)
- }.bind(this));
- groupAreaNode.store("subtrs", subtrs);
- var _self = this;
- groupAreaNode.addEvent("click", function(){
- var subtrs = this.retrieve("subtrs");
- var iconNode = groupAreaNode.getFirst("div");
- if (subtrs[0]){
- if (subtrs[0].getStyle("display")=="none"){
- subtrs.each(function(subtr){ subtr.setStyle("display", "table-row"); });
- iconNode.setStyle("background", "url("+"/x_component_process_ViewDesigner/$View/default/icon/down.png) center center no-repeat");
- }else{
- subtrs.each(function(subtr){ subtr.setStyle("display", "none"); });
- iconNode.setStyle("background", "url("+"/x_component_process_ViewDesigner/$View/default/icon/right.png) center center no-repeat");
- }
- }
- _self.setContentHeight();
- });
- }.bind(this));
- }
- }else{
- if (data.grid.length){
- data.grid.each(function(line, idx){
- var tr = new Element("tr", {"styles": this.css.viewContentTrNode}).inject(this.viewTable);
- Object.each(line.data, function(d, k){
- var td = new Element("td", {"styles": this.css.viewContentTdNode}).inject(tr);
- td.set("text", d);
- }.bind(this));
- }.bind(this));
- }
- }
- }
- });
|