Main.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617
  1. MWF.xApplication.cms = MWF.xApplication.cms || {};
  2. MWF.CMSE = MWF.xApplication.cms.Index = MWF.xApplication.cms.Index ||{};
  3. MWF.require("MWF.widget.O2Identity", null,false);
  4. //MWF.xDesktop.requireApp("cms.Index", "Actions.RestActions", null, false);
  5. MWF.xApplication.cms.Index.options = {
  6. multitask: false,
  7. executable: true
  8. };
  9. MWF.xApplication.cms.Index.Main = new Class({
  10. Extends: MWF.xApplication.Common.Main,
  11. Implements: [Options, Events],
  12. options: {
  13. "style": "default",
  14. "name": "cms.Index",
  15. "icon": "icon.png",
  16. "width": "1220",
  17. "height": "680",
  18. "isResize": true,
  19. "isMax": true,
  20. "title": MWF.CMSE.LP.title
  21. },
  22. onQueryLoad: function(){
  23. this.lp = MWF.xApplication.cms.Index.LP;
  24. },
  25. loadApplication: function(callback){
  26. this.columns = [];
  27. this.restActions = MWF.Actions.get("x_cms_assemble_control"); //new MWF.xApplication.cms.Index.Actions.RestActions();
  28. this.createNode();
  29. this.loadApplicationContent();
  30. },
  31. reload : function(){
  32. this.scrollNode.destroy();
  33. this.loadContent();
  34. },
  35. createNode: function(){
  36. this.content.setStyle("overflow", "hidden");
  37. this.node = new Element("div", {
  38. "styles": this.css.container
  39. }).inject(this.content);
  40. },
  41. loadApplicationContent: function(){
  42. this.loadTitle();
  43. this.loadContent();
  44. },
  45. loadTitle : function(){
  46. this.loadTitleBar();
  47. this.loadCreateDocumentActionNode();
  48. //this.loadTitleTextNode();
  49. //this.loadRefreshNode();
  50. this.loadSearchNode();
  51. },
  52. loadTitleBar: function(){
  53. this.titleBarContainer = new Element("div", {
  54. "styles": this.css.titleBarContainer
  55. }).inject(this.node);
  56. this.titleBar = new Element("div", {
  57. "styles": this.css.titleBar
  58. }).inject(this.titleBarContainer);
  59. },
  60. loadCreateDocumentActionNode: function() {
  61. this.createDocumentAction = new Element("div", {
  62. "styles": this.css.createDocumentAction,
  63. "text" : this.lp.start
  64. }).inject(this.titleBar);
  65. this.createDocumentAction.addEvents({
  66. "click": function(e){
  67. MWF.xDesktop.requireApp("cms.Index", "Newer", function(){
  68. this.creater = new MWF.xApplication.cms.Index.Newer(null,null,this,this);
  69. this.creater.load();
  70. }.bind(this));
  71. }.bind(this),
  72. "mouseover" : function(e){
  73. this.createDocumentAction.setStyles( this.css.createDocumentAction_over )
  74. }.bind(this),
  75. "mouseout" : function(e){
  76. this.createDocumentAction.setStyles( this.css.createDocumentAction )
  77. }.bind(this)
  78. });
  79. },
  80. //loadTitleTextNode: function(){
  81. // this.titleTextNode = new Element("div", {
  82. // "styles": this.css.titleTextNode,
  83. // "text": this.lp.title
  84. // }).inject(this.titleBar);
  85. //},
  86. loadSearchNode: function(){
  87. this.searchBarAreaNode = new Element("div", {
  88. "styles": this.css.searchBarAreaNode
  89. }).inject(this.titleBar);
  90. this.searchBarNode = new Element("div", {
  91. "styles": this.css.searchBarNode
  92. }).inject(this.searchBarAreaNode);
  93. this.searchBarActionNode = new Element("div", {
  94. "styles": this.css.searchBarActionNode
  95. }).inject(this.searchBarNode);
  96. this.searchBarResetActionNode = new Element("div", {
  97. "styles": this.css.searchBarResetActionNode
  98. }).inject(this.searchBarNode);
  99. this.searchBarResetActionNode.setStyle("display","none");
  100. this.searchBarInputBoxNode = new Element("div", {
  101. "styles": this.css.searchBarInputBoxNode
  102. }).inject(this.searchBarNode);
  103. this.searchBarInputNode = new Element("input", {
  104. "type": "text",
  105. "value": this.lp.searchKey,
  106. "styles": this.css.searchBarInputNode
  107. }).inject(this.searchBarInputBoxNode);
  108. var _self = this;
  109. this.searchBarActionNode.addEvent("click", function(){
  110. this.search();
  111. }.bind(this));
  112. this.searchBarResetActionNode.addEvent("click", function(){
  113. this.reset();
  114. }.bind(this));
  115. this.searchBarInputNode.addEvents({
  116. "focus": function(){
  117. if (this.value==_self.lp.searchKey) this.set("value", "");
  118. },
  119. "blur": function(){if (!this.value) this.set("value", _self.lp.searchKey);},
  120. "keydown": function(e){
  121. if (e.code==13){
  122. this.search();
  123. e.preventDefault();
  124. }
  125. }.bind(this),
  126. "selectstart": function(e){
  127. e.preventDefault();
  128. }
  129. });
  130. },
  131. //loadRefreshNode : function(){
  132. // this.refreshAreaNode = new Element("div", {
  133. // "styles": this.css.refreshAreaNode
  134. // }).inject(this.titleBar);
  135. //
  136. // this.refreshActionNode = new Element("div", {
  137. // "styles": this.css.refreshActionNode,
  138. // "title" : this.lp.refresh
  139. // }).inject(this.refreshAreaNode);
  140. // this.refreshActionNode.addEvent("click", function(){
  141. // this.reload();
  142. // }.bind(this));
  143. //},
  144. loadContent: function(callback){
  145. //this.container = new Element("div", {
  146. // "styles": this.css.container
  147. //}).inject(this.node);
  148. this.scrollNode = new Element("div", {
  149. "styles": this.css.scrollNode
  150. }).inject(this.node);
  151. this.contentWarpNode = new Element("div", {
  152. "styles": this.css.node
  153. }).inject(this.scrollNode);
  154. this.contentContainerNode = new Element("div",{
  155. "styles" : this.css.contentContainerNode
  156. }).inject(this.contentWarpNode);
  157. this.contentNode = new Element("div", {
  158. "styles": this.css.contentNode
  159. }).inject(this.contentContainerNode);
  160. this.createColumnNodes();
  161. //MWF.require("MWF.widget.ScrollBar", function(){
  162. // new MWF.widget.ScrollBar(this.contentContainerNode, {
  163. // "indent": false,"style":"xApp_TaskList", "where": "before", "distance": 30, "friction": 4, "axis": {"x": false, "y": true},
  164. // "onScroll": function(y){
  165. // //var scrollSize = _self.elementContentNode.getScrollSize();
  166. // //var clientSize = _self.elementContentNode.getSize();
  167. // //var scrollHeight = scrollSize.y-clientSize.y;
  168. // //if (y+200>scrollHeight) {
  169. // // if (!_self.view.isItemsLoaded) _self.view.loadElementList();
  170. // //}
  171. // }
  172. // });
  173. //}.bind(this));
  174. //
  175. this.setContentSize();
  176. this.addEvent("resize", function(){
  177. this.setContentSize();
  178. }.bind(this));
  179. },
  180. createColumnNodes: function(){
  181. this.restActions.listColumn(function(json){
  182. if( typeOf(json.data)!="array" )return;
  183. var tmpArray = json.data;
  184. tmpArray.sort(function( a, b ){
  185. return parseFloat(a.appInfoSeq) - parseFloat(b.appInfoSeq)
  186. });
  187. json.data = tmpArray;
  188. var i = 0;
  189. json.data.each(function(column){
  190. var column = new MWF.xApplication.cms.Index.Column(this, column, {"index" : i++ });
  191. column.load();
  192. this.columns.push(column);
  193. }.bind(this));
  194. }.bind(this));
  195. },
  196. search : function( key ){
  197. if(!key)key = this.searchBarInputNode.get("value");
  198. if(key==this.lp.searchKey)key="";
  199. if( key!="" ){
  200. this.searchBarResetActionNode.setStyle("display","block");
  201. this.searchBarActionNode.setStyle("display","none");
  202. }
  203. this.columns.each(function( column ){
  204. column.search( key );
  205. }.bind(this))
  206. },
  207. reset : function(){
  208. this.searchBarInputNode.set("value",this.lp.searchKey);
  209. this.searchBarResetActionNode.setStyle("display","none");
  210. this.searchBarActionNode.setStyle("display","block");
  211. this.columns.each(function( column ){
  212. column.loadList();
  213. }.bind(this))
  214. },
  215. clearContent: function(){
  216. //if (this.indexContent){
  217. // if (this.index) delete this.index;
  218. // this.indexContent.destroy();
  219. // this.indexContent = null;
  220. //}
  221. },
  222. openManager : function(){
  223. var appId = "cms.Column";
  224. if (this.desktop.apps[appId]){
  225. this.desktop.apps[appId].setCurrent();
  226. }else {
  227. this.desktop.openApplication(null, "cms.Column", {
  228. "appId": appId,
  229. "onQueryLoad": function(){
  230. }
  231. });
  232. }
  233. },
  234. recordStatus: function(){
  235. //if (this.menu.currentNavi){
  236. // var naviType = this.menu.currentNavi.retrieve("type");
  237. // var naviData = this.menu.currentNavi.retrieve("naviData");
  238. // return {
  239. // "navi" :{ "type": naviType, "id": naviData.id, "columnId":naviData.appId},
  240. // "view" : this.index.currentViewData.id ? this.index.currentViewData.id : "default"
  241. // };
  242. //}
  243. },
  244. setContentSize: function(){
  245. //var titlebarSize = this.titleBar ? this.titleBar.getSize() : {"x":0,"y":0};
  246. //var nodeSize = this.node.getSize();
  247. //var pt = this.contentContainerNode.getStyle("padding-top").toFloat();
  248. //var pb = this.contentContainerNode.getStyle("padding-bottom").toFloat();
  249. //
  250. //var height = nodeSize.y-pt-pb-titlebarSize.y;
  251. //this.contentContainerNode.setStyle("height", ""+height+"px");
  252. var nodeSize = this.content.getSize();
  253. var titlebarSize = this.titleBarContainer ? this.titleBarContainer.getSize() : {"x":0,"y":0};
  254. this.scrollNode.setStyle("height", ""+(nodeSize.y-titlebarSize.y)+"px");
  255. if (this.contentWarpNode){
  256. var count = (nodeSize.x/550).toInt();
  257. var x = 550 * count;
  258. var m = (nodeSize.x-x)/2-10;
  259. this.contentWarpNode.setStyles({
  260. "width": ""+x+"px",
  261. "margin-left": ""+m+"px"
  262. });
  263. this.titleBar.setStyles({
  264. "margin-left": ""+(m+10)+"px",
  265. "margin-right": ""+(m+10)+"px"
  266. })
  267. }
  268. }
  269. });
  270. MWF.xApplication.cms.Index.Column = new Class({
  271. Implements: [Options, Events],
  272. options: {
  273. "where": "bottom",
  274. "index" : 0
  275. },
  276. initialize: function (app, data, options) {
  277. this.setOptions(options);
  278. this.app = app;
  279. this.container = this.app.contentNode;
  280. this.data = data;
  281. this.isNew = false;
  282. this.defaultColumnIcon = "/x_component_cms_Index/$Main/"+this.app.options.style+"/icon/column.png";
  283. },
  284. load : function(){
  285. this.loadNode();
  286. this.loadTop();
  287. this.loadCategory();
  288. this.loadList();
  289. },
  290. loadNode : function(){
  291. this.node = new Element("div.columnItem", {
  292. "styles": this.app.css.columnItemNode
  293. }).inject(this.container,this.options.where);
  294. //if( this.options.index % 2 == 1 ){
  295. // this.node.setStyles({
  296. // "margin-left" : "0px",
  297. // "margin-right" : "0px"
  298. // })
  299. //}else{
  300. // this.node.setStyles({
  301. // "margin-left" : "0px",
  302. // "margin-right" : "10px"
  303. // })
  304. //}
  305. var leftNode = this.leftNode = new Element("div.columnItemLeftNode", {
  306. "styles": this.app.css.columnItemLeftNode
  307. }).inject(this.node);
  308. var rightNode = this.rightNode = new Element("div.columnItemRightNode", {
  309. "styles": this.app.css.columnItemRightNode
  310. }).inject(this.node);
  311. this.categoryContainer = new Element("div.categoryContainer",{
  312. "styles" : this.app.css.categoryContainer
  313. }).inject(this.rightNode);
  314. this.categoryList = new Element("div.categoryList",{
  315. "styles" : this.app.css.categoryList
  316. }).inject(this.categoryContainer);
  317. this.documentList = new Element("div",{
  318. "styles" : this.app.css.documentList
  319. }).inject(this.rightNode);
  320. },
  321. loadTop: function () {
  322. this.data.name = this.data.appName;
  323. var columnName = this.data.appName;
  324. var alias = this.data.appAlias;
  325. var memo = this.data.description;
  326. var order = this.data.appInfoSeq;
  327. var creator =this.data.creatorUid;
  328. var createTime = this.data.createTime;
  329. var leftNode = this.leftNode;
  330. //var iconNode = this.iconNode = new Element("div",{
  331. // "styles" : this.app.css.columnItemIconNode
  332. //}).inject(topNode);
  333. //
  334. //if (this.data.appIcon){
  335. // this.iconNode.setStyle("background-image", "url(data:image/png;base64,"+this.data.appIcon+")");
  336. //}else{
  337. // this.iconNode.setStyle("background-image", "url("+this.defaultColumnIcon+")")
  338. //}
  339. var iconAreaNode = this.iconAreaNode = new Element("div",{
  340. "styles" : this.app.css.columnItemIconAreaNode
  341. }).inject(leftNode);
  342. //var mod = this.options.index % this.backgroundColors.length;
  343. //this.color = this.backgroundColors[mod];
  344. //iconAreaNode.setStyle("background-color",this.color);
  345. var iconNode = this.iconNode = new Element("img",{
  346. "styles" : this.app.css.columnItemIconNode
  347. }).inject(iconAreaNode);
  348. if (this.data.appIcon){
  349. this.iconNode.set("src", "data:image/png;base64,"+this.data.appIcon+"");
  350. }else{
  351. this.iconNode.set("src", this.defaultColumnIcon)
  352. }
  353. iconNode.makeLnk({
  354. "par": this._getLnkPar()
  355. });
  356. var textNode = new Element("div",{
  357. "styles" : this.app.css.columnItemTextNode
  358. }).inject(leftNode);
  359. var titleNode = new Element("div",{
  360. "styles" : this.app.css.columnItemTitleNode,
  361. "text" : columnName,
  362. "title": (alias) ? columnName+" ("+alias+") " : columnName
  363. }).inject(textNode);
  364. var description = ( memo && memo!="") ? memo : this.app.lp.noDescription;
  365. var descriptionNode = new Element("div",{
  366. "styles" : this.app.css.columnItemDescriptionNode,
  367. "text" : description,
  368. "title" : description
  369. }).inject(textNode);
  370. var _self = this;
  371. leftNode.addEvents({
  372. //"mouseover": function(){if (!_self.selected) this.setStyles(_self.app.css.columnItemNode_over);},
  373. //"mouseout": function(){if (!_self.selected) this.setStyles(_self.app.css.columnItemNode);},
  374. "click": function(e){_self.clickColumnNode(_self,this,e)}
  375. });
  376. },
  377. _getLnkPar: function(){
  378. var lnkIcon = this.defaultColumnIcon;
  379. if (this.data.appIcon) lnkIcon = "data:image/png;base64,"+this.data.appIcon;
  380. var appId = "cms.Module"+this.data.id;
  381. return {
  382. "icon": lnkIcon,
  383. "title": this.data.appName,
  384. "par": "cms.Module#{\"columnId\": \""+this.data.id+"\", \"appId\": \""+appId+"\"}"
  385. };
  386. },
  387. clickColumnNode : function(_self, el, e ){
  388. this.openModule("all",e);
  389. },
  390. clickMoreLink : function(e){
  391. var key = this.app.searchBarInputNode.get("value");
  392. if(key==this.app.lp.searchKey)key="";
  393. this.openModule("all",e, key);
  394. },
  395. openModule : function( categoryId , e , searchKey, isCategory ){
  396. var appId = "cms.Module"+this.data.id;
  397. if (this.app.desktop.apps[appId]){
  398. if( searchKey ){
  399. this.app.desktop.apps[appId].close();
  400. }else{
  401. this.app.desktop.apps[appId].setCurrent();
  402. return;
  403. }
  404. }
  405. this.app.desktop.openApplication(e, "cms.Module", {
  406. "columnData": this.data,
  407. "appId": appId,
  408. "categoryId": categoryId,
  409. //"viewId" : "default",
  410. "isCategory" : isCategory || false,
  411. "searchKey" : searchKey
  412. });
  413. },
  414. loadCategory : function(){
  415. var _self = this;
  416. if( typeOf(this.data.wrapOutCategoryList) != "array" )return;
  417. var tmpArray = this.data.wrapOutCategoryList;
  418. tmpArray.sort(function( a, b ){
  419. return parseFloat(a.categorySeq) - parseFloat(b.categorySeq)
  420. });
  421. this.data.wrapOutCategoryList = tmpArray;
  422. this.data.wrapOutCategoryList.each(function(category){
  423. var categoryNode = new Element("div.categoryItem",{
  424. "text" : category.categoryName,
  425. "styles" : this.app.css.categoryItem
  426. }).inject( this.categoryList, "top" );
  427. categoryNode.store("category",category);
  428. categoryNode.addEvents({
  429. "mouseover" : function(){this.setStyles(_self.app.css.categoryItem_over)},
  430. "mouseout" : function(){this.setStyles(_self.app.css.categoryItem)},
  431. "click" : function(e){
  432. _self.openModule( this.retrieve("category").id , e , "", true)
  433. }
  434. })
  435. }.bind(this));
  436. if( this.categoryList.getScrollSize().y > this.categoryContainer.getSize().y ){
  437. this.categoryArrowNode = new Element("div.categoryArrowNode",{
  438. "styles" : this.app.css.categoryArrowNode
  439. }).inject( this.categoryContainer );
  440. this.categoryArrowNode.addEvents({
  441. "mouseover" : function(){
  442. this.categoryArrowNode.setStyles( this.categoryArrow != "down" ? this.app.css.categoryArrowNode_over : this.app.css.categoryArrowNode_down_over);
  443. }.bind(this),
  444. "mouseout" : function(){
  445. this.categoryArrowNode.setStyles( this.categoryArrow != "down" ? this.app.css.categoryArrowNode : this.app.css.categoryArrowNode_down);
  446. }.bind(this),
  447. "click" : function( e ){
  448. if( this.categoryArrow != "down" ){
  449. this.openCategoryList( e );
  450. }else{
  451. this.closeCategoryList( e )
  452. }
  453. }.bind(this)
  454. });
  455. }
  456. },
  457. openCategoryList : function( e ){
  458. this.categoryArrow = "down";
  459. this.categoryArrowNode.setStyles(this.app.css.categoryArrowNode_down_over );
  460. this.categoryList.setStyles(this.app.css.categoryList_all);
  461. window.closeCategoryList = this.closeCategoryList.bind(this);
  462. this.app.content.addEvent("click", window.closeCategoryList );
  463. e.stopPropagation();
  464. },
  465. closeCategoryList : function( e ){
  466. this.categoryArrow = "up";
  467. this.categoryArrowNode.setStyles(this.app.css.categoryArrowNode );
  468. this.categoryList.setStyles(this.app.css.categoryList);
  469. this.app.content.removeEvent("click" , window.closeCategoryList );
  470. e.stopPropagation();
  471. },
  472. destroy: function(){
  473. this.node.destroy();
  474. MWF.release(this);
  475. delete this;
  476. },
  477. search : function(key){
  478. if( !key || key==""){
  479. this.loadList();
  480. return;
  481. }
  482. if(this.documentList)this.documentList.empty();
  483. if(this.moreArea)this.moreArea.destroy();
  484. var filter = {
  485. "title": key,
  486. "appIdList": [this.data.id],
  487. "statusList": ["published"]
  488. };
  489. this.getDocumentData(function(json){
  490. //json.count //栏目下文档总数
  491. //json.size //当前条数
  492. if( json.count > json.size ){
  493. this.loadMoreItem( json.count, json.size )
  494. }
  495. json.data.each(function(data){
  496. this.listDocument(data);
  497. }.bind(this))
  498. }.bind(this), null, filter );
  499. },
  500. loadList: function(){
  501. if(this.documentList)this.documentList.empty();
  502. if(this.moreArea)this.moreArea.destroy();
  503. this.getDocumentData(function(json){
  504. //json.count //栏目下文档总数
  505. //json.size //当前条数
  506. //if( json.count > json.size ){
  507. // this.loadMoreItem( json.count, json.size )
  508. //}
  509. json.data.each(function(data){
  510. this.listDocument(data);
  511. }.bind(this))
  512. }.bind(this));
  513. },
  514. listDocument:function(data){
  515. var _self = this;
  516. var documentItem = new Element("div",{
  517. "text" : data.title,
  518. "title" : data.title,
  519. "styles" : this.app.css.documentItem
  520. }).inject(this.documentList);
  521. documentItem.store("documentId",data.id);
  522. documentItem.addEvents({
  523. "mouseover" : function(){this.setStyles(_self.app.css.documentItem_over)},
  524. "mouseout" : function(){this.setStyles(_self.app.css.documentItem)},
  525. "click" : function(){
  526. var documentId = this.retrieve("documentId");
  527. var appId = "cms.Document"+documentId;
  528. if (_self.app.desktop.apps[appId]){
  529. _self.app.desktop.apps[appId].setCurrent();
  530. }else {
  531. var options = {
  532. "documentId": documentId,
  533. "appId": appId,
  534. "readonly": true
  535. };
  536. _self.app.desktop.openApplication(null, "cms.Document", options);
  537. }
  538. }
  539. })
  540. },
  541. getDocumentData: function(callback, count, filter){
  542. if(!count)count=6;
  543. var id = "(0)";
  544. if(!filter){
  545. filter = {
  546. "appIdList": [this.data.id],
  547. "statusList": ["published"]
  548. }
  549. }
  550. this.app.restActions.listDocumentFilterNext(id, count, filter, function(json){
  551. if (callback) callback(json);
  552. });
  553. },
  554. loadMoreItem: function(total, size){
  555. var _self = this;
  556. this.moreArea = new Element("div",{
  557. "styles" : this.app.css.moreArea
  558. }).inject(this.rightNode);
  559. this.moreLinkText = new Element("div",{
  560. "styles" : this.app.css.moreLinkText,
  561. "text" : "更多("+(total-size)+")"
  562. }).inject(this.moreArea);
  563. this.moreLinkImage = new Element("div",{
  564. "styles" : this.app.css.moreLinkImage
  565. }).inject(this.moreArea);
  566. this.moreArea.addEvents({
  567. "mouseover" : function(){
  568. this.moreLinkText.setStyles(_self.app.css.moreLinkText_over);
  569. this.moreLinkImage.setStyles(_self.app.css.moreLinkImage_over)
  570. }.bind(this),
  571. "mouseout" : function(){
  572. this.moreLinkText.setStyles(_self.app.css.moreLinkText);
  573. this.moreLinkImage.setStyles(_self.app.css.moreLinkImage)
  574. }.bind(this),
  575. "click" : function(e){_self.clickMoreLink( e )}
  576. });
  577. //this.moreArea.setStyle("background-color",this.color)
  578. }
  579. });