Common.js 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  1. o2.xDesktop = o2.xDesktop || {};
  2. o2.xd = o2.xDesktop;
  3. o2.xDesktop.requireApp = function(module, clazz, callback, async){
  4. o2.requireApp(module, clazz, callback, async)
  5. };
  6. o2.xApplication = o2.xApplication || {};
  7. MWF.xDesktop.loadConfig = function(callback){
  8. o2.JSON.get("res/config/config.json", function(config) {
  9. layout.config = config;
  10. if (layout.config.app_protocol === "auto") {
  11. layout.config.app_protocol = window.location.protocol;
  12. }
  13. layout.config.systemName = layout.config.systemName || layout.config.footer;
  14. layout.config.systemTitle = layout.config.systemTitle || layout.config.title;
  15. if (callback) callback();
  16. });
  17. };
  18. MWF.xDesktop.getService = function(callback) {
  19. MWF.xDesktop.getServiceAddress(layout.config, function(service, center){
  20. layout.serviceAddressList = service;
  21. layout.centerServer = center;
  22. if (callback) callback();
  23. });
  24. };
  25. MWF.xDesktop.loadService = function(callback){
  26. MWF.xDesktop.loadConfig(function(){
  27. MWF.xDesktop.getService(callback);
  28. });
  29. };
  30. MWF.xDesktop.checkLogin = function(loginFun){
  31. layout.authentication = new MWF.xDesktop.Authentication({
  32. "onLogin": loginFun
  33. });
  34. layout.authentication.isAuthenticated(function(json){
  35. layout.session.user = json.data;
  36. if (loginFun) loginFun();
  37. }.bind(this), function(){
  38. layout.authentication.loadLogin(this.node);
  39. });
  40. };
  41. // MWF.xDesktop.openApplication = function(e, appNames, options, obj, inBrowser){
  42. // if (appNames.substring(0, 4)==="@url"){
  43. // var url = appNames.replace(/\@url\:/i, "");
  44. // var a = new Element("a", {"href": url, "target": "_blank"});
  45. // a.click();
  46. // a.destroy();
  47. // a = null;
  48. // return true;
  49. // }
  50. // var appPath = appNames.split(".");
  51. // var appName = appPath[appPath.length-1];
  52. //
  53. // MWF.xDesktop.requireApp(appNames, function(appNamespace){
  54. // if (appNamespace.options.multitask){
  55. // if (options && options.appId){
  56. // if (this.apps[options.appId]){
  57. // this.apps[options.appId].setCurrent();
  58. // }else {
  59. // this.createNewApplication(e, appNamespace, appName, options, obj, inBrowser);
  60. // }
  61. // }else{
  62. // this.createNewApplication(e, appNamespace, appName, options, obj, inBrowser);
  63. // }
  64. // }else{
  65. // if (this.apps[appName]){
  66. // this.apps[appName].setCurrent();
  67. // }else{
  68. // this.createNewApplication(e, appNamespace, appName, options, obj, inBrowser);
  69. // }
  70. // }
  71. // }.bind(this));
  72. // },
  73. // requireApp: function(appNames, callback, clazzName){
  74. // var appPath = appNames.split(".");
  75. // var appName = appPath[appPath.length-1];
  76. // var appObject = "o2.xApplication."+appNames;
  77. // var className = clazzName || "Main";
  78. // var appClass = appObject+"."+className;
  79. // var appLp = appObject+".lp."+o2.language;
  80. // var baseObject = o2.xApplication;
  81. //
  82. // appPath.each(function(path, i){
  83. // if (i<(appPath.length-1)){
  84. // baseObject[path] = baseObject[path] || {};
  85. // }else {
  86. // baseObject[path] = baseObject[path] || {"options": Object.clone(o2.xApplication.Common.options)};
  87. // }
  88. // baseObject = baseObject[path];
  89. // }.bind(this));
  90. // if (!baseObject.options) baseObject.options = Object.clone(o2.xApplication.Common.options);
  91. //
  92. // o2.requireApp(appNames, "lp."+o2.language, {
  93. // "onRequestFailure": function(){
  94. // o2.requireApp(appNames, "lp.zh-cn", null, false);
  95. // }.bind(this),
  96. // "onSuccess": function(){}.bind(this)
  97. // }, false);
  98. //
  99. // o2.requireApp(appNames, clazzName, function(){
  100. // if (callback) callback(baseObject);
  101. // });
  102. // },
  103. // createNewApplication: function(e, appNamespace, appName, options, obj, inBrowser){
  104. // if (options){
  105. // options.event = e;
  106. // }else{
  107. // options = {"event": e};
  108. // }
  109. //
  110. // var app = new appNamespace["Main"](this, options);
  111. // app.desktop = this;
  112. // if (obj){
  113. // Object.each(obj, function(value, key){
  114. // app[key] = value;
  115. // });
  116. // }
  117. // if (!inBrowser){
  118. // app.taskitem = new o2.xDesktop.Layout.Taskitem(app, this);
  119. // }else{
  120. // app.inBrowser = true;
  121. // }
  122. //
  123. // app.load(true);
  124. //
  125. // var appId = appName;
  126. // if (options.appId){
  127. // appId = options.appId;
  128. // }else{
  129. // if (appNamespace.options.multitask) appId = appId+"-"+(new o2.widget.UUID());
  130. // }
  131. // app.appId = appId;
  132. //
  133. // this.apps[appId] = app;
  134. // return app;
  135. // },
  136. MWF.xDesktop.getDefaultLayout = function(callback){
  137. MWF.UD.getPublicData("defaultLayout", function(json) {
  138. if (json) layout.defaultLayout = json;
  139. if (callback) callback();
  140. }.bind(this));
  141. },
  142. MWF.xDesktop.getUserLayout = function(callback){
  143. MWF.UD.getPublicData("forceLayout", function(json) {
  144. var forceStatus = null;
  145. if (json) forceStatus = json;
  146. MWF.UD.getDataJson("layout", function(json) {
  147. if (json) {
  148. layout.userLayout = json;
  149. if (forceStatus) layout.userLayout.apps = Object.merge(layout.userLayout.apps, forceStatus.apps);
  150. if (callback) callback();
  151. }else{
  152. MWF.UD.getPublicData("defaultLayout", function(json) {
  153. if (json){
  154. layout.userLayout = json;
  155. if (forceStatus) layout.userLayout.apps = Object.merge(layout.userLayout.apps, forceStatus.apps);
  156. }
  157. if (callback) callback();
  158. }.bind(this));
  159. }
  160. }.bind(this));
  161. }.bind(this));
  162. },
  163. MWF.xDesktop.notice = function(type, where, content, target, offset, option){
  164. if (!where) where = { "x": "right", "y": "top" };
  165. if (!type) type = "ok";
  166. var noticeTarget = target || layout.desktop.desktopNode || document.body;
  167. var off = offset;
  168. if (!off){
  169. off = {
  170. x: 10,
  171. y: where.y.toString().toLowerCase()=="bottom" ? 10 : 10
  172. };
  173. }
  174. var options = {
  175. type: type,
  176. position: where,
  177. move: false,
  178. target: noticeTarget,
  179. offset: off,
  180. content: content
  181. };
  182. if( option && typeOf(option) === "object" ){
  183. options = Object.merge( options, option );
  184. }
  185. new mBox.Notice(options);
  186. };
  187. MWF.xDesktop.loadPortal = function(portalId){
  188. layout.openApplication(null, "portal.Portal", {
  189. "portalId": portalId,
  190. "onAfterModulesLoad": function(){
  191. var layoutNode = $("layout");
  192. if (layoutNode) layoutNode.setStyles({
  193. "position": "absolute",
  194. "width": "100%",
  195. "z-index": 100,
  196. "top": "0px",
  197. "left": "0px"
  198. }).fade("out");
  199. var appContentNode = $("appContent");
  200. if (appContentNode) appContentNode.setStyles({
  201. "position": "absolute",
  202. "width": "100%",
  203. "top": "0px",
  204. "opacity": 0,
  205. "left": "0px"
  206. }).fade("in");
  207. }
  208. }, null, true);
  209. };
  210. MWF.name = {
  211. "cns": function(names){
  212. if( typeOf(names) !== "array" )return [];
  213. var n = [];
  214. names.each(function(v){
  215. n.push(this.cn(v));
  216. }.bind(this));
  217. return n;
  218. },
  219. "cn": function(name){
  220. var idx = name.indexOf("@");
  221. return (idx!==-1) ? name.substring(0, idx) : name;
  222. },
  223. "ou": function(name){
  224. var idx = name.indexOf("@");
  225. var lastIdx = name.lastIndexOf("@");
  226. if (idx===-1){
  227. return name;
  228. }else if (lastIdx===idx){
  229. return "";
  230. }else{
  231. return name.substring(idx+1, lastIdx);
  232. }
  233. },
  234. "flag": function(name){
  235. var lastIdx = name.lastIndexOf("@");
  236. if (lastIdx===-1){
  237. return "";
  238. }else{
  239. return name.substring(lastIdx+1, name.length);
  240. }
  241. },
  242. "type": function(){
  243. var lastIdx = name.lastIndexOf("@");
  244. if (lastIdx===-1){
  245. return "";
  246. }else{
  247. return name.substring(lastIdx+1, name.length);
  248. }
  249. }
  250. };
  251. MWF.xDesktop.confirm = function(type, e, title, text, width, height, ok, cancel, callback, mask, style){
  252. MWF.require("MWF.xDesktop.Dialog", function(){
  253. var container = layout.desktop.node || $(document.body);
  254. var size = container.getSize();
  255. var x = 0;
  256. var y = 0;
  257. if (typeOf(e)=="element"){
  258. var position = e.getPosition(container);
  259. x = position.x;
  260. y = position.y;
  261. }else{
  262. if (Browser.name=="firefox"){
  263. x = parseFloat(e.event.clientX);
  264. y = parseFloat(e.event.clientY);
  265. }else{
  266. x = parseFloat(e.event.x);
  267. y = parseFloat(e.event.y);
  268. }
  269. if (e.target){
  270. var position = e.target.getPosition(container);
  271. x = position.x;
  272. y = position.y;
  273. }
  274. // }
  275. }
  276. if (x+parseFloat(width)>size.x){
  277. x = x-parseFloat(width);
  278. }
  279. if (x<0) x = 0;
  280. if (y+parseFloat(height)>size.y){
  281. y = y-parseFloat(height);
  282. }
  283. if (y<0) y = 0;
  284. var ctext = "";
  285. var chtml = "";
  286. if (typeOf(text).toLowerCase()=="object"){
  287. ctext = text.text;
  288. chtml = text.html;
  289. }else{
  290. ctext = text;
  291. }
  292. var dlg = new MWF.xDesktop.Dialog({
  293. "title": title,
  294. "style": style || "o2",
  295. "top": y,
  296. "left": x-20,
  297. "fromTop":y,
  298. "fromLeft": x-20,
  299. "width": width,
  300. "height": height,
  301. "text": ctext,
  302. "html": chtml,
  303. "container": MWF.xDesktop.node,
  304. "maskNode": mask,
  305. "buttonList": [
  306. {
  307. "type": "ok",
  308. "text": MWF.LP.process.button.ok,
  309. "action": ok
  310. },
  311. {
  312. "type": "cancel",
  313. "text": MWF.LP.process.button.cancel,
  314. "action": cancel
  315. }
  316. ]
  317. });
  318. switch (type.toLowerCase()){
  319. case "success":
  320. dlg.content.setStyle("background-image", "url(data:image/png;base64,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)");
  321. break;
  322. case "error":
  323. dlg.content.setStyle("background-image", "url(data:image/png;base64,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)");
  324. break;
  325. case "info":
  326. dlg.content.setStyle("background-image", "url(data:image/png;base64,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)");
  327. break;
  328. case "warn":
  329. dlg.content.setStyle("background-image", "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABgtJREFUeNqsWG2IlFUUft6vmdlZd539GFdTY5VMomy1oBJUSPLXkmQt5I8gCIMK+iH0K4ooEvtTRP7JX9JKWCC1mUUkIkQKSoaZH60t2pboOK37Mc6Ozsw779t57t5xx5ndnTvhC4d373nnnnPuOeee85y1Jr+G6dNcCrBB6AnbQo9tY4UFLLYstIYhMsK/IjRULOF0voATx87jp60fICPygzmFbpn+26pnzK0ilrk2+kTp5kgC6+w4YDfJxpiQJ+QAYUmoKHQLCG4K5YDsCI7fzOPgcBr7172BP0VUILrC/22MnHSbvF6KLcRap1WMmGfsRQRZ2Z8BJv7BybEs9t6/DbuFXaj2VKUx7ize6BZvbHcdvB67D5bdrD/ocwUiruiLZPFGSbziiHci4iVPpEn41MM9pPZWPBofwiOX9uDh05fwkSgf5Dln8lKNZwo+HnRsvBVbjK1eJ39RdWIxJCfhGB0HxjNTBtGQhHiuPQHEY9MG3X5EbXEESA3i4KmL2Ln5Xfwi3CINmjVM9IjnYGeTGOJ2zOx+SU5cE8Hp/DMIopvgxFejlDsFO38IC6ID6JIDRCMz7/WvA1cG8d2PJ/H2y5/gLA2a9ndVmBia2CIxpL3yJ1XG5MUzTh8S3e/B9Zo09x74xSeRS7vyfT+i3sx7KXfRCvSuz2NUltuFJmhj+btdmazMEa+NsZidfIYlsQXzE51oa2tDV1eXenNNPr/PtZ/ylybxwtEP8Ypw4pU22OXrq27NvZIh4dzCeI07lvQiHo8jFovBdV315pp8fp9rP+VTT/cCPL/jRawSTqScma4OT1+sA2vtqN4w552V03meMsKyprLblowlj2s/qC+DepJLsWpjD56T5aDOnRI908yC5jTVOVEl1THWhKhPwrVx/UNYqL0DmyU+0iyVNWooKKxjTGgmh/o6k+h5tRcbhBNTDla9JtKAV+6SZ5RBondZF9YwOkKOq5qeZ6CkUpmJMQYP9Xa0YqX8ySRxXdV9bXMBloShnLg134RvhQ3IEr2tTViqc8ZxNQwwFuCJANsqiOJ4jSHke40cTPQ2RdFZNsYmHrEaiHVEmqI/drTGO+paC5/fTWVRghTaZl1ibJvAqG6hqqygIsG+/iXCID8VFk1ck+9Z5rKoV8BYThc9yyVCE2A0nyDJKOmEoiP98GV7mNwKO7EOwfjPwL9fKL7q2CUzWTRGANiILgghjRkKfTwAyxw4cWt4pR+F4X72NAn2FIxQzg4aECMtcmISl3WzDFxi1sDH046hZ4JQ45kbgmeyFXhGUGB7i8YzhgcTvbg2jiHCKPrTJXgmE56ZgKIoH5XGn/YEz3QLnpm/GrcmTiE9dkiOOaBuU9QzN+bsMM7dNoYo/qk1OC597vEahDbDU5BtuVbBMysr8ExS45lBV74LnjHwMhFjahRndn2rUN9NhsrmOEEUX/LNbgB/F13yLBJtyTvwDNfkNyLnj8s4dv5vBbQmVdcmWuc4IYl0MjC44jz0guWb0NLSojAMoQTfXJPvGNQs6hGvnNt7GIeFkyGk4hcVGM41HCcEZIV1ix53jJ+QieDOWKi18CN2fWOo58QF/PD5ETVPZXTO3IZ8Aeea9Dj2FOt4R7WDq1L0SlVFT9bke3WMofzf/8I3fTvwlXAYomy5IChj9AxT4FyTmsBBPyyXoVpSRe9qP8LfXkNw7ZAaIfnmmnwbs++l3AspHPl4APuEw2I3pr0S1owqMsO4B97BYz3L8eaiFvR6uHsPceWFNI7s/h6f7TqgblBq1umgPCRwwOJcc3EEe3NsOXN4yYRUkRQ5vw5j4P19+FQbkha6Ud04aiZK8Y6lS2ALxwmi+GQcqxyGKDT3RCBSSkKpLM4xWXWOjGi6UXeirDKI1yXOcYIonuC5s1lQoTbKKlPZCdYUBZpSGZxhHeH11bdmVOdIrnLWNv4vhPzQ1sBnHlE8wTMxK6EiERqBEfEIYQC7L5seew1LPCurLmgZTdl6/4UwaWmWzq2IRvHNGrNGNLmYdpCvb0dBl/hJXdAKJrOF1eClsHX4XP12NM+qGFJKmnz9NgYV/wkwAMYATK0QLuhAAAAAAElFTkSuQmCC)");
  330. break;
  331. default:
  332. //dlg.content.setStyle("background-image", "");
  333. }
  334. dlg.show();
  335. if (callback) callback(dlg);
  336. }.bind(this));
  337. };
  338. MWF.xDesktop.getImageSrc = function( id ){
  339. if (layout.config.app_protocol=="auto"){
  340. layout.config.app_protocol = window.location.protocol;
  341. }
  342. var addressObj = layout.serviceAddressList["x_file_assemble_control"];
  343. if (addressObj){
  344. var address = layout.config.app_protocol+"//"+addressObj.host+(addressObj.port==80 ? "" : ":"+addressObj.port)+addressObj.context;
  345. }else{
  346. var host = layout.config.center.host || window.location.hostname;
  347. var port = layout.config.center.port;
  348. var address = layout.config.app_protocol+"//"+host+(port=="80" ? "" : ":"+port)+"/x_program_center";
  349. }
  350. var url = "/jaxrs/file/"+id+"/download/stream";
  351. return o2.filterUrl(address+url);
  352. };
  353. MWF.xDesktop.setImageSrc = function(){
  354. if( !event )return;
  355. var obj = event.srcElement ? event.srcElement : event.target;
  356. if( !obj )return;
  357. obj.onerror = null;
  358. var id = obj.get("data-id");
  359. if( id )obj.set("src" , MWF.xDesktop.getImageSrc(id) );
  360. };
  361. MWF.xDesktop.uploadImage = function( reference, referencetype, formData, file, success, failure ){
  362. this.action = new MWF.xDesktop.Actions.RestActions("/xDesktop/Actions/action.json", "x_file_assemble_control");
  363. this.action.invoke({
  364. "name": "uploadImage",
  365. "parameter": {"reference" : reference, "referencetype": referencetype},
  366. "data": formData,
  367. "file": file,
  368. "success": success,
  369. "failure": failure
  370. });
  371. };
  372. MWF.xDesktop.uploadImageByScale = function( reference, referencetype, scale, formData, file, success, failure ){
  373. this.action = new MWF.xDesktop.Actions.RestActions("/xDesktop/Actions/action.json", "x_file_assemble_control");
  374. this.action.invoke({
  375. "name": "uploadImageByScale",
  376. "parameter": {"reference" : reference, "referencetype": referencetype, "scale" : scale || 0},
  377. "data": formData,
  378. "file": file,
  379. "success": success,
  380. "failure": failure
  381. });
  382. };
  383. MWF.xDesktop.copyImage = function( reference, referencetype, attachmentId, scale, success, failure ){
  384. this.action = new MWF.xDesktop.Actions.RestActions("/xDesktop/Actions/action.json", "x_file_assemble_control");
  385. this.action.invoke({
  386. "name": "copyImage",
  387. "parameter": {"reference" : reference, "referencetype": referencetype, "attachmentId" : attachmentId, "scale":scale || 0 },
  388. "success": success,
  389. "failure": failure
  390. });
  391. };
  392. MWF.xDesktop.getPortalFileUr = function(id, app){
  393. var root = "x_portal_assemble_surface";
  394. var url = MWF.Actions.getHost(root)+"/"+root+MWF.Actions.get(root).action.actions.readFile.uri;
  395. url = url.replace("{flag}", id);
  396. url = url.replace("{applicationFlag}", app);
  397. return url
  398. };
  399. MWF.xDesktop.getProcessFileUr = function(id, app){
  400. var root = "x_processplatform_assemble_surface";
  401. var url = MWF.Actions.getHost(root)+"/"+root+MWF.Actions.get(root).action.actions.readFile.uri;
  402. url = url.replace("{flag}", id);
  403. url = url.replace("{applicationFlag}", app);
  404. return url
  405. };
  406. MWF.xDesktop.getCMSFileUr = function(id, app){
  407. var root = "x_cms_assemble_control";
  408. var url = MWF.Actions.getHost(root)+"/"+root+MWF.Actions.get(root).action.actions.readFile.uri;
  409. url = url.replace("{flag}", id);
  410. url = url.replace("{applicationFlag}", app);
  411. return url
  412. };
  413. MWF.xDesktop.getServiceAddress = function(config, callback){
  414. var error = function(){
  415. //MWF.xDesktop.notice("error", {"x": "right", "y": "top"}, "")
  416. var loadingNode = $("browser_loadding");
  417. var contentNode = $("appContent");
  418. ((loadingNode) ? loadingNode.getFirst() : contentNode).empty();
  419. var html= "<div style='width: 800px; color: #ffffff; margin: 30px auto'>" +
  420. "<div style='height: 40px;'>" +
  421. " <div style='height: 40px; width: 40px; float: left; background: url(../x_desktop/img/error.png)'></div>" +
  422. " <div style='margin-left: 50px; font-size: 20px; line-height: 40px;'>"+MWF.LP.desktop.notice.errorConnectCenter1+"</div>" +
  423. "</div><div style='margin-left: 0px;'>";
  424. if (typeOf(config.center)==="array"){
  425. config.center.each(function(center){
  426. var h = (center.host) ? center.host : window.location.hostname;
  427. var p = (center.port) ? ":"+center.port : "";
  428. var url = "http://"+h+p+"/x_program_center/jaxrs/echo";
  429. html+="<br><a style='margin-left: 50px; color: #e0e8d1; line-height: 30px;' href='"+url+"' target='_blank'>"+url+"</a>"
  430. });
  431. }else{
  432. var h = (config.center.host) ? config.center.host : window.location.hostname;
  433. var p = (config.center.port) ? ":"+config.center.port : "";
  434. var url = "http://"+h+p+"/x_program_center/jaxrs/echo";
  435. html+="<br><a style='margin-left: 50px; color: #e0e8d1; line-height: 30px;'href='"+url+"' target='_blank'>"+url+"</a>"
  436. }
  437. html+="</div><br><div style='margin-left: 50px; font-size: 20px'>"+MWF.LP.desktop.notice.errorConnectCenter2+"</div></div>";
  438. ((loadingNode) ? loadingNode.getFirst() : contentNode).set("html", html);
  439. if (!loadingNode && contentNode){
  440. contentNode.setStyle("background-color", "#666666");
  441. }
  442. };
  443. if (typeOf(config.center)==="object"){
  444. MWF.xDesktop.getServiceAddressConfigObject(config.center, callback, error);
  445. }else if (typeOf(config.center)==="array"){
  446. var center = null;
  447. //var center = MWF.xDesktop.chooseCenter(config);
  448. if (center){
  449. MWF.xDesktop.getServiceAddressConfigObject(center, callback, function(){
  450. MWF.xDesktop.getServiceAddressConfigArray(config, callback, error);
  451. }.bind(this));
  452. }else{
  453. MWF.xDesktop.getServiceAddressConfigArray(config, callback, error);
  454. }
  455. }
  456. };
  457. MWF.xDesktop.chooseCenter = function(config){
  458. var host = window.location.host;
  459. var center = null;
  460. for (var i=0; i<config.center.length; i++){
  461. var ct = config.center[i];
  462. if (!ct.host || (ct.host.toString().toLowerCase()===host.toString().toLowerCase())){
  463. center = ct;
  464. break;
  465. }
  466. }
  467. return center;
  468. };
  469. MWF.xDesktop.getServiceAddressConfigArray = function(config, callback, error) {
  470. var requests = [];
  471. config.center.each(function(center){
  472. requests.push(
  473. MWF.xDesktop.getServiceAddressConfigObject(center, function(serviceAddressList, center){
  474. requests.each(function(res){
  475. if (res) if (res.isRunning()){res.cancel();}
  476. });
  477. if (callback) callback(serviceAddressList, center);
  478. }.bind(this), function(){
  479. if (requests.length){
  480. for (var i=0; i<requests.length; i++){
  481. if (requests[i].isRunning()) return "";
  482. }
  483. }
  484. if (error) error();
  485. }.bind(this))
  486. );
  487. }.bind(this));
  488. };
  489. MWF.xDesktop.getServiceAddressConfigObject = function(center, callback, error){
  490. var centerConfig = center;
  491. if (!centerConfig) centerConfig = layout.config.center;
  492. var host = centerConfig.host || window.location.hostname;
  493. var port = centerConfig.port;
  494. var uri = "";
  495. if (layout.config.app_protocol=="auto"){
  496. layout.config.app_protocol = window.location.protocol;
  497. }
  498. if (!port || port=="80"){
  499. uri = layout.config.app_protocol+"//"+host+"/x_program_center/jaxrs/distribute/assemble/source/{source}";
  500. }else{
  501. uri = layout.config.app_protocol+"//"+host+":"+port+"/x_program_center/jaxrs/distribute/assemble/source/{source}";
  502. }
  503. var currenthost = (layout.config.applicationServer && layout.config.applicationServer.host) ? layout.config.applicationServer.host : window.location.hostname;
  504. //var currenthost = window.location.hostname;
  505. uri = uri.replace(/{source}/g, currenthost);
  506. //var uri = "http://"+layout.config.center+"/x_program_center/jaxrs/distribute/assemble";
  507. try{
  508. return MWF.restful("get", uri, null, {
  509. "onSuccess": function(json){
  510. //this.serviceAddressList = json.data;
  511. //this.centerServer = center;
  512. if (callback) callback(json.data, center);
  513. }.bind(this),
  514. "onRequestFailure": function(xhr){
  515. if (error) error(xhr);
  516. }.bind(this),
  517. "onError": function(xhr){
  518. if (error) error(xhr);
  519. }.bind(this)
  520. });
  521. }catch(e){
  522. if (error) error();
  523. return null;
  524. }
  525. };
  526. MWF.xDesktop.$globalEvents = {};
  527. MWF.xDesktop.addEvent = function(name, type, fn){
  528. if (!MWF.xDesktop.$globalEvents[name]) MWF.xDesktop.$globalEvents[name] = {};
  529. if (!MWF.xDesktop.$globalEvents[name][type]) MWF.xDesktop.$globalEvents[name][type] = [];
  530. MWF.xDesktop.$globalEvents[name][type].push(fn);
  531. };
  532. MWF.xDesktop.addEvents = function(name, o){
  533. if (!MWF.xDesktop.$globalEvents[name]) MWF.xDesktop.$globalEvents[name] = {};
  534. Object.each(o, function(fn, type){
  535. MWF.xDesktop.addEvent(name, type, fn);
  536. }.bind(this));
  537. };
  538. MWF.xDesktop.removeEvent = function(name, type, fn){
  539. if (!MWF.xDesktop.$globalEvents[name]) return true;
  540. if (!MWF.xDesktop.$globalEvents[name][type]) return true;
  541. MWF.xDesktop.$globalEvents[name][type].erase(fn);
  542. };
  543. MWF.xDesktop.removeEvents = function(name, type){
  544. if (!MWF.xDesktop.$globalEvents[name]) return true;
  545. if (!MWF.xDesktop.$globalEvents[name][type]) return true;
  546. MWF.xDesktop.$globalEvents[name][type] = [];
  547. };
  548. MWF.org = {
  549. parseOrgData: function(data, flat){
  550. if (data.distinguishedName){
  551. var flag = data.distinguishedName.substr(data.distinguishedName.length-2, 2);
  552. switch (flag.toLowerCase()){
  553. case "@i":
  554. return this.parseIdentityData(data, flat);
  555. break;
  556. case "@p":
  557. return this.parsePersonData(data, flat);
  558. break;
  559. case "@u":
  560. return this.parseUnitData(data, flat);
  561. break;
  562. case "@g":
  563. return this.parseGroupData(data, flat);
  564. break;
  565. case "@r":
  566. return this.parseRoleData(data, flat);
  567. break;
  568. case "@a":
  569. return this.parseAttributeData(data, flat);
  570. break;
  571. default:
  572. return data;
  573. }
  574. }else{
  575. return data;
  576. }
  577. },
  578. parseIdentityData: function(data, flat){
  579. var rData = {
  580. "id": data.id,
  581. "name": data.name,
  582. "unique": data.unique,
  583. "distinguishedName": data.distinguishedName,
  584. // "dn": data.distinguishedName,
  585. "person": data.person,
  586. "unit": data.unit,
  587. "unitName": data.unitName,
  588. // "unitLevel": data.unitLevel,
  589. "unitLevelName": data.unitLevelName
  590. };
  591. if( data.personName )rData.personName = data.personName;
  592. if( data.personEmployee )rData.personEmployee = data.personEmployee;
  593. if( data.personUnique )rData.personUnique = data.personUnique;
  594. if( data.personDn )rData.personDn = data.personDn;
  595. if( data.ignoreEmpower )rData.ignoreEmpower = true;
  596. if( data.ignoredEmpower )rData.ignoredEmpower = true;
  597. if( !flat || !data.personDn || !data.personEmployee || !data.personUnique ){
  598. var woPerson = data.woPerson;
  599. if (!data.woPerson){
  600. //MWF.require("MWF.xDesktop.Actions.RestActions", null, false);
  601. //this.action = new MWF.xDesktop.Actions.RestActions("", "x_organization_assemble_control");
  602. //var uri = "/jaxrs/person/{flag}";
  603. //uri = uri.replace("{flag}", data.person);
  604. //this.action.invoke({"uri": uri, "success": function(json){
  605. // woPerson = json.data;
  606. //}.bind(this), "async":false});
  607. MWF.Actions.get("x_organization_assemble_control").getPerson(data.person, function(json){
  608. woPerson = json.data
  609. }, null, false);
  610. }
  611. rData.personName = woPerson.name;
  612. rData.personEmployee = woPerson.employee;
  613. rData.personUnique = woPerson.unique;
  614. rData.personDn = woPerson.distinguishedName;
  615. if (!flat){
  616. rData.woPerson = {
  617. "id": woPerson.id,
  618. "genderType": woPerson.genderType,
  619. "name": woPerson.name,
  620. "employee": woPerson.employee,
  621. "unique": woPerson.unique,
  622. "distinguishedName": woPerson.distinguishedName,
  623. "dn": woPerson.distinguishedName,
  624. "mail": woPerson.mail,
  625. "weixin": woPerson.weixin,
  626. "qq": woPerson.qq,
  627. "mobile": woPerson.mobile,
  628. "officePhone": woPerson.officePhone
  629. };
  630. }
  631. }
  632. return rData;
  633. },
  634. parsePersonData: function(data){
  635. return {
  636. "id": data.id,
  637. "genderType": data.genderType,
  638. "name": data.name,
  639. "employee": data.employee,
  640. "unique": data.unique,
  641. "distinguishedName": data.distinguishedName,
  642. "dn": data.distinguishedName,
  643. "mail": data.mail,
  644. "weixin": data.weixin,
  645. "qq": data.qq,
  646. "mobile": data.mobile,
  647. "officePhone": data.officePhone
  648. }
  649. },
  650. parseUnitData: function(data){
  651. return {
  652. "id": data.id,
  653. "name": data.name,
  654. "unique": data.unique,
  655. "distinguishedName": data.distinguishedName,
  656. "dn": data.distinguishedName,
  657. "typeList":data.typeList,
  658. "shortName": data.shortName,
  659. "level": data.level,
  660. "levelName": data.levelName
  661. }
  662. },
  663. parseGroupData: function(data){
  664. return {
  665. "id": data.id,
  666. "name": data.name,
  667. "unique": data.unique,
  668. "distinguishedName": data.distinguishedName,
  669. "dn": data.distinguishedName
  670. }
  671. },
  672. parseRoleData: function(data){
  673. return {
  674. "id": data.id,
  675. "name": data.name,
  676. "unique": data.unique,
  677. "distinguishedName": data.distinguishedName,
  678. "dn": data.distinguishedName
  679. }
  680. },
  681. parseAttributeData: function(){
  682. return {
  683. "id": data.id,
  684. "description": data.description,
  685. "name": data.name,
  686. "unique": data.unique,
  687. "distinguishedName": data.distinguishedName,
  688. "dn": data.distinguishedName,
  689. "person": data.person,
  690. "attributeList": Array.clone(data.attributeList)
  691. }
  692. }
  693. };