ViewExplorer.js 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271
  1. MWF.xApplication.cms = MWF.xApplication.cms || {};
  2. MWF.xApplication.cms.Module = MWF.xApplication.cms.Module || {};
  3. MWF.require("MWF.xAction.org.express.RestActions", null,false);
  4. MWF.xDesktop.requireApp("cms.Module", "lp."+MWF.language, null, false);
  5. MWF.xDesktop.requireApp("cms.Module", "package", null, false);
  6. MWF.xDesktop.requireApp("process.Application", "Viewer", null, false);
  7. MWF.xDesktop.requireApp("query.Query", "Viewer", null, false);
  8. MWF.xApplication.cms.Module.ViewExplorer = new Class({
  9. Extends: MWF.widget.Common,
  10. Implements: [Options, Events],
  11. options: {
  12. "style": "default",
  13. "isAdmin": false,
  14. "searchKey" : ""
  15. },
  16. initialize: function( node, app, columnData, categoryData, revealData, options, searchNode ){
  17. this.setOptions(options);
  18. this.node = node;
  19. this.app = app;
  20. this.columnData = columnData;
  21. this.categoryData = categoryData;
  22. this.revealData = revealData;
  23. this.searchNode = searchNode;
  24. this.path = "../x_component_cms_Module/$ViewExplorer/";
  25. this.cssPath = "../x_component_cms_Module/$ViewExplorer/"+this.options.style+"/css.wcss";
  26. this._loadCss();
  27. },
  28. reload: function(){
  29. this.node.empty();
  30. this.searchNode.empty();
  31. this.load();
  32. },
  33. load : function(){
  34. this.loadContentNode();
  35. this.loadQuryView();
  36. //if( this.revealData.viewType ){
  37. // this.loadQuryView(); //QeuryView
  38. //}else{
  39. // this.loadView(); //CMSView
  40. //}
  41. },
  42. loadContentNode: function(){
  43. this.elementContentNode = new Element("div", {
  44. "styles": this.css.elementContentNode
  45. }).inject(this.node);
  46. this.searchContainer = new Element("div",{
  47. "styles" : this.css.searchContainer
  48. }).inject( this.searchNode );
  49. this.resizeFun = function(){this.setContentSize();}.bind(this);
  50. this.app.addEvent("resize", this.resizeFun );
  51. },
  52. loadQuryView : function(){
  53. var viewJson = {
  54. "application": this.revealData.appName,
  55. "viewName": this.revealData.name,
  56. "isTitle": "yes",
  57. "select": "none",
  58. "titleStyles": this.css.normalThNode,
  59. "itemStyles": {},
  60. // "isExpand": "no",
  61. "filter": []
  62. };
  63. this.view = new MWF.xApplication.cms.Module.QueryViewer(this.elementContentNode, viewJson, {
  64. "hasAction" : this.options.isAdmin,
  65. "resizeNode": true,
  66. "selectEnable" : this.selectEnable,
  67. "onSelect": function(){
  68. this.fireEvent("select");
  69. }.bind(this)
  70. }, this.app, this.searchContainer);
  71. this.setContentSize();
  72. },
  73. //loadView : function(){
  74. // var viewJson = {
  75. // "application": this.columnData.id,
  76. // "viewName": this.revealData.name,
  77. // "isTitle": "yes",
  78. // "select": "none", //none , single, multi
  79. // "titleStyles": this.css.normalThNode,
  80. // "isExpand": "no",
  81. // "itemStyles": {}
  82. // };
  83. //
  84. // this.view = new MWF.xApplication.cms.Module.Viewer(this.elementContentNode, viewJson, {
  85. // "type" : "cms",
  86. // "hasAction" : this.options.isAdmin,
  87. // "actions": {
  88. // //"lookup": {"uri": "/jaxrs/queryview/flag/{view}/application/flag/{application}/execute", "method":"PUT"},
  89. // //"getView": {"uri": "/jaxrs/queryview/flag/{view}/application/flag/{application}"},
  90. // "lookup": {"uri": "/jaxrs/view/{view}/execute", "method":"PUT"},
  91. // "getView": {"uri": "/jaxrs/view/{view}"},
  92. // "deleteDocument" : {"uri":"/jaxrs/document/{id}","method": "DELETE"}
  93. // },
  94. // "actionRoot": "x_query_assemble_surface",
  95. // "resizeNode": true,
  96. // "selectEnable" : this.selectEnable,
  97. // "onSelect": function(){
  98. // this.fireEvent("select");
  99. // }.bind(this)
  100. // }, this.app, this.searchContainer);
  101. //
  102. // this.setContentSize();
  103. //},
  104. selectMode : function(){
  105. this.selectEnable = true;
  106. this.view.selectMode()
  107. },
  108. disableSelectMode : function(){
  109. this.selectEnable = false;
  110. this.view.disableSelectMode()
  111. },
  112. getSelectedIds : function(){
  113. return this.view.getSelectedIds();
  114. },
  115. setContentSize: function(){
  116. var toolbarSize = this.toolbarNode ? this.toolbarNode.getSize() : {"x":0,"y":0};
  117. var titlebarSize = {"x":0,"y":0}; //this.app.titleBar ? this.app.titleBar.getSize() : {"x":0,"y":0};
  118. var nodeSize = this.app.node.getSize();
  119. var pt = 0; //this.elementContentNode.getStyle("padding-top").toFloat();
  120. var pb = 0; // this.elementContentNode.getStyle("padding-bottom").toFloat();
  121. var filterConditionSize = this.filterConditionNode ? this.filterConditionNode.getSize() : {"x":0,"y":0};
  122. var height = nodeSize.y-toolbarSize.y-pt-pb-filterConditionSize.y-titlebarSize.y;
  123. this.elementContentNode.setStyle("height", ""+height+"px");
  124. if( this.view )this.view.setContentHeight();
  125. }
  126. });
  127. MWF.xApplication.cms.Module.QueryViewer = new Class({
  128. Implements: [Options, Events],
  129. Extends: MWF.QViewer,
  130. options: {
  131. "style": "default",
  132. "hasAction" : false, //cxy add
  133. "resizeNode": true,
  134. "paging" : "scroll",
  135. "perPageCount" : 50,
  136. "selectEnable" : false
  137. },
  138. initialize: function(container, json, options, app, searchContainer){
  139. this.setOptions(options);
  140. this.app = app;
  141. this.searchContainer = searchContainer;
  142. this.path = "../x_component_cms_Module/$ViewExplorer/";
  143. this.cssPath = "../x_component_cms_Module/$ViewExplorer/"+this.options.style+"/viewer.wcss";
  144. this._loadCss();
  145. this.lp = MWF.xApplication.query.Query.LP;
  146. this.container = $(container);
  147. this.json = json;
  148. this.viewJson = null;
  149. this.filterItems = [];
  150. this.searchStatus = "none"; //none, custom, default
  151. this.originalJson = Object.clone(json);
  152. this.selectEnable = this.options.selectEnable;
  153. this.items = [];
  154. this.selectedItems = [];
  155. this.hideColumns = [];
  156. this.openColumns = [];
  157. this.gridJson = null;
  158. this.init(function(){
  159. this.load();
  160. }.bind(this));
  161. },
  162. selectMode : function(){
  163. this.selectEnable = true;
  164. this.createSelectTh();
  165. this.items.each( function (it) {
  166. if( it.clazzType == "category" ){
  167. it.items.each( function(i){
  168. i.createSelectTd();
  169. })
  170. }else{
  171. it.createSelectTd();
  172. }
  173. }.bind(this));
  174. },
  175. disableSelectMode : function(){
  176. this.selectEnable = false;
  177. this.destroySelectTh();
  178. this.items.each( function (it) {
  179. if( it.clazzType == "category" ){
  180. it.items.each( function(i){
  181. i.destroySelectTd();
  182. })
  183. }else{
  184. it.destroySelectTd();
  185. }
  186. }.bind(this));
  187. },
  188. destroySelectTh : function(){
  189. if( this.selectTh ){
  190. this.selectTh.destroy();
  191. this.selectTh = null;
  192. }
  193. },
  194. createSelectTh : function(){
  195. var viewStyles = this.viewJson.viewStyles;
  196. var viewTitleCellNode = (viewStyles && viewStyles["titleTd"]) ? viewStyles["titleTd"] : this.css.viewTitleCellNode;
  197. this.selectTh = new Element("td",{
  198. styles: viewTitleCellNode
  199. }).inject(this.viewTitleLine, "top");
  200. this.selectTh.setStyles({width:"20px"});
  201. this.checkboxElement = new Element("input", {
  202. "type": "checkbox"
  203. }).inject(this.selectTh);
  204. this.checkboxElement.addEvent("click", function () {
  205. this.selectAll()
  206. }.bind(this));
  207. },
  208. selectAll : function () {
  209. var flag = this.checkboxElement.get("checked");
  210. this.items.each(function (it) {
  211. if( it.clazzType == "category" ){
  212. it.expand();
  213. it.items.each( function(i){
  214. if (i.checkboxElement)i.checkboxElement.set("checked", flag)
  215. })
  216. }else{
  217. if (it.checkboxElement)it.checkboxElement.set("checked", flag)
  218. }
  219. }.bind(this))
  220. },
  221. getSelectedIds : function(){
  222. var checkedItems = [];
  223. this.items.each(function (it) {
  224. if( it.clazzType == "category" ){
  225. it.items.each( function(i){
  226. if (i.checkboxElement.get("checked")) {
  227. checkedItems.push( i.data.bundle )
  228. }
  229. })
  230. }else{
  231. if (it.checkboxElement.get("checked")) {
  232. checkedItems.push( it.data.bundle )
  233. }
  234. }
  235. }.bind(this));
  236. return checkedItems;
  237. },
  238. getSelectedItems : function(){
  239. var checkedItems = [];
  240. this.items.each(function (it) {
  241. if( it.clazzType == "category" ){
  242. it.items.each( function(i){
  243. if (i.checkboxElement.get("checked")) {
  244. checkedItems.push( i )
  245. }
  246. })
  247. }else{
  248. if (it.checkboxElement.get("checked")) {
  249. checkedItems.push( it )
  250. }
  251. }
  252. }.bind(this));
  253. return checkedItems;
  254. },
  255. createViewNode: function(data){
  256. this.viewAreaNode.empty();
  257. var viewStyles = this.viewJson.viewStyles;
  258. this.contentAreaNode = new Element("div", {"styles":
  259. (viewStyles && viewStyles["container"]) ? viewStyles["container"] : this.css.contentAreaNode
  260. }).inject(this.viewAreaNode);
  261. this.viewTable = new Element("table.viewTable", {
  262. "styles": this.css.viewTitleTableNode,
  263. "border": "0px",
  264. "cellPadding": "0",
  265. "cellSpacing": "0"
  266. }).inject(this.contentAreaNode);
  267. if( viewStyles ){
  268. if( viewStyles["tableProperties"] )this.viewTable.set(viewStyles["tableProperties"]);
  269. if( viewStyles["table"] )this.viewTable.setStyles(viewStyles["table"]);
  270. }
  271. this.createLoadding();
  272. var viewTitleCellNode = (viewStyles && viewStyles["titleTd"]) ? viewStyles["titleTd"] : this.css.viewTitleCellNode;
  273. if (this.json.isTitle!=="no"){
  274. this.viewTitleLine = new Element("tr", {
  275. "styles": (viewStyles && viewStyles["titleTr"]) ? viewStyles["titleTr"] : this.css.viewTitleLineNode
  276. }).inject(this.viewTable);
  277. if( this.selectEnable ){
  278. this.createSelectTh();
  279. }
  280. //if (this.json.select==="single" || this.json.select==="multi") {
  281. this.selectTitleCell = new Element("td", {
  282. "styles": viewTitleCellNode
  283. }).inject(this.viewTitleLine);
  284. this.selectTitleCell.setStyle("width", "10px");
  285. // if (this.json.titleStyles) this.selectTitleCell.setStyles(this.json.titleStyles);
  286. //}
  287. this.viewJson.firstTdHidden = true;
  288. if( this.json.defaultSelectedScript )this.json.defaultSelectedScript = "";
  289. if( this.viewJson.defaultSelectedScript )this.viewJson.defaultSelectedScript = "";
  290. if( this.isSelectTdHidden() ){
  291. this.selectTitleCell.hide();
  292. }
  293. //序号
  294. if (this.viewJson.isSequence==="yes"){
  295. this.sequenceTitleCell = new Element("td", {
  296. "styles": viewTitleCellNode
  297. }).inject(this.viewTitleLine);
  298. this.sequenceTitleCell.setStyle("width", "10px");
  299. // if (this.json.titleStyles) this.sequenceTitleCell.setStyles(this.json.titleStyles);
  300. }
  301. this.entries = {};
  302. this.viewJson.selectList.each(function(column){
  303. this.entries[column.column] = column;
  304. if (!column.hideColumn){
  305. var viewCell = new Element("td", {
  306. "styles": viewTitleCellNode,
  307. "text": column.displayName
  308. }).inject(this.viewTitleLine);
  309. var size = MWF.getTextSize(column.displayName, viewTitleCellNode);
  310. viewCell.setStyle("min-width", ""+size.x+"px");
  311. // if (this.json.titleStyles) viewCell.setStyles(this.json.titleStyles);
  312. }else{
  313. this.hideColumns.push(column.column);
  314. }
  315. if (column.allowOpen) this.openColumns.push(column.column);
  316. }.bind(this));
  317. if( this.options.hasAction ){
  318. var viewCell = new Element("td", {
  319. "styles": viewTitleCellNode,
  320. "text": "操作"
  321. }).inject(this.viewTitleLine);
  322. viewCell.setStyle("width","40px");
  323. if (this.json.titleStyles) viewCell.setStyles(this.json.titleStyles);
  324. }
  325. this.lookup(data);
  326. }else{
  327. this.entries = {};
  328. this.viewJson.selectList.each(function(column){
  329. this.entries[column.column] = column;
  330. if (column.hideColumn) this.hideColumns.push(column.column);
  331. if (!column.allowOpen) this.openColumns.push(column.column);
  332. }.bind(this));
  333. this.lookup(data);
  334. }
  335. },
  336. loadLayout: function(){
  337. this.node = new Element("div", {"styles": this.css.node}).inject(this.container);
  338. this.actionbarAreaNode = new Element("div.actionbarAreaNode", {"styles": this.css.actionbarAreaNode}).inject(this.node);
  339. // if (this.options.export) this.exportAreaNode = new Element("div", {"styles": this.css.exportAreaNode}).inject(this.node);
  340. this.searchAreaNode = new Element("div", {"styles": this.css.searchAreaNode}).inject(this.searchContainer || this.node );
  341. this.viewAreaNode = new Element("div.viewAreaNode", {"styles": this.css.viewAreaNode}).inject(this.node);
  342. // this.viewPageNode = new Element("div", {"styles": this.css.viewPageNode}).inject(this.node);
  343. this.viewPageAreaNode = new Element("div", {"styles": this.css.viewPageAreaNode}).inject(this.node);
  344. },
  345. //loadData: function(){
  346. // if (this.gridJson.length){
  347. // this.gridJson.each(function(line, i){
  348. // this.items.push(new MWF.xApplication.cms.Module.QueryViewer.Item(this, line, null, i));
  349. // }.bind(this));
  350. // }
  351. //},
  352. loadData: function(){
  353. if( this.checkboxElement ){
  354. this.checkboxElement.set("checked", false )
  355. }
  356. if (this.gridJson.length){
  357. if( !this.options.paging ){
  358. this.gridJson.each(function(line, i){
  359. this.items.push(new MWF.xApplication.cms.Module.QueryViewer.Item(this, line, null, i));
  360. }.bind(this));
  361. }else{
  362. this.loadPaging();
  363. }
  364. }else{
  365. if (this.viewPageAreaNode) this.viewPageAreaNode.empty();
  366. }
  367. },
  368. loadPaging : function(){
  369. this.isItemsLoading = false;
  370. this.pageNumber = 0;
  371. this.isItemsLoaded = false;
  372. this.isSetedScroll = false;
  373. this.setScroll();
  374. this.loadDataByPaging()
  375. },
  376. setScroll : function(){
  377. if( this.options.paging && !this.isSetedScroll ){
  378. this.contentAreaNode.setStyle("overflow","auto");
  379. this.scrollContainerFun = function(){
  380. var scrollSize = this.contentAreaNode.getScrollSize();
  381. var clientSize = this.contentAreaNode.getSize();
  382. var scrollHeight = scrollSize.y - clientSize.y;
  383. //alert( "clientSize.y=" + clientSize.y + " scrollSize.y="+scrollSize.y + " this.contentAreaNode.scrollTop="+this.contentAreaNode.scrollTop);
  384. if (this.contentAreaNode.scrollTop + 150 > scrollHeight ) {
  385. if (!this.isItemsLoaded) this.loadDataByPaging();
  386. }
  387. }.bind(this);
  388. this.isSetedScroll = true;
  389. this.contentAreaNode.addEvent("scroll", this.scrollContainerFun )
  390. }
  391. },
  392. loadDataByPaging : function(){
  393. if( this.isItemsLoading )return;
  394. if( !this.isItemsLoaded ){
  395. var from = Math.min( this.pageNumber * this.options.perPageCount , this.gridJson.length);
  396. var to = Math.min( ( this.pageNumber + 1 ) * this.options.perPageCount + 1 , this.gridJson.length);
  397. this.isItemsLoading = true;
  398. for( var i = from; i<to; i++ ){
  399. this.items.push(new MWF.xApplication.cms.Module.QueryViewer.Item(this, this.gridJson[i], null, i));
  400. }
  401. this.isItemsLoading = false;
  402. this.pageNumber ++;
  403. if( to == this.gridJson.length )this.isItemsLoaded = true;
  404. }
  405. },
  406. loadGroupData: function(){
  407. if( this.checkboxElement ){
  408. this.checkboxElement.set("checked", false )
  409. }
  410. if (this.selectTitleCell && !this.selectTitleCell.retrieve("expandLoaded") ){
  411. if( this.viewJson.viewStyles && this.viewJson.viewStyles["groupCollapseNode"] ){
  412. this.expandAllNode = new Element("span", {
  413. styles : this.viewJson.viewStyles["groupCollapseNode"]
  414. }).inject( this.selectTitleCell );
  415. this.selectTitleCell.setStyle("cursor", "pointer");
  416. }else{
  417. this.selectTitleCell.set("html", "<span style='font-family: Webdings'>"+"<img src='../x_component_query_Query/$Viewer/"+this.options.style+"/icon/expand.png'/>"+"</span>");
  418. }
  419. this.selectTitleCell.setStyle("cursor", "pointer");
  420. this.selectTitleCell.addEvent("click", this.expandOrCollapseAll.bind(this));
  421. this.selectTitleCell.store("expandLoaded", true);
  422. }
  423. // this.expandAll = false;
  424. if (this.gridJson.length){
  425. var i = 0;
  426. this.gridJson.each(function(data){
  427. this.items.push(new MWF.xApplication.cms.Module.QueryViewer.ItemCategory(this, data, i));
  428. i += data.list.length;
  429. }.bind(this));
  430. if (this.getExpandFlag()=="yes")this.expandOrCollapseAll();
  431. }else{
  432. if (this.viewPageAreaNode) this.viewPageAreaNode.empty();
  433. }
  434. },
  435. createSearchNode: function(){
  436. if (this.viewJson.customFilterList && this.viewJson.customFilterList.length){
  437. this.searchStatus = "default";
  438. this.loadFilterSearch();
  439. this.originalSearchContainerWidth = this.searchContainer.getSize().x;
  440. this.viewSearchCustomActionNode.addEvents({
  441. "click": function(){
  442. var parent = this.searchContainer.getParent();
  443. if( parent ){
  444. var x = parent.getParent().getSize().x;
  445. this.searchContainer.setStyle("width", Math.min( 800, x ) + "px" );
  446. }
  447. }.bind(this)
  448. });
  449. }else{
  450. this.searchStatus = "simple";
  451. this.loadSimpleSearch();
  452. }
  453. },
  454. loadSimpleSearch: function(){
  455. return false;
  456. this.searchSimpleNode = new Element("div", {"styles": this.css.searchSimpleNode}).inject(this.searchAreaNode);
  457. this.searchSimpleButtonNode = new Element("div", {"styles": this.css.searchSimpleButtonNode}).inject(this.searchSimpleNode);
  458. this.searchSimpleWarpNode = new Element("div", {"style": "margin-right: 40px; margin-left: 5px; height: 24px; overflow: hidden;"}).inject(this.searchSimpleNode);
  459. this.searchSimpleInputNode = new Element("input", {"type":"text", "styles": this.css.searchSimpleInputNode, "value": this.lp.searchKeywork}).inject(this.searchSimpleWarpNode);
  460. this.searchSimpleButtonNode.addEvent("click", function(){
  461. this.search();
  462. }.bind(this));
  463. this.searchSimpleInputNode.addEvents({
  464. "focus": function(){
  465. if (this.searchSimpleInputNode.get("value")===this.lp.searchKeywork) this.searchSimpleInputNode.set("value", "");
  466. }.bind(this),
  467. "blur": function(){if (!this.searchSimpleInputNode.get("value")) this.searchSimpleInputNode.set("value", this.lp.searchKeywork);}.bind(this),
  468. "keydown": function(e){
  469. if (e.code===13) this.search();
  470. }.bind(this)
  471. });
  472. },
  473. setContentHeight: function(){
  474. if( this.viewSearchCustomCloseActionNode && !this.setCustomSearchCloseEvent ){
  475. this.viewSearchCustomCloseActionNode.addEvent("click", function(){
  476. this.searchContainer.setStyle("width", this.originalSearchContainerWidth + "px" );
  477. }.bind(this));
  478. this.setCustomSearchCloseEvent = true;
  479. }
  480. if(this.viewSearchInputAreaNode)this.viewSearchInputAreaNode.setStyle("width","auto");
  481. debugger;
  482. if( this.node && this.searchContainer && this.viewAreaNode ){
  483. var size = this.node.getSize();
  484. var searchSize;
  485. var parent = this.searchContainer.getParent();
  486. if( parent ){
  487. searchSize = parent.getParent().getSize();
  488. }else{
  489. searchSize = this.searchContainer.getSize();
  490. }
  491. var h = size.y-searchSize.y; // - 80; //80是视图翻页条的高度
  492. if( this.actionbarAreaNode ){
  493. var exportSize = this.actionbarAreaNode.getComputedSize();
  494. h = h-exportSize.totalHeight;
  495. }
  496. var pageSize = this.viewPageAreaNode.getComputedSize();
  497. h = h-pageSize.totalHeight;
  498. this.viewAreaNode.setStyle("height", ""+h+"px");
  499. }
  500. }
  501. });
  502. MWF.xApplication.cms.Module.QueryViewer.Item = new Class({
  503. Extends : MWF.xApplication.query.Query.Viewer.Item,
  504. load: function(){
  505. this.view.fireEvent("queryLoadItemRow", [null, this]);
  506. var _self = this;
  507. var viewStyles = this.view.viewJson.viewStyles;
  508. var viewContentTdNode = ( viewStyles && viewStyles["contentTd"] ) ? viewStyles["contentTd"] : this.css.viewContentTdNode;
  509. this.node = new Element("tr", {
  510. "styles": ( viewStyles && viewStyles["contentTr"] ) ? viewStyles["contentTr"] : this.css.viewContentTrNode
  511. });
  512. if (this.prev){
  513. this.node.inject(this.prev.node, "after");
  514. }else{
  515. this.node.inject(this.view.viewTable);
  516. }
  517. this.node.addEvents({
  518. mouseover : function(){ this.setStyles(_self.css.viewContentTrNode_over) },
  519. mouseout : function(){ this.setStyles(_self.css.viewContentTrNode) }
  520. });
  521. if( this.view.selectEnable ){
  522. this.createSelectTd();
  523. }
  524. //if (this.view.json.select==="single" || this.view.json.select==="multi"){
  525. this.selectTd = new Element("td", { "styles": viewContentTdNode }).inject(this.node);
  526. this.selectTd.setStyles({"cursor": "pointer"});
  527. if (this.view.json.itemStyles) this.selectTd.setStyles(this.view.json.itemStyles);
  528. //}
  529. if( this.view.isSelectTdHidden() ){
  530. this.selectTd.hide();
  531. }
  532. //Object.each(this.data.data, function(cell, k){
  533. // if (this.view.hideColumns.indexOf(k)===-1){
  534. // var td = new Element("td", {"styles": this.css.viewContentTdNode}).inject(this.node);
  535. // if (k!== this.view.viewJson.group.column){
  536. // 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;
  537. // td.set("text", v);
  538. // }
  539. // if (this.view.openColumns.indexOf(k)!==-1){
  540. // this.setOpenWork(td)
  541. // }
  542. // if (this.view.json.itemStyles) td.setStyles(this.view.json.itemStyles);
  543. // }
  544. //}.bind(this));
  545. this.view.viewJson.selectList.each(function(column){
  546. var k = column.column;
  547. var cell = this.data.data[column.column];
  548. if (this.view.hideColumns.indexOf(k)===-1){
  549. var td = new Element("td", {"styles": viewContentTdNode}).inject(this.node);
  550. if (k!== this.view.viewJson.group.column){
  551. //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;
  552. //td.set("text", cell);
  553. var v = cell;
  554. if (column.isHtml){
  555. td.set("html", v);
  556. }else{
  557. td.set("text", v);
  558. }
  559. }
  560. if (this.view.openColumns.indexOf(k)!==-1){
  561. this.setOpenWork(td, column)
  562. }
  563. if (this.view.json.itemStyles) td.setStyles(this.view.json.itemStyles);
  564. }
  565. }.bind(this));
  566. if( this.view.options.hasAction ){
  567. var td = new Element("td", {"styles": this.css.viewContentTdNode}).inject(this.node);
  568. this.loadActions( td );
  569. if (this.view.json.itemStyles) td.setStyles(this.view.json.itemStyles);
  570. }
  571. this.setEvent();
  572. this.view.fireEvent("postLoadItemRow", [null, this]);
  573. },
  574. destroySelectTd : function(){
  575. if( this.checboxTd ){
  576. this.checboxTd.destroy();
  577. this.checboxTd = null;
  578. }
  579. },
  580. createSelectTd : function(){
  581. if( this.checboxTd )return;
  582. var viewStyles = this.view.viewJson.viewStyles;
  583. var viewContentTdNode = ( viewStyles && viewStyles["contentTd"] ) ? viewStyles["contentTd"] : this.css.viewContentTdNode;
  584. this.checboxTd = new Element("td", {styles:viewContentTdNode}).inject(this.node, "top");
  585. this.checkboxElement = new Element("input", {
  586. "type": "checkbox",
  587. "events" : { click : function(ev){ ev.stopPropagation(); } }
  588. }).inject(this.checboxTd);
  589. this.checboxTd.addEvent("click", function(ev){
  590. this.checkboxElement.set("checked", !this.checkboxElement.get("checked") );
  591. ev.stopPropagation();
  592. }.bind(this));
  593. },
  594. loadActions : function( container ){
  595. this.deleteNode = new Element("div", {"styles": this.css.actionDeleteNode, "title": "删除"}).inject(container);
  596. this.deleteNode.addEvents({
  597. "mouseover": function(){this.deleteNode.setStyles(this.css.actionDeleteNode_over);}.bind(this),
  598. "mouseout": function(){this.deleteNode.setStyles(this.css.actionDeleteNode);}.bind(this),
  599. "mousedown": function(){this.deleteNode.setStyles(this.css.actionDeleteNode_down);}.bind(this),
  600. "mouseup": function(){this.deleteNode.setStyles(this.css.actionDeleteNode_over);}.bind(this),
  601. "click": function(e){
  602. this.remove(e);
  603. e.stopPropagation();
  604. }.bind(this)
  605. });
  606. this.editNode = new Element("div", {"styles": this.css.actionEditNode, "title": "编辑"}).inject(container);
  607. this.editNode.addEvents({
  608. "mouseover": function(){this.editNode.setStyles(this.css.actionEditNode_over);}.bind(this),
  609. "mouseout": function(){this.editNode.setStyles(this.css.actionEditNode);}.bind(this),
  610. "mousedown": function(){this.editNode.setStyles(this.css.actionEditNode_down);}.bind(this),
  611. "mouseup": function(){this.editNode.setStyles(this.css.actionEditNode_over);}.bind(this),
  612. "click": function(e){
  613. this.editCMSDocument();
  614. e.stopPropagation();
  615. }.bind(this)
  616. });
  617. },
  618. setOpenWork: function(td, column){
  619. td.setStyle("cursor", "pointer");
  620. if( column.clickCode ) {
  621. // if( !this.view.Macro ){
  622. // MWF.require("MWF.xScript.Macro", function () {
  623. // this.view.businessData = {};
  624. // this.view.Macro = new MWF.Macro.PageContext(this.view);
  625. // }.bind(this), false);
  626. // }
  627. td.addEvent("click", function( ev ){
  628. var result = this.view.Macro.fire(column.clickCode, this, ev);
  629. ev.stopPropagation();
  630. return result;
  631. }.bind(this));
  632. }else{
  633. if (this.view.json.type==="cms"){
  634. td.addEvent("click", function(ev){
  635. this.openCMSDocument(false)
  636. ev.stopPropagation();
  637. }.bind(this));
  638. }else{
  639. td.addEvent("click", function(ev){
  640. this.openWorkAndCompleted(ev)
  641. ev.stopPropagation();
  642. }.bind(this));
  643. }
  644. }
  645. },
  646. openCMSDocument : function( isEdited ){
  647. var appId = "cms.Document"+this.data.bundle;
  648. if (layout.desktop.apps[appId]){
  649. if (!layout.desktop.apps[appId].window){
  650. layout.desktop.apps[appId] = null;
  651. layout.openApplication(null, layout.desktop.apps[appId].options.name, layout.desktop.apps[appId].options, layout.desktop.apps[appId].options.app, false, this, false);
  652. }else{
  653. layout.desktop.apps[appId].setCurrent();
  654. }
  655. //layout.desktop.apps[appId].setCurrent();
  656. }else {
  657. var options = {
  658. "documentId": this.data.bundle,
  659. "readonly" : !isEdited
  660. };
  661. layout.desktop.openApplication(null, "cms.Document", options);
  662. }
  663. },
  664. editCMSDocument : function(){
  665. this.openCMSDocument( true );
  666. },
  667. remove: function(e){
  668. var text = "删除后不能恢复,你确定要删除该文档?";
  669. var _self = this;
  670. this.node.setStyles(this.css.viewContentTrNode_delete);
  671. this.readyRemove = true;
  672. this.view.app.confirm("warn", e, "删除确认", text, 350, 120, function(){
  673. _self.removeCMSDocument(_self, false);
  674. this.close();
  675. }, function(){
  676. _self.node.setStyles(_self.css.viewContentTrNode );
  677. _self.readyRemove = false;
  678. this.close();
  679. });
  680. },
  681. removeCMSDocument: function(){
  682. var id = this.data.bundle;
  683. //this.view.lookupAction.invoke({"name": "deleteDocument","async": true, "parameter": {"id": id },"success": function(json){
  684. // this.readyRemove = false;
  685. // this.node.destroy();
  686. // this.view.app.notice("删除成功", "success");
  687. // MWF.release(this);
  688. //}.bind(this)});
  689. MWF.Actions.get("x_cms_assemble_control").removeDocument(id, function(json){
  690. this.readyRemove = false;
  691. this.node.destroy();
  692. this.view.app.notice("删除成功", "success");
  693. MWF.release(this);
  694. }.bind(this));
  695. }
  696. });
  697. MWF.xApplication.cms.Module.QueryViewer.ItemCategory = new Class({
  698. Extends : MWF.xApplication.query.Query.Viewer.ItemCategory,
  699. load: function(){
  700. this.view.fireEvent("queryLoadCategoryRow", [null, this]);
  701. var viewStyles = this.view.viewJson.viewStyles;
  702. var viewContentCategoryTdNode = ( viewStyles && viewStyles["contentGroupTd"] ) ? viewStyles["contentGroupTd"] : this.css.viewContentCategoryTdNode;
  703. this.node = new Element("tr", {
  704. "styles": (viewStyles && viewStyles["contentTr"]) ? viewStyles["contentTr"] : this.css.viewContentTrNode
  705. }).inject(this.view.viewTable);
  706. //if (this.view.json.select==="single" || this.view.json.select==="multi"){
  707. this.selectTd = new Element("td", {"styles": viewContentCategoryTdNode}).inject(this.node);
  708. if (this.view.json.itemStyles) this.selectTd.setStyles(this.view.json.itemStyles);
  709. //}
  710. var colsapn = this.view.viewJson.selectList.length+1;
  711. if( this.view.options.hasAction ){
  712. colsapn ++
  713. }
  714. this.categoryTd = new Element("td", {
  715. "styles": viewContentCategoryTdNode,
  716. "colspan": colsapn
  717. }).inject(this.node);
  718. this.groupColumn = null;
  719. for (var c = 0; c<this.view.viewJson.selectList.length; c++){
  720. if (this.view.viewJson.selectList[c].column === this.view.viewJson.group.column){
  721. this.groupColumn = this.view.viewJson.selectList[c];
  722. break;
  723. }
  724. }
  725. if (this.groupColumn){
  726. //var text = (this.groupColumn.code) ? MWF.Macro.exec(this.groupColumn.code, {"value": this.data.group, "gridData": this.view.gridJson, "data": this.view.viewData, "entry": this.data}) : this.data.group;
  727. var text = this.data.group;
  728. }else{
  729. var text = this.data.group;
  730. }
  731. if( viewStyles && viewStyles["groupCollapseNode"] ){
  732. this.expandNode = new Element("span", {
  733. styles : viewStyles["groupCollapseNode"]
  734. }).inject( this.categoryTd );
  735. new Element("span", { text : text }).inject( this.categoryTd );
  736. // this.categoryTd.set("text", text );
  737. }else{
  738. this.categoryTd.set("html", "<span style='font-family: Webdings'><img src='../x_component_query_Query/$Viewer/"+this.view.options.style+"/icon/expand.png'/></span> "+text);
  739. }
  740. this.expanded = false;
  741. if (this.view.json.itemStyles) this.categoryTd.setStyles(this.view.json.itemStyles);
  742. this.setEvent();
  743. this.view.fireEvent("postLoadCategoryRow", [null, this]);
  744. },
  745. expand: function( from ){
  746. this.items.each(function(item){
  747. item.node.setStyle("display", "table-row");
  748. }.bind(this));
  749. if( this.expandNode ){
  750. this.expandNode.setStyles( this.view.viewJson.viewStyles["groupExpandNode"] )
  751. }else{
  752. this.node.getElement("span").set("html", "<img src='../x_component_query_Query/$Viewer/"+this.view.options.style+"/icon/down.png'/>");
  753. }
  754. this.expanded = true;
  755. if (!this.loadChild){
  756. //window.setTimeout(function(){
  757. this.data.list.each(function(line, i){
  758. var s = this.idx+i;
  759. this.lastItem = new MWF.xApplication.cms.Module.QueryViewer.Item(this.view, line, (this.lastItem || this), s);
  760. this.items.push(this.lastItem);
  761. //this.items.push(new MWF.xApplication.cms.Module.QueryViewer.Item(this.view, line, this));
  762. }.bind(this));
  763. this.loadChild = true;
  764. //}.bind(this), 10);
  765. }
  766. if( from !== "view" ){
  767. this.view.checkExpandAllStatus();
  768. }
  769. }
  770. });
  771. //MWF.xApplication.cms.Module.Viewer = new Class({
  772. // Implements: [Options, Events],
  773. // Extends: MWF.xApplication.process.Application.Viewer,
  774. // options: {
  775. // "style": "default",
  776. // "hasAction" : false, //cxy add
  777. // "resizeNode": true,
  778. // "actions": {
  779. // //"lookup": {"uri": "/jaxrs/queryview/flag/{view}/application/flag/{application}/execute", "method":"PUT"},
  780. // //"getView": {"uri": "/jaxrs/queryview/flag/{view}/application/flag/{application}"},
  781. // "lookup": {"uri": "/jaxrs/view/{view}/execute", "method":"PUT"},
  782. // "getView": {"uri": "/jaxrs/view/{view}"},
  783. // "listWorkByJob": {"uri": "/jaxrs/job/{job}/find/work/workcompleted"},
  784. // "listTaskByWork": {"uri": "/jaxrs/work/{id}/assignment/manage"}
  785. //
  786. // },
  787. // "actionRoot": "x_processplatform_assemble_surface"
  788. // },
  789. // initialize: function(container, json, options, app, searchContainer){
  790. // this.setOptions(options);
  791. // this.app = app;
  792. // this.searchContainer = searchContainer;
  793. //
  794. // this.path = "../x_component_cms_Module/$ViewExplorer/";
  795. // this.cssPath = "../x_component_cms_Module/$ViewExplorer/"+this.options.style+"/viewer.wcss";
  796. // this._loadCss();
  797. // this.lp = MWF.xApplication.process.Application.LP;
  798. //
  799. // this.container = $(container);
  800. // this.json = json;
  801. //
  802. // this.viewJson = null;
  803. // this.filterItems = [];
  804. // this.searchStatus = "none"; //none, custom, default
  805. //
  806. //
  807. // this.items = [];
  808. // this.selectedItems = [];
  809. // this.hideColumns = [];
  810. // this.openColumns = [];
  811. //
  812. // this.gridJson = null;
  813. //
  814. // this.init(function(){
  815. // this.load();
  816. // }.bind(this));
  817. // },
  818. // selectMode : function(){
  819. // this.selectEnable = true;
  820. // this.createSelectTh();
  821. // this.items.each( function (it) {
  822. // it.createSelectTd();
  823. // }.bind(this));
  824. // },
  825. // disableSelectMode : function(){
  826. // this.selectEnable = false;
  827. // this.destroySelectTh();
  828. // this.items.each( function (it) {
  829. // it.destroySelectTd();
  830. // }.bind(this));
  831. // },
  832. // destroySelectTh : function(){
  833. // if( this.selectTh ){
  834. // this.selectTh.destroy();
  835. // this.selectTh = null;
  836. // }
  837. // },
  838. // createSelectTh : function(){
  839. // this.selectTh = new Element("th").inject(this.viewTitleLine, "top");
  840. // this.checkboxElement = new Element("input", {
  841. // "type": "checkbox"
  842. // }).inject(this.selectTh);
  843. // this.checkboxElement.addEvent("click", function () {
  844. // this.selectAll()
  845. // }.bind(this));
  846. // },
  847. // selectAll : function () {
  848. // var flag = this.checkboxElement.get("checked");
  849. // this.items.each(function (it) {
  850. // if (it.checkboxElement)it.checkboxElement.set("checked", flag)
  851. // }.bind(this))
  852. // },
  853. // getSelectedIds : function(){
  854. // var checkedItems = [];
  855. // this.items.each(function (it) {
  856. // if (it.checkboxElement.get("checked")) {
  857. // checkedItems.push( it.data.bundle )
  858. // }
  859. // }.bind(this));
  860. // return checkedItems;
  861. // },
  862. // getSelectedItems : function(){
  863. // var checkedItems = [];
  864. // this.items.each(function (it) {
  865. // if (it.checkboxElement.get("checked")) {
  866. // checkedItems.push( it )
  867. // }
  868. // }.bind(this));
  869. // return checkedItems;
  870. // },
  871. // createViewNode: function(data){
  872. // this.viewAreaNode.empty();
  873. // this.contentAreaNode = new Element("div", {"styles": this.css.contentAreaNode}).inject(this.viewAreaNode);
  874. //
  875. // this.viewTable = new Element("table", {
  876. // "styles": this.css.viewTitleTableNode,
  877. // "border": "0px",
  878. // "cellPadding": "0",
  879. // "cellSpacing": "0"
  880. // }).inject(this.contentAreaNode);
  881. // this.createLoadding();
  882. //
  883. // if (this.json.isTitle!=="no"){
  884. // this.viewTitleLine = new Element("tr", {"styles": this.css.viewTitleLineNode}).inject(this.viewTable);
  885. //
  886. // //if (this.json.select==="single" || this.json.select==="multi") {
  887. // this.selectTitleCell = new Element("td", {
  888. // "styles": this.css.viewTitleCellNode
  889. // }).inject(this.viewTitleLine);
  890. // this.selectTitleCell.setStyle("width", "10px");
  891. // if (this.json.titleStyles) this.selectTitleCell.setStyles(this.json.titleStyles);
  892. // //}
  893. // this.entries = {};
  894. // this.viewJson.selectList.each(function(column){
  895. // this.entries[column.column] = column;
  896. //
  897. // if (!column.hideColumn){
  898. // var viewCell = new Element("td", {
  899. // "styles": this.css.viewTitleCellNode,
  900. // "text": column.displayName
  901. // }).inject(this.viewTitleLine);
  902. // if (this.json.titleStyles) viewCell.setStyles(this.json.titleStyles);
  903. // }else{
  904. // this.hideColumns.push(column.column);
  905. // }
  906. // if (column.allowOpen) this.openColumns.push(column.column);
  907. // }.bind(this));
  908. //
  909. // if( this.options.hasAction ){
  910. // var viewCell = new Element("td", {
  911. // "styles": this.css.viewTitleCellNode,
  912. // "text": "操作"
  913. // }).inject(this.viewTitleLine);
  914. // viewCell.setStyle("width","40px");
  915. // if (this.json.titleStyles) viewCell.setStyles(this.json.titleStyles);
  916. // }
  917. //
  918. // this.lookup(data);
  919. // }else{
  920. // this.viewJson.selectEntryList.each(function(column){
  921. // if (column.hideColumn) this.hideColumns.push(column.column);
  922. // if (!column.allowOpen) this.openColumns.push(column.column);
  923. // }.bind(this));
  924. // this.lookup(data);
  925. // }
  926. // },
  927. // lookup: function(data){
  928. // this.getLookupAction(function(){
  929. // if (this.json.application){
  930. // this.lookupAction.invoke({"name": "lookup","async": true, "data": (data || null), "parameter": {"view": this.json.name, "application": this.json.application},"success": function(json){
  931. // this.viewData = json.data;
  932. // if (this.viewJson.group.column){
  933. // this.gridJson = json.data.groupGrid;
  934. // this.loadGroupData();
  935. // }else{
  936. // this.gridJson = json.data.grid;
  937. // this.loadData();
  938. // }
  939. // if (this.loadingAreaNode){
  940. // this.loadingAreaNode.destroy();
  941. // this.loadingAreaNode = null;
  942. // }
  943. // }.bind(this)});
  944. // }
  945. // }.bind(this));
  946. // },
  947. // loadLayout: function(){
  948. // this.node = new Element("div", {"styles": this.css.node}).inject(this.container);
  949. // this.searchAreaNode = new Element("div", {"styles": this.css.searchAreaNode}).inject(this.searchContainer || this.node );
  950. // this.viewAreaNode = new Element("div", {"styles": this.css.viewAreaNode}).inject(this.node);
  951. // },
  952. // loadData: function(){
  953. // if (this.gridJson.length){
  954. // this.gridJson.each(function(line, i){
  955. // this.items.push(new MWF.xApplication.cms.Module.Viewer.Item(this, line, null, i));
  956. // }.bind(this));
  957. // }
  958. // },
  959. // loadGroupData: function(){
  960. // if (this.selectTitleCell){
  961. // this.selectTitleCell.set("html", "<span style='font-family: Webdings'>"+"<img src='../x_component_process_Application/$Viewer/"+this.options.style+"/icon/expand.png'/>"+"</span>");
  962. // this.selectTitleCell.setStyle("cursor", "pointer");
  963. // this.selectTitleCell.addEvent("click", this.expandOrCollapseAll.bind(this));
  964. // }
  965. //
  966. // if (this.gridJson.length){
  967. // this.gridJson.each(function(data){
  968. // this.items.push(new MWF.xApplication.cms.Module.Viewer.ItemCategory(this, data));
  969. // }.bind(this));
  970. //
  971. // if (this.json.isExpand=="yes")this.expandOrCollapseAll();
  972. // }
  973. // },
  974. // setContentHeight: function(){
  975. // if( this.node && this.searchAreaNode && this.viewAreaNode ){
  976. // var size = this.node.getSize();
  977. // var searchSize = this.searchAreaNode.getSize();
  978. // var h = size.y-searchSize.y;
  979. // this.viewAreaNode.setStyle("height", ""+h+"px");
  980. // }
  981. // }
  982. //});
  983. //
  984. //MWF.xApplication.cms.Module.Viewer.Item = new Class({
  985. // Extends : MWF.xApplication.process.Application.Viewer.Item,
  986. // load: function(){
  987. // var _self = this;
  988. // this.node = new Element("tr", {"styles": this.css.viewContentTrNode});
  989. // if (this.prev){
  990. // this.node.inject(this.prev.node, "after");
  991. // }else{
  992. // this.node.inject(this.view.viewTable);
  993. // }
  994. // this.node.addEvents({
  995. // mouseover : function(){ this.setStyles(_self.css.viewContentTrNode_over) },
  996. // mouseout : function(){ this.setStyles(_self.css.viewContentTrNode) }
  997. // });
  998. //
  999. // if( this.view.selectEnable ){
  1000. // this.createSelectTd();
  1001. // }
  1002. //
  1003. // //if (this.view.json.select==="single" || this.view.json.select==="multi"){
  1004. // this.selectTd = new Element("td", {"styles": this.css.viewContentTdNode}).inject(this.node);
  1005. // this.selectTd.setStyles({"cursor": "pointer"});
  1006. // if (this.view.json.itemStyles) this.selectTd.setStyles(this.view.json.itemStyles);
  1007. // //}
  1008. //
  1009. // debugger;
  1010. // this.view.viewJson.selectList.each(function(column){
  1011. // var k = column.column;
  1012. // var cell = this.data.data[column.column];
  1013. //
  1014. // if (this.view.hideColumns.indexOf(k)===-1){
  1015. // var td = new Element("td", {"styles": this.css.viewContentTdNode}).inject(this.node);
  1016. // if (k!== this.view.viewJson.group.column){
  1017. // 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;
  1018. // td.set("text", v);
  1019. // }
  1020. // if (this.view.openColumns.indexOf(k)!==-1){
  1021. // this.setOpenWork(td)
  1022. // }
  1023. // if (this.view.json.itemStyles) td.setStyles(this.view.json.itemStyles);
  1024. // }
  1025. //
  1026. // }.bind(this));
  1027. //
  1028. // //Object.each(this.data.data, function(cell, k){
  1029. // // if (this.view.hideColumns.indexOf(k)===-1){
  1030. // // var td = new Element("td", {"styles": this.css.viewContentTdNode}).inject(this.node);
  1031. // // if (k!== this.view.viewJson.group.column){
  1032. // // 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;
  1033. // // td.set("text", v);
  1034. // // }
  1035. // // if (this.view.openColumns.indexOf(k)!==-1){
  1036. // // this.setOpenWork(td)
  1037. // // }
  1038. // // if (this.view.json.itemStyles) td.setStyles(this.view.json.itemStyles);
  1039. // // }
  1040. // //}.bind(this));
  1041. //
  1042. // if( this.view.options.hasAction ){
  1043. // var td = new Element("td", {"styles": this.css.viewContentTdNode}).inject(this.node);
  1044. // this.loadActions( td );
  1045. // if (this.view.json.itemStyles) td.setStyles(this.view.json.itemStyles);
  1046. // }
  1047. //
  1048. // this.setEvent();
  1049. // },
  1050. //
  1051. // loadActions : function( container ){
  1052. // this.deleteNode = new Element("div", {"styles": this.css.actionDeleteNode, "title": "删除"}).inject(container);
  1053. // this.deleteNode.addEvents({
  1054. // "mouseover": function(){this.deleteNode.setStyles(this.css.actionDeleteNode_over);}.bind(this),
  1055. // "mouseout": function(){this.deleteNode.setStyles(this.css.actionDeleteNode);}.bind(this),
  1056. // "mousedown": function(){this.deleteNode.setStyles(this.css.actionDeleteNode_down);}.bind(this),
  1057. // "mouseup": function(){this.deleteNode.setStyles(this.css.actionDeleteNode_over);}.bind(this),
  1058. // "click": function(e){
  1059. // this.remove(e);
  1060. // e.stopPropagation();
  1061. // }.bind(this)
  1062. // });
  1063. //
  1064. // this.editNode = new Element("div", {"styles": this.css.actionEditNode, "title": "编辑"}).inject(container);
  1065. // this.editNode.addEvents({
  1066. // "mouseover": function(){this.editNode.setStyles(this.css.actionEditNode_over);}.bind(this),
  1067. // "mouseout": function(){this.editNode.setStyles(this.css.actionEditNode);}.bind(this),
  1068. // "mousedown": function(){this.editNode.setStyles(this.css.actionEditNode_down);}.bind(this),
  1069. // "mouseup": function(){this.editNode.setStyles(this.css.actionEditNode_over);}.bind(this),
  1070. // "click": function(e){
  1071. // this.editCMSDocument();
  1072. // e.stopPropagation();
  1073. // }.bind(this)
  1074. // });
  1075. // },
  1076. // destroySelectTd : function(){
  1077. // if( this.checboxTd ){
  1078. // this.checboxTd.destroy();
  1079. // this.checboxTd = null;
  1080. // }
  1081. // },
  1082. // createSelectTd : function(){
  1083. // if( this.checboxTd )return;
  1084. // this.checboxTd = new Element("td").inject(this.node, "top");
  1085. // this.checboxTd.addEvent("click", function(ev){
  1086. // ev.stopPropagation();
  1087. // });
  1088. // this.checkboxElement = new Element("input", {
  1089. // "type": "checkbox"
  1090. // }).inject(this.checboxTd);
  1091. // },
  1092. // setOpenWork: function(td){
  1093. // td.setStyle("cursor", "pointer");
  1094. // td.addEvent("click", function(){
  1095. // this.openCMSDocument()
  1096. // }.bind(this));
  1097. // },
  1098. // openCMSDocument : function( isEdited ){
  1099. // var appId = "cms.Document"+this.data.bundle;
  1100. // if (layout.desktop.apps[appId]){
  1101. // layout.desktop.apps[appId].setCurrent();
  1102. // }else {
  1103. // var options = {
  1104. // "documentId": this.data.bundle,
  1105. // "readonly" : !isEdited
  1106. // };
  1107. // layout.desktop.openApplication(null, "cms.Document", options);
  1108. // }
  1109. // },
  1110. // editCMSDocument : function(){
  1111. // this.openCMSDocument( true );
  1112. // },
  1113. // remove: function(e){
  1114. // var text = "删除后不能恢复,你确定要删除该文档?";
  1115. // var _self = this;
  1116. // this.node.setStyles(this.css.viewContentTrNode_delete);
  1117. // this.readyRemove = true;
  1118. // this.view.app.confirm("warn", e, "删除确认", text, 350, 120, function(){
  1119. //
  1120. // _self.removeCMSDocument(_self, false);
  1121. //
  1122. // this.close();
  1123. //
  1124. // }, function(){
  1125. // _self.node.setStyles(_self.css.viewContentTrNode );
  1126. // _self.readyRemove = false;
  1127. // this.close();
  1128. // });
  1129. // },
  1130. // removeCMSDocument: function(){
  1131. // var id = this.data.bundle;
  1132. // MWF.Actions.get("x_cms_assemble_control").removeDocument(id, function(json){
  1133. // //this.viewJson = JSON.decode(json.data.data);
  1134. // //this.json = Object.merge(this.json, json.data);
  1135. // this.readyRemove = false;
  1136. // this.node.destroy();
  1137. // this.view.app.notice("删除成功", "success");
  1138. // MWF.release(this);
  1139. // }.bind(this));
  1140. // }
  1141. //
  1142. //});
  1143. //
  1144. //MWF.xApplication.cms.Module.Viewer.ItemCategory = new Class({
  1145. // Extends : MWF.xApplication.process.Application.Viewer.ItemCategory,
  1146. // load: function(){
  1147. // this.node = new Element("tr", {"styles": this.css.viewContentTrNode}).inject(this.view.viewTable);
  1148. // //if (this.view.json.select==="single" || this.view.json.select==="multi"){
  1149. // this.selectTd = new Element("td", {"styles": this.css.viewContentCategoryTdNode}).inject(this.node);
  1150. // if (this.view.json.itemStyles) this.selectTd.setStyles(this.view.json.itemStyles);
  1151. // //}
  1152. //
  1153. // var colsapn = this.view.viewJson.selectList.length;
  1154. // if( this.view.options.hasAction ){
  1155. // colsapn ++
  1156. // }
  1157. //
  1158. // this.categoryTd = new Element("td", {
  1159. // "styles": this.css.viewContentCategoryTdNode,
  1160. // "colspan": colsapn
  1161. // }).inject(this.node);
  1162. //
  1163. // this.groupColumn = null;
  1164. // for (var c = 0; c<this.view.viewJson.selectList.length; c++){
  1165. // if (this.view.viewJson.selectList[c].column === this.view.viewJson.group.column){
  1166. // this.groupColumn = this.view.viewJson.selectList[c];
  1167. // break;
  1168. // }
  1169. // }
  1170. // if (this.groupColumn){
  1171. // var text = (this.groupColumn.code) ? MWF.Macro.exec(this.groupColumn.code, {"value": this.data.group, "gridData": this.view.gridJson, "data": this.view.viewData, "entry": this.data}) : this.data.group;
  1172. // }else{
  1173. // var text = this.data.group;
  1174. // }
  1175. //
  1176. // this.categoryTd.set("html", "<span style='font-family: Webdings'><img src='../x_component_process_Application/$Viewer/"+this.view.options.style+"/icon/expand.png'/></span> "+text);
  1177. // if (this.view.json.itemStyles) this.categoryTd.setStyles(this.view.json.itemStyles);
  1178. //
  1179. // this.setEvent();
  1180. // },
  1181. // expand: function(){
  1182. // this.items.each(function(item){
  1183. // item.node.setStyle("display", "table-row");
  1184. // }.bind(this));
  1185. // this.node.getElement("span").set("html", "<img src='../x_component_process_Application/$Viewer/"+this.view.options.style+"/icon/down.png'/>");
  1186. // if (!this.loadChild){
  1187. // //window.setTimeout(function(){
  1188. // this.data.list.each(function(line){
  1189. // this.items.push(new MWF.xApplication.cms.Module.Viewer.Item(this.view, line, this));
  1190. // }.bind(this));
  1191. // this.loadChild = true;
  1192. // //}.bind(this), 10);
  1193. // }
  1194. // }
  1195. //});