Browse Source

Merge branch 'master' of https://github.com/o2oa/o2oa

roo00 7 years ago
parent
commit
389c6794dd
49 changed files with 1044 additions and 1184 deletions
  1. 1 0
      .gitignore
  2. 2 1
      o2web/.gitignore
  3. 50 150
      o2web/README.md
  4. 7 47
      o2web/gulpfile.js
  5. 3 1
      o2web/source/o2_core/compatible.js
  6. 230 100
      o2web/source/o2_core/o2.js
  7. 1 1
      o2web/source/o2_core/o2/widget/JavascriptEditor.js
  8. 3 3
      o2web/source/o2_core/o2/widget/ace.js
  9. 4 1
      o2web/source/x_component_Common/Main.js
  10. 1 1
      o2web/source/x_component_portal_PageDesigner/Main.js
  11. 1 1
      o2web/source/x_component_process_FormDesigner/Main.js
  12. 1 0
      o2web/source/x_component_process_FormDesigner/Module/Package.js
  13. 6 13
      o2web/source/x_desktop/app.html
  14. 6 9
      o2web/source/x_desktop/appMobile.html
  15. 6 7
      o2web/source/x_desktop/cmsdocMobile.html
  16. 9 47
      o2web/source/x_desktop/cmspreview.html
  17. 6 6
      o2web/source/x_desktop/ddsso.html
  18. 6 7
      o2web/source/x_desktop/forum.html
  19. 7 8
      o2web/source/x_desktop/forumdocMobile.html
  20. 3 3
      o2web/source/x_desktop/index.html
  21. 176 166
      o2web/source/x_desktop/js/app.js
  22. 26 21
      o2web/source/x_desktop/js/appmobile.js
  23. 11 15
      o2web/source/x_desktop/js/cmsDocMobile.js
  24. 2 10
      o2web/source/x_desktop/js/ddsso.js
  25. 3 7
      o2web/source/x_desktop/js/forum.js
  26. 2 6
      o2web/source/x_desktop/js/forumDocMobile.js
  27. 49 28
      o2web/source/x_desktop/js/portal.js
  28. 27 21
      o2web/source/x_desktop/js/portalmobile.js
  29. 27 31
      o2web/source/x_desktop/js/printWork.js
  30. 3 7
      o2web/source/x_desktop/js/weixinsso.js
  31. 3 7
      o2web/source/x_desktop/js/work.js
  32. 3 7
      o2web/source/x_desktop/js/workmobile.js
  33. 3 7
      o2web/source/x_desktop/js/workmobilewithaction.js
  34. 3 3
      o2web/source/x_desktop/js/x.js
  35. 259 264
      o2web/source/x_desktop/js/zhengwuDingdingSso.js
  36. 16 32
      o2web/source/x_desktop/oauth.html
  37. 6 9
      o2web/source/x_desktop/portal.html
  38. 6 9
      o2web/source/x_desktop/portalmobile.html
  39. 7 14
      o2web/source/x_desktop/preview.html
  40. 6 9
      o2web/source/x_desktop/printWork.html
  41. 7 14
      o2web/source/x_desktop/processViewer.html
  42. 6 9
      o2web/source/x_desktop/qiyeweixinsso.html
  43. 4 32
      o2web/source/x_desktop/sso.html
  44. 6 9
      o2web/source/x_desktop/weixinsso.html
  45. 6 9
      o2web/source/x_desktop/work.html
  46. 6 9
      o2web/source/x_desktop/workmobile.html
  47. 6 10
      o2web/source/x_desktop/workmobilewithaction.html
  48. 6 6
      o2web/source/x_desktop/zhengwuDingdingSso.html
  49. 6 7
      o2web/source/x_desktop/zwddssofp.html

+ 1 - 0
.gitignore

@@ -5,3 +5,4 @@
 /.settings/
 /target/
 /.svn/
+o2web/gulpfile.js

+ 2 - 1
o2web/.gitignore

@@ -2,4 +2,5 @@
 /dest/
 /node_modules/
 npm-debug.log
-/.svn/
+/.svn/
+gulpfile.js

+ 50 - 150
o2web/README.md

@@ -1,178 +1,78 @@
 # O2OA Web
 
