ViewExplorer.js 53 KB

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