ViewExplorer.js 52 KB

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