+O2平台Web端应用。
+
 [![Build Status](https://travis-ci.com/huqi1980/o2oa_client_web.svg?branch=master)](https://travis-ci.org/o2oa/o2oa)
 [![AGPL](https://img.shields.io/badge/license-AGPL-blue.svg)](https://github.com/o2oa/o2oa)
 [![code-size](https://img.shields.io/github/languages/code-size/o2oa/o2oa.svg)](https://github.com/o2oa/o2oa)
 [![last-commit](https://img.shields.io/github/last-commit/o2oa/o2oa.svg)](https://github.com/o2oa/o2oa)
 ---
-O2OA
-==========
-## 简介
-O2OA 是一套现代企业级的办公平台。有以下特点\:
-
-1. 核心代码开源
-
-2. 全功能免费
-
-3. 私有化部署,下载软件后可以安装在自己的服务器上
-
-4. 随时随地办公,平台支持兼容HTML5的浏览器,并且开发了源生的IOS/Android应用
-
-5. 高可扩展性,用户通过简单的学习后,可以自定义配置门户、流程应用、内容管理应用
-
-更多的产品介绍、使用说明、下载、在线体验、API及讨论请移步至[http://o2oa.io/](http://www.o2oa.io/)
-
-![o2oa](http://muliba.u.qiniudn.com/post/20180801-225850@2x.png)
-
-
-## 官方网站\:
-项目主页 : https://www.oschina.net/p/o2oa
-下载地址 : http://www.o2oa.io
-
-## 最新版本\:
-## v4 build 11.02更新内容\:
-新增功能\:
-
-1、[内容管理]增加设计元素可以拷贝粘贴的功能。
-
-2、[内容管理]增加组合框、子表单等设计元素组件。
-
-3、[企业社区]增加导航浏览模式。
-
-4、[服务管理]增加设计元素可以拷贝粘贴的功能。
-
-更新优化\:
-
-1、可以在配置中选择是否对office,pdf,text,image进行切词索引。
-
-2、优化调整切词索引中对词性的判断。
-
-3、优化钉钉,企业微信,政务钉钉中由于反复获取accessToken导致的页面响应缓慢的问题。
-
-BUG修复\:
-
-1、[内容管理]视图的分类标题无法保存的问题。
-
-2、[内容管理]修复附件无法替换的问题。
-
-3、修正office格式引起的:NoSuchMethodException: org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTPictureBaseImpl"。
-
-
-## v4 build 11.01更新内容\:
-新增功能\:
-
-1、企业微信,钉钉,政务钉钉组织同步,待办消息推送,通知消息群发,移动设备页面集成。
-
-2、新增SqlServer支持,目前可以支持一下数据库:Oracle,DB2,MySQL,Postgresql,Informix,H2(内嵌),DM(达梦国产数据库),MS-SQLServer。
-
-3、OAuth2客户端功能优化,支持浙江CA,微信,QQ等其他OAuth认证服务。
-
-4、增加消息群发功能。
-
-5、ISO,AndroidApp端增加语音处理功能。
-
-6、ISO,AndroidApp端增加AI自动处理功能。
-
-7、启用新域名o2oa.net。
 
-8、增加登录页面定制功能,现在可以通过门户定制登录页面了。
-
-更新优化\:
-
-1、支持金山WPS。
-
-2、统计中数据量导致的新能下降。
-
-3、群组(Group)支持组织成员,可以统一翻译成人员。
-
-4、增加个人的主身份设置,当不指名身份时可以自动取到主身份。
-
-5、用户可以自行绑定微信,通过微信扫码登录。
-
-6、[信息管理]对信息文档查询效率源码级优化。
-
-BUG修复\:
-
-1、会议管理字段超长导致的错误。
-
-2、无标题流程消息提醒显示空字符串。
-
-3、脚本编辑器在同时打开多个窗口情况无法正常保存。
-
-4、修改组织同步触发机制,现在可以通过cron表达式定制运行时间。
-
-5、[信息管理]修复数据字典无法复制的问题以及分类显示的错误。
-
-6、Office控件代码修正。
-
-
-## v4 build 09.21更新内容\:
-新增功能\:
-
-1、增加手写签批功能,支持在线手写签批,录音。
-
-2、增加全文搜索功能。支持pdf,.doc,.docx,.ppt,.pptx,.xls,.xlsx内容的全文检索。
-
-3、OAuth客户端功能,支持微信等其他OAuth认证服务。
-
-4、[汇报管理]添加手工漏发检测功能。
-
-更新优化\:
-
-1、更新统计展现功能,支持饼图,柱状图,折线图,支持行列转换。
-
-2、统计功能,可以源于不同试图的列进行合并统计。
-
-3、优化日程管理提醒不及时的问题
-
-BUG修复\:
-
-1、流程重置处理人错误。
-
-2、[信息管理]修复数据型文档类型保存不正确的问题。
-
-3、[脑图]修复某些情况下脑图无法创建的问题。
-
-
-
-## v4 build 09.04更新内容\:
-新增功能\:
+## 简介
 
-1、电子签章支持
+O2平台Web端应用,它将会随o2server一起编译。您也可以单独编译,并将它部署到任意的WEB服务器。
 
-2、流程引擎增加定时节点。
+## 编译
 
-3、政务钉钉支持,可以同步政务钉钉的人员,组织。
+先安装npm环境
 
-4、增加行政区划组件。
+    $ npm i -g gulp-cli karma-cli codecov
+    $ npm install
 
-5、[社区应用]添加调整主贴版块的服务。
+使用一下命令编译:
 
-更新优化\:
+    $ gulp
 
-1、视图统计代码优化,提升统计查询效率。
+使用下面的参数可以将编译后直接通过FTP部署到web服务器:
 
-2、优化待办已办查询,TaskCompleted 增加 latest。
+	$ gulp --upload ftp --host ftp.server.com --user ftpuser --pass password --port 21 --remotePath /
 
-3、流程引擎底层优化,修改PorcessPlatform实现的aeiObjects。
 
-BUG修复\:
+> --upload : 可选值`local`、`ftp`、`sftp`
+>
+> --host : ftp或sftp服务器
+>
+> --user : 用户名,默认`anonymous`
+>
+> --pass : 密码,ftp或sftp密码,默认`@anonymous`
+>
+> --port : 端口,ftp默认21;sftp默认22
+>
+> --remotePath: 远程部署路径,默认“/”
 
-1、应用导入导出错误。
+## 配置
 
-2、[信息管理]修复CMS_Review自动同步更新的问题
+如果您将o2web部署到了其他WEB服务器,您需要手工修改下面的config.jon文件。
 
-3、[信息管理]修复序列保存时为空的问题
+路径:/x_desktop/res/config/config.json
 
-4、修正移动端APP信息管理会把数据类的信息读取出来的问题
+	{
+	  "center": [		//可以配置多个中心服务器地址,系统会自动找到一个可用的服务器
+	    {
+	      "port": "20030",	//中心服务器端口
+	      "host": ""		//中心服务器host
+	    },
+	    {
+	      "port": "20030",		//中心服务器端口
+	      "host": "127.0.0.1"	//中心服务器host
+	    }
+	  ],
+	  "footer": "开发系统",		//系统页脚
+	  "title": "o2oa开发平台",	//系统名称
+	  "app_protocol": "auto",	//http,https 或 auto
+	  "loginPage": {			//将一个portal页面作为登录页
+	    "enable": false,
+	    "portal": "",
+	    "page": ""
+	  }
+	}
 
-## 授权协议
+## 官方网站\:
 
-o2oa软件遵守双重协议,一个是AGPL授权协议,一个是商用授权协议。
+官方网站 : [http://www.o2oa.net](http://www.o2oa.net)
 
-1、o2oa是开源软件,您可以修改源码及免费使用;这时需遵守AGPL协议。
+oschina项目主页 : [https://www.oschina.net/p/o2oa](https://www.oschina.net/p/o2oa)
 
-2、当使用者使用o2oa软件提供收费服务,或者对o2oa进行分发、销售时需进行商业授权。具体请查看:[http://www.o2oa.io/product.html](http://www.o2oa.io/product.html)。
+下载地址 : [http://www.o2oa.net](http://www.o2oa.net/download.html)
 
-3、使用者下载本软件即表示愿遵守此项协议。
 

+ 7 - 47
o2web/gulpfile.js

@@ -104,12 +104,12 @@ var apps = [
 ];
 
 var uploadOptions = {
-    'location': 'E:/o2server/servers/webServer/',
-    'host': 'dev.o2oa.net',
-    'user': 'xadmin',
-    'pass': 'xadmin',
+    'location': '',
+    'host': '',
+    'user': '',
+    'pass': '',
     "remotePath": "/"
-}
+};
 var options = minimist(process.argv.slice(2), {//upload: local ftp or sftp
     string: ["upload", "location", "host", "user", "pass", "port", "remotePath"]
 });
@@ -194,7 +194,7 @@ function cleanRemoteFtp(f, cb){
         host: options.host,
         user: options.user || 'anonymous',
         pass: options.pass || null,
-        port: options.port || 21,
+        port: options.port || 21
     });
 
     ftp.raw('dele '+file, function(err) {
@@ -319,44 +319,4 @@ gulp.task("sync", gulp.series(
     gulp.series(cleanTasks),
     gulp.parallel(minTasks, moveTasks)
 ));
-gulp.task("watch", gulp.parallel(watchTasks));
-
-// gulp.task("watch", function(){
-//     watcher = gulp.watch('source/x_desktop/**/*');
-//     var log = console.log.bind(console);
-//     watcher
-//         .on('add', function(path) { log('File', path, 'has been added'); })
-//         .on('addDir', function(path) { log('Directory', path, 'has been added'); })
-//         .on('change', function(path) { log('File', path, 'has been changed'); })
-//         .on('unlink', function(path) { log('File', path, 'has been removed'); })
-//         .on('unlinkDir', function(path) { log('Directory', path, 'has been removed'); })
-//         .on('error', function(error) { log('Error happened', error); })
-//         .on('ready', function() { log('Initial scan complete. Ready for changes.'); })
-//         //.on('raw', function(event, path, details) { log('Raw event info:', event, path, details); })
-// });
-
-gulp.task("upload", function(cb){
-    var dest = 'dest/**/*';
-    console.log(options.upload);
-    console.log(options.user);
-    console.log(options.pass);
-    console.log(options.host);
-    console.log(options.remotePath);
-    gulp.src(dest)
-        .pipe(gulpif((options.upload=='local'&&options.location!=''), gulp.dest(options.location+'/')))
-        .pipe(gulpif((options.upload=='ftp'&&options.host!=''), ftp({
-            host: options.host,
-            user: options.user || 'anonymous',
-            pass: options.pass || '@anonymous',
-            port: options.port || 21,
-            remotePath: (options.remotePath || '/')
-        })))
-        .pipe(gulpif((options.upload=='sftp'&&options.host!=''), ftp({
-            host: options.host,
-            user: options.user || 'anonymous',
-            pass: options.pass || null,
-            port: options.port || 22,
-            remotePath: (options.remotePath || '/')
-        })));
-    cb();
-});
+gulp.task("watch", gulp.parallel(watchTasks));

+ 3 - 1
o2web/source/o2_core/compatible.js

@@ -1,9 +1,10 @@
 o2.addReady(function(){
     COMMON = {
+        "DOM":{},
         "setContentPath": function(path){
             COMMON.contentPath = path;
         },
-        "JSON": o2.json,
+        "JSON": o2.JSON,
         "Browser": Browser,
         "Class": o2.Class,
         "XML": o2.xml,
@@ -21,6 +22,7 @@ o2.addReady(function(){
         "Request": Request,
         "typeOf": o2.typeOf
     };
+    COMMON.DOM.addReady = o2.addReady;
     MWF = o2;
     MWF.getJSON = o2.JSON.get;
     MWF.getJSONP = o2.JSON.getJsonp;

+ 230 - 100
o2web/source/o2_core/o2.js

@@ -167,6 +167,96 @@
     };
     this.o2.runCallback = _runCallback;
 
+    var _getAllOptions = function(options){
+        return {
+            "noCache": !!(options && options.nocache),
+            "reload": !!(options && options.reload),
+            "sequence": !!(options && options.sequence),
+            "doc": (options && options.doc) || document,
+            "dom": (options && options.dom) || document.body,
+            "position": "beforeend" //'beforebegin' 'afterbegin' 'beforeend' 'afterend'
+        }
+    };
+    var _getCssOptions = function(options){
+        return {
+            "noCache": !!(options && options.nocache),
+            "reload": !!(options && options.reload),
+            "sequence": !!(options && options.sequence),
+            "doc": (options && options.doc) || document,
+            "dom": (options && options.dom) || null
+        }
+    };
+    var _getJsOptions = function(options){
+        return {
+            "noCache": !!(options && options.nocache),
+            "reload": !!(options && options.reload),
+            "sequence": !!(options && options.sequence),
+            "doc": (options && options.doc) || document
+        }
+    };
+    var _getHtmlOptions = function(options){
+        return {
+            "noCache": !!(options && options.nocache),
+            "reload": !!(options && options.reload),
+            "sequence": !!(options && options.sequence),
+            "doc": (options && options.doc) || document,
+            "dom": (options && options.dom) || null,
+            "position": "beforeend" //'beforebegin' 'afterbegin' 'beforeend' 'afterend'
+        }
+    };
+    var _xhr_get = function(url, success, failure){
+        var xhr = new _request();
+        xhr.open("GET", url, true);
+
+        var _checkCssLoaded= function(_, err){
+            if (!(xhr.readyState == 4 || err)) return;
+
+            _removeListener(xhr, 'readystatechange', _checkCssLoaded);
+            _removeListener(xhr, 'load', _checkCssLoaded);
+            _removeListener(xhr, 'error', _checkCssErrorLoaded);
+
+            if (err) {failure(xhr); return}
+            var status = xhr.status;
+            status = (status == 1223) ? 204 : status;
+            if ((status >= 200 && status < 300))
+                success(xhr);
+            else if ((status >= 300 && status < 400))
+                failure(xhr);
+            else
+                failure(xhr);
+        };
+        var _checkCssErrorLoaded= function(err){ _checkCssLoaded(err) };
+
+        if ("load" in xhr) _addListener(xhr, "load", _checkCssLoaded);
+        if ("error" in xhr) _addListener(xhr, "load", _checkCssErrorLoaded);
+        _addListener(xhr, "readystatechange", _checkCssLoaded);
+        xhr.send();
+    };
+
+    var _loadSequence = function(ms, cb, op, n, thisLoaded, loadSingle, uuid, fun){
+        loadSingle(ms[n], function(module){
+            if (module) thisLoaded.push(module);
+            n++;
+            if (fun) fun(module);
+            if (n===ms.length){
+                if (cb) cb(thisLoaded);
+            }else{
+                _loadSequence(ms, cb, op, n, thisLoaded, loadSingle, uuid, fun);
+            }
+        }, op, uuid);
+    };
+    var _loadDisarray = function(ms, cb, op, thisLoaded, loadSingle, uuid, fun){
+        var count=0;
+        for (var i=0; i<ms.length; i++){
+            loadSingle(ms[i], function(module){
+                if (module) thisLoaded.push(module);
+                count++;
+                if (fun) fun(module);
+                if (count===ms.length) if (cb) cb(thisLoaded);
+            }, op, uuid);
+        }
+    };
+
     //use framework url
     var _frameworks = {
         "o2.core": ["/o2_core/o2/o2.core.js"],
@@ -184,97 +274,98 @@
     };
     var _loaded = {};
     var _loadedCss = {};
+    var _loadedHtml = {};
 
-    var _loadSingle = function(url, callback, reload){
-        var addr_uri = _frameworks[url] || url;
-        if (!_debug) if (addr_uri.indexOf("o2_lib")===-1) addr_uri = addr_uri.replace(/\.js/, ".min.js");
-        addr_uri = (addr_uri.indexOf("?")!==-1) ? addr_uri+"&v="+this.o2.version.v : addr_uri+"?v="+this.o2.version.v;
-
+    var _loadSingle = function(module, callback, op){
+        var url = module;
+        var uuid = _uuid();
+        if (op.noCache) url = (url.indexOf("?")!==-1) ? url+"&v="+uuid : addr_uri+"?v="+uuid;
         var key = encodeURIComponent(url);
+        if (!op.reload) if (_loaded[key]){ if (callback)callback(); return; }
 
-        if (!reload) if (_loaded[key]){ if (callback)callback(); return; }
-
-        var head = (document.head || document.getElementsByTagName("head")[0] || document.documentElement);
-        var s = document.createElement('script');
-        s.src = addr_uri;
+        var head = (op.doc.head || op.doc.getElementsByTagName("head")[0] || op.doc.documentElement);
+        var s = op.doc.createElement('script');
         head.appendChild(s);
+        s.id = uuid;
+        s.src = url;
 
-        var _checkScriptLoaded = function(_, isAbort){
+        var _checkScriptLoaded = function(_, isAbort, err){
             if (isAbort || !s.readyState || s.readyState === "loaded" || s.readyState === "complete") {
-                _loaded[key] = true;
-                _removeListener(s, 'DOMContentLoaded', _checkScriptLoaded);
+                var scriptObj = {"module": module, "id": uuid, "script": s, "doc": op.doc};
+                if (!err) _loaded[key] = scriptObj;
                 _removeListener(s, 'readystatechange', _checkScriptLoaded);
-                if (!isAbort) if (callback)callback();
+                _removeListener(s, 'load', _checkScriptLoaded);
+                _removeListener(s, 'error', _checkScriptErrorLoaded);
+                if (!isAbort || err){
+                    if (err){
+                        if (s) head.removeChild(s);
+                        if (callback)callback();
+                    }else{
+                        head.removeChild(s);
+                        if (callback)callback(scriptObj);
+                    }
+                }
             }
         };
+        var _checkScriptErrorLoaded = function(e, err){
+            console.log("Error: load javascript module: "+module);
+            _checkScriptLoaded(e, true, "error");
+        };
 
         if ('onreadystatechange' in s) _addListener(s, 'readystatechange', _checkScriptLoaded);
         _addListener(s, 'load', _checkScriptLoaded);
+        _addListener(s, 'error', _checkScriptErrorLoaded);
     };
-    var _load = function(urls, callback, reload, doc){
-        var urltype = _typeOf(urls);
-        var modules;
-        if (urltype==="array"){
-            modules = [];
-            for (var i=0; i<urls.length; i++){
-                var url = urls[i];
-                var module = _frameworks[url] || url;
-                if (_typeOf(module)==="array"){
-                    modules.concat(module)
-                }else{
-                    modules.push(url)
-                }
-            }
-        }else{
-            modules = _frameworks[urls] || urls;
-        }
 
-        var type = _typeOf(modules);
-        if (type==="array"){
-            var thisLoaded = [];
-            for (var i=0; i<modules.length; i++){
-                _loadSingle(modules[i], function(){
-                    thisLoaded.push(modules[i]);
-                    if (thisLoaded.length===modules.length){
-                        if (callback) callback();
-                    }
-                }, reload, doc);
+    var _load = function(urls, options, callback){
+        var ms = (_typeOf(urls)==="array") ? urls : [urls];
+        var op =  (_typeOf(options)==="object") ? _getJsOptions(options) : _getJsOptions(null);
+        var cb = (_typeOf(options)==="function") ? options : callback;
+
+        var modules = [];
+        for (var i=0; i<ms.length; i++){
+            var url = ms[i];
+            var module = _frameworks[url] || url;
+            if (_typeOf(module)==="array"){
+                modules = modules.concat(module)
+            }else{
+                modules.push(module)
             }
         }
-        if (type==="string"){
-            _loadSingle(modules, callback, reload);
+        var thisLoaded = [];
+        if (op.sequence){
+            _loadSequence(modules, cb, op, 0, thisLoaded, _loadSingle);
+        }else{
+            _loadDisarray(modules, cb, op, thisLoaded, _loadSingle);
         }
     };
     this.o2.load = _load;
 
-    var _loadSingleCss = function(url, callback, uuid, reload, sourceDoc){
-        var key = encodeURIComponent(url);
-        if (!reload) if (_loadedCss[key]){ if (callback)callback(_loadedCss[key]); return; }
-
-        var cssurl = _frameworks[url] || url;
+    var _loadSingleCss = function(module, callback, op, uuid){
+        var url = module;
+        var uid = _uuid();
+        if (op.noCache) url = (url.indexOf("?")!==-1) ? url+"&v="+uid : url+"?v="+uid;
 
-        var xhr = new _request();
-        xhr.open("GET", cssurl, true);
+        var key = encodeURIComponent(url);
+        if (!op.reload) if (_loadedCss[key]){ if (callback)callback(_loadedCss[key]); return; }
 
         var success = function(xhr){
             var cssText = xhr.responseText;
             try{
                 if (cssText){
-                    if (uuid){
+                    if (op.dom){
                         var rex = new RegExp("(.+)(?=\\{)", "g");
                         var match;
                         while ((match = rex.exec(cssText)) !== null) {
                             var prefix = "." + uuid + " ";
                             var rule = prefix + match[0];
-                            cssText = cssText.substring(0, match.index) + rule + cssText.substring(rex.lastIndex, cssText.length)
+                            cssText = cssText.substring(0, match.index) + rule + cssText.substring(rex.lastIndex, cssText.length);
                             rex.lastIndex = rex.lastIndex + prefix.length;
                         }
                     }
-
-                    var doc = sourceDoc || document;
-                    var style = doc.createElement("style");
+                    var style = op.doc.createElement("style");
                     style.setAttribute("type", "text/css");
-                    var head = (document.head || document.getElementsByTagName("head")[0] || document.documentElement);
+                    var head = (op.doc.head || op.doc.getElementsByTagName("head")[0] || op.doc.documentElement);
                     head.appendChild(style);
                     if(style.styleSheet){
                         var setFunc = function(){
@@ -286,41 +377,24 @@
                             setFunc();
                         }
                     }else{
-                        var cssTextNode = doc.createTextNode(cssText);
+                        var cssTextNode = op.doc.createTextNode(cssText);
                         style.appendChild(cssTextNode);
                     }
-                    style.sheet.cssRules[0].cssText = "#layout_xxx {\n" +
-                        "    width: 500px;\n" +
-                        "    height: 300px;\n" +
-                        "    background: #FFCCBA;\n" +
-                        "}"
                 }
-                _loadedCss[key] = style;
-                if (callback) callback(style);
+                style.id = uid;
+                var styleObj = {"module": module, "id": uid, "style": style, "doc": op.doc};
+                _loadedCss[key] = styleObj;
+                if (callback) callback(styleObj);
             }catch (e){
                 if (callback) callback();
                 return;
             }
         };
         var failure = function(xhr){
+            console.log("Error: load css module: "+module);
             if (callback) callback();
         };
-        var onreadystatechange= function(){
-            if (xhr.readyState != 4) return;
-
-            var status = xhr.status;
-            status = (status == 1223) ? 204 : status;
-            //var response = {text: xhr.responseText || '', xml: xhr.responseXML};
-            if ((status >= 200 && status < 300))
-                success(xhr);
-            else if ((status >= 300 && status < 400))
-                failure(xhr);
-            else
-                failure(xhr);
-        };
-        _addListener(xhr, "readystatechange", onreadystatechange);
-        //xhr.onreadystatechange = onreadystatechange;
-        xhr.send();
+        _xhr_get(url, success, failure);
     };
 
     var _parseDomString = function(dom, fn, sourceDoc){
@@ -337,32 +411,88 @@
         if (domType==="element") _parseDomElement(dom, fn);
         if (domType==="array") for (var i=0; i<dom.length; i++) _parseDom(dom[i], fn, sourceDoc);
     };
-    var _loadCss = function(urls, dom, callback, reload, sourceDoc){
-        var uuid = "";
-        if (dom){
-            uuid = "css"+_uuid();
-            _parseDom(dom, function(node){ node.className += ((node.className) ? " "+uuid : uuid)}, sourceDoc);
+    var _loadCss = function(modules, options, callback){
+        var ms = (_typeOf(modules)==="array") ? modules : [modules];
+        var op =  (_typeOf(options)==="object") ? _getCssOptions(options) : _getCssOptions(null);
+        var cb = (_typeOf(options)==="function") ? options : callback;
+
+        var uuid = "css"+_uuid();
+        if (op.dom) _parseDom(op.dom, function(node){ node.className += ((node.className) ? " "+uuid : uuid)}, op.doc);
+
+        var thisLoaded = [];
+        if (op.sequence){
+            _loadSequence(ms, cb, op, 0, thisLoaded, _loadSingleCss, uuid);
+        }else{
+            _loadDisarray(ms, cb, op, thisLoaded, _loadSingleCss, uuid);
         }
-        modules = _frameworks[urls] || urls;
-        var type = _typeOf(modules);
-        if (type==="array"){
-            var thisLoaded = [];
-            var styleList = [];
-            for (var i=0; i<modules.length; i++){
-                _loadSingleCss(modules[i], function(style){
-                    thisLoaded.push(modules[i]);
-                    if (style) styleList.push(styleList);
-                    if (thisLoaded.length===modules.length){
-                        if (callback) callback(styleList);
-                    }
-                }, uuid, reload, sourceDoc);
+    };
+    var _removeCss = function(module){
+        var k = encodeURIComponent(module);
+        var removeCss = _loadedCss[k];
+        if (!removeCss) for (key in _loadedCss){
+            if (_loadedCss[key].id==module){
+                removeCss = _loadedCss[key];
+                k = key;
+                break;
             }
         }
-        if (type==="string"){
-            _loadSingleCss(modules, callback, uuid, reload, sourceDoc);
+        if (removeCss){
+            delete _loadedCss[k];
+            var styleNode = removeCss.doc.getElementById(removeCss.id);
+            if (styleNode) styleNode.parentNode.removeChild(styleNode);
+            removeCss = null;
         }
     };
     this.o2.loadCss = _loadCss;
+    this.o2.removeCss = _removeCss;
+    Element.prototype.loadCss = function(modules, options, callback){
+        var op =  (_typeOf(options)==="object") ? options : {};
+        var cb = (_typeOf(options)==="function") ? options : callback;
+        op.dom = this;
+        _loadCss(modules, op, cb);
+    };
+
+    _loadSingleHtml = function(module, callback, op){
+        var url = module;
+        var uid = _uuid();
+        if (op.noCache) url = (url.indexOf("?")!==-1) ? url+"&v="+uid : url+"?v="+uid;
+        var key = encodeURIComponent(url);
+        if (!op.reload) if (_loadedHtml[key]){ if (callback)callback(_loadedHtml[key]); return; }
+
+        var success = function(xhr){
+            var htmlObj = {"module": module, "id": uid, "data": xhr.responseText, "doc": op.doc};
+            _loadedHtml[key] = htmlObj;
+            if (callback) callback(htmlObj);
+        };
+        var failure = function(){
+            console.log("Error: load html module: "+module);
+            if (callback) callback();
+        };
+        _xhr_get(url, success, failure);
+    };
+
+    var _injectHtml = function(op, data){
+        if (op.dom) _parseDom(op.dom, function(node){ node.insertAdjacentHTML(op.position, data) }, op.doc);
+    };
+    var _loadHtml = function(modules, options, callback){
+        var ms = (_typeOf(modules)==="array") ? modules : [modules];
+        var op =  (_typeOf(options)==="object") ? _getHtmlOptions(options) : _getHtmlOptions(null);
+        var cb = (_typeOf(options)==="function") ? options : callback;
+
+        var thisLoaded = [];
+        if (op.sequence){
+            _loadSequence(ms, cb, op, 0, thisLoaded, _loadSingleHtml, null, function(html){ if (html) _injectHtml(op, html.data ); });
+        }else{
+            _loadDisarray(ms, cb, op, thisLoaded, _loadSingleHtml, null, function(html){ if (html) _injectHtml(op, html.data ); });
+        }
+    };
+    this.o2.loadHtml = _loadHtml;
+    Element.prototype.loadHtml = function(modules, options, callback){
+        var op =  (_typeOf(options)==="object") ? options : {};
+        var cb = (_typeOf(options)==="function") ? options : callback;
+        op.dom = this;
+        _loadHtml(modules, op, cb);
+    };
 
     var _dom = {
         ready: false,

+ 1 - 1
o2web/source/o2_core/o2/widget/JavascriptEditor.js

@@ -86,7 +86,7 @@ o2.widget.JavascriptEditor = new Class({
             //添加自动完成列表
             o2.require("o2.xScript.Macro", function(){
                 var json = null;
-                o2.getJSON("/x_desktop/res/mwf4/package/widget/$JavascriptEditor/environment.json", function(data){ json = data; }, false);
+                o2.getJSON("/o2_core/o2/widget/$JavascriptEditor/environment.json", function(data){ json = data; }, false);
                 this.Macro = new o2.Macro.FormContext(json);
                 exports.addCompleter({
                     identifierRegexps: [

+ 3 - 3
o2web/source/o2_core/o2/widget/ace.js

@@ -6,10 +6,10 @@ o2.widget.ace = {
         if (!window.ace){
             var jsLoaded = false;
             var cssLoaded = false;
-            COMMON.AjaxModule.loadDom("ace", function(){
-                COMMON.AjaxModule.loadDom("ace-tools", function(){
+            o2.load("ace", {"sequence": true}, function(){
+                //COMMON.AjaxModule.loadDom("ace-tools", function(){
                     if (callback) callback();
-                }.bind(this))
+                //}.bind(this))
             }.bind(this));
         }else{
             if (callback) callback();

+ 4 - 1
o2web/source/x_component_Common/Main.js

@@ -245,7 +245,10 @@ MWF.xApplication.Common.Main = new Class({
     openInNewBrowser: function(){
 		this.desktop.openBrowserApp = this.options.name;
 		this.desktop.openBrowserStatus = (this.recordStatus) ? this.recordStatus() : null;
-		window.open("app.html", "_blank");
+		var status = (this.desktop.openBrowserStatus) ? JSON.encode(this.desktop.openBrowserStatus) : "";
+
+		var url = "app.html?app="+this.options.name+"&status="+status;
+		window.open(url, "_blank");
 		if (!this.inBrowser) this.close();
     },
     openInNewWindow: function(){

+ 1 - 1
o2web/source/x_component_portal_PageDesigner/Main.js

@@ -1324,7 +1324,7 @@ MWF.xApplication.portal.PageDesigner.Main = new Class({
 
 
 				this.setTitle(this.options.appTitle + "-"+this.pageData.json.name);
-				this.taskitem.setText(this.options.appTitle + "-"+this.pageData.json.name);
+				if (this.taskitem) this.taskitem.setText(this.options.appTitle + "-"+this.pageData.json.name);
 				this.options.appTitle = this.options.appTitle + "-"+this.pageData.json.name;
 
                 if (!this.application){

+ 1 - 1
o2web/source/x_component_process_FormDesigner/Main.js

@@ -1297,7 +1297,7 @@ MWF.xApplication.process.FormDesigner.Main = new Class({
 
 
 				this.setTitle(this.options.appTitle + "-"+this.formData.json.name);
-				this.taskitem.setText(this.options.appTitle + "-"+this.formData.json.name);
+				if (this.taskitem) this.taskitem.setText(this.options.appTitle + "-"+this.formData.json.name);
 				this.options.appTitle = this.options.appTitle + "-"+this.formData.json.name;
 
                 if (!this.application){

+ 1 - 0
o2web/source/x_component_process_FormDesigner/Module/Package.js

@@ -1,3 +1,4 @@
+MWF.xApplication.process = MWF.xApplication.process || {};
 MWF.APPFD = MWF.xApplication.process.FormDesigner = MWF.xApplication.process.FormDesigner || {};
 MWF.xApplication.process.FormDesigner.Module = MWF.xApplication.process.FormDesigner.Module || {};
 MWF.xDesktop.requireApp("process.FormDesigner", "lp."+MWF.language, null, false);

+ 6 - 13
o2web/source/x_desktop/app.html

@@ -2,23 +2,16 @@
 <html>
     <head>
         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-        <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-        <script src="res/common.js?v=1.1.7"></script>
-        <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-        <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-        <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-        <script src="res/framework/Decimal.js"></script>
-        <script src="res/js/app.js?v=1.1.7"></script>
+        <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+        <script src="../o2_core/o2.js?v=2.0.0"></script>
+        <script src="../o2_core/compatible.js?v=2.0.0"></script>
+        <script src="js/app.js?v=2.0.0"></script>
 
         <title>O2</title>
 
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-        <!--<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />-->
-        <!--<meta content="yes" name="apple-mobile-web-app-capable" />-->
-        <!--<meta content="black" name="apple-mobile-web-app-status-bar-style" />-->
-        <!--<meta content="telephone=no" name="format-detection" />-->
     </head>
     <body style="overflow: auto; margin:0px; height: 100%;">
         <div id="appContent" style="overflow: hidden; height:100%; background-color:#EEE"></div>

+ 6 - 9
o2web/source/x_desktop/appMobile.html

@@ -2,15 +2,12 @@
 <html>
     <head>
         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-        <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-        <script src="res/common.js?v=1.1.7"></script>
-        <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-        <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-        <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-        <script src="res/framework/Decimal.js"></script>
-        <script src="res/js/appmobile.js?v=1.1.7"></script>
+        <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+        <script src="../o2_core/o2.js?v=2.0.0"></script>
+        <script src="../o2_core/compatible.js?v=2.0.0"></script>
+        <script src="js/appmobile.js?v=2.0.0"></script>
 
         <title>OA办公系统</title>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

+ 6 - 7
o2web/source/x_desktop/cmsdocMobile.html

@@ -2,14 +2,13 @@
 <html>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
     <!--<script src="res/framework/htmleditor/ckeditor451/ckeditor.js"></script>-->
-    <script src="res/common.js?v=1.1.7"></script>
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-    <script src="res/framework/Decimal.js"></script>
-    <script src="res/js/cmsDocMobile.js?v=1.1.7"></script>
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
+    <script src="js/cmsDocMobile.js?v=2.0.0"></script>
 
     <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
     <meta content="yes" name="apple-mobile-web-app-capable" />

+ 9 - 47
o2web/source/x_desktop/cmspreview.html

@@ -2,14 +2,11 @@
 <html>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <link rel="stylesheet" type="text/css" href="/x_desktop/res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="/x_desktop/res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="/x_desktop/res/css/mBoxTooltip.css" charset="UTF-8" />
-    <script src="/x_desktop/res/common.js?v=1.1.7"></script>
-    <!--<script src="/x_desktop/res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-    <!--<script src="/x_desktop/res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-    <script src="res/framework/Decimal.js"></script>
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
 
     <title>FORM PREVIEW</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -23,12 +20,8 @@
             if (mode=="mobile") layout.mobile = true;
         }
         //layout.desktop = layout;
-        COMMON.DOM.addReady(function(){
-            COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-            COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-            COMMON.setContentPath("/x_desktop");
-            COMMON.AjaxModule.load("mwf", function(){
+        o2.addReady(function(){
+            o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
                 MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
                 MWF.loadLP("zh-cn");
                 MWF.require("MWF.xDesktop.Layout", function(){
@@ -36,7 +29,7 @@
 
                     (function(){
                         layout.load = function(){
-                    //        if (this.isAuthentication()){
+                            //        if (this.isAuthentication()){
                             var preview = window.frameElement.retrieve("preview");
                             layout.desktop = window.frameElement.ownerDocument.window.layout.desktop;
 
@@ -63,40 +56,9 @@
                                     layout.appForm.load();
                                 });
                             });
-                    //        }
+                            //        }
                         };
 
-//                        layout.authentication = new MWF.xDesktop.Authentication({
-//                            "onLogin": layout.load.bind(layout)
-//                        });
-
-//                        layout.isAuthentication = function(){
-//                            var returnValue = true;
-//                            this.authentication.isAuthenticated(function(json){
-//                                this.user = json.data;
-//                            }.bind(this), function(){
-//                                this.authentication.loadLogin(this.node);
-//                                returnValue = false;
-//                            }.bind(this));
-//                            return returnValue;
-//                        };
-
-//                        layout.getServiceAddress = function(callback){
-//                            var uri = "http://"+layout.config.center+"/x_program_center/jaxrs/distribute/assemble";
-//                            MWF.restful("get", uri, null, function(json){
-//                                this.serviceAddressList = json.data;
-//                                if (callback) callback();
-//                            }.bind(this));
-//                        };
-//
-//                        MWF.getJSON("res/config/config.json", function(config){
-//                            layout.config = config;
-//
-//                            layout.getServiceAddress(function(){
-//                                layout.load();
-//                            });
-//                        });
-
                         layout.load();
                     })();
 

+ 6 - 6
o2web/source/x_desktop/ddsso.html

@@ -2,13 +2,13 @@
 <html>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-    <script src="res/common.js?v=1.1.7"></script>
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
     <script type="text/javascript" src="res/framework/dingding/dingtalk.js"></script>
-    <script src="res/js/ddsso.js?v=1.1.7"></script>
+    <script src="js/ddsso.js?v=2.0.0"></script>
 
     <title></title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

+ 6 - 7
o2web/source/x_desktop/forum.html

@@ -2,13 +2,12 @@
 <html>
     <head>
         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-        <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-        <script src="res/common.js?v=1.1.7"></script>
-        <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-        <script src="res/framework/Decimal.js"></script>
-        <script src="res/js/forum.js?v=1.1.7"></script>
+        <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+        <script src="../o2_core/o2.js?v=2.0.0"></script>
+        <script src="../o2_core/compatible.js?v=2.0.0"></script>
+        <script src="js/forum.js?v=2.0.0"></script>
 
         <title>Forum</title>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

+ 7 - 8
o2web/source/x_desktop/forumdocMobile.html

@@ -2,14 +2,13 @@
 <html>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-    <script src="res/framework/htmleditor/ckeditor451/ckeditor.js"></script>
-    <script src="res/common.js?v=1.1.7"></script>
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-    <script src="res/framework/Decimal.js"></script>
-    <script src="res/js/forumDocMobile.js?v=1.1.7"></script>
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+    <script src="../o2_lib/htmleditor/ckeditor/ckeditor.js"></script>
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
+    <script src="js/forumDocMobile.js?v=2.0.0"></script>
 
     <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
     <meta content="yes" name="apple-mobile-web-app-capable" />

+ 3 - 3
o2web/source/x_desktop/index.html

@@ -6,9 +6,9 @@
     <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
     <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
 
-    <script src="../o2_core/o2.js?v=1.0.6"></script>
-    <script src="../o2_core/compatible.js"></script>
-    <script src="js/x.js?v=1.1.7"></script>
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
+    <script src="js/x.js?v=2.0.0"></script>
 
     <title>O2</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

+ 176 - 166
o2web/source/x_desktop/js/app.js

@@ -1,194 +1,204 @@
 layout = window.layout || {};
-var locate = window.location;
-layout.protocol = locate.protocol;
-var href = locate.href;
-if (href.indexOf("debugger")!=-1) layout["debugger"] = true;
-layout.session = layout.session || {};
-
-var uri = new URI(href);
-var appNames = uri.getData("app");
-var optionsStr = uri.getData("option");
-var statusStr = uri.getData("status");
-var options = (optionsStr) ? JSON.decode(optionsStr) : null;
-var statusObj = (statusStr) ? JSON.decode(statusStr) : null;
-
 layout.desktop = layout;
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-    COMMON.setContentPath("/x_desktop");
-    //COMMON.AjaxModule.load("ie_adapter", function(){
-        COMMON.AjaxModule.load("mwf", function(){
-            MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
-            MWF.loadLP("zh-cn");
-
-            // MWF.require("MWF.widget.Mask", null, false);
-            // layout.mask = new MWF.widget.Mask({"style": "desktop"});
-            // layout.mask.load();
-
-            MWF.require("MWF.xDesktop.Layout", function(){
-                MWF.require("MWF.xDesktop.Authentication", null, false);
-                MWF.xDesktop.requireApp("Common", "", null, false);
-                (function(){
-                    layout.requireApp = function(appNames, callback, clazzName){
-                        var appPath = appNames.split(".");
-                        var appName = appPath[appPath.length-1];
-                        var appObject = "MWF.xApplication."+appNames;
-                        var className = clazzName || "Main";
-                        var appClass = appObject+"."+className;
-                        var appLp = appObject+".lp."+MWF.language;
-                        var baseObject = MWF.xApplication;
-                        appPath.each(function(path, i){
-                            if (i<(appPath.length-1)){
-                                baseObject[path] = baseObject[path] || {};
-                            }else {
-                                baseObject[path] = baseObject[path] || {"options": Object.clone(MWF.xApplication.Common.options)};
-                            }
-                            baseObject = baseObject[path];
-                        }.bind(this));
-                        if (!baseObject.options) baseObject.options = Object.clone(MWF.xApplication.Common.options);
-
-                        //MWF.xDesktop.requireApp(appNames, "lp."+MWF.language, null, false);
-                        MWF.xDesktop.requireApp(appNames, "lp."+MWF.language, {
-                            "onRequestFailure": function(){
-                                MWF.xDesktop.requireApp(appNames, "lp.zh-cn", null, false);
-                            }.bind(this),
-                            "onSuccess": function(){}.bind(this)
-                        }, false);
-
-                        MWF.xDesktop.requireApp(appNames, clazzName, function(){
-                            if (callback) callback(baseObject);
-                        });
-                        //
-                        //MWF.require(appLp, null, false);
-                        //MWF.require(appClass, function(){
-                        //    if (callback) callback(baseObject);
-                        //});
-                    };
-                    layout.refreshApp = function(app){
-                        var status = app.recordStatus();
-
-                        var topWindow = window.opener;
-                        if (topWindow){
+o2.addReady(function(){
+    var locate = window.location;
+    layout.protocol = locate.protocol;
+    var href = locate.href;
+    if (href.indexOf("debugger")!=-1) layout["debugger"] = true;
+    layout.session = layout.session || {};
+
+    var uri = new URI(href);
+    var appNames = uri.getData("app");
+    var optionsStr = uri.getData("option");
+    var statusStr = uri.getData("status");
+    var options = (optionsStr) ? JSON.decode(optionsStr) : null;
+    var statusObj = (statusStr) ? JSON.decode(statusStr) : null;
+
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
+        MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
+        MWF.loadLP("zh-cn");
+
+        // MWF.require("MWF.widget.Mask", null, false);
+        // layout.mask = new MWF.widget.Mask({"style": "desktop"});
+        // layout.mask.load();
+
+        MWF.require("MWF.xDesktop.Layout", function(){
+            MWF.require("MWF.xDesktop.Authentication", null, false);
+            MWF.xDesktop.requireApp("Common", "", null, false);
+            (function(){
+                layout.requireApp = function(appNames, callback, clazzName){
+                    var appPath = appNames.split(".");
+                    var appName = appPath[appPath.length-1];
+                    var appObject = "MWF.xApplication."+appNames;
+                    var className = clazzName || "Main";
+                    var appClass = appObject+"."+className;
+                    var appLp = appObject+".lp."+MWF.language;
+                    var baseObject = MWF.xApplication;
+                    appPath.each(function(path, i){
+                        if (i<(appPath.length-1)){
+                            baseObject[path] = baseObject[path] || {};
+                        }else {
+                            baseObject[path] = baseObject[path] || {"options": Object.clone(MWF.xApplication.Common.options)};
+                        }
+                        baseObject = baseObject[path];
+                    }.bind(this));
+                    if (!baseObject.options) baseObject.options = Object.clone(MWF.xApplication.Common.options);
+
+                    //MWF.xDesktop.requireApp(appNames, "lp."+MWF.language, null, false);
+                    MWF.xDesktop.requireApp(appNames, "lp."+MWF.language, {
+                        "onRequestFailure": function(){
+                            MWF.xDesktop.requireApp(appNames, "lp.zh-cn", null, false);
+                        }.bind(this),
+                        "onSuccess": function(){}.bind(this)
+                    }, false);
+
+                    MWF.xDesktop.requireApp(appNames, clazzName, function(){
+                        if (callback) callback(baseObject);
+                    });
+                    //
+                    //MWF.require(appLp, null, false);
+                    //MWF.require(appClass, function(){
+                    //    if (callback) callback(baseObject);
+                    //});
+                };
+                layout.refreshApp = function(app){
+                    var status = app.recordStatus();
+
+                    var topWindow = window.opener;
+                    if (topWindow){
+                        try{
                             topWindow.layout.desktop.openBrowserStatus = status;
                             var appName = topWindow.layout.desktop.openBrowserApp || appNames;
                             var m_status = status;
                             var option = topWindow.layout.desktop.openBrowserOption || options;
                             window.location.reload();
-                        }else{
+                        }catch(e){
                             statusStr = JSON.encode(status);
                             var port = uri.get("port");
                             var url = uri.get("scheme")+"://"+uri.get("host")+((port) ? ":"+port+"/" : "")+uri.get("directory ")+"?app="+appNames+"&status="+statusStr;
                             window.location = url;
                         }
-                        //layout.openApplication(null, appName, option||{}, m_status);
-                    };
-                    layout.openApplication = function(e, appNames, options, statusObj){
-                        if (layout.app){
-                            layout.desktop.openBrowserApp = appNames;
-                            layout.desktop.openBrowserStatus = statusObj;
-                            layout.desktop.openBrowserOption = options;
-                            return window.open("app.html", "_blank");
-                        }else{
-                            var appPath = appNames.split(".");
-                            var appName = appPath[appPath.length-1];
+                    }else{
+                        statusStr = JSON.encode(status);
+                        var port = uri.get("port");
+                        var url = uri.get("scheme")+"://"+uri.get("host")+((port) ? ":"+port+"/" : "")+uri.get("directory ")+"?app="+appNames+"&status="+statusStr;
+                        window.location = url;
+                    }
+                    //layout.openApplication(null, appName, option||{}, m_status);
+                };
+                layout.openApplication = function(e, appNames, options, statusObj){
+                    if (layout.app){
+                        layout.desktop.openBrowserApp = appNames;
+                        layout.desktop.openBrowserStatus = statusObj;
+                        layout.desktop.openBrowserOption = options;
+                        return window.open("app.html", "_blank");
+                    }else{
+                        var appPath = appNames.split(".");
+                        var appName = appPath[appPath.length-1];
 
-                            layout.requireApp(appNames, function(appNamespace){
-                                this.createNewApplication(e, appNamespace, appName, options, statusObj);
-                            }.bind(this));
-                        }
-                    };
-                    layout.createNewApplication = function(e, appNamespace, appName, options, statusObj){
-                        var app = new appNamespace["Main"](this, options);
-                        app.desktop = layout;
-                        app.inBrowser = true;
-                        app.status = statusObj;
-                        app.load(true);
-
-                        var appId = appName;
-                        if (options.appId){
-                            appId = options.appId;
-                        }else{
-                            if (appNamespace.options.multitask) appId = appId+"-"+(new MWF.widget.UUID());
-                        }
-                        app.appId = appId;
-                        layout.app = app;
-                    };
-                    layout.load = function(){
-                        this.isAuthentication(function(){
-                            //layout.desktop = layout;
-                            MWF.require("MWF.xDesktop.MessageMobile", function(){
-                                layout.message = new MWF.xDesktop.MessageMobile();
-                                layout.message.load();
-                            }.bind(this));
-
-                            layout.apps = [];
-                            this.node = $("layout");
-                            var topWindow = window.opener;
-                            if (topWindow){
+                        layout.requireApp(appNames, function(appNamespace){
+                            this.createNewApplication(e, appNamespace, appName, options, statusObj);
+                        }.bind(this));
+                    }
+                };
+                layout.createNewApplication = function(e, appNamespace, appName, options, statusObj){
+                    var app = new appNamespace["Main"](this, options);
+                    app.desktop = layout;
+                    app.inBrowser = true;
+                    app.status = statusObj;
+                    app.load(true);
+
+                    var appId = appName;
+                    if (options.appId){
+                        appId = options.appId;
+                    }else{
+                        if (appNamespace.options.multitask) appId = appId+"-"+(new MWF.widget.UUID());
+                    }
+                    app.appId = appId;
+                    layout.app = app;
+                };
+                layout.load = function(){
+                    this.isAuthentication(function(){
+                        //layout.desktop = layout;
+                        MWF.require("MWF.xDesktop.MessageMobile", function(){
+                            layout.message = new MWF.xDesktop.MessageMobile();
+                            layout.message.load();
+                        }.bind(this));
+
+                        layout.apps = [];
+                        this.node = $("layout");
+                        var topWindow = window.opener;
+                        if (topWindow){
+                            try{
                                 var appName = topWindow.layout.desktop.openBrowserApp || appNames;
                                 var m_status = topWindow.layout.desktop.openBrowserStatus || statusObj;
                                 var option = topWindow.layout.desktop.openBrowserOption || options;
                                 layout.openApplication(null, appName, option||{}, m_status);
-                                //topWindow.layout.desktop.openBrowserApp = null;
-                                //topWindow.layout.desktop.openBrowserStatus = null;
-                                //topWindow.layout.desktop.openBrowserOption = null;
-                            }else{
+                            }catch(e){
                                 var appName = appNames;
                                 var m_status = statusObj;
                                 var option = options;
                                 layout.openApplication(null, appName, option||{}, m_status);
                             }
-                            //layout.mask.hide();
-                        }.bind(this));
-                    };
-
-                    layout.isAuthentication = function(callback){
-                        this.authentication = new MWF.xDesktop.Authentication({
-                            "onLogin": layout.load.bind(layout)
-                        });
-
-                        var returnValue = true;
-                        this.authentication.isAuthenticated(function(json){
-                            this.user = json.data;
-                            this.session = {};
-                            this.session.user = json.data;
-                            if (callback) callback();
-                        }.bind(this), function(){
-                            // if (layout.config.loginPage && layout.config.loginPage.enable && layout.config.loginPage.portal){
-                            //     MWF.xDesktop.loadPortal(layout.config.loginPage.portal);
-                            //     //window.location = "portal.html?portal="+layout.config.loginPage.portal;
-                            // }else{
-                            //     //this.getPublicStyleLoad(node);
-                            //     this.authentication.loadLogin(document.body);
-                            // }
-
-                            this.authentication.loadLogin(document.body);
-                            //if (layout.mask) layout.mask.hide();
-                            returnValue = false;
-                        }.bind(this));
-                        return returnValue;
-                    };
-
-                    MWF.getJSON("res/config/config.json", function(config){
-                        layout.config = config;
-                        if (layout.config.app_protocol=="auto"){
-                            layout.config.app_protocol = window.location.protocol;
+                            //topWindow.layout.desktop.openBrowserApp = null;
+                            //topWindow.layout.desktop.openBrowserStatus = null;
+                            //topWindow.layout.desktop.openBrowserOption = null;
+                        }else{
+                            var appName = appNames;
+                            var m_status = statusObj;
+                            var option = options;
+                            layout.openApplication(null, appName, option||{}, m_status);
                         }
-                        MWF.xDesktop.getServiceAddress(layout.config, function(service, center){
-                            layout.serviceAddressList = service;
-                            layout.centerServer = center;
-                            layout.load();
-                        }.bind(this));
-                        //layout.getServiceAddress(function(){
-                        //    layout.load();
-                        //});
-                    });
+                        //layout.mask.hide();
+                    }.bind(this));
+                };
 
+                layout.isAuthentication = function(callback){
+                    this.authentication = new MWF.xDesktop.Authentication({
+                        "onLogin": layout.load.bind(layout)
+                    });
 
-                })();
+                    var returnValue = true;
+                    this.authentication.isAuthenticated(function(json){
+                        this.user = json.data;
+                        this.session = {};
+                        this.session.user = json.data;
+                        if (callback) callback();
+                    }.bind(this), function(){
+                        // if (layout.config.loginPage && layout.config.loginPage.enable && layout.config.loginPage.portal){
+                        //     MWF.xDesktop.loadPortal(layout.config.loginPage.portal);
+                        //     //window.location = "portal.html?portal="+layout.config.loginPage.portal;
+                        // }else{
+                        //     //this.getPublicStyleLoad(node);
+                        //     this.authentication.loadLogin(document.body);
+                        // }
+
+                        this.authentication.loadLogin(document.body);
+                        //if (layout.mask) layout.mask.hide();
+                        returnValue = false;
+                    }.bind(this));
+                    return returnValue;
+                };
+
+                MWF.getJSON("res/config/config.json", function(config){
+                    layout.config = config;
+                    if (layout.config.app_protocol=="auto"){
+                        layout.config.app_protocol = window.location.protocol;
+                    }
+                    MWF.xDesktop.getServiceAddress(layout.config, function(service, center){
+                        layout.serviceAddressList = service;
+                        layout.centerServer = center;
+                        layout.load();
+                    }.bind(this));
+                    //layout.getServiceAddress(function(){
+                    //    layout.load();
+                    //});
+                });
+
+
+            })();
 
-            });
         });
-    //}.bind(this));
+    });
+
 });

+ 26 - 21
o2web/source/x_desktop/js/appmobile.js

@@ -1,25 +1,23 @@
 layout = window.layout || {};
-var locate = window.location;
-layout.protocol = locate.protocol;
-var href = locate.href;
-if (href.indexOf("debugger")!=-1) layout.debugger = true;
-layout.mobile = true;
 layout.desktop = layout;
-layout.desktop.session = {};
-var uri = new URI(href);
-var appNames = uri.getData("app");
-var optionsStr = (uri.getData("option"));
-var statusStr = (uri.getData("status"));
 
-var options = (optionsStr) ? JSON.decode(optionsStr) : null;
-var statusObj = (statusStr) ? JSON.decode(statusStr) : null;
+o2.addReady(function(){
+    var locate = window.location;
+    layout.protocol = locate.protocol;
+    var href = locate.href;
+    if (href.indexOf("debugger")!=-1) layout.debugger = true;
+    layout.mobile = true;
 
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
+    layout.desktop.session = {};
+    var uri = new URI(href);
+    var appNames = uri.getData("app");
+    var optionsStr = (uri.getData("option"));
+    var statusStr = (uri.getData("status"));
 
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+    var options = (optionsStr) ? JSON.decode(optionsStr) : null;
+    var statusObj = (statusStr) ? JSON.decode(statusStr) : null;
+
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 
@@ -208,11 +206,18 @@ COMMON.DOM.addReady(function(){
                         this.node = $("layout");
                         var topWindow = window.opener;
                         if (topWindow){
+                            try{
+                                var appName = topWindow.layout.desktop.openBrowserApp || appNames;
+                                var m_status = topWindow.layout.desktop.openBrowserStatus || statusObj;
+                                var option = topWindow.layout.desktop.openBrowserOption || options;
+                                layout.openApplication(null, appName, option||{}, m_status);
+                            }catch(e){
+                                var appName = appNames;
+                                var m_status = statusObj;
+                                var option = options;
+                                layout.openApplication(null, appName, option||{}, m_status);
+                            }
 
-                            var appName = topWindow.layout.desktop.openBrowserApp || appNames;
-                            var m_status = topWindow.layout.desktop.openBrowserStatus || statusObj;
-                            var option = topWindow.layout.desktop.openBrowserOption || options;
-                            layout.openApplication(null, appName, option||{}, m_status);
                             //topWindow.layout.desktop.openBrowserApp = null;
                             //topWindow.layout.desktop.openBrowserStatus = null;
                             //topWindow.layout.desktop.openBrowserOption = null;

+ 11 - 15
o2web/source/x_desktop/js/cmsDocMobile.js

@@ -6,12 +6,8 @@ layout.desktop = layout;
 layout.session = layout.session || {};
 var href = locate.href;
 if (href.indexOf("debugger")!=-1) layout.debugger = true;
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+o2.addReady(function(){
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 
@@ -194,15 +190,15 @@ COMMON.DOM.addReady(function(){
                     }
 
                     this.control = data.control ||  {
-                            "allowRead": true,
-                            "allowPublishDocument": false,
-                            "allowArchiveDocument" : false,
-                            "allowRedraftDocument" : false,
-                            "allowSave": false,
-                            "allowPopularDocument": false,
-                            "allowEditDocument":  false,
-                            "allowDeleteDocument":  false
-                        };
+                        "allowRead": true,
+                        "allowPublishDocument": false,
+                        "allowArchiveDocument" : false,
+                        "allowRedraftDocument" : false,
+                        "allowSave": false,
+                        "allowPopularDocument": false,
+                        "allowEditDocument":  false,
+                        "allowDeleteDocument":  false
+                    };
                 };
                 layout.openDocument = function(){
                     if (this.form){

+ 2 - 10
o2web/source/x_desktop/js/ddsso.js

@@ -5,19 +5,11 @@ var href = locate.href;
 if (href.indexOf("debugger")!==-1) layout.debugger = true;
 layout.desktop = layout;
 layout.session = layout.session || {};
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+o2.addReady(function(){
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 
-        // MWF.require("MWF.widget.Mask", null, false);
-        // layout.mask = new MWF.widget.Mask({"style": "desktop"});
-        // layout.mask.load();
-
         MWF.require("MWF.xDesktop.Layout", function(){
             MWF.require("MWF.xDesktop.Authentication", null, false);
 

+ 3 - 7
o2web/source/x_desktop/js/forum.js

@@ -5,12 +5,8 @@ layout.protocol = locate.protocol;
 var href = locate.href;
 layout.session = layout.session || {};
 if (href.indexOf("debugger")!=-1) layout.debugger = true;
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+o2.addReady(function(){
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 
@@ -140,7 +136,7 @@ COMMON.DOM.addReady(function(){
                             var id = urlParams.id;
                             //alert(sessionStorage.getItem( appName+id+"options").id)
                             //alert(sessionStorage.getItem( appName+id+"status").id)
-                           var opt = sessionStorage[ appName+ (id ? id : "") +"options" ];
+                            var opt = sessionStorage[ appName+ (id ? id : "") +"options" ];
                             if(opt){
                                 option = JSON.parse(opt)
                             }else if(id){

+ 2 - 6
o2web/source/x_desktop/js/forumDocMobile.js

@@ -6,12 +6,8 @@ layout.protocol = locate.protocol;
 var href = locate.href;
 layout.session = layout.session || {};
 if (href.indexOf("debugger")!=-1) layout.debugger = true;
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+o2.addReady(function(){
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 

+ 49 - 28
o2web/source/x_desktop/js/portal.js

@@ -1,26 +1,28 @@
 layout = window.layout || {};
-var locate = window.location;
-layout.protocol = locate.protocol;
-var href = locate.href;
-if (href.indexOf("debugger")!=-1) layout["debugger"] = true;
-layout.session = layout.session || {};
-//layout.session.user = {};
 layout.desktop = layout;
 
-var uri = new URI(href);
-var appNames = "portal.Portal";
-var id = uri.getData("id");
-var page = uri.getData("page");
-var statusObj = {"portalId": id, "pageId": page};
-var options = null;
+o2.addReady(function(){
 
-layout.desktop = layout;
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-    COMMON.setContentPath("/x_desktop");
-    //COMMON.AjaxModule.load("ie_adapter", function(){
-        COMMON.AjaxModule.load("mwf", function(){
+    var locate = window.location;
+    layout.protocol = locate.protocol;
+    var href = locate.href;
+    if (href.indexOf("debugger")!=-1) layout["debugger"] = true;
+    layout.session = layout.session || {};
+//layout.session.user = {};
+    layout.desktop = layout;
+
+    var uri = new URI(href);
+    var appNames = "portal.Portal";
+    var id = uri.getData("id");
+    var page = uri.getData("page");
+    var statusObj = {"portalId": id, "pageId": page};
+    var options = null;
+
+    // COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
+    // COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
+
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
+        //COMMON.AjaxModule.load("mwf", function(){
             MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
             MWF.loadLP("zh-cn");
 
@@ -103,11 +105,18 @@ COMMON.DOM.addReady(function(){
 
                         var topWindow = window.opener;
                         if (topWindow){
-                            topWindow.layout.desktop.openBrowserStatus = status;
-                            var appName = topWindow.layout.desktop.openBrowserApp || appNames;
-                            var m_status = status;
-                            var option = topWindow.layout.desktop.openBrowserOption || options;
-                            window.location.reload();
+                            try{
+                                topWindow.layout.desktop.openBrowserStatus = status;
+                                var appName = topWindow.layout.desktop.openBrowserApp || appNames;
+                                var m_status = status;
+                                var option = topWindow.layout.desktop.openBrowserOption || options;
+                                window.location.reload();
+                            }catch(e){
+                                statusStr = encodeURIComponent(JSON.encode(status));
+                                var port = uri.get("port");
+                                var url = uri.get("scheme")+"://"+uri.get("host")+((port) ? ":"+port+"" : "")+uri.get("directory")+uri.get("file")+"?app="+appNames+"&status="+statusStr;
+                                window.location = url;
+                            }
                         }else{
                             statusStr = encodeURIComponent(JSON.encode(status));
                             var port = uri.get("port");
@@ -124,11 +133,18 @@ COMMON.DOM.addReady(function(){
                             this.node = $("layout");
                             var topWindow = window.opener;
                             if (topWindow){
+                                try{
+                                    var appName = topWindow.layout.desktop.openBrowserApp || appNames;
+                                    var m_status = topWindow.layout.desktop.openBrowserStatus || statusObj;
+                                    var option = topWindow.layout.desktop.openBrowserOption || options;
+                                    layout.openApplication(null, appName, option||{}, m_status);
+                                }catch(e){
+                                    var appName = appNames;
+                                    var m_status = statusObj;
+                                    var option = options;
+                                    layout.openApplication(null, appName, option||{}, m_status);
+                                }
 
-                                var appName = topWindow.layout.desktop.openBrowserApp || appNames;
-                                var m_status = topWindow.layout.desktop.openBrowserStatus || statusObj;
-                                var option = topWindow.layout.desktop.openBrowserOption || options;
-                                layout.openApplication(null, appName, option||{}, m_status);
                                 //topWindow.layout.desktop.openBrowserApp = null;
                                 //topWindow.layout.desktop.openBrowserStatus = null;
                                 //topWindow.layout.desktop.openBrowserOption = null;
@@ -189,5 +205,10 @@ COMMON.DOM.addReady(function(){
 
             });
         });
+    //});
+
+    //COMMON.setContentPath("/x_desktop");
+    //COMMON.AjaxModule.load("ie_adapter", function(){
+
     //}.bind(this));
 });

+ 27 - 21
o2web/source/x_desktop/js/portalmobile.js

@@ -1,24 +1,23 @@
 layout = window.layout || {};
-var locate = window.location;
-layout.protocol = locate.protocol;
-var href = locate.href;
-if (href.indexOf("debugger")!=-1) layout.debugger = true;
-layout.mobile = true;
 layout.desktop = layout;
-layout.session = layout.session || {};
-var uri = new URI(href);
-var appNames = "portal.Portal";
-var id = uri.getData("id");
-var page = uri.getData("page");
-var statusObj = {"portalId": id, "pageId": page};
-var options = null;
 
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
+o2.addReady(function(){
 
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+    var locate = window.location;
+    layout.protocol = locate.protocol;
+    var href = locate.href;
+    if (href.indexOf("debugger")!=-1) layout.debugger = true;
+    layout.mobile = true;
+
+    layout.session = layout.session || {};
+    var uri = new URI(href);
+    var appNames = "portal.Portal";
+    var id = uri.getData("id");
+    var page = uri.getData("page");
+    var statusObj = {"portalId": id, "pageId": page};
+    var options = null;
+
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 
@@ -207,11 +206,18 @@ COMMON.DOM.addReady(function(){
                         this.node = $("layout");
                         var topWindow = window.opener;
                         if (topWindow){
+                            try{
+                                var appName = topWindow.layout.desktop.openBrowserApp || appNames;
+                                var m_status = topWindow.layout.desktop.openBrowserStatus || statusObj;
+                                var option = topWindow.layout.desktop.openBrowserOption || options;
+                                layout.openApplication(null, appName, option||{}, m_status);
+                            }catch(e){
+                                var appName = appNames;
+                                var m_status = statusObj;
+                                var option = options;
+                                layout.openApplication(null, appName, option||{}, m_status);
+                            }
 
-                            var appName = topWindow.layout.desktop.openBrowserApp || appNames;
-                            var m_status = topWindow.layout.desktop.openBrowserStatus || statusObj;
-                            var option = topWindow.layout.desktop.openBrowserOption || options;
-                            layout.openApplication(null, appName, option||{}, m_status);
                             //topWindow.layout.desktop.openBrowserApp = null;
                             //topWindow.layout.desktop.openBrowserStatus = null;
                             //topWindow.layout.desktop.openBrowserOption = null;

+ 27 - 31
o2web/source/x_desktop/js/printWork.js

@@ -5,12 +5,8 @@ var href = locate.href;
 if (href.indexOf("debugger")!=-1) layout.debugger = true;
 layout.desktop = layout;
 layout.session = layout.session || {};
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+o2.addReady(function(){
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 
@@ -168,7 +164,7 @@ COMMON.DOM.addReady(function(){
                     return null;
                 };
                 layout.parseData = function(data){
-                 //   this.setTitle(this.options.title+"-"+data.work.title);
+                    //   this.setTitle(this.options.title+"-"+data.work.title);
 
                     this.activity = data.activity;
                     this.data = data.data;
@@ -184,30 +180,30 @@ COMMON.DOM.addReady(function(){
                     this.form = JSON.decode(MWF.decodeJsonString(data.form.data));
                 };
                 layout.fireEvent = function(){},
-                layout.openWork = function(){
-                    MWF.xDesktop.requireApp("process.Xform", "Form", function(){
-                        this.options.readonly = true;
-                        this.appForm = new MWF.APPForm(this.node, this.form, {"readonly": this.options.readonly});
-                        this.appForm.businessData = {
-                            "data": this.data,
-                            "taskList": this.taskList,
-                            "work": this.work,
-                            "workCompleted": this.workCompleted,
-                            "control": this.control,
-                            "activity": this.activity,
-                            "task": this.currentTask,
-                            "workLogList": this.workLogList,
-                            "attachmentList": this.attachmentList,
-                            "inheritedAttachmentList": this.inheritedAttachmentList,
-                            "status": {
-                                "readonly": (this.options.readonly) ? true : false
-                            }
-                        };
-                        this.appForm.workAction = this.action;
-                        this.appForm.app = this;
-                        this.appForm.load();
-                    }.bind(this))
-                };
+                    layout.openWork = function(){
+                        MWF.xDesktop.requireApp("process.Xform", "Form", function(){
+                            this.options.readonly = true;
+                            this.appForm = new MWF.APPForm(this.node, this.form, {"readonly": this.options.readonly});
+                            this.appForm.businessData = {
+                                "data": this.data,
+                                "taskList": this.taskList,
+                                "work": this.work,
+                                "workCompleted": this.workCompleted,
+                                "control": this.control,
+                                "activity": this.activity,
+                                "task": this.currentTask,
+                                "workLogList": this.workLogList,
+                                "attachmentList": this.attachmentList,
+                                "inheritedAttachmentList": this.inheritedAttachmentList,
+                                "status": {
+                                    "readonly": (this.options.readonly) ? true : false
+                                }
+                            };
+                            this.appForm.workAction = this.action;
+                            this.appForm.app = this;
+                            this.appForm.load();
+                        }.bind(this))
+                    };
 
                 layout.isAuthentication = function(){
                     layout.authentication = new MWF.xDesktop.Authentication({

+ 3 - 7
o2web/source/x_desktop/js/weixinsso.js

@@ -5,12 +5,8 @@ var href = locate.href;
 if (href.indexOf("debugger")!=-1) layout.debugger = true;
 layout.desktop = layout;
 layout.session = layout.session || {};
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+o2.addReady(function(){
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 
@@ -23,7 +19,7 @@ COMMON.DOM.addReady(function(){
 
             (function(){
                 layout.load = function(){
-                    
+
                     var uri = href.toURI();
                     MWF.require("MWF.xDesktop.Actions.RestActions", function(){
                         var action = new MWF.xDesktop.Actions.RestActions("", "x_organization_assemble_authentication", "");

+ 3 - 7
o2web/source/x_desktop/js/work.js

@@ -8,12 +8,8 @@ layout.desktop = layout;
 
 var parentWindow = window.opener;
 
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+o2.addReady(function(){
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 
@@ -209,7 +205,7 @@ COMMON.DOM.addReady(function(){
                     return null;
                 };
                 layout.parseData = function(data){
-                 //   this.setTitle(this.options.title+"-"+data.work.title);
+                    //   this.setTitle(this.options.title+"-"+data.work.title);
 
                     this.activity = data.activity;
                     this.data = data.data;

+ 3 - 7
o2web/source/x_desktop/js/workmobile.js

@@ -7,12 +7,8 @@ if (href.indexOf("debugger")!=-1) layout.debugger = true;
 layout.mobile = true;
 layout.desktop = layout;
 layout.desktop.session = {};
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+o2.addReady(function(){
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 
@@ -178,7 +174,7 @@ COMMON.DOM.addReady(function(){
                     return null;
                 };
                 layout.parseData = function(data){
-                 //   this.setTitle(this.options.title+"-"+data.work.title);
+                    //   this.setTitle(this.options.title+"-"+data.work.title);
 
                     this.activity = data.activity;
                     this.data = data.data;

+ 3 - 7
o2web/source/x_desktop/js/workmobilewithaction.js

@@ -7,12 +7,8 @@ layout.mobile = true;
 layout.desktop = layout;
 layout.desktop.session = {};
 layout.session = layout.session || {};
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-    COMMON.setContentPath("/x_desktop");
-    COMMON.AjaxModule.load("mwf", function(){
+o2.addReady(function(){
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
         MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
         MWF.loadLP("zh-cn");
 
@@ -289,7 +285,7 @@ COMMON.DOM.addReady(function(){
                     return null;
                 };
                 layout.parseData = function(data){
-                 //   this.setTitle(this.options.title+"-"+data.work.title);
+                    //   this.setTitle(this.options.title+"-"+data.work.title);
 
                     this.activity = data.activity;
                     this.data = data.data;

+ 3 - 3
o2web/source/x_desktop/js/x.js

@@ -26,8 +26,8 @@ o2.addReady(function(){
 
     //COMMON.setContentPath("/x_desktop");
     //COMMON.AjaxModule.load("ie_adapter", function(){
-    o2.load("../o2_lib/mootools/plugin/mBox.Notice.js", function(){
-        o2.load("../o2_lib/mootools/plugin/mBox.Tooltip.js", function(){
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
+        //o2.load("../o2_lib/mootools/plugin/mBox.Tooltip.js", function(){
             //o2.load("mwf", function(){
 
             o2.JSON.get("res/config/config.json", function(config){
@@ -65,7 +65,7 @@ o2.addReady(function(){
 
             }, false);
             //});
-        });
+        //});
     });
     //});
 });

+ 259 - 264
o2web/source/x_desktop/js/zhengwuDingdingSso.js

@@ -2,284 +2,279 @@ layout = window.layout || {};
 var locate = window.location;
 layout.protocol = locate.protocol;
 layout.mobile = true;
-var href = locate.href;
-if (href.indexOf("debugger")!==-1) layout.debugger = true;
-var uri = new URI(href);
-var redirectTo = uri.getData("redirectTo");
-var optionsStr = (uri.getData("option"));
-var statusStr = (uri.getData("status"));
-
-var options = (optionsStr) ? JSON.decode(optionsStr) : null;
-var statusObj = (statusStr) ? JSON.decode(statusStr) : null;
 
 layout.desktop = layout;
 layout.session = layout.session || {};
 
-COMMON.DOM.addReady(function(){
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-    COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-    //dd.ready(function() {
-        COMMON.setContentPath("/x_desktop");
-        COMMON.AjaxModule.load("mwf", function () {
-            MWF.defaultPath = "/x_desktop" + MWF.defaultPath;
-            MWF.loadLP("zh-cn");
-
-            // MWF.require("MWF.widget.Mask", null, false);
-            // layout.mask = new MWF.widget.Mask({"style": "desktop"});
-            // layout.mask.load();
-
-            MWF.require("MWF.xDesktop.Layout", function () {
-                MWF.xDesktop.requireApp("Common", "", null, false);
-                MWF.require("MWF.xDesktop.Authentication", null, false);
-
-                (function () {
-                    layout.requireApp = function(appNames, callback, clazzName){
-                        var appPath = appNames.split(".");
-                        var appName = appPath[appPath.length-1];
-                        var appObject = "MWF.xApplication."+appNames;
-                        var className = clazzName || "Main";
-                        var appClass = appObject+"."+className;
-                        var appLp = appObject+".lp."+MWF.language;
-                        var baseObject = MWF.xApplication;
-                        appPath.each(function(path, i){
-                            if (i<(appPath.length-1)){
-                                baseObject[path] = baseObject[path] || {};
-                            }else {
-                                baseObject[path] = baseObject[path] || {"options": Object.clone(MWF.xApplication.Common.options)};
-                            }
-                            baseObject = baseObject[path];
-                        }.bind(this));
-                        if (!baseObject.options) baseObject.options = Object.clone(MWF.xApplication.Common.options);
-
-                        //MWF.xDesktop.requireApp(appNames, "lp."+MWF.language, null, false);
-                        MWF.xDesktop.requireApp(appNames, "lp."+MWF.language, {
-                            "onRequestFailure": function(){
-                                MWF.xDesktop.requireApp(appNames, "lp.zh-cn", null, false);
-                            }.bind(this),
-                            "onSuccess": function(){}.bind(this)
-                        }, false);
-
-                        MWF.xDesktop.requireApp(appNames, clazzName, function(){
-                            if (callback) callback(baseObject);
-                        });
-                    };
-                    layout.openApplication = function(e, appNames, options, statusObj){
-                        if (layout.app){
-                            layout.desktop.openBrowserApp = appNames;
-                            layout.desktop.openBrowserStatus = statusObj;
-                            layout.desktop.openBrowserOption = options;
-
-                            var optionsStr = JSON.encode(options);
-                            var statusStr = JSON.encode(statusObj);
-                            //window.open("appMobile.html", "_blank");
-                            //layout.openApplication(null, appNames, option||{}, m_status);
-                            var title = options.docTitle || "";
-                            if (appNames==="process.Work"){
-                                var uri = new URI(window.location.href);
-                                var redirectlink = uri.getData("redirectlink");
-                                if( !redirectlink ){
-                                    redirectlink = encodeURIComponent(locate.pathname + locate.search);
-                                }else{
-                                    redirectlink = encodeURIComponent(redirectlink);
-                                }
-                                if( options.workId ){
-                                    window.location = "workmobilewithaction.html?workid="+options.workId+"&redirectlink="+redirectlink;
-                                }else if( options.workCompletedId ){
-                                    window.location = "workmobilewithaction.html?workcompletedid="+options.workCompletedId+"&redirectlink="+redirectlink;
-                                }
+o2.addReady(function(){
+    var href = locate.href;
+    if (href.indexOf("debugger")!==-1) layout.debugger = true;
+    var uri = new URI(href);
+    var redirectTo = uri.getData("redirectTo");
+    var optionsStr = (uri.getData("option"));
+    var statusStr = (uri.getData("status"));
+
+    var options = (optionsStr) ? JSON.decode(optionsStr) : null;
+    var statusObj = (statusStr) ? JSON.decode(statusStr) : null;
+
+    o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
+        MWF.defaultPath = "/x_desktop" + MWF.defaultPath;
+        MWF.loadLP("zh-cn");
+
+        // MWF.require("MWF.widget.Mask", null, false);
+        // layout.mask = new MWF.widget.Mask({"style": "desktop"});
+        // layout.mask.load();
+
+        MWF.require("MWF.xDesktop.Layout", function () {
+            MWF.xDesktop.requireApp("Common", "", null, false);
+            MWF.require("MWF.xDesktop.Authentication", null, false);
+
+            (function () {
+                layout.requireApp = function(appNames, callback, clazzName){
+                    var appPath = appNames.split(".");
+                    var appName = appPath[appPath.length-1];
+                    var appObject = "MWF.xApplication."+appNames;
+                    var className = clazzName || "Main";
+                    var appClass = appObject+"."+className;
+                    var appLp = appObject+".lp."+MWF.language;
+                    var baseObject = MWF.xApplication;
+                    appPath.each(function(path, i){
+                        if (i<(appPath.length-1)){
+                            baseObject[path] = baseObject[path] || {};
+                        }else {
+                            baseObject[path] = baseObject[path] || {"options": Object.clone(MWF.xApplication.Common.options)};
+                        }
+                        baseObject = baseObject[path];
+                    }.bind(this));
+                    if (!baseObject.options) baseObject.options = Object.clone(MWF.xApplication.Common.options);
+
+                    //MWF.xDesktop.requireApp(appNames, "lp."+MWF.language, null, false);
+                    MWF.xDesktop.requireApp(appNames, "lp."+MWF.language, {
+                        "onRequestFailure": function(){
+                            MWF.xDesktop.requireApp(appNames, "lp.zh-cn", null, false);
+                        }.bind(this),
+                        "onSuccess": function(){}.bind(this)
+                    }, false);
+
+                    MWF.xDesktop.requireApp(appNames, clazzName, function(){
+                        if (callback) callback(baseObject);
+                    });
+                };
+                layout.openApplication = function(e, appNames, options, statusObj){
+                    if (layout.app){
+                        layout.desktop.openBrowserApp = appNames;
+                        layout.desktop.openBrowserStatus = statusObj;
+                        layout.desktop.openBrowserOption = options;
+
+                        var optionsStr = JSON.encode(options);
+                        var statusStr = JSON.encode(statusObj);
+                        //window.open("appMobile.html", "_blank");
+                        //layout.openApplication(null, appNames, option||{}, m_status);
+                        var title = options.docTitle || "";
+                        if (appNames==="process.Work"){
+                            var uri = new URI(window.location.href);
+                            var redirectlink = uri.getData("redirectlink");
+                            if( !redirectlink ){
+                                redirectlink = encodeURIComponent(locate.pathname + locate.search);
                             }else{
-                                window.location = "appMobile.html?app="+appNames+"&option="+(optionsStr || "")+"&status="+(statusStr || "");
+                                redirectlink = encodeURIComponent(redirectlink);
+                            }
+                            if( options.workId ){
+                                window.location = "workmobilewithaction.html?workid="+options.workId+"&redirectlink="+redirectlink;
+                            }else if( options.workCompletedId ){
+                                window.location = "workmobilewithaction.html?workcompletedid="+options.workCompletedId+"&redirectlink="+redirectlink;
                             }
                         }else{
-                            var appPath = appNames.split(".");
-                            var appName = appPath[appPath.length-1];
-
-                            layout.requireApp(appNames, function(appNamespace){
-                                this.createNewApplication(e, appNamespace, appName, options, statusObj);
-                            }.bind(this));
-                        }
-                    };
-                    layout.createNewApplication = function(e, appNamespace, appName, options, statusObj){
-                        var app = new appNamespace["Main"](this, options);
-                        app.desktop = layout;
-                        app.inBrowser = true;
-                        app.status = statusObj;
-                        app.load(true);
-
-                        var appId = appName;
-                        if (options.appId){
-                            appId = options.appId;
-                        }else{
-                            if (appNamespace.options.multitask) appId = appId+"-"+(new MWF.widget.UUID());
+                            window.location = "appMobile.html?app="+appNames+"&option="+(optionsStr || "")+"&status="+(statusStr || "");
                         }
-                        app.appId = appId;
-                        layout.app = app;
-                    };
-
-                    layout.load = function () {
-                        MWF.require("MWF.xDesktop.MessageMobile", function(){
-                            layout.message = new MWF.xDesktop.MessageMobile();
-                            layout.message.load();
-                        }.bind(this));
-
-                        var uri = href.toURI();
-                        MWF.require("MWF.xDesktop.Actions.RestActions", function () {
-                            var action = new MWF.xDesktop.Actions.RestActions("", "x_organization_assemble_authentication", "");
-                            action.getActions = function (actionCallback) {
-                                this.actions = {
-                                    "info": {"uri": "/jaxrs/zhengwudingding/info", "method": "POST"},
-                                    "auth": {"uri": "/jaxrs/zhengwudingding/code/{code}"}
-                                };
-                                if (actionCallback) actionCallback();
-                            };
-                            action.invoke({
-                                "name": "info", "async": true, "data": {"url": href}, "success": function (json) {
-                                    // if (redirectTo){
-                                    //     document.all.appContent.src = (redirectTo+"&option="+optionsStr);
-                                    // }else{
-                                    //     document.all.appContent.src = "appMobile.html?app=process.TaskCenter";
-                                    // }
-                                    //if (document.all.appContentMask) document.all.appContentMask.destroy();
-
-                                    // debugger;
-                                    this.isAuthentication(function(){
-                                        var appName = "portal.Portal";
-                                        var m_status = statusObj;
-                                        var option = options;
-                                        layout.openApplication(null, appName, option||{}, m_status);
-
-                                        if (document.all.appContentMask) document.all.appContentMask.destroy();
-                                    }.bind(this));
-                                    // return false;
-
-                                    var _config = json.data;
-                                    dd.config({
-                                        agentId: _config.agentid,
-                                        corpId: _config.corpId,
-                                        timeStamp: _config.timeStamp,
-                                        nonceStr: _config.nonceStr,
-                                        signature: _config.signature,
-                                        jsApiList: ['runtime.info']
-                                    });
-                                    //dd.ready(function() {
-                                    dd.biz.navigation.setTitle({
-                                        title: ''
-                                    });
-                                    // dd.runtime.info({
-                                    //     onSuccess : function(info) {
-                                    //         logger.e('runtime info: ' + JSON.stringify(info));
-                                    //     },
-                                    //     onFail : function(err) {
-                                    //         logger.e('fail: ' + JSON.stringify(err));
-                                    //     }
-                                    // });
-                                    dd.runtime.permission.requestAuthCode({
-
-                                        corpId: _config.corpId,
-                                        onSuccess: function (info) {
-                                            action.invoke({
-                                                "name": "auth",
-                                                "async": true,
-                                                "parameter": {"code": info.code},
-                                                "success": function (json) {
-
-                                                    // var appName = appNames;
-                                                    // var m_status = statusObj;
-                                                    // var option = options;
-                                                    // layout.openApplication(null, appName, option||{}, m_status);
-
-
-                                                    // if (redirectTo){
-                                                    //     document.all.appContent.src = (redirectTo+"&option="+option);
-                                                    // }else{
-                                                    //     document.all.appContent.src = "appMobile.html?app=process.TaskCenter";
-                                                    // }
-                                                    // if (document.all.appContentMask) document.all.appContentMask.destroy();
-
-                                                    // if (redirectTo){
-                                                    //     (redirectTo+"&option="+option).toURI().go();
-                                                    // }else{
-                                                    //     "appMobile.html?app=process.TaskCenter".toURI().go();
-                                                    // }
-
-                                                }.bind(this),
-                                                "failure": function (xhr, text, error) {
-                                                    "appMobile.html?app=process.TaskCenter".toURI().go();
-                                                }.bind(this)
-                                            });
-                                        }.bind(this),
-                                        onFail: function (err) {
-                                        }
-                                    });
-                                    //});
-
-                                }.bind(this), "failure": function (xhr, text, error) {
-
-                                }.bind(this)
-                            });
-                        }.bind(this));
-                    };
-
-                    layout.isAuthentication = function(callback){
-                        this.authentication = new MWF.xDesktop.Authentication({
-                            "onLogin": layout.load.bind(layout)
-                        });
+                    }else{
+                        var appPath = appNames.split(".");
+                        var appName = appPath[appPath.length-1];
 
-                        var returnValue = true;
-                        this.authentication.isAuthenticated(function(json){
-                            this.user = json.data;
-                            this.session = {};
-                            this.session.user = json.data;
-                            if (callback) callback();
-                        }.bind(this), function(){
-                            this.authentication.loadLogin(document.body);
-                            if (layout.mask) layout.mask.hide();
-                            if (document.all.appContentMask) document.all.appContentMask.destroy();
-                            returnValue = false;
+                        layout.requireApp(appNames, function(appNamespace){
+                            this.createNewApplication(e, appNamespace, appName, options, statusObj);
                         }.bind(this));
-                        return returnValue;
-                    };
-
-                    layout.notice = function (content, type, target, where, offset) {
-                        if (!where) where = {"x": "right", "y": "top"};
-                        if (!target) target = this.content;
-                        if (!type) type = "ok";
-                        var noticeTarget = target || $(document.body);
-                        var off = offset;
-                        if (!off) {
-                            off = {
-                                x: 10,
-                                y: where.y.toString().toLowerCase() == "bottom" ? 10 : 10
+                    }
+                };
+                layout.createNewApplication = function(e, appNamespace, appName, options, statusObj){
+                    var app = new appNamespace["Main"](this, options);
+                    app.desktop = layout;
+                    app.inBrowser = true;
+                    app.status = statusObj;
+                    app.load(true);
+
+                    var appId = appName;
+                    if (options.appId){
+                        appId = options.appId;
+                    }else{
+                        if (appNamespace.options.multitask) appId = appId+"-"+(new MWF.widget.UUID());
+                    }
+                    app.appId = appId;
+                    layout.app = app;
+                };
+
+                layout.load = function () {
+                    MWF.require("MWF.xDesktop.MessageMobile", function(){
+                        layout.message = new MWF.xDesktop.MessageMobile();
+                        layout.message.load();
+                    }.bind(this));
+
+                    var uri = href.toURI();
+                    MWF.require("MWF.xDesktop.Actions.RestActions", function () {
+                        var action = new MWF.xDesktop.Actions.RestActions("", "x_organization_assemble_authentication", "");
+                        action.getActions = function (actionCallback) {
+                            this.actions = {
+                                "info": {"uri": "/jaxrs/zhengwudingding/info", "method": "POST"},
+                                "auth": {"uri": "/jaxrs/zhengwudingding/code/{code}"}
                             };
-                        }
-
-                        new mBox.Notice({
-                            type: type,
-                            position: where,
-                            move: false,
-                            target: noticeTarget,
-                            delayClose: (type == "error") ? 10000 : 5000,
-                            offset: off,
-                            content: content
+                            if (actionCallback) actionCallback();
+                        };
+                        action.invoke({
+                            "name": "info", "async": true, "data": {"url": href}, "success": function (json) {
+                                // if (redirectTo){
+                                //     document.all.appContent.src = (redirectTo+"&option="+optionsStr);
+                                // }else{
+                                //     document.all.appContent.src = "appMobile.html?app=process.TaskCenter";
+                                // }
+                                //if (document.all.appContentMask) document.all.appContentMask.destroy();
+
+                                // debugger;
+                                this.isAuthentication(function(){
+                                    var appName = "portal.Portal";
+                                    var m_status = statusObj;
+                                    var option = options;
+                                    layout.openApplication(null, appName, option||{}, m_status);
+
+                                    if (document.all.appContentMask) document.all.appContentMask.destroy();
+                                }.bind(this));
+                                // return false;
+
+                                var _config = json.data;
+                                dd.config({
+                                    agentId: _config.agentid,
+                                    corpId: _config.corpId,
+                                    timeStamp: _config.timeStamp,
+                                    nonceStr: _config.nonceStr,
+                                    signature: _config.signature,
+                                    jsApiList: ['runtime.info']
+                                });
+                                //dd.ready(function() {
+                                dd.biz.navigation.setTitle({
+                                    title: ''
+                                });
+                                // dd.runtime.info({
+                                //     onSuccess : function(info) {
+                                //         logger.e('runtime info: ' + JSON.stringify(info));
+                                //     },
+                                //     onFail : function(err) {
+                                //         logger.e('fail: ' + JSON.stringify(err));
+                                //     }
+                                // });
+                                dd.runtime.permission.requestAuthCode({
+
+                                    corpId: _config.corpId,
+                                    onSuccess: function (info) {
+                                        action.invoke({
+                                            "name": "auth",
+                                            "async": true,
+                                            "parameter": {"code": info.code},
+                                            "success": function (json) {
+
+                                                // var appName = appNames;
+                                                // var m_status = statusObj;
+                                                // var option = options;
+                                                // layout.openApplication(null, appName, option||{}, m_status);
+
+
+                                                // if (redirectTo){
+                                                //     document.all.appContent.src = (redirectTo+"&option="+option);
+                                                // }else{
+                                                //     document.all.appContent.src = "appMobile.html?app=process.TaskCenter";
+                                                // }
+                                                // if (document.all.appContentMask) document.all.appContentMask.destroy();
+
+                                                // if (redirectTo){
+                                                //     (redirectTo+"&option="+option).toURI().go();
+                                                // }else{
+                                                //     "appMobile.html?app=process.TaskCenter".toURI().go();
+                                                // }
+
+                                            }.bind(this),
+                                            "failure": function (xhr, text, error) {
+                                                "appMobile.html?app=process.TaskCenter".toURI().go();
+                                            }.bind(this)
+                                        });
+                                    }.bind(this),
+                                    onFail: function (err) {
+                                    }
+                                });
+                                //});
+
+                            }.bind(this), "failure": function (xhr, text, error) {
+
+                            }.bind(this)
                         });
-                    };
-
-                    MWF.getJSON("res/config/config.json", function (config) {
-                        layout.config = config;
-                        MWF.xDesktop.getServiceAddress(layout.config, function (service, center) {
-                            layout.serviceAddressList = service;
-                            layout.centerServer = center;
-                            layout.load();
-                        }.bind(this));
-                        //layout.getServiceAddress(function(){
-                        //    layout.load();
-                        //});
+                    }.bind(this));
+                };
+
+                layout.isAuthentication = function(callback){
+                    this.authentication = new MWF.xDesktop.Authentication({
+                        "onLogin": layout.load.bind(layout)
                     });
 
-                })();
+                    var returnValue = true;
+                    this.authentication.isAuthenticated(function(json){
+                        this.user = json.data;
+                        this.session = {};
+                        this.session.user = json.data;
+                        if (callback) callback();
+                    }.bind(this), function(){
+                        this.authentication.loadLogin(document.body);
+                        if (layout.mask) layout.mask.hide();
+                        if (document.all.appContentMask) document.all.appContentMask.destroy();
+                        returnValue = false;
+                    }.bind(this));
+                    return returnValue;
+                };
+
+                layout.notice = function (content, type, target, where, offset) {
+                    if (!where) where = {"x": "right", "y": "top"};
+                    if (!target) target = this.content;
+                    if (!type) type = "ok";
+                    var noticeTarget = target || $(document.body);
+                    var off = offset;
+                    if (!off) {
+                        off = {
+                            x: 10,
+                            y: where.y.toString().toLowerCase() == "bottom" ? 10 : 10
+                        };
+                    }
+
+                    new mBox.Notice({
+                        type: type,
+                        position: where,
+                        move: false,
+                        target: noticeTarget,
+                        delayClose: (type == "error") ? 10000 : 5000,
+                        offset: off,
+                        content: content
+                    });
+                };
+
+                MWF.getJSON("res/config/config.json", function (config) {
+                    layout.config = config;
+                    MWF.xDesktop.getServiceAddress(layout.config, function (service, center) {
+                        layout.serviceAddressList = service;
+                        layout.centerServer = center;
+                        layout.load();
+                    }.bind(this));
+                    //layout.getServiceAddress(function(){
+                    //    layout.load();
+                    //});
+                });
+
+            })();
 
-            });
         });
- //   });
+    });
 });

+ 16 - 32
o2web/source/x_desktop/oauth.html

@@ -4,13 +4,13 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
     <meta charset="UTF-8">
     <title></title>
-    <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
     <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
     <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-    <script src="res/common.js?v=1.1.7"></script>
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
     <script>
         
         layout = window.layout || {};
@@ -85,38 +85,22 @@
             }.bind(this));
         };
 
-        COMMON.setContentPath("/x_desktop");
-        COMMON.AjaxModule.load("mwf", function(){
+        o2.load("mwf", function(){
             MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
             MWF.loadLP("zh-cn");
             MWF.require("MWF.xDesktop.Common", null, false);
             MWF.require("MWF.xAction.RestActions", null, false);
-            COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-            COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-            MWF.getJSON("res/config/config.json", function (config) {
-                layout.config = config;
-                MWF.xDesktop.getServiceAddress(config, function (service, center) {
-                    layout.serviceAddressList = service;
-                    layout.centerServer = center;
-                    layout.load();
-                }.bind(this));
-            }.bind(this));
-
-
 
-//            MWF.require("MWF.xDesktop.Layout", function() {
-//                MWF.require("MWF.xDesktop.Authentication", null, false);
-//                MWF.getJSON("res/config/config.json", function (config) {
-//                    layout.config = config;
-//                    MWF.xDesktop.getServiceAddress(config, function (service, center) {
-//                        layout.serviceAddressList = service;
-//                        layout.centerServer = center;
-//                        layout.load();
-//                    }.bind(this));
-//                });
-//
-//
-//            });
+            o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
+                o2.JSON.get("res/config/config.json", function (config) {
+                    layout.config = config;
+                    MWF.xDesktop.getServiceAddress(config, function (service, center) {
+                        layout.serviceAddressList = service;
+                        layout.centerServer = center;
+                        layout.load();
+                    }.bind(this));
+                }.bind(this));
+            });
         });
     </script>
 </head>

+ 6 - 9
o2web/source/x_desktop/portal.html

@@ -2,15 +2,12 @@
 <html>
     <head>
         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-        <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-        <script src="res/common.js?v=1.1.7"></script>
-        <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-        <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-        <script src="res/framework/mootools/mootools-1.6.0_all.js"></script>
-        <script src="res/framework/Decimal.js"></script>
-        <script src="res/js/portal.js?v=1.1.7"></script>
+        <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+        <script src="../o2_core/o2.js?v=2.0.0"></script>
+        <script src="../o2_core/compatible.js?v=2.0.0"></script>
+        <script src="js/portal.js?v=2.0.0"></script>
 
         <title>O2</title>
 

+ 6 - 9
o2web/source/x_desktop/portalmobile.html

@@ -2,15 +2,12 @@
 <html>
     <head>
         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-        <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-        <script src="res/common.js?v=1.1.7"></script>
-        <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-        <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-        <script src="res/framework/mootools/mootools-1.6.0_all.js"></script>
-        <script src="res/framework/Decimal.js"></script>
-        <script src="res/js/portalmobile.js?v=1.1.7"></script>
+        <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+        <script src="../o2_core/o2.js?v=2.0.0"></script>
+        <script src="../o2_core/compatible.js?v=2.0.0"></script>
+        <script src="js/portalmobile.js?v=2.0.0"></script>
 
         <title>O2</title>
 

+ 7 - 14
o2web/source/x_desktop/preview.html

@@ -2,14 +2,12 @@
 <html>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <link rel="stylesheet" type="text/css" href="/x_desktop/res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="/x_desktop/res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="/x_desktop/res/css/mBoxTooltip.css" charset="UTF-8" />
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
     <script src="/x_desktop/res/common.js?v=1.1.7"></script>
-    <!--<script src="/x_desktop/res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-    <!--<script src="/x_desktop/res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-    <script src="res/framework/mootools/mootools-1.6.0_all.js"></script>
-    <script src="res/framework/Decimal.js"></script>
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
 
     <title>FORM PREVIEW</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -24,13 +22,8 @@
         }
         layout.session = window.frameElement.ownerDocument.window.layout.session || {};
         //layout.desktop = layout;
-        COMMON.DOM.addReady(function(){
-            COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-            COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-            COMMON.setContentPath("/x_desktop");
-            COMMON.AjaxModule.load("mwf", function(){
-
+        o2.addReady(function(){
+            o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
                 MWF.getJSON("res/config/config.json", function(config){
                     layout.config = config;
                     if (layout.config.app_protocol=="auto"){

+ 6 - 9
o2web/source/x_desktop/printWork.html

@@ -2,15 +2,12 @@
 <html>
     <head>
         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-        <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-        <script src="res/common.js?v=1.1.7"></script>
-        <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-        <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-        <script src="res/framework/mootools/mootools-1.6.0_all.js"></script>
-        <script src="res/js/printWork.js?v=1.1.7"></script>
-        <script src="res/framework/Decimal.js"></script>
+        <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+        <script src="../o2_core/o2.js?v=2.0.0"></script>
+        <script src="../o2_core/compatible.js?v=2.0.0"></script>
+        <script src="js/printWork.js?v=2.0.2"></script>
 
         <title>WORK</title>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

+ 7 - 14
o2web/source/x_desktop/processViewer.html

@@ -2,26 +2,19 @@
 <html>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <link rel="stylesheet" type="text/css" href="/x_desktop/res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="/x_desktop/res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="/x_desktop/res/css/mBoxTooltip.css" charset="UTF-8" />
-    <script src="/x_desktop/res/common.js?v=1.1.7"></script>
-    <!--<script src="/x_desktop/res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-    <!--<script src="/x_desktop/res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-    <script src="res/framework/Decimal.js"></script>
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
 
     <title>FORM PREVIEW</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 
     <script>
         layout = window.layout || {};
-        COMMON.DOM.addReady(function(){
-            COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Notice.js", null, false);
-            COMMON.AjaxModule.load("/x_desktop/res/framework/mootools/plugin/mBox.Tooltip.js", null, false);
-
-            COMMON.setContentPath("/x_desktop");
-            COMMON.AjaxModule.load("mwf", function(){
+        o2.addReady(function(){
+            o2.load(["../o2_lib/mootools/plugin/mBox.Notice.js", "../o2_lib/mootools/plugin/mBox.Tooltip.js"], {"sequence": true}, function(){
                 MWF.defaultPath = "/x_desktop"+MWF.defaultPath;
                 MWF.loadLP("zh-cn");
                 MWF.require("MWF.xDesktop.Layout", function(){

+ 6 - 9
o2web/source/x_desktop/qiyeweixinsso.html

@@ -2,15 +2,12 @@
 <html>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-    <script src="res/common.js?v=1.1.7"></script>
-    <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-    <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-    <script src="res/framework/Decimal.js"></script>
-    <script src="res/js/weixinsso.js?v=1.1.7"></script>
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
+    <script src="js/weixinsso.js?v=2.0.0"></script>
 
     <title>WORK</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

+ 4 - 32
o2web/source/x_desktop/sso.html

@@ -4,10 +4,8 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
     <meta charset="UTF-8">
     <title></title>
-    <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-    <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-    <script src="res/common.js?v=1.1.7"></script>
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
     <script>
         function getServiceAddress(config, callback){
             if (typeOf(config.center)=="object"){
@@ -71,29 +69,8 @@
             }.bind(this));
         }
 
-//        function getServiceAddress(config, callback){
-//            var host = config.center.host || window.location.host;
-//            var port = config.center.port;
-//            var uri = "";
-//            if (!port || port=="80"){
-//                uri = "http://"+host+"/x_program_center/jaxrs/distribute/assemble/source/{source}";
-//            }else{
-//                uri = "http://"+host+":"+port+"/x_program_center/jaxrs/distribute/assemble/source/{source}";
-//            }
-//            var currenthost = window.location.hostname;
-//            uri = uri.replace(/{source}/g, currenthost);
-//            //var uri = "http://"+layout.config.center+"/x_program_center/jaxrs/distribute/assemble";
-//            MWF.restful("get", uri, null, function(json){
-//                var serviceAddressList = json.data;
-//                var addressObj = serviceAddressList["x_organization_assemble_authentication"];
-//                var address = "http://"+addressObj.host+(addressObj.port==80 ? "" : ":"+addressObj.port)+addressObj.context;
-//
-//                if (callback) callback(address);
-//            }.bind(this));
-//        }
-        COMMON.setContentPath("/x_desktop");
-        COMMON.AjaxModule.load("mwf", function(){
-            MWF.getJSON("res/config/config.json", function(config){
+        o2.addReady(function(){
+            o2.JSON.get("res/config/config.json", function(config){
                 getServiceAddress(config, function(address){
                     var uri = new URI(window.location.toString());
                     var xtoken = uri.getData("xtoken");
@@ -126,13 +103,8 @@
                 });
             });
 
-
-            //	MWF.require("MWF.process.RestActions", function(){
-            //		layout.restActions = new MWF.process.RestActions(Properties.action);
-            //	});
         });
 
-
     </script>
 </head>
 <body bgcolor="#faebd7" bgcolor="#ffc0cb">

+ 6 - 9
o2web/source/x_desktop/weixinsso.html

@@ -2,15 +2,12 @@
 <html>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-    <script src="res/common.js?v=1.1.7"></script>
-    <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-    <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-    <script src="res/framework/Decimal.js"></script>
-    <script src="res/js/weixinsso.js?v=1.1.7"></script>
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
+    <script src="js/weixinsso.js?v=2.0.2"></script>
 
     <title>WORK</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

+ 6 - 9
o2web/source/x_desktop/work.html

@@ -2,15 +2,12 @@
 <html>
     <head>
         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-        <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-        <script src="res/common.js?v=1.1.7"></script>
-        <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
-        <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-        <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-        <script src="res/framework/Decimal.js"></script>
-        <script src="res/js/work.js?v=1.1.7"></script>
+        <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+        <script src="../o2_core/o2.js?v=2.0.0"></script>
+        <script src="../o2_core/compatible.js?v=2.0.0"></script>
+        <script src="js/work.js?v=2.0.0"></script>
 
         <title>WORK</title>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

+ 6 - 9
o2web/source/x_desktop/workmobile.html

@@ -2,16 +2,13 @@
 <html>
     <head>
         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-        <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
+        <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
         <!--<script src="res/framework/htmleditor/ckeditor451/ckeditor.js"></script>-->
-        <script src="res/common.js?v=1.1.7"></script>
-        <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js?22"></script>-->
-        <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-        <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-        <script src="res/framework/Decimal.js"></script>
-        <script src="res/js/workmobile.js?v=1.1.7"></script>
+        <script src="../o2_core/o2.js?v=2.0.0"></script>
+        <script src="../o2_core/compatible.js?v=2.0.0"></script>
+        <script src="js/workmobile.js?v=2.0.0"></script>
 
         <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
         <meta content="yes" name="apple-mobile-web-app-capable" />

+ 6 - 10
o2web/source/x_desktop/workmobilewithaction.html

@@ -2,16 +2,12 @@
 <html>
     <head>
         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-        <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-        <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-        <!--<script src="res/framework/htmleditor/ckeditor451/ckeditor.js"></script>-->
-        <script src="res/common.js?v=1.1.7"></script>
-        <!--<script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js?22"></script>-->
-        <!--<script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->
-        <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-        <script src="res/framework/Decimal.js"></script>
-        <script src="res/js/workmobilewithaction.min.js?v=1.1.7"></script>
+        <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+        <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+        <script src="../o2_core/o2.js?v=2.0.0"></script>
+        <script src="../o2_core/compatible.js?v=2.0.0"></script>
+        <script src="js/workmobilewithaction.js?v=2.0.0"></script>
 
         <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
         <meta content="yes" name="apple-mobile-web-app-capable" />

+ 6 - 6
o2web/source/x_desktop/zhengwuDingdingSso.html

@@ -2,13 +2,13 @@
 <html>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-    <script src="res/common.js?v=1.1.7"></script>
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
     <script type="text/javascript" src="http://g.alicdn.com/ilw/ding/0.7.3/scripts/dingtalk.js"></script>
-    <script src="res/js/zhengwuDingdingSso.js?v=1.1.7"></script>
+    <script src="js/zhengwuDingdingSso.js?v=2.0.0"></script>
 
     <title></title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

+ 6 - 7
o2web/source/x_desktop/zwddssofp.html

@@ -2,13 +2,12 @@
 <html>
 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <link rel="stylesheet" type="text/css" href="res/css/style.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxNotice.css" charset="UTF-8" />
-    <link rel="stylesheet" href="res/css/mBoxTooltip.css" charset="UTF-8" />
-    <script src="res/common.js?v=1.1.7"></script>
-    <script src="res/framework/mootools/mootools-1.6.0.min.js"></script>
-    <script type="text/javascript" src="http://g.alicdn.com/ilw/ding/0.7.3/scripts/dingtalk.js"></script>
-    <script src="res/js/zhengwuDingdingSso.js?v=1.1.7"></script>
+    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
+    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
+    <script src="../o2_core/o2.js?v=2.0.0"></script>
+    <script src="../o2_core/compatible.js?v=2.0.0"></script>
+    <script src="js/zhengwuDingdingSso.js?v=2.0.0"></script>
 
     <title></title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />