workmobilewithaction.js 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553
  1. layout = window.layout || {};
  2. var locate = window.location;
  3. layout.protocol = locate.protocol;
  4. var href = locate.href;
  5. if (href.indexOf("debugger")!=-1) layout.debugger = true;
  6. layout.mobile = true;
  7. layout.desktop = layout;
  8. layout.desktop.session = {};
  9. layout.session = layout.session || {};
  10. o2.addReady(function(){
  11. o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
  12. //MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
  13. MWF.loadLP("zh-cn");
  14. // MWF.require("MWF.widget.Mask", null, false);
  15. // layout.mask = new MWF.widget.Mask({"style": "desktop"});
  16. // layout.mask.load();
  17. MWF.require("MWF.xDesktop.Layout", function(){
  18. MWF.require("MWF.xDesktop.Authentication", null, false);
  19. (function(){
  20. layout.load = function(){
  21. if (this.isAuthentication()){
  22. //var preview = window.frameElement.retrieve("preview");
  23. //layout.desktop = window.frameElement.ownerDocument.window.layout.desktop;
  24. //
  25. this.node = $("layout");
  26. this.content = $(document.body);
  27. this.path = "/x_component_process_Work/$Main/";
  28. this.cssPath = "/x_component_process_Work/$Main/default/css.wcss";
  29. this._loadCss();
  30. MWF.require("MWF.xDesktop.MessageMobile", function(){
  31. layout.message = new MWF.xDesktop.MessageMobile();
  32. layout.message.load();
  33. }.bind(this));
  34. // MWF.xDesktop.requireApp("process.Work", "Actions.RestActions", null, false);
  35. // this.action = new MWF.xApplication.process.Work.Actions.RestActions();
  36. this.action = MWF.Actions.get("x_processplatform_assemble_surface");
  37. //MWF.xDesktop.requireApp("process.Work", "lp."+MWF.language, null, false);
  38. MWF.xDesktop.requireApp("process.Work", "lp."+MWF.language, {
  39. "onRequestFailure": function(){
  40. MWF.xDesktop.requireApp("process.Work", "lp.zh-cn", null, false);
  41. }.bind(this),
  42. "onSuccess": function(){}.bind(this)
  43. }, false);
  44. this.lp = MWF.xApplication.process.Work.LP;
  45. this.options = this.getIds();
  46. this.loadWork(this.options);
  47. //MWF.require("MWF.xApplication.process.Xform.Form", function(){
  48. // layout.appForm = new MWF.APPForm($("layout"), preview.data);
  49. // layout.appForm.load();
  50. //});
  51. }
  52. };
  53. layout.close = function(){
  54. $(document.body).addEvent("click", function(){window.close();});
  55. };
  56. layout._loadCss = function(){
  57. var key = encodeURIComponent(this.cssPath);
  58. if (MWF.widget.css[key]){
  59. this.css = MWF.widget.css[key];
  60. }else{
  61. var r = new Request.JSON({
  62. url: this.cssPath,
  63. secure: false,
  64. async: false,
  65. method: "get",
  66. noCache: false,
  67. onSuccess: function(responseJSON, responseText){
  68. this.css = responseJSON;
  69. MWF.widget.css[key] = responseJSON;
  70. }.bind(this),
  71. onError: function(text, error){
  72. alert(error + text);
  73. }
  74. });
  75. r.send();
  76. }
  77. };
  78. //layout.message = {
  79. // "node": (function(){
  80. // var node = new Element("div", {
  81. // "styles": {
  82. // "width": "100%",
  83. // "position": "absolute",
  84. // "top": "0px",
  85. // "left": "0px",
  86. // "background-color": "#FFF",
  87. // "overflow": "hidden"
  88. // }
  89. // }).inject($(document.body));
  90. // return node
  91. // })(),
  92. //
  93. // addMessage: function(msg){
  94. // var subjectNode = new Element("div", {
  95. // "styles": {
  96. // "margin": "0px 10px",
  97. // "height": "20px",
  98. // "line-height": "20px",
  99. // "font-size": "14px",
  100. // "color": "#4387cd"
  101. // }
  102. // }).inject(this.node);
  103. // var contentNode = new Element("div", {
  104. // "styles": {
  105. // "width": "100%",
  106. // "position": "absolute",
  107. // "top": "0px",
  108. // "left": "0px",
  109. // "background-color": "#FFF",
  110. // "overflow": "hidden"
  111. // }
  112. // }).inject(this.node);
  113. // }
  114. //
  115. //},
  116. layout.getIds = function(){
  117. var href = window.location.href;
  118. var qStr = href.substr(href.indexOf("?")+1, href.length);
  119. var qDatas = qStr.split("&");
  120. var obj = {};
  121. qDatas.each(function(d){
  122. var q = d.split("=");
  123. obj[q[0].toLowerCase()] = q[1];
  124. });
  125. return obj;
  126. };
  127. layout.loadWork = function(options){
  128. var method = "";
  129. var id = "";
  130. if (options.taskid){
  131. method = "getTask";
  132. id = options.taskid;
  133. }else if (options.taskcompletedid) {
  134. method = "getTaskCompleted";
  135. id = options.taskcompletedid;
  136. }else if (options.readid) {
  137. method = "getRead";
  138. id = options.readid;
  139. }else if (options.readid) {
  140. method = "getReaded";
  141. id = options.readid;
  142. }else if (options.reviewid) {
  143. method = "getReview";
  144. id = options.reviewid;
  145. }
  146. var workMethod = "";
  147. var workid = "";
  148. if (method && id){
  149. this.action[method](id, function(json){
  150. if (json.data.workCompleted){
  151. workMethod = "getJobByWorkCompletedMobile";
  152. workid = json.data.workCompleted
  153. }else{
  154. workMethod = "getJobByWorkMobile";
  155. workid = json.data.work
  156. }
  157. }.bind(this), null, false);
  158. }
  159. if (!workMethod || !workid){
  160. if (options.workid) {
  161. workMethod = "getJobByWorkMobile";
  162. workid = options.workid;
  163. }else if (options.workcompletedid){
  164. workMethod = "getJobByWorkCompletedMobile";
  165. workid = options.workcompletedid;
  166. }
  167. }
  168. if (workMethod && workid){
  169. this.action[workMethod](function(json){
  170. if (this.mask) this.mask.hide();
  171. this.parseData(json.data);
  172. this.openWork();
  173. if( this.control.allowSave || this.control.allowProcessing ){
  174. $("MWF_form_action_save").getParent().setStyle("display","");
  175. }else{
  176. $("MWF_form_action_save").getParent().getPrevious().setStyle("height","100%");
  177. }
  178. if( this.control.allowSave ){
  179. var action = $("MWF_form_action_save");
  180. action.setStyle("display","");
  181. action.addEvents({
  182. "click": function(){
  183. this.appForm.saveWork();
  184. }.bind(this),
  185. "touchstart": function(){
  186. this.setStyle("background-color", "#EEEEEE");
  187. },
  188. "touchcancel": function(){
  189. this.setStyle("background-color", "#ffffff");
  190. },
  191. "touchend": function(){
  192. this.setStyle("background-color", "#ffffff");
  193. }
  194. });
  195. }else{
  196. $("MWF_form_action_save").setStyle("display","none")
  197. }
  198. if( this.control.allowProcessing ){
  199. var action = $("MWF_form_action_process");
  200. action.setStyle("display","");
  201. action.addEvents({
  202. "click": function(){
  203. this.appForm.processWork();
  204. }.bind(this),
  205. "touchstart": function(){
  206. this.setStyle("background-color", "#EEEEEE");
  207. },
  208. "touchcancel": function(){
  209. this.setStyle("background-color", "#ffffff");
  210. },
  211. "touchend": function(){
  212. this.setStyle("background-color", "#ffffff");
  213. }
  214. });
  215. }else{
  216. $("MWF_form_action_process").setStyle("display","none")
  217. }
  218. }.bind(this), function(xhr){
  219. this.errorWork(xhr);
  220. }.bind(this), workid);
  221. }
  222. // var method = "";
  223. // var id = "";
  224. //
  225. // if (options.taskid){
  226. // method = "getJobByTaskMobile";
  227. // id = options.taskid;
  228. // }else if (options.workid) {
  229. // method = "getJobByWorkMobile";
  230. // id = options.workid;
  231. // }else if (options.workCompletedId) {
  232. // method = "getJobByWorkCompletedMobile";
  233. // id = options.workCompletedId;
  234. // }
  235. // if (method && id){
  236. // this.action[method](function(json){
  237. // if (this.mask) this.mask.hide();
  238. // this.parseData(json.data);
  239. // this.openWork();
  240. // }.bind(this), function(xhr){
  241. // this.errorWork();
  242. // }.bind(this), id);
  243. // }
  244. };
  245. layout.addEvent = window.addEvent.bind(window);
  246. layout.addEvents = window.addEvents.bind(window);
  247. layout.errorWork = function(xhr){
  248. if (this.mask) this.mask.hide();
  249. var json = JSON.decode(xhr.responseText);
  250. if (json.prompt.indexOf("ExceptionWorkAccessDenied")!=-1){
  251. if (this.authentication) this.authentication.loadLogin(this.node);
  252. }else{
  253. this.node.set("text", "openError");
  254. }
  255. };
  256. layout.getCurrentTaskData = function(data){
  257. if ((data.currentTaskIndex || data.currentTaskIndex===0) && data.currentTaskIndex != -1){
  258. this.options.taskid = this.taskList[data.currentTaskIndex].id;
  259. return this.taskList[data.currentTaskIndex];
  260. }
  261. //if (this.taskList){
  262. // if (this.taskList.length==1){
  263. // this.options.taskid = this.taskList[0].id;
  264. // return this.taskList[0];
  265. // }
  266. //}
  267. return null;
  268. };
  269. layout.parseData = function(data){
  270. // this.setTitle(this.options.title+"-"+data.work.title);
  271. this.activity = data.activity;
  272. this.data = data.data;
  273. this.taskList = data.taskList;
  274. this.currentTask = this.getCurrentTaskData(data);
  275. this.taskList = data.taskList;
  276. this.readList = data.readList;
  277. this.work = data.work;
  278. this.workCompleted = data.workCompleted;
  279. this.workLogList = data.workLogList;
  280. this.attachmentList = data.attachmentList;
  281. this.inheritedAttachmentList = data.inheritedAttachmentList;
  282. this.control = data.control;
  283. this.form = (data.form) ? JSON.decode(MWF.decodeJsonString(data.form.data)): null;
  284. this.formInfor = data.form;
  285. };
  286. layout.openWork = function(){
  287. if (this.form){
  288. MWF.xDesktop.requireApp("process.Xform", "Form", function(){
  289. this.appForm = new MWF.APPForm(this.node, this.form, {"readonly": (this.currentTask) ? false : true});
  290. this.appForm.businessData = {
  291. "data": this.data,
  292. "taskList": this.taskList,
  293. "readList": this.readList,
  294. "work": this.work,
  295. "workCompleted": this.workCompleted,
  296. "control": this.control,
  297. "activity": this.activity,
  298. "task": this.currentTask,
  299. "workLogList": this.workLogList,
  300. "attachmentList": this.attachmentList,
  301. "inheritedAttachmentList": this.inheritedAttachmentList,
  302. "formInfor": this.formInfor,
  303. "status": {
  304. "readonly": (this.currentTask) ? false : true
  305. }
  306. };
  307. this.appForm.workAction = this.action;
  308. this.appForm.app = this;
  309. this.appForm.load();
  310. if (window.o2android && window.o2android.appFormLoaded){
  311. window.o2android.appFormLoaded('true');
  312. }
  313. if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.appFormLoaded){
  314. window.webkit.messageHandlers.appFormLoaded.postMessage('true')
  315. }
  316. }.bind(this));
  317. }
  318. };
  319. layout.isAuthentication = function(){
  320. layout.authentication = new MWF.xDesktop.Authentication({
  321. "onLogin": layout.load.bind(layout)
  322. });
  323. var returnValue = true;
  324. this.authentication.isAuthenticated(function(json){
  325. this.user = json.data;
  326. this.session.user = json.data;
  327. }.bind(this), function(){
  328. if (layout.mask) layout.mask.hide();
  329. this.authentication.loadLogin(document.body);
  330. returnValue = false;
  331. }.bind(this));
  332. return returnValue;
  333. };
  334. //layout.getServiceAddress = function(callback){
  335. // var host = layout.config.center.host || window.location.hostname;
  336. // var port = layout.config.center.port;
  337. // var uri = "";
  338. // if (!port || port=="80"){
  339. // uri = "http://"+host+"/x_program_center/jaxrs/distribute/assemble/source/{source}";
  340. // }else{
  341. // uri = "http://"+host+":"+port+"/x_program_center/jaxrs/distribute/assemble/source/{source}";
  342. // }
  343. // var currenthost = window.location.hostname;
  344. // uri = uri.replace(/{source}/g, currenthost);
  345. // //var uri = "http://"+layout.config.center+"/x_program_center/jaxrs/distribute/assemble";
  346. // MWF.restful("get", uri, null, function(json){
  347. // this.serviceAddressList = json.data;
  348. // if (callback) callback();
  349. // }.bind(this));
  350. //};
  351. //layout.getServiceAddress = function(callback){
  352. // if (typeOf(layout.config.center)=="object"){
  353. // this.getServiceAddressConfigObject(callback);
  354. // }else if (typeOf(layout.config.center)=="array"){
  355. // this.getServiceAddressConfigArray(callback);
  356. // }
  357. //
  358. //};
  359. //layout.getServiceAddressConfigArray = function(callback) {
  360. // var requests = [];
  361. // layout.config.center.each(function(center){
  362. // requests.push(
  363. // this.getServiceAddressConfigObject(function(){
  364. // requests.each(function(res){
  365. // if (res.isRunning()){res.cancel();}
  366. // });
  367. // if (callback) callback();
  368. // }.bind(this), center)
  369. // );
  370. // }.bind(this));
  371. //};
  372. //layout.getServiceAddressConfigObject = function(callback, center){
  373. // var centerConfig = center;
  374. // if (!centerConfig) centerConfig = layout.config.center;
  375. // var host = centerConfig.host || window.location.hostname;
  376. // var port = centerConfig.port;
  377. // var uri = "";
  378. // if (!port || port=="80"){
  379. // uri = "http://"+host+"/x_program_center/jaxrs/distribute/assemble/source/{source}";
  380. // }else{
  381. // uri = "http://"+host+":"+port+"/x_program_center/jaxrs/distribute/assemble/source/{source}";
  382. // }
  383. // var currenthost = window.location.hostname;
  384. // uri = uri.replace(/{source}/g, currenthost);
  385. // //var uri = "http://"+layout.config.center+"/x_program_center/jaxrs/distribute/assemble";
  386. // return MWF.restful("get", uri, null, function(json){
  387. // this.serviceAddressList = json.data;
  388. // this.centerServer = center;
  389. // if (callback) callback();
  390. // }.bind(this));
  391. //};
  392. layout.confirm = function(type, e, title, text, width, height, ok, cancel, callback, mask, style){
  393. MWF.require("MWF.xDesktop.Dialog", function(){
  394. var size = this.content.getSize();
  395. var x = 0;
  396. var y = 0;
  397. if (typeOf(e)=="element"){
  398. var position = e.getPosition(this.content);
  399. x = position.x;
  400. y = position.y;
  401. }else{
  402. if (Browser.name=="firefox"){
  403. x = parseFloat(e.event.clientX);
  404. y = parseFloat(e.event.clientY);
  405. }else{
  406. x = parseFloat(e.event.x);
  407. y = parseFloat(e.event.y);
  408. }
  409. // if (!x || !y){
  410. if (e.target){
  411. var position = e.target.getPosition(this.content);
  412. x = position.x;
  413. y = position.y;
  414. }
  415. // }
  416. }
  417. if (x+parseFloat(width)>size.x){
  418. x = x-parseFloat(width);
  419. }
  420. if (x<0) x = 0;
  421. if (y+parseFloat(height)>size.y){
  422. y = y-parseFloat(height);
  423. }
  424. if (y<0) y = 0;
  425. var ctext = "";
  426. var chtml = "";
  427. if (typeOf(text).toLowerCase()=="object"){
  428. ctext = text.text;
  429. chtml = text.html;
  430. }else{
  431. ctext = text;
  432. }
  433. var dlg = new MWF.xDesktop.Dialog({
  434. "title": title,
  435. "style": style || "flat",
  436. "top": y,
  437. "left": x-20,
  438. "fromTop":y,
  439. "fromLeft": x-20,
  440. "width": width,
  441. "height": height,
  442. "text": ctext,
  443. "html": chtml,
  444. "mark": false,
  445. "container": this.content,
  446. "maskNode": mask || this.content,
  447. "buttonList": [
  448. {
  449. "text": MWF.LP.process.button.ok,
  450. "action": ok
  451. },
  452. {
  453. "text": MWF.LP.process.button.cancel,
  454. "action": cancel
  455. }
  456. ]
  457. });
  458. switch (type.toLowerCase()){
  459. case "success":
  460. dlg.content.setStyle("background-image", "url(data:image/png;base64,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)");
  461. break;
  462. case "error":
  463. dlg.content.setStyle("background-image", "url(data:image/png;base64,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)");
  464. break;
  465. case "info":
  466. dlg.content.setStyle("background-image", "url(data:image/png;base64,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)");
  467. break;
  468. case "warn":
  469. dlg.content.setStyle("background-image", "url(data:image/png;base64,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)");
  470. break;
  471. default:
  472. //dlg.content.setStyle("background-image", "");
  473. }
  474. dlg.show();
  475. if (callback) callback(dlg);
  476. }.bind(this));
  477. };
  478. layout.notice = function(content, type, target, where, offset){
  479. if (!where) where = {"x": "right", "y": "top"};
  480. if (!target) target = this.content;
  481. if (!type) type = "ok";
  482. var noticeTarget = target || $(document.body);
  483. var off = offset;
  484. if (!off){
  485. off = {
  486. x: 10,
  487. y: where.y.toString().toLowerCase()=="bottom" ? 10 : 10
  488. };
  489. }
  490. new mBox.Notice({
  491. type: type,
  492. position: where,
  493. move: false,
  494. target: noticeTarget,
  495. delayClose: (type=="error") ? 10000 : 5000,
  496. offset: off,
  497. content: content
  498. });
  499. };
  500. layout.reload = function(){
  501. window.location.reload();
  502. };
  503. MWF.getJSON("res/config/config.json", function(config){
  504. layout.config = config;
  505. if (layout.config.app_protocol=="auto"){
  506. layout.config.app_protocol = window.location.protocol;
  507. }
  508. MWF.xDesktop.getServiceAddress(layout.config, function(service, center){
  509. layout.serviceAddressList = service;
  510. layout.centerServer = center;
  511. layout.load();
  512. }.bind(this));
  513. //layout.getServiceAddress(function(){
  514. // layout.load();
  515. //});
  516. });
  517. })();
  518. });
  519. });
  520. });