ViewExplorer.js 52 KB

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