Răsfoiți Sursa

整理web项目

huqi 5 ani în urmă
părinte
comite
625eff5d1a
100 a modificat fișierele cu 5303 adăugiri și 562 ștergeri
  1. 1 0
      o2web/source/o2_core/compatible.js
  2. 162 32
      o2web/source/o2_core/o2.js
  3. 35 24
      o2web/source/o2_core/o2/ie_adapter.js
  4. 28 2
      o2web/source/o2_core/o2/lp/zh-cn.js
  5. 19 14
      o2web/source/o2_core/o2/o2.core.js
  6. 74 54
      o2web/source/o2_core/o2/o2.more.js
  7. 28 0
      o2web/source/o2_core/o2/widget/$AttachmentController/blue_flat/css.wcss
  8. 28 0
      o2web/source/o2_core/o2/widget/$AttachmentController/cmcc/css.wcss
  9. 27 0
      o2web/source/o2_core/o2/widget/$AttachmentController/cms/css.wcss
  10. 30 1
      o2web/source/o2_core/o2/widget/$AttachmentController/default/css.wcss
  11. 516 0
      o2web/source/o2_core/o2/widget/$AttachmentController/mobile_blue_flat/css.wcss
  12. BIN
      o2web/source/o2_core/o2/widget/$Calendar/homepage/bottombg.gif
  13. 12 0
      o2web/source/o2_core/o2/widget/$Calendar/homepage/container.html
  14. 198 0
      o2web/source/o2_core/o2/widget/$Calendar/homepage/css.wcss
  15. 69 0
      o2web/source/o2_core/o2/widget/$Calendar/homepage/day.html
  16. BIN
      o2web/source/o2_core/o2/widget/$Calendar/homepage/left.png
  17. 24 0
      o2web/source/o2_core/o2/widget/$Calendar/homepage/month.html
  18. BIN
      o2web/source/o2_core/o2/widget/$Calendar/homepage/next.gif
  19. BIN
      o2web/source/o2_core/o2/widget/$Calendar/homepage/prev.gif
  20. BIN
      o2web/source/o2_core/o2/widget/$Calendar/homepage/right.png
  21. 192 0
      o2web/source/o2_core/o2/widget/$Calendar/homepage/style.css
  22. 23 0
      o2web/source/o2_core/o2/widget/$Calendar/homepage/time.html
  23. BIN
      o2web/source/o2_core/o2/widget/$Calendar/homepage/titlebg.gif
  24. 24 0
      o2web/source/o2_core/o2/widget/$Calendar/homepage/year.html
  25. BIN
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/bottombg.gif
  26. 12 0
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/container.html
  27. 224 0
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/css.js.bak
  28. 355 0
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/css.wcss
  29. 262 0
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/css_bak.wcss
  30. 69 0
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/day.html
  31. BIN
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/left.png
  32. 24 0
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/month.html
  33. BIN
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/next.gif
  34. BIN
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/prev.gif
  35. BIN
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/right.png
  36. 192 0
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/style.css
  37. BIN
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/tdbg.gif
  38. 18 0
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/time.html
  39. BIN
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/titlebg.gif
  40. 28 0
      o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/year.html
  41. 14 2
      o2web/source/o2_core/o2/widget/$Dialog/blue_flat/css.wcss
  42. 95 0
      o2web/source/o2_core/o2/widget/$Dialog/mobile_blue_flat/css.wcss
  43. 11 0
      o2web/source/o2_core/o2/widget/$Dialog/mobile_blue_flat/dialog.html
  44. BIN
      o2web/source/o2_core/o2/widget/$Dialog/mobile_blue_flat/img/back@2x.png
  45. 2 2
      o2web/source/o2_core/o2/widget/$Menu/desktopStyle/css.wcss
  46. 119 0
      o2web/source/o2_core/o2/widget/$Menu/flatStyle/css.wcss
  47. BIN
      o2web/source/o2_core/o2/widget/$Menu/flatStyle/submenu.png
  48. 120 0
      o2web/source/o2_core/o2/widget/$Menu/flatUser/css.wcss
  49. BIN
      o2web/source/o2_core/o2/widget/$Menu/flatUser/submenu.png
  50. 18 0
      o2web/source/o2_core/o2/widget/$O2Identity/xform/css.wcss
  51. 18 0
      o2web/source/o2_core/o2/widget/$ScrollBar/hide/css.wcss
  52. BIN
      o2web/source/o2_core/o2/widget/$Tab/blue_flat_mobile/close.gif
  53. 75 0
      o2web/source/o2_core/o2/widget/$Tab/blue_flat_mobile/css.wcss
  54. BIN
      o2web/source/o2_core/o2/widget/$Tab/empower/close.png
  55. BIN
      o2web/source/o2_core/o2/widget/$Tab/empower/close_gray.png
  56. 71 0
      o2web/source/o2_core/o2/widget/$Tab/empower/css.wcss
  57. BIN
      o2web/source/o2_core/o2/widget/$Tab/empower/tabAreaBg.gif
  58. BIN
      o2web/source/o2_core/o2/widget/$Tab/empower/tabNodeCurrentBg.gif
  59. 5 5
      o2web/source/o2_core/o2/widget/$Tab/orgMobile/css.wcss
  60. BIN
      o2web/source/o2_core/o2/widget/$Tab/profileV2/close.png
  61. BIN
      o2web/source/o2_core/o2/widget/$Tab/profileV2/close_gray.png
  62. 76 0
      o2web/source/o2_core/o2/widget/$Tab/profileV2/css.wcss
  63. BIN
      o2web/source/o2_core/o2/widget/$Tab/profileV2/tabAreaBg.gif
  64. BIN
      o2web/source/o2_core/o2/widget/$Tab/profileV2/tabNodeCurrentBg.gif
  65. 103 0
      o2web/source/o2_core/o2/widget/$Toolbar/view_default/css.wcss
  66. BIN
      o2web/source/o2_core/o2/widget/$Toolbar/view_default/downicon.gif
  67. BIN
      o2web/source/o2_core/o2/widget/$Toolbar/view_default/separatorbg.gif
  68. BIN
      o2web/source/o2_core/o2/widget/$Toolbar/view_default/submenu.png
  69. 106 21
      o2web/source/o2_core/o2/widget/AttachmentController.js
  70. 444 81
      o2web/source/o2_core/o2/widget/Calendar.js
  71. 19 43
      o2web/source/o2_core/o2/widget/CalendarPage.js
  72. 2 2
      o2web/source/o2_core/o2/widget/Dialog.js
  73. 2 2
      o2web/source/o2_core/o2/widget/ImageClipper.js
  74. 3 3
      o2web/source/o2_core/o2/widget/Menu.js
  75. 34 20
      o2web/source/o2_core/o2/widget/O2Identity.js
  76. 210 192
      o2web/source/o2_core/o2/widget/ScrollBar.js
  77. 48 23
      o2web/source/o2_core/o2/widget/Tablet.js
  78. 9 5
      o2web/source/o2_core/o2/xAction/RestActions.js
  79. 21 2
      o2web/source/o2_core/o2/xAction/services/x_faceset_control.js
  80. 1 1
      o2web/source/o2_core/o2/xAction/services/x_faceset_control.json
  81. 2 0
      o2web/source/o2_core/o2/xAction/services/x_file_assemble_control.json
  82. 81 21
      o2web/source/o2_core/o2/xAction/services/x_organization_assemble_authentication.json
  83. 7 0
      o2web/source/o2_core/o2/xAction/services/x_organization_assemble_personal.js
  84. 4 2
      o2web/source/o2_core/o2/xAction/services/x_organization_assemble_personal.json
  85. 3 1
      o2web/source/o2_core/o2/xAction/services/x_processplatform_assemble_surface.json
  86. 3 1
      o2web/source/o2_core/o2/xAction/services/x_program_center.json
  87. 44 0
      o2web/source/o2_core/o2/xAction/services/x_teamwork_assemble_control.js
  88. 92 0
      o2web/source/o2_core/o2/xAction/services/x_teamwork_assemble_control.json
  89. 13 3
      o2web/source/o2_core/o2/xDesktop/$Authentication/application/css.wcss
  90. 13 3
      o2web/source/o2_core/o2/xDesktop/$Authentication/default/css.wcss
  91. BIN
      o2web/source/o2_core/o2/xDesktop/$Authentication/flat/android.png
  92. BIN
      o2web/source/o2_core/o2/xDesktop/$Authentication/flat/apple.png
  93. 741 0
      o2web/source/o2_core/o2/xDesktop/$Authentication/flat/css.wcss
  94. BIN
      o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/camera.png
  95. BIN
      o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/closeCamera.png
  96. BIN
      o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/icon_check_nor.png
  97. BIN
      o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/icon_check_pre.png
  98. BIN
      o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/icon_close_round_nor.png
  99. BIN
      o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/icon_close_round_pre.png
  100. BIN
      o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/icon_close_square_nor.png

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

@@ -22,6 +22,7 @@ o2.addReady(function(){
         "Request": Request,
         "Request": Request,
         "typeOf": o2.typeOf
         "typeOf": o2.typeOf
     };
     };
+    COMMON.Browser.Platform.isMobile = o2.session.isMobile;
     COMMON.DOM.addReady = o2.addReady;
     COMMON.DOM.addReady = o2.addReady;
     MWF = o2;
     MWF = o2;
     MWF.getJSON = o2.JSON.get;
     MWF.getJSON = o2.JSON.get;

+ 162 - 32
o2web/source/o2_core/o2.js

@@ -38,6 +38,25 @@
  * |uuid:         o2.uuid()                                                       |
  * |uuid:         o2.uuid()                                                       |
  * |------------------------------------------------------------------------------|
  * |------------------------------------------------------------------------------|
  */
  */
+//Element.firstElementChild Polyfill
+(function(constructor) {
+    if (constructor &&
+        constructor.prototype &&
+        constructor.prototype.firstElementChild == null) {
+        Object.defineProperty(constructor.prototype, 'firstElementChild', {
+            get: function() {
+                var node, nodes = this.childNodes, i = 0;
+                while (node = nodes[i++]) {
+                    if (node.nodeType === 1) {
+                        return node;
+                    }
+                }
+                return null;
+            }
+        });
+    }
+})(window.Node || window.Element);
+
 (function(){
 (function(){
     var _href = window.location.href;
     var _href = window.location.href;
     var _debug = (_href.indexOf("debugger")!==-1);
     var _debug = (_href.indexOf("debugger")!==-1);
@@ -52,19 +71,33 @@
             if (_kv[0].toLowerCase()==="lp") _lp = _kv[1];
             if (_kv[0].toLowerCase()==="lp") _lp = _kv[1];
         }
         }
     }
     }
-    this.o2 = {
-        "version": {
-            "v": "2.3.1",
-            "build": "2019.07.31",
-            "info": "O2OA 活力办公 创意无限. Copyright © 2018, o2oa.net O2 Team All rights reserved."
-        },
-        "session": {
-            "isDebugger": _debug,
-            "path": "/o2_core/o2"
-        },
-        "language": _lp,
-        "splitStr": /\s*(?:,|;)\s*/
-    };
+    this.o2 = window.o2 || {};
+    this.o2.version = {
+        "v": "2.3.1",
+        "build": "2019.07.31",
+        "info": "O2OA 活力办公 创意无限. Copyright © 2018, o2oa.net O2 Team All rights reserved."
+    };
+    if (!this.o2.session) this.o2.session ={
+        "isDebugger": _debug,
+        "path": "/o2_core/o2"
+    };
+    this.o2.language = _lp;
+    this.o2.splitStr = /\s*(?:,|;)\s*/;
+
+    //     this.o2 = {
+    //     "version": {
+    //         "v": "2.3.1",
+    //         "build": "2019.07.31",
+    //         "info": "O2OA 活力办公 创意无限. Copyright © 2018, o2oa.net O2 Team All rights reserved."
+    //     },
+    //     "session": {
+    //         "isDebugger": _debug,
+    //         "path": "/o2_core/o2"
+    //     },
+    //     "language": _lp,
+    //     "splitStr": /\s*(?:,|;)\s*/
+    // };
+
     this.wrdp = this.o2;
     this.wrdp = this.o2;
     
     
     var _attempt = function(){
     var _attempt = function(){
@@ -184,6 +217,8 @@
             "sequence": !!(options && options.sequence),
             "sequence": !!(options && options.sequence),
             "doc": doc,
             "doc": doc,
             "dom": (options && options.dom) || document.body,
             "dom": (options && options.dom) || document.body,
+            "module": (options && options.module) || null,
+            "noConflict": (options && options.noConflict) || false,
             "bind": (options && options.bind) || null,
             "bind": (options && options.bind) || null,
             "position": (options && options.position) || "beforeend" //'beforebegin' 'afterbegin' 'beforeend' 'afterend'debugger
             "position": (options && options.position) || "beforeend" //'beforebegin' 'afterbegin' 'beforeend' 'afterend'debugger
         }
         }
@@ -218,12 +253,30 @@
             "sequence": !!(options && options.sequence),
             "sequence": !!(options && options.sequence),
             "doc": doc,
             "doc": doc,
             "dom": (options && options.dom) || null,
             "dom": (options && options.dom) || null,
+            "module": (options && options.module) || null,
+            "noConflict": (options && options.noConflict) || false,
             "bind": (options && options.bind) || null,
             "bind": (options && options.bind) || null,
             "position": (options && options.position) || "beforeend" //'beforebegin' 'afterbegin' 'beforeend' 'afterend'
             "position": (options && options.position) || "beforeend" //'beforebegin' 'afterbegin' 'beforeend' 'afterend'
         }
         }
     };
     };
+    _filterUrl = function(url){
+        if (o2.base){
+            if (url.indexOf(":")===-1){
+                var s = url.substring(0, url.indexOf("/")+1);
+                var r = url.substring(url.indexOf("/")+1, url.length);
+                if ("../"===s || "./"===s || "/"===s){
+                    return s+o2.base+r;
+                }else{
+                    return o2.base+url
+                }
+            }
+        }
+        return url;
+    };
+    this.o2.filterUrl = _filterUrl;
     var _xhr_get = function(url, success, failure, completed){
     var _xhr_get = function(url, success, failure, completed){
         var xhr = new _request();
         var xhr = new _request();
+        url = _filterUrl(url);
         xhr.open("GET", url, true);
         xhr.open("GET", url, true);
 
 
         var _checkCssLoaded= function(_, err){
         var _checkCssLoaded= function(_, err){
@@ -285,14 +338,14 @@
     var _frameworks = {
     var _frameworks = {
         "o2.core": ["/o2_core/o2/o2.core.js"],
         "o2.core": ["/o2_core/o2/o2.core.js"],
         "o2.more": ["/o2_core/o2/o2.more.js"],
         "o2.more": ["/o2_core/o2/o2.more.js"],
-        "ie_adapter": ["/o2_lib/o2/ie_adapter.js"],
+        "ie_adapter": ["/o2_core/o2/ie_adapter.js"],
         "jquery": ["/o2_lib/jquery/jquery.min.js"],
         "jquery": ["/o2_lib/jquery/jquery.min.js"],
         "mootools": ["/o2_lib/mootools/mootools-1.6.0_all.js"],
         "mootools": ["/o2_lib/mootools/mootools-1.6.0_all.js"],
         "ckeditor": ["/o2_lib/htmleditor/ckeditor4114/ckeditor.js"],
         "ckeditor": ["/o2_lib/htmleditor/ckeditor4114/ckeditor.js"],
         "ckeditor5": ["/o2_lib/htmleditor/ckeditor5-12-1-0/ckeditor.js"],
         "ckeditor5": ["/o2_lib/htmleditor/ckeditor5-12-1-0/ckeditor.js"],
         "raphael": ["/o2_lib/raphael/raphael.js"],
         "raphael": ["/o2_lib/raphael/raphael.js"],
         "d3": ["/o2_lib/d3/d3.min.js"],
         "d3": ["/o2_lib/d3/d3.min.js"],
-        "ace": ["/o2_lib/ace/src-noconflict/ace.js","/o2_lib/ace/src-noconflict/ext-language_tools.js"],
+        "ace": ["/o2_lib/ace/src-min-noconflict/ace.js","/o2_lib/ace/src-min-noconflict/ext-language_tools.js"],
         "JSBeautifier": ["/o2_lib/JSBeautifier/beautify.js"],
         "JSBeautifier": ["/o2_lib/JSBeautifier/beautify.js"],
         "JSBeautifier_css": ["/o2_lib/JSBeautifier/beautify-css.js"],
         "JSBeautifier_css": ["/o2_lib/JSBeautifier/beautify-css.js"],
         "JSBeautifier_html": ["/o2_lib/JSBeautifier/beautify-html.js"],
         "JSBeautifier_html": ["/o2_lib/JSBeautifier/beautify-html.js"],
@@ -319,7 +372,7 @@
         var s = op.doc.createElement('script');
         var s = op.doc.createElement('script');
         head.appendChild(s);
         head.appendChild(s);
         s.id = uuid;
         s.id = uuid;
-        s.src = url;
+        s.src = this.o2.filterUrl(url);
 
 
         var _checkScriptLoaded = function(_, isAbort, err){
         var _checkScriptLoaded = function(_, isAbort, err){
             if (isAbort || !s.readyState || s.readyState === "loaded" || s.readyState === "complete") {
             if (isAbort || !s.readyState || s.readyState === "loaded" || s.readyState === "complete") {
@@ -410,31 +463,39 @@
             var cssText = xhr.responseText;
             var cssText = xhr.responseText;
             try{
             try{
                 if (cssText){
                 if (cssText){
+                    cssText = cssText.replace(/\/\*(\s|\S)*?\*\//g, "");
                     if (op.bind) cssText = cssText.bindJson(op.bind);
                     if (op.bind) cssText = cssText.bindJson(op.bind);
                     if (op.dom){
                     if (op.dom){
+
                         var rex = new RegExp("(.+)(?=\\{)", "g");
                         var rex = new RegExp("(.+)(?=\\{)", "g");
                         var match;
                         var match;
                         var prefix = "." + uuid + " ";
                         var prefix = "." + uuid + " ";
-
                         while ((match = rex.exec(cssText)) !== null) {
                         while ((match = rex.exec(cssText)) !== null) {
                             // var rule = prefix + match[0];
                             // 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;
                             // rex.lastIndex = rex.lastIndex + prefix.length;
 
 
                             var rulesStr = match[0];
                             var rulesStr = match[0];
-                            if (rulesStr.indexOf(",")!=-1){
-                                var rules = rulesStr.split(/\s*,\s*/g);
-                                rules = rules.map(function(r){
-                                    return prefix + r;
-                                });
-                                var rule = rules.join(", ");
-                                cssText = cssText.substring(0, match.index) + rule + cssText.substring(rex.lastIndex, cssText.length);
-                                rex.lastIndex = rex.lastIndex + (prefix.length*rules.length);
+                            if (rulesStr.substr(0,1)=="@" || rulesStr.indexOf("%")!=-1){
+                                // var begin = 0;
+                                // var end = 0;
+
 
 
                             }else{
                             }else{
-                                var rule = prefix + match[0];
-                                cssText = cssText.substring(0, match.index) + rule + cssText.substring(rex.lastIndex, cssText.length);
-                                rex.lastIndex = rex.lastIndex + prefix.length;
+                                if (rulesStr.indexOf(",")!=-1){
+                                    var rules = rulesStr.split(/\s*,\s*/g);
+                                    rules = rules.map(function(r){
+                                        return prefix + r;
+                                    });
+                                    var rule = rules.join(", ");
+                                    cssText = cssText.substring(0, match.index) + rule + cssText.substring(rex.lastIndex, cssText.length);
+                                    rex.lastIndex = rex.lastIndex + (prefix.length*rules.length);
+
+                                }else{
+                                    var rule = prefix + match[0];
+                                    cssText = cssText.substring(0, match.index) + rule + cssText.substring(rex.lastIndex, cssText.length);
+                                    rex.lastIndex = rex.lastIndex + prefix.length;
+                                }
                             }
                             }
                         }
                         }
                     }
                     }
@@ -527,7 +588,7 @@
     };
     };
     this.o2.loadCss = _loadCss;
     this.o2.loadCss = _loadCss;
     this.o2.removeCss = _removeCss;
     this.o2.removeCss = _removeCss;
-    Element.prototype.loadCss = function(modules, options, callback){
+    if (window.Element) Element.prototype.loadCss = function(modules, options, callback){
         var op =  (_typeOf(options)==="object") ? options : {};
         var op =  (_typeOf(options)==="object") ? options : {};
         var cb = (_typeOf(options)==="function") ? options : callback;
         var cb = (_typeOf(options)==="function") ? options : callback;
         op.dom = this;
         op.dom = this;
@@ -556,7 +617,67 @@
 
 
     var _injectHtml = function(op, data){
     var _injectHtml = function(op, data){
         if (op.bind) data = data.bindJson(op.bind);
         if (op.bind) data = data.bindJson(op.bind);
-        if (op.dom) _parseDom(op.dom, function(node){ node.insertAdjacentHTML(op.position, data) }, op.doc);
+        if (op.dom) _parseDom(op.dom, function(node){
+            if (op.module){
+                _parseModule(node, data, op);
+                //node.insertAdjacentHTML(op.position, data);
+            }else{
+                node.insertAdjacentHTML(op.position, data);
+            }
+        }, op.doc);
+    };
+    var _parseModule = function(node, data, op){
+        var dom = op.noConflict ? document.createElement("div") : node;
+        if (op.noConflict){
+            dom.insertAdjacentHTML("afterbegin", data);
+        }else{
+            dom.insertAdjacentHTML(op.position, data);
+        }
+        var els = dom.querySelectorAll("[data-o2-element]");
+        for (var i=0; i<els.length; i++){
+            var el = els.item(i);
+            var name = el.getAttribute("data-o2-element").toString();
+            if (name) _bindToModule(op.module, el, name);
+            if (el.hasAttribute("data-o2-events")){
+                var events = el.getAttribute("data-o2-events").toString();
+                if (events) _bindToEvents(op.module, el, events);
+            }
+        }
+
+        if (op.noConflict){
+            var n = dom.firstElementChild;
+            var newNode = node.insertAdjacentElement(op.position, n);
+            nextNode = dom.firstElementChild;
+            while (nextNode) {
+                newNode = newNode.insertAdjacentElement("afterend", nextNode);
+                nextNode = dom.firstElementChild;
+            }
+            dom.destroy();
+        }
+    };
+
+    var _bindToEvents = function(m, node, events){
+        var eventList = events.split(/\s*;\s*/);
+        eventList.forEach(function(ev){
+            var evs = ev.split(/\s*:\s*/);
+            if (evs.length>1){
+                node.addEventListener(evs[0], function(e){
+                    if (m[evs[1]]) m[evs[1]].apply(m, [e]);
+                }, false);
+            }
+        });
+    }
+    var _bindToModule = function(m, node, name){
+        // if (m[name]){
+        //     if (o2.typeOf(m[name])!=="array"){
+        //         var tmp = m[name];
+        //         m[name] = [];
+        //         m[name].push(tmp);
+        //     }
+        //     m[name].push(node);
+        // }else{
+             m[name] = node;
+        // }
     };
     };
     var _loadHtml = function(modules, options, callback){
     var _loadHtml = function(modules, options, callback){
         var ms = (_typeOf(modules)==="array") ? modules : [modules];
         var ms = (_typeOf(modules)==="array") ? modules : [modules];
@@ -571,12 +692,21 @@
         }
         }
     };
     };
     this.o2.loadHtml = _loadHtml;
     this.o2.loadHtml = _loadHtml;
-    Element.prototype.loadHtml = function(modules, options, callback){
+    if (window.Element) Element.prototype.loadHtml = function(modules, options, callback){
         var op =  (_typeOf(options)==="object") ? options : {};
         var op =  (_typeOf(options)==="object") ? options : {};
         var cb = (_typeOf(options)==="function") ? options : callback;
         var cb = (_typeOf(options)==="function") ? options : callback;
         op.dom = this;
         op.dom = this;
         _loadHtml(modules, op, cb);
         _loadHtml(modules, op, cb);
     };
     };
+    this.o2.injectHtml = function(html, op){
+        _injectHtml(op, html);
+    };
+    if (window.Element) Element.prototype.injectHtml = function(html, options){
+        var op =  (_typeOf(options)==="object") ? options : {};
+        op.dom = this;
+        op.position = (options && options.position) || "beforeend"
+        _injectHtml(op, html);
+    };
 
 
     //load all
     //load all
     _loadAll = function(modules, options, callback){
     _loadAll = function(modules, options, callback){
@@ -612,7 +742,7 @@
         }
         }
     };
     };
     this.o2.loadAll = _loadAll;
     this.o2.loadAll = _loadAll;
-    Element.prototype.loadAll = function(modules, options, callback){
+    if (window.Element) Element.prototype.loadAll = function(modules, options, callback){
         var op =  (_typeOf(options)==="object") ? options : {};
         var op =  (_typeOf(options)==="object") ? options : {};
         var cb = (_typeOf(options)==="function") ? options : callback;
         var cb = (_typeOf(options)==="function") ? options : callback;
         op.dom = this;
         op.dom = this;

+ 35 - 24
o2web/source/o2_core/o2/ie_adapter.js

@@ -1,7 +1,18 @@
 (function(){
 (function(){
+    debugger;
     if (Browser.iecomp){
     if (Browser.iecomp){
-        if (!document.body.addEvent){
-            document.body.addEvent = function(type, fn){
+        // if (!document.body.addEvent){
+        //     document.body.addEvent = function(type, fn){
+        //         if (window.attachEvent && !window.addEventListener){
+        //             collected[Slick.uidOf(this)] = this;
+        //         }
+        //         if (this.addEventListener) this.addEventListener(type, fn, !!arguments[2]);
+        //         else this.attachEvent('on' + type, fn);
+        //         return this;
+        //     };
+        // }
+        if (!Element.prototype.addEvent){
+            Element.prototype.addEvent = function(type, fn){
                 if (window.attachEvent && !window.addEventListener){
                 if (window.attachEvent && !window.addEventListener){
                     collected[Slick.uidOf(this)] = this;
                     collected[Slick.uidOf(this)] = this;
                 }
                 }
@@ -87,28 +98,28 @@
         if (!Object.defineProperty || (Browser.name=="ie" && Browser.version==8)){
         if (!Object.defineProperty || (Browser.name=="ie" && Browser.version==8)){
             Object.defineProperty = MWF.defineProperty;
             Object.defineProperty = MWF.defineProperty;
         }
         }
-        MWF.defineProperties(HTMLInputElement.prototype, {"files": {
-            "get": function(){
-                MWF.require("MWF.widget.contentType", null, false);
-                var v = this.value;
-                var tmpv = v.replace(/\\/g, "/");
-                var i = tmpv.lastIndexOf("/");
-                var name = (i===-1) ? v : v.substr(i+1, tmpv.length-i);
-                var el = this;
-                var data = {
-                    "path": v,
-                    "name": name,
-                    "size": 0,
-                    "type": MWFContentType.get(v),
-                    "el": el
-                };
-                return {
-                    "length": (v) ? 1 : 0,
-                    "data": data,
-                    "item": function(){ return this.data; }
-                };
-            }
-        }});
+        o2.defineProperties(HTMLInputElement.prototype, {"files": {
+                "get": function(){
+                    o2.require("o2.widget.contentType", null, false);
+                    var v = this.value;
+                    var tmpv = v.replace(/\\/g, "/");
+                    var i = tmpv.lastIndexOf("/");
+                    var name = (i===-1) ? v : v.substr(i+1, tmpv.length-i);
+                    var el = this;
+                    var data = {
+                        "path": v,
+                        "name": name,
+                        "size": 0,
+                        "type": MWFContentType.get(v),
+                        "el": el
+                    };
+                    return {
+                        "length": (v) ? 1 : 0,
+                        "data": data,
+                        "item": function(){ return this.data; }
+                    };
+                }
+            }});
 
 
         WebSocket = window.WebSocket || function(){};
         WebSocket = window.WebSocket || function(){};
         WebSocket.prototype = {
         WebSocket.prototype = {

+ 28 - 2
o2web/source/o2_core/o2/lp/zh-cn.js

@@ -1,6 +1,9 @@
 o2.LP = window.LP || {
 o2.LP = window.LP || {
     "name": "名称",
     "name": "名称",
-    "description": "描述"
+    "description": "描述",
+    "searchKey": "请输入搜索关键字",
+    "desktop_style": "桌面风格",
+    "flat_style": "扁平风格"
 };
 };
 
 
 o2.LP.process = {
 o2.LP.process = {
@@ -141,9 +144,19 @@ o2.LP.desktop = {
     "say": "说",
     "say": "说",
     "clearMessage": "清除消息",
     "clearMessage": "清除消息",
 
 
+    "lnkAppTitle": "常用应用",
+    "deleteLnk": "删除常用应用快捷方式",
+    "addLnk": "添加常用应用快捷方式",
+
+    "changeViewTitle": "切换视图样式确认",
+    "changeView": "您确定要切换视图样式吗?<br><br>如果您选择“确定”,页面将直接刷新,未保存的数据可能丢失。",
+
     "messsage": {
     "messsage": {
         "appliction": "应用",
         "appliction": "应用",
+        "application": "应用",
         "process": "流程",
         "process": "流程",
+        "infor": "信息",
+        "query": "数据",
         "taskMessage": "待办提醒",
         "taskMessage": "待办提醒",
         "receiveTask": "您收到一条待办,标题为:",
         "receiveTask": "您收到一条待办,标题为:",
         "activity": "活动",
         "activity": "活动",
@@ -191,6 +204,18 @@ o2.LP.desktop = {
         "panda": "熊猫",
         "panda": "熊猫",
         "star": "星空"
         "star": "星空"
     },
     },
+    "styleFlatMenu": {
+        "blue": "蓝色",
+        "red": "红色",
+        "orange": "水果橙",
+        "green": "青草绿",
+        "cyan": "碧水青",
+        "purple": "魅力紫",
+        "gray": "沉稳灰",
+        "darkgreen": "墨绿",
+        "tan": "棕色",
+        "navy": "藏青"
+    },
     "notice": {
     "notice": {
         "unload": "如果关闭或刷新当前页面,未保存的内容会丢失,请确定您的操作",
         "unload": "如果关闭或刷新当前页面,未保存的内容会丢失,请确定您的操作",
         "changePassword": "您的密码已过期,请及时修改密码",
         "changePassword": "您的密码已过期,请及时修改密码",
@@ -249,6 +274,7 @@ o2.LP.desktop = {
         "collectNotConnectedText": "无法连接到O2云,请检查服务器网络!"
         "collectNotConnectedText": "无法连接到O2云,请检查服务器网络!"
     }
     }
 };
 };
+o2.LP.desktop.message = o2.LP.desktop.messsage;
 o2.LP.widget = {
 o2.LP.widget = {
     "upload": "上传",
     "upload": "上传",
     "uploadTitle": "上传文件",
     "uploadTitle": "上传文件",
@@ -381,4 +407,4 @@ o2.LP.authentication = {
 };
 };
 o2.LP.script = {
 o2.LP.script = {
     "error": "脚本运行错误,请查看以下详细信息"
     "error": "脚本运行错误,请查看以下详细信息"
-};
+};

+ 19 - 14
o2web/source/o2_core/o2/o2.core.js

@@ -63,7 +63,7 @@
         jsPath = (jsPath.indexOf("?")!==-1) ? jsPath+"&v="+this.o2.version.v : jsPath+"?v="+this.o2.version.v;
         jsPath = (jsPath.indexOf("?")!==-1) ? jsPath+"&v="+this.o2.version.v : jsPath+"?v="+this.o2.version.v;
 
 
         var xhr = new Request({
         var xhr = new Request({
-            url: jsPath, async: async, method: "get",
+            url: o2.filterUrl(jsPath), async: async, method: "get",
             onSuccess: function(){
             onSuccess: function(){
                 //try{
                 //try{
                 _loaded[key] = true;
                 _loaded[key] = true;
@@ -79,17 +79,21 @@
         xhr.send();
         xhr.send();
     };
     };
     var _requireSingle = function(module, callback, async, compression){
     var _requireSingle = function(module, callback, async, compression){
-        module = module.replace("MWF", "o2");
-        var levels = module.split(".");
-        if (levels[levels.length-1]==="*") levels[levels.length-1] = "package";
-        levels.shift();
+        if (o2.typeOf(module)==="array"){
+            _requireAppSingle(module, callback, async, compression);
+        }else{
+            module = module.replace("MWF.", "o2.");
+            var levels = module.split(".");
+            if (levels[levels.length-1]==="*") levels[levels.length-1] = "package";
+            levels.shift();
 
 
-        var jsPath = this.o2.session.path;
-        jsPath +="/"+levels.join("/")+".js";
+            var jsPath = this.o2.session.path;
+            jsPath +="/"+levels.join("/")+".js";
 
 
-        var loadAsync = (async!==false);
+            var loadAsync = (async!==false);
 
 
-        _requireJs(jsPath, callback, loadAsync, compression, module);
+            _requireJs(jsPath, callback, loadAsync, compression, module);
+        }
     };
     };
     var _requireSequence = function(fun, module, thisLoaded, thisErrorLoaded, callback, async, compression){
     var _requireSequence = function(fun, module, thisLoaded, thisErrorLoaded, callback, async, compression){
         var m = module.shift();
         var m = module.shift();
@@ -182,6 +186,7 @@
         }
         }
     };
     };
 
 
+    JSON = window.JSON || {};
     var _json = JSON;
     var _json = JSON;
     _json.get = function(url, callback, async, nocache){
     _json.get = function(url, callback, async, nocache){
         var loadAsync = (async !== false);
         var loadAsync = (async !== false);
@@ -191,7 +196,7 @@
 
 
         var json = null;
         var json = null;
         var res = new Request.JSON({
         var res = new Request.JSON({
-            url: url,
+            url: o2.filterUrl(url),
             secure: false,
             secure: false,
             method: "get",
             method: "get",
             noCache: noJsonCache,
             noCache: noJsonCache,
@@ -222,7 +227,7 @@
 
 
         url = (url.indexOf("?")!==-1) ? url+"&v="+o2.version.v : url+"?v="+o2.version.v;
         url = (url.indexOf("?")!==-1) ? url+"&v="+o2.version.v : url+"?v="+o2.version.v;
         var res = new Request.JSONP({
         var res = new Request.JSONP({
-            url: url,
+            url: o2.filterUrl(url),
             secure: false,
             secure: false,
             method: "get",
             method: "get",
             noCache: true,
             noCache: true,
@@ -246,7 +251,7 @@
         var jsPath = o2.session.path;
         var jsPath = o2.session.path;
         jsPath = jsPath+"/lp/"+name+".js";
         jsPath = jsPath+"/lp/"+name+".js";
         var r = new Request({
         var r = new Request({
-            url: jsPath,
+            url: o2.filterUrl(jsPath),
             async: false,
             async: false,
             method: "get",
             method: "get",
             onSuccess: function(responseText){
             onSuccess: function(responseText){
@@ -290,7 +295,7 @@
         }
         }
         //var noCache = false;
         //var noCache = false;
         var res = new Request.JSON({
         var res = new Request.JSON({
-            url: address,
+            url: o2.filterUrl(address),
             secure: false,
             secure: false,
             method: method,
             method: method,
             emulation: false,
             emulation: false,
@@ -431,4 +436,4 @@
     }
     }
 
 
 })();
 })();
-o2.core = true;
+o2.core = true;

+ 74 - 54
o2web/source/o2_core/o2/o2.more.js

@@ -194,7 +194,7 @@
         }
         }
     };
     };
 
 
-    String.implement({
+    if (String.implement) String.implement({
         "getAllIndexOf": function(str){
         "getAllIndexOf": function(str){
             var idxs= [];
             var idxs= [];
             var idx = this.indexOf(str);
             var idx = this.indexOf(str);
@@ -205,7 +205,7 @@
             return idxs;
             return idxs;
         }
         }
     });
     });
-    Array.implement({
+    if (Array.implement) Array.implement({
         "trim": function(){
         "trim": function(){
             var arr = [];
             var arr = [];
             this.each(function(v){
             this.each(function(v){
@@ -217,7 +217,7 @@
             return this.some(function(item){ return (arr.indexOf(item)!==-1); })
             return this.some(function(item){ return (arr.indexOf(item)!==-1); })
         }
         }
     });
     });
-    Element.implement({
+    if (window.Element && Element.implement) Element.implement({
         "isIntoView": function() {
         "isIntoView": function() {
             var pNode = this.getParent();
             var pNode = this.getParent();
             while (pNode && ((pNode.getScrollSize().y-(pNode.getComputedSize().height+1)<=0) || pNode.getStyle("overflow")==="visible")) pNode = pNode.getParent();
             while (pNode && ((pNode.getScrollSize().y-(pNode.getComputedSize().height+1)<=0) || pNode.getStyle("overflow")==="visible")) pNode = pNode.getParent();
@@ -481,6 +481,13 @@
                 node = node.getParent();
                 node = node.getParent();
             }
             }
             return node || null;
             return node || null;
+        },
+        "getEdgeHeight": function(notMargin){
+            var h = 0;
+            h += (this.getStyle("border-top-width").toFloat() || 0)+ (this.getStyle("border-bottom-width").toFloat() || 0);
+            h += (this.getStyle("padding-top").toFloat() || 0)+ (this.getStyle("padding-bottom").toFloat() || 0);
+            if (!notMargin) h += (this.getStyle("margin-top").toFloat() || 0)+ (this.getStyle("margin-bottom").toFloat() || 0);
+            return h;
         }
         }
     });
     });
     Object.copy = function(from, to){
     Object.copy = function(from, to){
@@ -496,57 +503,67 @@
         });
         });
     };
     };
 
 
-    JSON.format = JSON.encode;
+    if (window.JSON) JSON.format = JSON.encode;
 
 
-    Slick.definePseudo('src', function(value){
-        return Element.get(this,"src").indexOf(value) !== -1;
-    });
-    Slick.definePseudo('srcarr', function(value){
-        var vList = value.split(",");
-        var src = Element.get(this,"src");
-        var flag = false;
-        for (var i=0; i<vList.length; i++){
-            if (src.indexOf(vList[i])!==-1){
-                flag = true;
-                break;
+    if (window.Slick) {
+        Slick.definePseudo('src', function (value) {
+            return Element.get(this, "src").indexOf(value) !== -1;
+        });
+        Slick.definePseudo('srcarr', function (value) {
+            var vList = value.split(",");
+            var src = Element.get(this, "src");
+            var flag = false;
+            for (var i = 0; i < vList.length; i++) {
+                if (src.indexOf(vList[i]) !== -1) {
+                    flag = true;
+                    break;
+                }
             }
             }
-        }
-        return flag;
-    });
-    Slick.definePseudo('ahref', function(value){
-        var href = Element.get(this,"href");
-        if (!href) href = "";
-        href = href.toString().toLowerCase();
-        return (href.indexOf(value)!==-1);
-    });
+            return flag;
+        });
+        Slick.definePseudo('ahref', function (value) {
+            var href = Element.get(this, "href");
+            if (!href) href = "";
+            href = href.toString().toLowerCase();
+            return (href.indexOf(value) !== -1);
+        });
 
 
-    Slick.definePseudo('rowspanBefore', function(line){
-        var tr = MWF.getParent(this, "tr");
-        var rowspan = this.get("rowspan").toInt() || 1;
-        var currentRowIndex = tr.rowIndex.toInt();
+        Slick.definePseudo('rowspanBefore', function (line) {
+            var tr = MWF.getParent(this, "tr");
+            var rowspan = this.get("rowspan").toInt() || 1;
+            var currentRowIndex = tr.rowIndex.toInt();
 
 
-        return rowspan>1 && currentRowIndex<line.toInt() && currentRowIndex+rowspan-1>=line;
-    });
-    Slick.definePseudo('rowspan', function(){
-        var rowspan = this.get("rowspan").toInt() || 1;
-        return rowspan>1;
-    });
+            return rowspan > 1 && currentRowIndex < line.toInt() && currentRowIndex + rowspan - 1 >= line;
+        });
+        Slick.definePseudo('rowspan', function () {
+            var rowspan = this.get("rowspan").toInt() || 1;
+            return rowspan > 1;
+        });
 
 
-    Slick.definePseudo('colspanBefore', function(col){
-        var tr = MWF.getParent(this, "tr");
-        var colspan = this.get("colspan").toInt() || 1;
-        var currentColIndex = this.cellIndex.toInt();
+        Slick.definePseudo('colspanBefore', function (col) {
+            var tr = MWF.getParent(this, "tr");
+            var colspan = this.get("colspan").toInt() || 1;
+            var currentColIndex = this.cellIndex.toInt();
 
 
-        return colspan>1 && currentColIndex<col.toInt() && currentColIndex+colspan-1>=col.toInt();
-    });
+            return colspan > 1 && currentColIndex < col.toInt() && currentColIndex + colspan - 1 >= col.toInt();
+        });
 
 
-    Slick.definePseudo('colspan', function(){
-        var colspan = this.get("colspan").toInt() || 1;
-        return colspan>1;
-    });
+        Slick.definePseudo('colspan', function () {
+            var colspan = this.get("colspan").toInt() || 1;
+            return colspan > 1;
+        });
+    }
 
 
     o2.common = o2.common || {};
     o2.common = o2.common || {};
 
 
+    o2.common.encodeHtml = function(str){
+        str = str.toString();
+        str = str.replace(/\&/g, "&amp;");
+        str = str.replace(/>/g, "&gt;");
+        str = str.replace(/</g, "&lt;");
+        return str.replace(/\"/g, "&quot;");
+    };
+
     o2.common.getResponseTextPost = function(path, body, contentType){
     o2.common.getResponseTextPost = function(path, body, contentType){
         var returnText = "";
         var returnText = "";
         var options = {
         var options = {
@@ -634,15 +651,18 @@
         return {"x": x, "y": y};
         return {"x": x, "y": y};
     };
     };
 
 
-    if (Browser.name==="ie" && Browser.version<9){
-        Browser.ieuns = true;
-    }else if(Browser.name==="ie" && Browser.version<10){
-        Browser.iecomp = true;
-    }
-    if (Browser.iecomp){
-        o2.load("ie_adapter", null, false);
-        layout["debugger"] = true;
+    if (window.Browser){
+        if (Browser.name==="ie" && Browser.version<9){
+            Browser.ieuns = true;
+        }else if(Browser.name==="ie" && Browser.version<10){
+            Browser.iecomp = true;
+        }
+        if (Browser.iecomp){
+            o2.load("ie_adapter", null, false);
+            o2.session.isDebugger = true;
+            //layout["debugger"] = true;
+        }
+        o2.session.isMobile = (["mac", "win", "linux"].indexOf(Browser.Platform.name)===-1);
     }
     }
-
 })();
 })();
-o2.more = true;
+o2.more = true;

+ 28 - 0
o2web/source/o2_core/o2/widget/$AttachmentController/blue_flat/css.wcss

@@ -27,6 +27,11 @@
         "min-height": "30px",
         "min-height": "30px",
         "overflow": "hidden"
         "overflow": "hidden"
     },
     },
+    "minContentNode_mobile": {
+        "clear":"both",
+        "min-height": "30px",
+        "overflow": "hidden"
+    },
     "titleNode": {
     "titleNode": {
         "height": "30px",
         "height": "30px",
         "background-color": "#DDD",
         "background-color": "#DDD",
@@ -333,6 +338,18 @@
         "-webkit-user-select": "text",
         "-webkit-user-select": "text",
         "-moz-user-select": "text"
         "-moz-user-select": "text"
     },
     },
+    "minAttachmentNode_sequence_mobile": {
+        "width": "auto",
+        "height": "30px",
+        "padding": "0px",
+        "float": "none",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "margin": "0px 5px",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text"
+    },
     "minAttachmentNode_sequence_over": {
     "minAttachmentNode_sequence_over": {
         "border": "0px solid #cdcfd1",
         "border": "0px solid #cdcfd1",
         "background-color": "#eaf0f5"
         "background-color": "#eaf0f5"
@@ -354,6 +371,17 @@
         "width" : "48%"
         "width" : "48%"
         //"border-bottom" : "1px dashed #dcdcdc"
         //"border-bottom" : "1px dashed #dcdcdc"
     },
     },
+    "minAttachmentNode_list_mobile": {
+        "width": "auto",
+        "height": "30px",
+        "padding": "13px 0px 13px 10px",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text"
+        //"border-bottom" : "1px dashed #dcdcdc"
+    },
     "minAttachmentSepNode_list" : {
     "minAttachmentSepNode_list" : {
         "width" : "1px",
         "width" : "1px",
         "height" : "30px",
         "height" : "30px",

+ 28 - 0
o2web/source/o2_core/o2/widget/$AttachmentController/cmcc/css.wcss

@@ -27,6 +27,11 @@
         "min-height": "30px",
         "min-height": "30px",
         "overflow": "hidden"
         "overflow": "hidden"
     },
     },
+    "minContentNode_mobile": {
+        "clear":"both",
+        "min-height": "30px",
+        "overflow": "hidden"
+    },
     "titleNode": {
     "titleNode": {
         "height": "30px",
         "height": "30px",
         "background-color": "#DDD",
         "background-color": "#DDD",
@@ -331,6 +336,18 @@
         "-webkit-user-select": "text",
         "-webkit-user-select": "text",
         "-moz-user-select": "text"
         "-moz-user-select": "text"
     },
     },
+    "minAttachmentNode_sequence_mobile": {
+        "width": "auto",
+        "height": "30px",
+        "padding": "0px",
+        "float": "none",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "margin": "0px 5px",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text"
+    },
     "minAttachmentNode_sequence_over": {
     "minAttachmentNode_sequence_over": {
         "border": "0px solid #cdcfd1",
         "border": "0px solid #cdcfd1",
         "background-color": "#eaf0f5"
         "background-color": "#eaf0f5"
@@ -352,6 +369,17 @@
         "width" : "48%",
         "width" : "48%",
         "border-bottom" : "1px dashed #dcdcdc"
         "border-bottom" : "1px dashed #dcdcdc"
     },
     },
+    "minAttachmentNode_list_mobile": {
+        "width": "auto",
+        "height": "30px",
+        "padding": "13px 0px 13px 10px",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text",
+        "border-bottom" : "1px dashed #dcdcdc"
+    },
     "minAttachmentSepNode_list" : {
     "minAttachmentSepNode_list" : {
         "width" : "1px",
         "width" : "1px",
         "height" : "30px",
         "height" : "30px",

+ 27 - 0
o2web/source/o2_core/o2/widget/$AttachmentController/cms/css.wcss

@@ -25,6 +25,10 @@
     "margin-right":"108px",
     "margin-right":"108px",
     "min-height": "30px"
     "min-height": "30px"
   },
   },
+  "minContentNode_mobile": {
+    "clear":"both",
+    "min-height": "30px"
+  },
   "titleNode": {
   "titleNode": {
     "color" : "#3587d7",
     "color" : "#3587d7",
     "height": "30px",
     "height": "30px",
@@ -332,6 +336,18 @@
     "-webkit-user-select": "text",
     "-webkit-user-select": "text",
     "-moz-user-select": "text"
     "-moz-user-select": "text"
   },
   },
+  "minAttachmentNode_sequence_mobile": {
+    "width": "auto",
+    "height": "30px",
+    "padding": "0px",
+    "float": "none",
+    "border-radius": "0px",
+    "border": "0px solid #FFF",
+    "background": "transparent",
+    "margin": "0px 5px",
+    "-webkit-user-select": "text",
+    "-moz-user-select": "text"
+  },
   "minAttachmentNode_sequence_over": {
   "minAttachmentNode_sequence_over": {
     "border": "0px solid #cdcfd1",
     "border": "0px solid #cdcfd1",
     "background-color": "#eaf0f5"
     "background-color": "#eaf0f5"
@@ -353,6 +369,17 @@
     "width" : "46%",
     "width" : "46%",
     "border-right" : "1px dashed #dcdcdc"
     "border-right" : "1px dashed #dcdcdc"
   },
   },
+  "minAttachmentNode_list_mobile": {
+    "height": "30px",
+    "padding": "0px 10px",
+    "border-radius": "0px",
+    "border": "0px solid #FFF",
+    "background": "transparent",
+    "margin": "5px 5px",
+    "-webkit-user-select": "text",
+    "-moz-user-select": "text",
+    "border-right" : "1px dashed #dcdcdc"
+  },
   "minAttachmentSepNode_list" : {
   "minAttachmentSepNode_list" : {
   },
   },
   "minAttachmentNode_list_over": {
   "minAttachmentNode_list_over": {

+ 30 - 1
o2web/source/o2_core/o2/widget/$AttachmentController/default/css.wcss

@@ -26,7 +26,12 @@
         "margin-right":"150px",
         "margin-right":"150px",
         "min-height": "30px",
         "min-height": "30px",
         "overflow": "hidden"
         "overflow": "hidden"
-	},
+    },
+    "minContentNode_mobile": {
+        "clear":"both",
+        "min-height": "30px",
+        "overflow": "hidden"
+    },
 	"titleNode": {
 	"titleNode": {
 	    "height": "30px",
 	    "height": "30px",
         "background-color": "#DDD",
         "background-color": "#DDD",
@@ -336,6 +341,18 @@
         "-webkit-user-select": "text",
         "-webkit-user-select": "text",
         "-moz-user-select": "text"
         "-moz-user-select": "text"
     },
     },
+    "minAttachmentNode_sequence_mobile": {
+        "width": "auto",
+        "height": "30px",
+        "padding": "0px",
+        "float": "none",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "margin": "0px 5px",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text"
+    },
     "minAttachmentNode_sequence_over": {
     "minAttachmentNode_sequence_over": {
         "border": "0px solid #cdcfd1",
         "border": "0px solid #cdcfd1",
         "background-color": "#eaf0f5"
         "background-color": "#eaf0f5"
@@ -358,6 +375,18 @@
         "width" : "46%",
         "width" : "46%",
         "border-right" : "1px dashed #dcdcdc"
         "border-right" : "1px dashed #dcdcdc"
     },
     },
+    "minAttachmentNode_list_mobile": {
+        "width": "auto",
+        "height": "30px",
+        "padding": "0px 10px",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "margin": "5px 5px",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text",
+        "border-right" : "1px dashed #dcdcdc"
+    },
     "minAttachmentSepNode_list" : {
     "minAttachmentSepNode_list" : {
     },
     },
     "minAttachmentNode_list_over": {
     "minAttachmentNode_list_over": {

+ 516 - 0
o2web/source/o2_core/o2/widget/$AttachmentController/mobile_blue_flat/css.wcss

@@ -0,0 +1,516 @@
+{
+    "container": {
+        "border": "1px solid #b6b6b6",
+        //	"height": "180px",
+        "min-height": "180px",
+        "background": "#FFF",
+        "margin-top": "10px",
+        "overflow": "hidden"
+    },
+    "container_min": {
+        "border": "0px solid #b6b6b6",
+        "min-height": "30px",
+        "overflow": "hidden",
+        "background": "transparent",
+        "height": "auto"
+    },
+    "minActionAreaNode": {
+        "margin-top" : "10px"
+//        "float": "right"
+//        "height": "80px",
+//        "margin": "2px",
+//        "border": "1px solid #979797",
+//        "border-radius": "8px",
+//        "background-image": "url("+o2.session.path+"/widget/$AttachmentController/default/buttonbg.png)"
+    },
+    "minContentNode": {
+        "margin-right":"150px",
+        "min-height": "30px",
+        "overflow": "hidden"
+    },
+    "minContentNode_mobile": {
+        "clear":"both",
+        "min-height": "30px",
+        "margin" : "0px 10px",
+        "overflow": "hidden"
+    },
+    "titleNode": {
+        "height": "30px",
+        "background-color": "#DDD",
+        "border-top": "1px solid #FFF",
+        "border-bottom": "1px solid #b6b6b6",
+        "line-height": "30px",
+        "font-weight": "bold",
+        "padding-left": "10px",
+        "text-align": "left"
+    },
+    "topNode": {
+//        "height": "56px"
+//        "background-image": "url("+o2.session.path+"/widget/$AttachmentController/default/bg.png)",
+//        "border-top": "1px solid #FFF",
+//        "border-bottom": "1px solid #b6b6b6"
+    },
+    "actionsBoxNode": {
+//        "overflow": "hidden",
+//        "border-bottom": "1px solid #eaebea",
+        "float": "left"
+//        "margin-left": "10px",
+//        "margin-top": "5px",
+//        "border-radius": "3px",
+//        "background-image": "url("+o2.session.path+"/widget/$AttachmentController/default/buttonbg.png)"
+    },
+    "actionsGroupNode": {
+        "margin-top" : "10px"
+//        "height": "26px",
+//        "border": "1px solid #979797",
+//        "border-radius": "3px",
+//        "background-image": "url("+o2.session.path+"/widget/$AttachmentController/default/buttonbg.png)"
+    },
+    "actionNode": {
+        "float": "left",
+        "width": "252px",
+        "height": "56px",
+        "line-height": "56px",
+        "font-size" : "32px",
+        "margin-left" : "20px",
+        "border-radius" : "4px",
+        "border" : "2px solid #32AAFF",
+        "color" : "#32AAFF",
+        "cursor": "default",
+        "text-align" : "center"
+    },
+    "actionIconNode": {
+        "width": "48px",
+        "height": "48px",
+        "background-repeat": "no-repeat",
+        "background-position": "center center",
+        "background-size": "48px 48px"
+    },
+    "separateNode": {
+//        "width":"0px",
+//        "height": "70px",
+//        "margin-top": "5px",
+//        "margin-left": "5px",
+//        "margin-right": "5px",
+//        "border-left": "1px solid #bcbcbc",
+//        "background-color": "#f1f1f1",
+//        "float": "left"
+    },
+    "contentScrollNode": {
+        "background-color": "#FFF",
+        "overflow": "hidden",
+        "min-height": "130px"
+    },
+    "contentNode": {
+        "background-color": "#FFF",
+        "overflow": "hidden",
+        "margin-right": "6px"
+    },
+    "bottomNode": {
+        "height": "7px",
+        "border-top": "1px solid #b6b6b6",
+        "background-color": "#e8e8e8"
+    },
+    "resizeNode": {
+        "height": "7px",
+        "cursor": "row-resize"
+    },
+    "attachmentNode_icon": {
+        "width": "90px",
+        "height": "100px",
+        "padding": "5px",
+        "float": "left",
+        "margin": "10px 0px 10px 10px",
+        "border-radius": "3px",
+        //"border": "2px solid #FFF",
+        "background": "transparent",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text"
+    },
+    "attachmentNode_icon_over": {
+        //"border": "2px solid #cdcfd1",
+        "background": "#eaf0f5"
+    },
+    "attachmentNode_icon_selected": {
+        //"border": "2px solid #d7e1e8",
+        "background": "#d7e1e8"
+    },
+    "attachmentIconNode": {
+        "width": "90px",
+        "height": "66px",
+        "text-align": "center"
+    },
+    "attachmentIconImgAreaNode": {
+        "width": "64px",
+        "height": "64px",
+        "margin": "auto"
+    },
+    "attachmentIconImgNode": {
+        "width": "64px",
+        "height": "64px"
+    },
+    "attachmentTextNode": {
+        "height": "34px",
+        "line-height": "17px",
+        "overflow": "hidden",
+        "word-break": "break-all",
+        "text-overflow": "ellipsis",
+        "text-align": "center"
+    },
+    "attachmentNode_sequence": {
+        "width": "auto",
+        "height": "30px",
+        "padding": "0px",
+        "float": "none",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "margin": "0px 10px",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text"
+    },
+    "attachmentNode_sequence_over": {
+        "border": "0px solid #cdcfd1",
+        "background": "#eaf0f5"
+    },
+    "attachmentNode_sequence_selected": {
+        "border": "0px solid #d7e1e8",
+        "background": "#d7e1e8"
+    },
+    "attachmentSeqNode_sequence": {
+        "width": "40px",
+        "height": "115px",
+        "line-height": "115px",
+        "color": "#666666",
+        "float": "left",
+        "text-align": "center"
+    },
+    "attachmentTextNode_sequence": {
+        "height": "30px",
+        "line-height": "30px",
+        "margin-left": "70px",
+        "overflow": "hidden",
+        "word-break": "break-all",
+        "text-overflow": "ellipsis",
+        "text-align": "left"
+    },
+
+    "attachmentNode_list": {
+        "width": "auto",
+        "height": "30px",
+        "padding": "0px",
+        "float": "none",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "margin": "0px 10px",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text"
+    },
+    "attachmentNode_list_over": {
+        "border": "0px solid #cdcfd1",
+        "background": "#eaf0f5"
+    },
+    "attachmentNode_list_selected": {
+        "border": "0px solid #d7e1e8",
+        "background": "#d7e1e8"
+    },
+
+
+
+    "attachmentIconNode_list": {
+        "width": "40px",
+        "height": "30px",
+        "float": "left"
+    },
+    "attachmentIconImgAreaNode_list": {
+        "width": "24px",
+        "height": "24px",
+        "margin": "3px 8px"
+    },
+    "attachmentIconImgNode_list": {
+        "width": "24px",
+        "height": "24px"
+    },
+    "attachmentTextNode_list": {
+        "height": "30px",
+        "line-height": "30px",
+        "margin-left": "40px",
+        "overflow": "hidden",
+        "word-break": "break-all",
+        "text-overflow": "ellipsis",
+        "text-align": "left"
+    },
+    "attachmentTextTitleNode_list": {
+        "height": "30px",
+        "float": "left",
+        "width": "30%"
+    },
+    "attachmentTextSizeNode_list": {
+        "height": "30px",
+        "float": "left",
+        "width": "15%"
+    },
+    "attachmentTextUploaderNode_list": {
+        "height": "30px",
+        "float": "left",
+        "width": "15%"
+    },
+    "attachmentTextTimeNode_list": {
+        "height": "30px",
+        "float": "left",
+        "width": "20%"
+    },
+    "attachmentTextActivityNode_list": {
+        "height": "30px",
+        "float": "left",
+        "width": "20%"
+    },
+
+    "attachmentNode_preview": {
+        "width": "180px",
+        "height": "160px",
+        "padding": "5px",
+        "float": "left",
+        "margin": "10px 5px 10px 5px",
+        "border-radius": "3px",
+        //"border": "2px solid #FFF",
+        "background": "transparent",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text"
+    },
+    "attachmentNode_preview_over": {
+        //"border": "2px solid #cdcfd1",
+        "background": "#eaf0f5"
+    },
+    "attachmentNode_preview_selected": {
+        //"border": "2px solid #d7e1e8",
+        "background": "#d7e1e8"
+    },
+    "attachmentPreviewIconNode": {
+        "width": "180px",
+        "height": "126px",
+        "text-align": "center"
+    },
+    "attachmentPreviewIconImgAreaNode": {
+        "width": "72px",
+        "height": "72px",
+        "margin": "auto"
+    },
+    "attachmentPreviewIconImgNode": {
+        "width": "72px",
+        "height": "72px",
+        "margin-top": "22px"
+    },
+    "attachmentPreviewAudioNode": {
+        "width": "180px",
+        "height": "30px",
+        "position": "relative",
+        "top": "-64px",
+        "opacity": "0.7"
+    },
+    "attachmentPreviewVideoNode": {
+        "width": "180px",
+        "height": "126px"
+    },
+    "attachmentPreviewTextNode": {
+        "height": "34px",
+        "line-height": "17px",
+        "overflow": "hidden",
+        "word-break": "break-all",
+        "text-overflow": "ellipsis",
+        "text-align": "center"
+    },
+
+    "minActionNode": {
+        "float": "left",
+        "width": "74px",
+        "font-size" : "32px",
+        "height": "115px",
+        "line-height": "115px",
+        "color" : "#32AAFF",
+        "margin" : "0px 5px",
+        "cursor": "pointer"
+    },
+    "minActionIconNode": {
+        "width": "26px",
+        "height": "26px",
+        "background-repeat": "no-repeat",
+        "background-position": "center center"
+    },
+    "minAttachmentNode_sequence": {
+        "width": "auto",
+        "font-size" : "32px",
+        "color" : "#333",
+        "height": "115px",
+        "padding": "0px 0px 0px 20px",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text",
+        "box-shadow" : "inset 0 -1px 0 0 #DAE1EC"
+    },
+    "minAttachmentNode_sequence_mobile": {
+        "width": "auto",
+        "font-size" : "32px",
+        "color" : "#333",
+        "height": "115px",
+        "padding": "0px 0px 0px 20px",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text",
+        "box-shadow" : "inset 0 -1px 0 0 #DAE1EC"
+    },
+    "minAttachmentNode_sequence_over": {
+        "border": "0px solid #cdcfd1",
+        "background-color": "#eaf0f5"
+    },
+    "minAttachmentNode_sequence_selected": {
+        "border": "0px solid #d7e1e8",
+        "background-color": "#d7e1e8"
+    },
+    "minAttachmentNode_list": {
+        "width": "auto",
+        "height": "115px",
+        "padding": "13px 0px 13px 10px",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text",
+        "width" : "100%"
+        //"border-bottom" : "1px dashed #dcdcdc"
+    },
+    "minAttachmentNode_list_mobile": {
+        "width": "auto",
+        "font-size" : "32px",
+        "color" : "#333",
+        "height": "115px",
+        "padding": "0px 0px 0px 20px",
+        "border-radius": "0px",
+        "border": "0px solid #FFF",
+        "background": "transparent",
+        "-webkit-user-select": "text",
+        "-moz-user-select": "text",
+        "box-shadow" : "inset 0 -1px 0 0 #DAE1EC"
+    },
+    "minAttachmentSepNode_list" : {
+        "width" : "1px",
+        "height" : "30px",
+        "float" : "right",
+        "overflow" : "hidden",
+        "border-right" : "1px dashed #dcdcdc"
+    },
+    "minAttachmentNode_list_over": {
+        //"border": "0px solid #cdcfd1",
+        //"background-color": "#eaf0f5"
+    },
+    "minAttachmentNode_list_selected": {
+        //"border": "0px solid #d7e1e8",
+        "background-color": "#e6f2ff"
+    },
+    "minAttachmentIconNode_list": {
+        "float": "left"
+    },
+    "minAttachmentIconImgAreaNode_list": {
+        "width": "46px",
+        "height": "58px",
+        "margin": "27px 3px"
+    },
+    "minAttachmentIconImgNode_list": {
+        "width": "46px",
+        "height": "58px"
+    },
+    "minAttachmentTextNode_list": {
+        "height": "115px",
+        "cursor": "default",
+        "line-height": "115px",
+        "padding-left": "20px",
+        "margin-right": "0px",
+        "overflow": "hidden",
+        "word-break": "break-all",
+        "text-overflow": "ellipsis",
+        "text-align": "left",
+        "white-space" : "nowrap",
+        "color" : "#333"
+    },
+    "minAttachmentSizeNode_list": {
+        "height": "0px",
+        "line-height": "0px",
+        "margin-left" : "0px",
+        "margin-right": "0px",
+        "display" : "none",
+        "color" : "#c2c6ce"
+    },
+    "minAttachmentActionAreaNode" : {
+        "float" : "right",
+        "overflow" : "hidden"
+    },
+    "inputUploadAreaNode": {
+        "width": "450px",
+        "height": "160px",
+        "border-radius": "5px",
+        "box-shadow": "0px 0px 10px #FFF",
+        "position": "absolute",
+        "border": "2px solid #999",
+        "border-top": "4px solid #5290e5",
+        "background-color": "#FFF",
+        "z-index": 100
+    },
+    "inputUploadAreaTitleNode": {
+        "height": "30px",
+        "line-height": "30px",
+        "text-align": "center",
+        "font-weight": "bold",
+        "font-family": "Microsoft YaHei",
+        "font-size": "14px"
+    },
+    "inputUploadAreaInforNode": {
+        "height": "24px",
+        "line-height": "24px",
+        "text-align": "center",
+        "color": "#666",
+        "font-family": "Microsoft YaHei",
+        "font-size": "12px",
+        "text-align": "left",
+        "margin": "10px 20px 0px 20px"
+    },
+    "inputUploadAreaInputAreaNode": {
+        "margin": "0px 20px 20px 20px",
+        "height": "24px"
+    },
+    "inputUploadAreaInputNode": {
+        "width": "407px",
+        "height": "23px",
+        "border": "1px solid #666",
+    },
+    "inputUploadActionNode": {
+        "margin": "0px 20px",
+        "border-top": "1px solid #999",
+    },
+    "inputUploadOkButton": {
+        "height": "24px",
+        "width": "80px",
+        "color": "#FFF",
+        "background-color": "#42699e",
+        "border": "1px solid #1e3d67",
+        "border-radius": "3px",
+        "float": "right",
+        "margin-top": "10px",
+        "margin-left": "10px"
+    },
+    "inputUploadCancelButton": {
+        "height": "24px",
+        "width": "80px",
+        "color": "#666",
+        "background-color": "#DFDFDF",
+        "border": "1px solid #666",
+        "border-radius": "3px",
+        "float": "right",
+        "margin-top": "10px",
+        "margin-left": "10px"
+    }
+}

BIN
o2web/source/o2_core/o2/widget/$Calendar/homepage/bottombg.gif


+ 12 - 0
o2web/source/o2_core/o2/widget/$Calendar/homepage/container.html

@@ -0,0 +1,12 @@
+<div class="MWF_calendar_container container">
+	<div class="MWF_calendar_title dateTitle">
+		<div class="MWF_calendar_prev datePrev"></div>
+		<div class="MWF_calendar_next dateNext"></div>
+		<div class="MWF_calendar_current dateCurrent"><span class="MWF_calendar_currentText dateCurrentText"></span></div>
+	</div>
+	<div class="MWF_calendar_content calendarContent">
+		<div class="MWF_calendar_content_date contentDate">
+		</div>
+	</div>
+	<div class="MWF_calendar_bottom dateBottom"></div>
+</div>

+ 198 - 0
o2web/source/o2_core/o2/widget/$Calendar/homepage/css.wcss

@@ -0,0 +1,198 @@
+{
+	"container": {
+		"border": "0px solid #888888",
+		"padding": "3px",
+		"background-color": "#FFF",
+		"z-index": "20001",
+		"font-size": "12px",
+		"overflow": "hidden"
+	},
+
+	"dateTitle": {
+		"height": "50px",
+		"line-height": "50px",
+		"text-align": "center",
+		"border-bottom": "1px solid #e6e6e6",
+	},
+	"todayNode": {
+	    "height": "50px",
+    	"line-height": "50px",
+    	"float": "right",
+    	"width": "40px",
+    	"color": "#4A90E2",
+    	"cursor": "pointer",
+        "font-size": "16px",
+        "text-align": "left"
+	},
+
+	"datePrev": {
+		"width": "22px",
+		"height": "50px",
+		"float": "left",
+		"background": "url("+o2.session.path+"/widget/$Calendar/homepage/left.png) no-repeat center center",
+		"cursor": "pointer"
+	},
+	"dateNext": {
+		"width": "22px",
+		"height": "50px",
+		"float": "right",
+		"background": "url("+o2.session.path+"/widget/$Calendar/homepage/right.png) no-repeat center center",
+		"cursor": "pointer"
+	},
+	"dateCurrent": {
+		"margin-left": "22px",
+		"margin-right": "22px",
+		"color": "#4A90E2",
+		"font-family": "Microsoft YaHei",
+		"background-position": "center center",
+		"cursor": "pointer",
+		"font-size": "16px"
+	},
+	"dateCurrentText": {
+		"cursor": "pointer"
+	},
+	"calendarContent": {
+		"overflow": "hidden"
+	},
+
+	"calendarDaysContent": {
+		"width": "100%",
+		"padding": "2px",
+		"float": "left",
+		"height": "330px",
+		"font-size": "14px"
+	},
+
+	"calendarDaysContentTd": {
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		"font-size": "14px",
+		"border-radius": "20px"
+	},
+
+	"calendarMonthsContent": {
+		"width": "100%",
+        "height": "330px",
+        "padding": "2px",
+        "float": "left"
+	},
+	"calendarMonthsContentTd": {
+		"text-align": "center",
+        "cursor": "pointer",
+        "border": "1px solid #FFF",
+        "font-size": "16px",
+        "border-radius": "20px"
+	},
+	"calendarYearsContent": {
+		"width": "100%",
+		"height": "330px",
+		"padding": "2px",
+		"float": "left"
+	},
+	"calendarYearsContentTd": {
+		"text-align": "center",
+        "cursor": "pointer",
+        "border": "1px solid #FFF",
+        "font-size": "16px",
+        "border-radius": "20px"
+	},
+	"calendarTimeContent": {
+		"width": "100%",
+		"height": "330px",
+		"padding": "2px",
+		"float": "left"
+	},
+	"calendarTimeContentTd": {
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		"width": "37px",
+		"font-size": "14px",
+        "border-radius": "20px"
+	},
+	"gray_homepage": {
+		"background-color": "transparent",
+		"border": "1px solid #FFF",
+		"color": "#cccccc"
+	},
+	"today_homepage": {
+		"border": "1px solid #4A90E2",
+		"color": "#ffffff",
+		"background-color": "#4A90E2;"
+	},
+	"current_homepage": {
+		"background-color": "#8E8E8E",
+		"border": "1px solid #8E8E8E",
+		"color": "#FFF"
+	},
+	"normal_homepage": {
+		"background-color": "transparent",
+		"border": "1px solid #FFF",
+		"color": "#333333"
+	},
+	"past_homepage": {
+        "background-color": "transparent",
+        "border": "1px solid #fff",
+        "color": "#999999"
+    },
+
+
+	"dateBottom": {
+		"height": "10px",
+		"overflow": "hidden"
+	},
+	"calendarTimeSlider": {
+		"margin-top": "8px",
+		"height": "10px",
+		"overflow": "hidden",
+		"margin-left": "27px",
+		"margin-right": "15px",
+		"border-top": "1px solid #999",
+		"border-left": "1px solid #999",
+		"border-bottom": "1px solid #E1E1E1",
+		"border-right": "1px solid #E1E1E1",
+		"background-color": "#EEE"
+	},
+	"calendarTimeArea": {
+		"height": "25px",
+		"line-height": "25px",
+		"margin-top": "4px"
+	},
+	"calendarTimeSliderKnob": {
+		"height": "8px",
+		"width": "8px",
+		"background-color": "#999",
+		"position": "absolute",
+		"z-index": "20001",
+		"border-top": "1px solid #DDD",
+		"border-left": "1px solid #DDD",
+		"border-bottom": "1px solid #777",
+		"border-right": "1px solid #777",
+		"cursor": "pointer"
+	},
+	"calendarTimeShow": {
+		"width": "120px",
+		"margin-top": "10px",
+		"cursor": "pointer"
+	},
+	"calendarTimeShowItem": {
+		"border": "3px solid #CCC",
+		"background": "#666",
+		"color": "#FFF",
+		"font-size": "24px",
+		"font-weight": "bolder",
+		"float": "left",
+		"width": "36px",
+		"margin-left": "3px"
+	},
+	"calendarActionShow": {
+		"margin-top": "16px",
+		"text-align": "right",
+		"overflow": "hidden",
+		"margin-right": "10px"
+	},
+	"calendarActionShowButton": {
+		"margin-left": "15px"
+	}
+}

+ 69 - 0
o2web/source/o2_core/o2/widget/$Calendar/homepage/day.html

@@ -0,0 +1,69 @@
+<table border="0" cellpadding="2" cellspacing="20" class="MWF_calendar_days calendarDaysContent" width="100%">
+	<thead style="width:100%">
+		<tr>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+		</tr>
+	</thead>
+	<tbody style="width:100%">
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+	</tbody>
+</table>

BIN
o2web/source/o2_core/o2/widget/$Calendar/homepage/left.png


+ 24 - 0
o2web/source/o2_core/o2/widget/$Calendar/homepage/month.html

@@ -0,0 +1,24 @@
+<table border="0" cellpadding="0" cellspacing="20" class="MWF_calendar_months calendarMonthsContent" height="330px">
+	<tbody>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+	</tbody>
+</table>

BIN
o2web/source/o2_core/o2/widget/$Calendar/homepage/next.gif


BIN
o2web/source/o2_core/o2/widget/$Calendar/homepage/prev.gif


BIN
o2web/source/o2_core/o2/widget/$Calendar/homepage/right.png


+ 192 - 0
o2web/source/o2_core/o2/widget/$Calendar/homepage/style.css

@@ -0,0 +1,192 @@
+.container {
+	border: 1px solid #888888;
+	padding: 3px;
+	position: absolute;
+	width: 148px;
+	background-color:#FFF;
+	z-index: 99;
+	font-size: 12px;
+}
+
+.dateTitle {
+	background-image: url(titlebg.gif);
+	width: 148px;
+	height: 22px;
+	line-height: 20px;
+	text-align: center;
+}
+
+.datePrev {
+	width: 22px;
+	height: 22px;
+	float: left;
+	background: url(prev.gif) no-repeat center center;
+	cursor:pointer;
+}
+.dateNext {
+	width: 22px;
+	height: 22px;
+	float: right;
+	background: url(next.gif) no-repeat center center;
+	cursor:pointer;
+}
+.dateCurrent {
+	margin-left: 22px;
+	margin-right: 22px;
+	color: #FFF;
+	font-family: "Microsoft YaHei";
+	background-position: center center;
+	cursor: move;
+	font-size: 12px;
+}
+.dateCurrentText{
+	cursor: pointer;
+}
+.calendarContent {
+	width: 148px;
+	height: 155px;
+	overflow:hidden;
+}
+
+.calendarDaysContent{
+	width: 100%;
+	padding: 2px;
+	float: left;
+	height: 155px;
+	font-size: 12px;
+}
+
+.calendarDaysContent td{
+	text-align:center;
+	cursor:pointer;
+	border: 1px solid #FFF;
+	font-size: 12px;
+}
+
+.calendarMonthsContent{
+	width: 100%;
+	height: 155px;
+	padding: 2px;
+	float: left;
+}
+.calendarMonthsContent td{
+	text-align:center;
+	cursor:pointer;
+	border: 1px solid #FFF;
+	width: 37px;
+	font-size: 12px;
+	padding: 10px 4px;
+}
+.calendarMonthsContent{
+	width: 100%;
+	height: 155px;
+	padding: 2px;
+	float: left;
+}
+.calendarMonthsContent td{
+	text-align:center;
+	cursor:pointer;
+	border: 1px solid #FFF;
+	width: 37px;
+	font-size: 12px;
+}
+.calendarYearsContent{
+	width: 100%;
+	height: 155px;
+	padding: 2px;
+	float: left;
+}
+.calendarYearsContent td{
+	text-align:center;
+	cursor:pointer;
+	border: 1px solid #FFF;
+	width: 37px;
+	font-size: 12px;
+	padding: 10px 4px;
+}
+.calendarTimeContent{
+	width: 100%;
+	height: 155px;
+	padding: 2px;
+	float: left;
+}
+.calendarTimeContent td{
+	text-align:center;
+	cursor:pointer;
+	border: 1px solid #FFF;
+	width: 37px;
+	font-size: 12px;
+}
+.gray_default {
+	color: #999;
+}
+.today_default {
+	border: 1px solid #999;
+	background-color: #EFEFEF;
+}
+.current_default {
+	background-color: #8E8E8E;
+	color:#FFF;
+}
+.dateBottom {
+	width: 148px;
+	height: 10px;
+	background-image: url(bottombg.gif);
+	overflow: hidden;
+}
+.calendarTimeSlider{
+	margin-top: 14px;
+	height: 10px;
+	overflow: hidden;
+	margin-left: 27px;
+	margin-right: 15px;
+	border-top:1px solid #999;
+	border-left:1px solid #999;
+	border-bottom:1px solid #E1E1E1;
+	border-right:1px solid #E1E1E1;
+	background-color:#EEE;
+}
+.calendarTimeArea{
+	height: 25px;
+	line-height: 25px;
+	margin-top: 4px;
+}
+.calendarTimeSliderKnob{
+	height:8px;
+	width: 8px;
+	background-color:#999;
+	/*position: absolute;*/
+	z-index: 99;
+	
+	border-top:1px solid #DDD;
+	border-left:1px solid #DDD;
+	border-bottom:1px solid #777;
+	border-right:1px solid #777;
+	cursor:pointer;
+}
+.calendarTimeShow{
+	width: 85px;
+	margin: auto;
+	margin-top: 10px;
+	cursor:pointer;
+	overflow: hidden;
+}
+.calendarTimeShowItem{
+	border: 3px solid #CCC;
+	background:#666;
+	color: #FFF;
+	font-size: 24px;
+	font-weight: bolder;
+	float: left;
+	width: 32px;
+	margin-left: 4px;
+}
+.calendarActionShow {
+	margin-top: 16px;
+	text-align: right;
+	overflow: hidden;
+	margin-right: 10px;
+}
+.calendarActionShow button{
+	margin-left: 15px;
+}

+ 23 - 0
o2web/source/o2_core/o2/widget/$Calendar/homepage/time.html

@@ -0,0 +1,23 @@
+<div style="padding:5px; text-align:center">
+	<div class="MWF_calendar_time_h calendarTimeArea">
+		<div style="width: 25px; float:left">时 0</div>
+		<div style="width: 10px; float:right">23</div>
+		<div class="MWF_calendar_time_h_slider calendarTimeSlider"><div class="calendarTimeSliderKnob"></div></div>
+	</div>
+	<div class="MWF_calendar_time_m calendarTimeArea">
+		<div style="width: 25px; float:left">分 0</div>
+		<div style="width: 10px; float:right">59</div>
+		<div class="MWF_calendar_time_m_slider calendarTimeSlider"><div class="calendarTimeSliderKnob"></div></div>
+	</div>
+	<!--<div class="MWF_calendar_time_s calendarTimeArea">
+		<div style="width: 25px; float:left">秒 0</div>
+		<div style="width: 10px; float:right">59</div>
+		<div class="MWF_calendar_time_s_slider calendarTimeSlider"><div class="calendarTimeSliderKnob"></div></div>
+	</div>-->
+	<div class="MWF_calendar_time_show calendarTimeShow">
+		<div class="MWF_calendar_time_show_h calendarTimeShowItem"></div>
+		<div class="MWF_calendar_time_show_m calendarTimeShowItem"></div>
+		<!--<div class="MWF_calendar_time_show_s calendarTimeShowItem"></div>-->
+	</div>
+	<div class="MWF_calendar_action_show calendarActionShow"></div>
+</div>

BIN
o2web/source/o2_core/o2/widget/$Calendar/homepage/titlebg.gif


+ 24 - 0
o2web/source/o2_core/o2/widget/$Calendar/homepage/year.html

@@ -0,0 +1,24 @@
+<table border="0" cellpadding="0" cellspacing="20" class="MWF_calendar_years calendarYearsContent" height="330px">
+	<tbody>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+	</tbody>
+</table>

BIN
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/bottombg.gif


+ 12 - 0
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/container.html

@@ -0,0 +1,12 @@
+<div class="MWF_calendar_container container">
+	<div class="MWF_calendar_title dateTitle">
+		<div class="MWF_calendar_prev datePrev"></div>
+		<div class="MWF_calendar_next dateNext"></div>
+		<div class="MWF_calendar_current dateCurrent"><span class="MWF_calendar_currentText dateCurrentText"></span></div>
+	</div>
+	<div class="MWF_calendar_content calendarContent">
+		<div class="MWF_calendar_content_date contentDate">
+		</div>
+	</div>
+	<div class="MWF_calendar_bottom dateBottom"></div>
+</div>

+ 224 - 0
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/css.js.bak

@@ -0,0 +1,224 @@
+{
+	"container": {
+		"border": "1px solid #888888",
+		"margin": "5px",
+		"background-color": "#FFF",
+		"z-index": "99",
+		"font-size": "12px",
+		"position": "absolute",
+		"height": "223px",
+		"overflow": "hidden"
+	},
+
+	"dateTitle": {
+		"background-color": "#576e86",
+		"width": "200px",
+		"height": "26px",
+		"line-height": "26px",
+		"text-align": "center",
+		"font-weight": "bold" 
+	},
+
+	"datePrev": {
+		"width": "22px",
+		"height": "22px",
+		"float": "left",
+		"background": "url("+o2.session.path+"/widget/Calendar/oa/prev.gif) no-repeat center center",
+		"cursor": "pointer"
+	},
+	"dateNext": {
+		"width": "22px",
+		"height": "22px",
+		"float": "right",
+		"background": "url("+o2.session.path+"/widget/Calendar/oa/next.gif) no-repeat center center",
+		"cursor": "pointer"
+	},
+	"dateCurrent": {
+		"margin-left": "22px",
+		"margin-right": "22px",
+		"color": "#FFF",
+		"font-family": "Microsoft YaHei",
+		"background-position": "center center",
+		"cursor": "move",
+		"font-size": "12px"
+	},
+	"dateCurrentText": {
+		"cursor": "pointer"
+	},
+	"calendarContent": {
+		"width": "200px",
+		"overflow": "hidden"
+	},
+
+	"calendarDaysContent": {
+		"display": "table",
+		"width": "100%",
+		"padding": "2px",
+		"float": "left",
+		"height": "195px",
+		"font-size": "12px",
+		"background-color:": "#ccc"
+	},
+	"calendarDaysContentTh": {
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		//"border-bottom": "1px solid #e7e7e7",
+		"font-size": "12px",
+		"height": "18px",
+		"line-height": "18px",
+		"background-color": "#FFF"
+	},
+
+	"calendarDaysContentTd": {
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "0px solid #FFF",
+		"background": "url("+o2.session.path+"/widget/Calendar/oa/tdbg.gif) repeat-x bottom",
+		//"background": "#FFF",
+		"font-size": "12px"
+	},
+
+	"calendarMonthsContent": {
+		"width": "100%",
+		"display": "table",
+		"height": "195px",
+		"padding": "2px",
+		"float": "left"
+	},
+	"calendarMonthsContentTd": {
+		"background-color": "#FFFFFF",
+		"background-image": "url("+o2.session.path+"/widget/Calendar/oa/tdbg.gif)",
+		"background-repeat": "repeat-x",
+		"background-position": "bottom",
+		"text-align": "center",
+		"cursor": "pointer", 
+		"border": "1px solid #FFF", 
+		"width": "37px",
+		"font-size": "12px"
+	},
+	"calendarYearsContent": {
+		"display": "table",
+		"width": "100%",
+		"height": "195px",
+		"padding": "2px",
+		"float": "left"
+	},
+	"calendarYearsContentTd": {
+		"background-color": "#FFFFFF",
+		"background-image": "url("+o2.session.path+"/widget/Calendar/oa/tdbg.gif)",
+		"background-repeat": "repeat-x",
+		"background-position": "bottom",
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		"width": "37px",
+		"font-size": "12px"
+	},
+	"calendarTimeContent": {
+		"width": "100%",
+		"height": "144px",
+		"padding": "2px",
+		"float": "left"
+	},
+	"calendarTimeContentTd": {
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		"width": "37px",
+		"font-size": "12px"
+	},
+	"gray_oa": {
+	//	"background": "url("+o2.session.path+"/widget/Calendar/portlet/tdbg.gif)",
+		"background": "#FFF",
+		"border": "0px solid #FFF",
+		"color": "#999"
+	},
+	"today_oa": {
+		"border": "0px solid #FFF",
+		"color": "#FF0000",
+		"background": "url("+o2.session.path+"/widget/Calendar/oa/tdbg.gif) repeat-x bottom"
+	},
+	"current_oa": {
+		"background": "#8E8E8E",
+		"border": "1px solid #FFF",
+		"color": "#FFF"
+	},
+	"normal_oa": {
+		"background": "url("+o2.session.path+"/widget/Calendar/oa/tdbg.gif) repeat-x bottom",
+	//	"background": "#FFF",
+		"border": "0px solid #FFF",
+		"color": "#000"
+	},
+	"dateBottom": {
+		"display": "none"
+	},
+	"calendarTimeSlider": {
+		"margin-top": "8px",
+		"height": "15px",
+		"overflow": "hidden",
+		"margin-left": "27px",
+		"margin-right": "15px",
+		"border-top": "1px solid #999",
+		"border-left": "1px solid #999",
+		"border-bottom": "1px solid #E1E1E1",
+		"border-right": "1px solid #E1E1E1",
+		"background-color": "#EEE"
+	},
+	"calendarTimeSliderNoStyle": {
+		"margin-top": "8px",
+		"height": "auto",
+		"overflow": "visible",
+		"margin-left": "50px",
+		"margin-right": "50px",
+		"border-top": "0px solid #999",
+		"border-left": "0px solid #999",
+		"border-bottom": "0px solid #E1E1E1",
+		"border-right": "0px solid #E1E1E1",
+		"background-color": "transparent"
+	},
+	"calendarTimeArea": {
+		"height": "25px",
+		"line-height": "25px",
+		"margin-top": "4px"
+	},
+	"calendarTimeSliderKnob": {
+		"height": "10px",
+		"width": "10px",
+		"background-color": "#999",
+		"position": "absolute",
+		"z-index": "99",
+		"border-top": "1px solid #DDD",
+		"border-left": "1px solid #DDD",
+		"border-bottom": "1px solid #777",
+		"border-right": "1px solid #777",
+		"cursor": "pointer"
+	},
+	"calendarTimeShow": {
+		"width": "102px",
+		"text-align": "center",
+		"margin-top": "20px",
+		"cursor": "pointer"
+	},
+	"calendarTimeShowItem": {
+		"border": "3px solid #CCC",
+		"background": "#666",
+		"color": "#FFF",
+		"font-size": "28px",
+		"font-weight": "bolder",
+		"float": "left",
+		"width": "46px",
+		"margin-left": "3px"
+	},
+	"calendarActionShow": {
+		"margin-top": "30px",
+		"text-align": "center",
+		"overflow": "hidden",
+		"margin-right": "10px"
+	},
+	"calendarActionShowButton": {
+		"margin-left": "15px",
+		"width": "40px",
+		"border": "1px solid #999"
+	}
+}

+ 355 - 0
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/css.wcss

@@ -0,0 +1,355 @@
+{
+	"container": {
+		"border": "2px solid #999",
+		"margin": "5px 5px 5px 10px",
+		"background-color": "#FFF",
+		"z-index": "300",
+		"font-size": "12px",
+		"position": "absolute",
+		"height": "330px",
+		"padding": "10px",
+		"font-family": "Microsoft YaHei",
+		"overflow": "hidden",
+	  	"width" : "90%"
+	},
+
+	"dateTitle": {
+		"background-color": "#FFF",
+	  	"margin" : "0px auto",
+		"width": "100%",
+		"height": "40px",
+		"font-size": "16px",
+		"line-height": "40px",
+		"text-align": "center"
+	},
+
+	"datePrev": {
+		"width": "22px",
+		"height": "22px",
+		"float": "left",
+		"background": "url("+o2.session.path+"/widget/$Calendar/meeting/left.png) no-repeat center center",
+		"cursor": "pointer"
+	},
+	"dateNext": {
+		"width": "22px",
+		"height": "22px",
+		"float": "right",
+		"background": "url("+o2.session.path+"/widget/$Calendar/meeting/right.png) no-repeat center center",
+		"cursor": "pointer"
+	},
+	"dateCurrent": {
+		"margin-left": "22px",
+		"margin-right": "22px",
+		"color": "#333",
+		"font-size": "24px",
+		"font-family": "Microsoft YaHei",
+		"background-position": "center center",
+		"cursor": "move"
+	},
+	"dateCurrentText": {
+		"cursor": "pointer"
+	},
+	"calendarContent": {
+	  "margin" : "0px auto",
+	  "width": "100%",
+		"overflow": "hidden"
+	},
+
+	"calendarDaysContent": {
+	//	"display": "table",
+		"margin" : "0px auto",
+		"width": "98%",
+		"padding": "0px",
+		"float": "left",
+		"height": "195px",
+		"font-size": "14px",
+		"background-color:": "#FFF"
+	},
+	"calendarDaysContentTh": {
+		"text-align": "center",
+		"cursor": "pointer",
+		//"border": "1px solid #FFF",
+		//"border-bottom": "1px solid #e7e7e7",
+		"font-size": "14px",
+		"height": "36px",
+		"line-height": "36px",
+		"background-color": "#FFF"
+	},
+
+	"calendarDaysContentTd": {
+		"text-align": "center",
+		"cursor": "pointer",
+		"background-color": "#FFF",
+		//"border": "0px solid #FFF",
+		"height": "36px",
+		//"background": "url("+o2.session.path+"/widget/$Calendar/xform/tdbg.gif) repeat-x bottom",
+		//"background": "#FFF",
+		"font-size": "14px"
+	},
+
+	"calendarMonthsContent": {
+		"width": "100%",
+	//	"display": "table",
+		"height": "294px",
+		"padding": "0px",
+		"float": "left"
+	},
+	"calendarMonthsContentTd": {
+		"background-color": "#FFFFFF",
+		//"background-image": "url("+o2.session.path+"/widget/$Calendar/xform/tdbg.gif)",
+		"background-repeat": "repeat-x",
+		"background-position": "bottom",
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		"font-size": "14px"
+	},
+	"calendarYearsContent": {
+	//	"display": "table",
+		"width": "100%",
+		"height": "294px",
+		"padding": "0px",
+		"float": "left"
+	},
+	"calendarYearsContentTd": {
+		"background-color": "#FFFFFF",
+		//"background-image": "url("+o2.session.path+"/widget/$Calendar/xform/tdbg.gif)",
+		"background-repeat": "repeat-x",
+		"background-position": "bottom",
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		"font-size": "14px"
+	},
+	"calendarTimeContent": {
+		"width": "100%",
+		"height": "244px",
+		"padding": "5px",
+		"float": "left"
+	},
+	"calendarTimeContentTd": {
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		"width": "37px",
+		"font-size": "12px"
+	},
+	"gray_xform_mobile": {
+	//	"background": "url("+o2.session.path+"/widget/$Calendar/portlet/tdbg.gif)",
+		"background": "#FFF",
+		"border": "0px solid #FFF",
+		"color": "#999"
+	},
+	"today_xform_mobile": {
+		"border": "0px solid #FFF",
+		"color": "#FF0000",
+	//	"background": "url("+o2.session.path+"/widget/$Calendar/xform/tdbg.gif) repeat-x bottom"
+	},
+	"current_xform_mobile": {
+		"background": "#CCC",
+	//	"border": "1px solid #FFF",
+		"color": "#333"
+	},
+	"normal_xform_mobile": {
+	//	"background": "url("+o2.session.path+"/widget/$Calendar/xform/tdbg.gif) repeat-x bottom",
+	//	"background": "#FFF",
+		"border": "0px solid #FFF",
+		"color": "#333"
+	},
+	"dateBottom": {
+		"display": "none"
+	},
+	"calendarTimeSlider": {
+		"margin-top": "5px",
+		"height": "16px",
+		"overflow": "hidden",
+		"margin-left": "5px",
+		"margin-right": "5px",
+		"border": "1px solid #999",
+		"float": "left",
+		"width": "240px",
+		"background-color": "#FFF"
+	},
+	"calendarTimeSliderNoStyle": {
+		"margin-top": "0px",
+		"width": "auto",
+		"height": "auto",
+		"overflow": "visible",
+		"margin-left": "50px",
+		"margin-right": "50px",
+		"border-top": "0px solid #999",
+		"border-left": "0px solid #999",
+		"border-bottom": "0px solid #E1E1E1",
+		"border-right": "0px solid #E1E1E1",
+		"background-color": "transparent"
+	},
+	"calendarTimeArea": {
+		"height": "25px",
+		"line-height": "25px",
+		"margin-top": "4px",
+		"border": "1px solid #FFF"
+	},
+	"calendarTimeSliderKnob": {
+		"height": "16px",
+		"width": "20px",
+		"background-color": "#666",
+        "color": "#FFF",
+        "text-align": "center",
+        "font-size": "12px",
+        "line-height": "16px",
+		"z-index": "99",
+		"cursor": "pointer"
+	},
+	"calendarTimeShow": {
+		"overflow": "hidden",
+		"text-align": "center",
+		"margin-top": "20px",
+		"padding-left": "90px",
+		"cursor": "pointer"
+	},
+	"calendarTimeShowItem": {
+		"border": "3px solid #CCC",
+		"background": "#666",
+		"color": "#FFF",
+		"font-size": "28px",
+		"font-weight": "bolder",
+		"float": "left",
+		"width": "46px",
+		"height": "46px",
+		"line-height": "46px",
+		"margin-left": "3px"
+	},
+	"calendarActionShow": {
+	    "overflow": "hidden",
+		"margin-top": "20px",
+		"text-align": "center",
+		"overflow": "hidden"
+	},
+	"calendarActionShowButton": {
+		"margin-left": "5px",
+		"margin-right": "5px",
+		"width": "50px",
+		"padding": "5px",
+		"border": "1px solid #999"
+	},
+
+
+  	"calendarTimeContent_mobile" : {
+	  "padding-top":"10px 5px",
+	  "text-align":"center",
+	  "margin":"0px",
+	  "-webkit-transition": "all .4s",
+	  "transition": "all .4s"
+	},
+  	"calendarTimeFixWidthNode_mobile" : {
+	  "width" : "90%",
+	  "margin" : "0px auto",
+	  "position" : "relative"
+	},
+  	"calendarTimeWheels_mobile" : {
+		"width" : "100%",
+	  	"height" : "200px",
+	  	"overflow" : "hidden"
+	},
+  	"calendarTimeWheel_mobile" : {
+		"width" : "50%",
+	  	"position" : "relative",
+	  	"float" : "left",
+	  	"height" : "200px",
+	  	"overflow" : "hidden",
+	  	"-webkit-transition": "width .3s ease",
+	  	"transition": "width .3s ease"
+	},
+  	"calendarTimeSelectContainer_mobile" : {
+	  	"display": "block",
+	  	"text-align": "center",
+	  	"-webkit-transition": "-webkit-transform .18s ease-out",
+		"transition": "-webkit-transform .18s ease-out",
+		"transition": "transform .18s ease-out",
+		"transition": "transform .18s ease-out, -webkit-transform .18s ease-out"
+	},
+	"calendarTimeSelectItem_mobile" : {
+	  "font-size": "20px",
+	  "display": "block",
+	  "height": "40px",
+	  "line-height": "40px",
+	  "cursor": "pointer",
+	  "overflow": "hidden",
+	  "white-space": "nowrap",
+	  "text-overflow": "ellipsis"
+	},
+  	"calendarTimeSelectLine_mobile" : {
+	  "height": "40px",
+	  "width": "100%",
+	  "position": "absolute",
+	  "top": "80px",
+	  "pointer-events": "none",
+	  "-webkit-box-sizing": "border-box",
+	  "box-sizing": "border-box",
+	  "border-top": "1px solid #dcdcdc",
+	  "border-bottom": "1px solid #dcdcdc"
+	},
+  	"calendarTimeShadowMask_mobile" : {
+	  "position": "absolute",
+	  "top": "0px",
+	  "left" : "0px",
+	  "width": "100%",
+	  "height": "200px",
+	  "background": "-webkit-gradient(linear, left top, left bottom, from(#ffffff), color-stop(rgba(255, 255, 255, 0)), to(#ffffff))",
+	  "background": "-webkit-linear-gradient(top, #ffffff, rgba(255, 255, 255, 0), #ffffff)",
+	  "background": "linear-gradient(to bottom, #ffffff, rgba(255, 255, 255, 0), #ffffff)",
+	  "opacity": ".9",
+	  "pointer-events": "none"
+	},
+  "calendarActionShowButton_mobile_ok": {
+	"margin-left": "5px",
+	"margin-right": "5px",
+	"width": "60px",
+	"padding": "7px",
+	"border": "1px solid #3296fa",
+	"border-raidus" : "2px",
+	"color" : "#fff",
+	"background-color" : "rgb(50, 150, 250)"
+  },
+  "calendarActionShowButton_mobile_cancel": {
+	"margin-left": "5px",
+	"margin-right": "5px",
+	"width": "60px",
+	"padding": "7px",
+	"border": "1px solid #dfdfdf",
+	"border-raidus" : "2px",
+	"background-color" : "#fff"
+  }
+//  "calendarTimeWraper" : {
+//	"float" : "left",
+//	"overflow" : "hidden",
+//	"border": "1px solid #e2e3e7"
+//  },
+//  "calendarTimeScrollArea": {
+//	"width" : "55px",
+//	"height": "150px",
+//	"overflow-y": "scroll",
+//	"overflow-x": "hidden"
+//  },
+//  "calendarTimeContainer" : {
+//
+//  },
+//  "calendarTimeItem" : {
+//	"cursor" : "pointer",
+//	"height" : "24px",
+//	"line-height" : "24px",
+//	"border" : "1px solid #fff",
+//	"background-color" : "transparent",
+//	"color" : "#333"
+//  },
+//  "calendarTimeItem_over" : {
+//	"border" : "1px solid #999",
+//	"background-color" : "transparent",
+//	"color" : "#333"
+//  },
+//  "calendarTimeItem_selected" : {
+//	"border" : "1px solid #576e86",
+//	"background-color" : "#576e86",
+//	"color" : "#fff"
+//  }
+}

+ 262 - 0
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/css_bak.wcss

@@ -0,0 +1,262 @@
+{
+	"container": {
+		"border": "1px solid #888888",
+		"margin": "5px",
+		"background-color": "#FFF",
+		"z-index": "300",
+		"font-size": "12px",
+		"position": "absolute",
+		"height": "223px",
+		"overflow": "hidden"
+	},
+
+	"dateTitle": {
+		"background-color": "#576e86",
+		"width": "200px",
+		"height": "26px",
+		"line-height": "26px",
+		"text-align": "center",
+		"font-weight": "bold" 
+	},
+
+	"datePrev": {
+		"width": "22px",
+		"height": "22px",
+		"float": "left",
+		"background": "url("+o2.session.path+"/widget/$Calendar/xform/prev.gif) no-repeat center center",
+		"cursor": "pointer"
+	},
+	"dateNext": {
+		"width": "22px",
+		"height": "22px",
+		"float": "right",
+		"background": "url("+o2.session.path+"/widget/$Calendar/xform/next.gif) no-repeat center center",
+		"cursor": "pointer"
+	},
+	"dateCurrent": {
+		"margin-left": "22px",
+		"margin-right": "22px",
+		"color": "#FFF",
+		"font-family": "Microsoft YaHei",
+		"background-position": "center center",
+		"cursor": "move",
+		"font-size": "12px"
+	},
+	"dateCurrentText": {
+		"cursor": "pointer"
+	},
+	"calendarContent": {
+		"width": "200px",
+		"overflow": "hidden"
+	},
+
+	"calendarDaysContent": {
+	//	"display": "table",
+		"width": "100%",
+		"padding": "2px",
+		"float": "left",
+		"height": "195px",
+		"font-size": "12px",
+		"background-color:": "#ccc"
+	},
+	"calendarDaysContentTh": {
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		//"border-bottom": "1px solid #e7e7e7",
+		"font-size": "12px",
+		"height": "18px",
+		"line-height": "18px",
+		"background-color": "#FFF"
+	},
+
+	"calendarDaysContentTd": {
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "0px solid #FFF",
+		"background": "url("+o2.session.path+"/widget/$Calendar/xform/tdbg.gif) repeat-x bottom",
+		//"background": "#FFF",
+		"font-size": "12px"
+	},
+
+	"calendarMonthsContent": {
+		"width": "100%",
+	//	"display": "table",
+		"height": "195px",
+		"padding": "2px",
+		"float": "left"
+	},
+	"calendarMonthsContentTd": {
+		"background-color": "#FFFFFF",
+		"background-image": "url("+o2.session.path+"/widget/$Calendar/xform/tdbg.gif)",
+		"background-repeat": "repeat-x",
+		"background-position": "bottom",
+		"text-align": "center",
+		"cursor": "pointer", 
+		"border": "1px solid #FFF", 
+		"width": "37px",
+		"font-size": "12px"
+	},
+	"calendarYearsContent": {
+	//	"display": "table",
+		"width": "100%",
+		"height": "195px",
+		"padding": "2px",
+		"float": "left"
+	},
+	"calendarYearsContentTd": {
+		"background-color": "#FFFFFF",
+		"background-image": "url("+o2.session.path+"/widget/$Calendar/xform/tdbg.gif)",
+		"background-repeat": "repeat-x",
+		"background-position": "bottom",
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		"width": "37px",
+		"font-size": "12px"
+	},
+	"calendarTimeContent": {
+		"width": "100%",
+		"height": "144px",
+		"padding": "2px",
+		"float": "left"
+	},
+	"calendarTimeContentTd": {
+		"text-align": "center",
+		"cursor": "pointer",
+		"border": "1px solid #FFF",
+		"width": "37px",
+		"font-size": "12px"
+	},
+	"gray_xform": {
+	//	"background": "url("+o2.session.path+"/widget/$Calendar/portlet/tdbg.gif)",
+		"background": "#FFF",
+		"border": "0px solid #FFF",
+		"color": "#999"
+	},
+	"today_xform": {
+		"border": "0px solid #FFF",
+		"color": "#FF0000",
+		"background": "url("+o2.session.path+"/widget/$Calendar/xform/tdbg.gif) repeat-x bottom"
+	},
+	"current_xform": {
+		"background": "#8E8E8E",
+		"border": "1px solid #FFF",
+		"color": "#FFF"
+	},
+	"normal_xform": {
+		"background": "url("+o2.session.path+"/widget/$Calendar/xform/tdbg.gif) repeat-x bottom",
+	//	"background": "#FFF",
+		"border": "0px solid #FFF",
+		"color": "#000"
+	},
+	"dateBottom": {
+		"display": "none"
+	},
+	"calendarTimeSlider": {
+		"margin-top": "5px",
+		"height": "16px",
+		"overflow": "hidden",
+		"margin-left": "5px",
+		"margin-right": "5px",
+		"border": "1px solid #999",
+		"float": "left",
+		"width": "140px",
+		"background-color": "#FFF"
+	},
+	"calendarTimeSliderNoStyle": {
+		"margin-top": "0px",
+		"width": "auto",
+		"height": "auto",
+		"overflow": "visible",
+		"margin-left": "50px",
+		"margin-right": "50px",
+		"border-top": "0px solid #999",
+		"border-left": "0px solid #999",
+		"border-bottom": "0px solid #E1E1E1",
+		"border-right": "0px solid #E1E1E1",
+		"background-color": "transparent"
+	},
+	"calendarTimeArea": {
+		"height": "25px",
+		"line-height": "25px",
+		"margin-top": "4px",
+		"border": "1px solid #FFF"
+	},
+	"calendarTimeSliderKnob": {
+		"height": "16px",
+		"width": "20px",
+		"background-color": "#666",
+        "color": "#FFF",
+        "text-align": "center",
+        "font-size": "12px",
+        "line-height": "16px",
+		"z-index": "99",
+		"cursor": "pointer"
+	},
+	"calendarTimeShow": {
+		"overflow": "hidden",
+		"text-align": "center",
+		"margin-top": "12px",
+		"padding-left": "28px",
+		"cursor": "pointer"
+	},
+	"calendarTimeShowItem": {
+		"border": "3px solid #CCC",
+		"background": "#666",
+		"color": "#FFF",
+		"font-size": "24px",
+		"font-weight": "bolder",
+		"float": "left",
+		"width": "40px",
+		"height": "30px",
+		"line-height": "30px",
+		"margin-left": "3px"
+	},
+	"calendarActionShow": {
+	    "overflow": "hidden",
+		"margin-top": "12px",
+		"text-align": "center",
+		"overflow": "hidden"
+	},
+	"calendarActionShowButton": {
+		"margin-left": "5px",
+		"margin-right": "5px",
+		"width": "50px",
+		"padding": "5px",
+		"border": "1px solid #999"
+	},
+
+	"calendarTimeWraper" : {
+	  	"float" : "left",
+	  	"overflow" : "hidden",
+	  	"border": "1px solid #e2e3e7"
+	},
+	"calendarTimeScrollArea": {
+	  "width" : "55px",
+	  "height": "150px",
+	  "overflow-y": "scroll",
+	  "overflow-x": "hidden"
+	},
+	"calendarTimeContainer" : {
+
+	},
+	"calendarTimeItem" : {
+	  "cursor" : "pointer",
+	  "height" : "24px",
+	  "line-height" : "24px",
+	  "border" : "1px solid #fff",
+	  "background-color" : "transparent",
+	  "color" : "#333"
+	},
+	"calendarTimeItem_over" : {
+	  "border" : "1px solid #999",
+	  "background-color" : "transparent",
+	  "color" : "#333"
+	},
+  "calendarTimeItem_selected" : {
+	"border" : "1px solid #576e86",
+	"background-color" : "#576e86",
+	"color" : "#fff"
+  }
+}

+ 69 - 0
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/day.html

@@ -0,0 +1,69 @@
+<table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFF" class="MWF_calendar_days calendarDaysContent" width="100%">
+	<thead style="width:100%">
+		<tr>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+			<th>&nbsp;</th>
+		</tr>
+	</thead>
+	<tbody style="width:100%">
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+	</tbody>
+</table>

BIN
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/left.png


+ 24 - 0
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/month.html

@@ -0,0 +1,24 @@
+<table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFF" class="MWF_calendar_months calendarMonthsContent">
+	<tbody>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+	</tbody>
+</table>

BIN
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/next.gif


BIN
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/prev.gif


BIN
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/right.png


+ 192 - 0
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/style.css

@@ -0,0 +1,192 @@
+.container {
+	border: 1px solid #888888;
+	padding: 3px;
+	position: absolute;
+	width: 148px;
+	background-color:#FFF;
+	z-index: 99;
+	font-size: 12px;
+}
+
+.dateTitle {
+	background-image: url(titlebg.gif);
+	width: 148px;
+	height: 22px;
+	line-height: 20px;
+	text-align: center;
+}
+
+.datePrev {
+	width: 22px;
+	height: 22px;
+	float: left;
+	background: url(prev.gif) no-repeat center center;
+	cursor:pointer;
+}
+.dateNext {
+	width: 22px;
+	height: 22px;
+	float: right;
+	background: url(next.gif) no-repeat center center;
+	cursor:pointer;
+}
+.dateCurrent {
+	margin-left: 22px;
+	margin-right: 22px;
+	color: #FFF;
+	font-family: "Microsoft YaHei";
+	background-position: center center;
+	cursor: move;
+	font-size: 12px;
+}
+.dateCurrentText{
+	cursor: pointer;
+}
+.calendarContent {
+	width: 300px;
+	height: 155px;
+	overflow:hidden;
+}
+
+.calendarDaysContent{
+	width: 100%;
+	padding: 20px;
+	float: left;
+	height: 155px;
+	font-size: 12px;
+}
+
+.calendarDaysContent td{
+	text-align:center;
+	cursor:pointer;
+	border: 1px solid #FFF;
+	font-size: 12px;
+}
+
+.calendarMonthsContent{
+	width: 100%;
+	height: 155px;
+	padding: 2px;
+	float: left;
+}
+.calendarMonthsContent td{
+	text-align:center;
+	cursor:pointer;
+	border: 1px solid #FFF;
+	width: 37px;
+	font-size: 12px;
+	padding: 10px 4px;
+}
+.calendarMonthsContent{
+	width: 100%;
+	height: 155px;
+	padding: 2px;
+	float: left;
+}
+.calendarMonthsContent td{
+	text-align:center;
+	cursor:pointer;
+	border: 1px solid #FFF;
+	width: 37px;
+	font-size: 12px;
+}
+.calendarYearsContent{
+	width: 100%;
+	height: 155px;
+	padding: 2px;
+	float: left;
+}
+.calendarYearsContent td{
+	text-align:center;
+	cursor:pointer;
+	border: 1px solid #FFF;
+	width: 37px;
+	font-size: 12px;
+	padding: 10px 4px;
+}
+.calendarTimeContent{
+	width: 100%;
+	height: 155px;
+	padding: 2px;
+	float: left;
+}
+.calendarTimeContent td{
+	text-align:center;
+	cursor:pointer;
+	border: 1px solid #FFF;
+	width: 37px;
+	font-size: 12px;
+}
+.gray_default {
+	color: #999;
+}
+.today_default {
+	border: 1px solid #999;
+	background-color: #EFEFEF;
+}
+.current_default {
+	background-color: #8E8E8E;
+	color:#FFF;
+}
+.dateBottom {
+	width: 148px;
+	height: 10px;
+	background-image: url(bottombg.gif);
+	overflow: hidden;
+}
+.calendarTimeSlider{
+	margin-top: 14px;
+	height: 10px;
+	overflow: hidden;
+	margin-left: 27px;
+	margin-right: 15px;
+	border-top:1px solid #999;
+	border-left:1px solid #999;
+	border-bottom:1px solid #E1E1E1;
+	border-right:1px solid #E1E1E1;
+	background-color:#EEE;
+}
+.calendarTimeArea{
+	height: 25px;
+	line-height: 25px;
+	margin-top: 4px;
+}
+.calendarTimeSliderKnob{
+	height:8px;
+	width: 8px;
+	background-color:#999;
+	/*position: absolute;*/
+	z-index: 99;
+	
+	border-top:1px solid #DDD;
+	border-left:1px solid #DDD;
+	border-bottom:1px solid #777;
+	border-right:1px solid #777;
+	cursor:pointer;
+}
+.calendarTimeShow{
+	width: 85px;
+	margin: auto;
+	margin-top: 10px;
+	cursor:pointer;
+	overflow: hidden;
+}
+.calendarTimeShowItem{
+	border: 3px solid #CCC;
+	background:#666;
+	color: #FFF;
+	font-size: 24px;
+	font-weight: bolder;
+	float: left;
+	width: 32px;
+	margin-left: 4px;
+}
+.calendarActionShow {
+	margin-top: 16px;
+	text-align: right;
+	overflow: hidden;
+	margin-right: 10px;
+}
+.calendarActionShow button{
+	margin-left: 15px;
+}

BIN
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/tdbg.gif


+ 18 - 0
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/time.html

@@ -0,0 +1,18 @@
+<div class="calendarTimeContent_mobile">
+	<div class="calendarTimeFixWidthNode_mobile">
+		<div class="calendarTimeWheels_mobile">
+			<div class="calendarTimeWheel_mobile">
+				<div class="calendarTimeSelectContainer_mobile MWF_calendar_time_h"></div>
+			</div>
+			<div class="calendarTimeWheel_mobile">
+				<div class="calendarTimeSelectContainer_mobile MWF_calendar_time_m"></div>
+			</div>
+			<div class="calendarTimeWheel_mobile">
+				<div class="calendarTimeSelectContainer_mobile MWF_calendar_time_s"></div>
+			</div>
+		</div>
+		<div class="calendarTimeSelectLine_mobile"></div>
+		<div class="calendarTimeShadowMask_mobile"></div>
+	</div>
+	<div class="MWF_calendar_action_show calendarActionShow"></div>
+</div>

BIN
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/titlebg.gif


+ 28 - 0
o2web/source/o2_core/o2/widget/$Calendar/xform_mobile/year.html

@@ -0,0 +1,28 @@
+<table border="0" cellpadding="0"  cellspacing="0" bgcolor="#FFF" class="MWF_calendar_years calendarYearsContent">
+	<tbody>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+			<td>&nbsp;</td>
+		</tr>
+	</tbody>
+</table>

+ 14 - 2
o2web/source/o2_core/o2/widget/$Dialog/blue_flat/css.wcss

@@ -12,9 +12,7 @@
 		"background-color": "#fff",
 		"background-color": "#fff",
 		"box-shadow": "0px 0px 20px #999999",
 		"box-shadow": "0px 0px 20px #999999",
 		"z-index": "1000",
 		"z-index": "1000",
-
 		"padding": "3px" ,
 		"padding": "3px" ,
-
 		"opacity": 0
 		"opacity": 0
 	},
 	},
 	"to": {
 	"to": {
@@ -92,6 +90,20 @@
 	    "cursor": "pointer",
 	    "cursor": "pointer",
 	    "background": "url("+o2.session.path+"/widget/$Dialog/blue_flat/img/close.png) center center no-repeat"
 	    "background": "url("+o2.session.path+"/widget/$Dialog/blue_flat/img/close.png) center center no-repeat"
 	},
 	},
+	"maxAction": {
+	  "height": "38px",
+	  "width": "38px",
+	  "float": "right",
+	  "cursor": "pointer",
+	  "background": "url("+o2.session.path+"/widget/$Dialog/blue_flat/img/max.png) center center no-repeat"
+	},
+	"restoreAction": {
+	  "height": "38px",
+	  "width": "38px",
+	  "float": "right",
+	  "cursor": "pointer",
+	  "background": "url("+o2.session.path+"/widget/$Dialog/blue_flat/img/restore.png) center center no-repeat"
+	},
 	"MWF_dialod_bottom_resize": {
 	"MWF_dialod_bottom_resize": {
 	    "height": "8px",
 	    "height": "8px",
         "width": "8px",
         "width": "8px",

+ 95 - 0
o2web/source/o2_core/o2/widget/$Dialog/mobile_blue_flat/css.wcss

@@ -0,0 +1,95 @@
+{
+	"from": {
+		"width": "1px",
+		"height": "1px",
+		"position": "absolute",
+		"top": $(document.body).getSize().y/2,
+		"left": $(document.body).getSize().x/2,
+		"border-style": "solid",
+		"border-color": "#999",
+		"border-width": "0",
+		"border-radius": "0px",
+		
+		"background-color": "#fff",
+		"box-shadow": "0px 0px 0px #999",
+		"z-index": "99",
+		
+		"padding": "3px",
+	
+		"opacity": 0
+	},
+	"to": {
+		"background-color": "#fff",
+		"border-style": "solid",
+		"border-color": "#999",
+		"border-width": "0",
+		"box-shadow": "0px 0px 0px #999",
+		"z-index": "99",
+		"border-radius": "0px",
+		
+		"font-size": "12px",
+		"height": "60",
+		"padding": "3px",
+		"width": "300",
+		"position": "absolute",
+		"top": "0",
+		"left": "0",
+		"opacity": 1
+	},
+	"mark": {
+		"height": "0",
+		"width": "0",
+		"opacity": 0.3,
+		"position": "absolute",
+		"top": "0px",
+		"left": "0px",
+		"z-index": "98",
+		"border-style": "none",
+		"border-width": "0",
+		"background-color": "#CCC"
+	},
+  "okButton": {
+	"border" : "0px",
+	"height": "88px",
+	"line-height": "88px",
+	"background-color" : "#32AAFF",
+	"color": "#FFF",
+	"font-size": "32px",
+	"margin-top" : "20px",
+	"border-radius": "8px",
+	"cursor": "pointer",
+	"text-align" : "center",
+	"width" : "44.7%",
+	"float" : "left"
+  },
+  "cancelButton" : {
+	"border" : "0px",
+	"margin-left" : "4%",
+	"margin-right" : "2.6%",
+	"height": "88px",
+	"line-height": "88px",
+	"margin-top" : "20px",
+	"background-color" : "#E6EBEE",
+	"color": "#333",
+	"font-size": "32px",
+	"border-radius": "8px",
+	"cursor": "pointer",
+	"text-align" : "center",
+	"width" : "44.7%",
+	"float" : "left"
+  },
+	"button": {
+	  "border" : "0px",
+	  "height": "88px",
+	  "line-height": "88px",
+	  "background-color" : "#32AAFF",
+	  "color": "#FFF",
+	  "font-size": "32px",
+	  "margin-top" : "20px",
+	  "border-radius": "8px",
+	  "cursor": "pointer",
+	  "text-align" : "center",
+	  "width" : "44.7%",
+	  "float" : "left"
+	}
+}

+ 11 - 0
o2web/source/o2_core/o2/widget/$Dialog/mobile_blue_flat/dialog.html

@@ -0,0 +1,11 @@
+<div style="background-color: #FFF;">
+    <div style="padding: 0px 30px; height: 88px; text-align: center; font-size: 36px; position: relative; background-color: rgb(50, 170, 255);" class="MWF_dialod_title">
+        <div class="MWF_dialod_Action_back" style="background: url(/o2_core/o2/widget/$Dialog/mobile_blue_flat/img/back@2x.png) no-repeat center / 16px 33px; left: 20px; top: 14px; width: 40px; height: 60px; color: rgb(255, 255, 255); position: absolute;"></div>
+        <div style="height: 88px; color: rgb(255, 255, 255); line-height: 88px;" class="MWF_dialod_title_text"></div>
+    </div>
+    <div class="MWF_dialod_content" style="text-align: left; padding: 0px; line-height:20px;background:#f5f5f5;overflow:auto;"></div>
+    <div class="MWF_dialod_button" style="height: 128px; margin: 0px 0px;background: #ffffff;">
+        <input type="button" class="MWF_dialod_cancel_button" style="display: none;"/>
+        <input type="button" class="MWF_dialod_ok_button" style="display: none;"/>
+    </div>
+</div>

BIN
o2web/source/o2_core/o2/widget/$Dialog/mobile_blue_flat/img/back@2x.png


+ 2 - 2
o2web/source/o2_core/o2/widget/$Menu/desktopStyle/css.wcss

@@ -74,7 +74,7 @@
 		"display":"block",
 		"display":"block",
 		"height": "1px",
 		"height": "1px",
 		"overflow": "hidden",
 		"overflow": "hidden",
-		"margin-left": "28px",
+		"margin-left": "0px",
 		"margin-top": "3px",
 		"margin-top": "3px",
 		"margin-bottom": "3px",
 		"margin-bottom": "3px",
 		"background-color": "#CCCCCC",
 		"background-color": "#CCCCCC",
@@ -119,4 +119,4 @@
 		"margin-top": "4px",
 		"margin-top": "4px",
 		"float": "right"
 		"float": "right"
 	}
 	}
-}
+}

+ 119 - 0
o2web/source/o2_core/o2/widget/$Menu/flatStyle/css.wcss

@@ -0,0 +1,119 @@
+{
+	"borderNode": {
+		"border": "0px solid #333",
+		"background-color": "#ffffff",
+		"padding": "0px",
+		"overflow": "hidden",
+		"display": "none",
+		"z-index": "999",
+		"opacity": 0,
+		"position": "absolute",
+		"float": "left",
+		"min-width": (Browser.iecomp) ? "auto" : "220px",
+		"border-radius": "2px",
+		"box-shadow": "0 0 10px 0 rgba(0,0,0,0.25)",
+		"cursor": "default"
+	},
+	"container": {
+		"border-top": "1px solid #FFF",
+		"border-left": "1px solid #FFF",
+		"border-right": "1px solid #FFF",
+		"border-bottom": "1px solid #FFF",
+		"border-radius": "2px",
+		"background-color": "#FFF",
+		"padding": "0px",
+		"overflow": "hidden",
+		"cursor": "default"
+	},
+	"menuItem": {
+		"border-radius": "0px",
+		"display":"block",
+		"position": "static",
+		"height": "70px",
+		"border": "0px solid #FFF",
+		"background-color": "#FFF",
+		"cursor": "pointer",
+		"color": "#333333",
+		"font-family": "Microsoft YaHei",
+		"font-size": "12px"
+	},
+
+	"menuItemImgDiv": {
+		"display":"block",
+		"float": "left",
+		"width": "130px",
+		"height": "70px"
+	},
+	"menuItemImg": {
+		"height": "50px",
+		"width": "90px",
+		"margin-top": "10px",
+		"margin-left": "20px",
+		"border-radius": "4px"
+	},
+	"menuItemSeparator": {
+		"display":"block",
+		"float": "left",
+		"height": "34px",
+		"width": "0px",
+		"background-color": "#d7d7d7",
+		"border-right": "0px solid #d7d7d7",
+		"overflow": "hidden"
+	},
+	"menuItemText": {
+		"display":"block",
+		"position": "static",
+		"height": "65px",
+		"margin-left": "130px",
+		"margin-right": "10px",
+		"padding-right": "10px",
+		"line-height": "65px"
+	},
+	"menuLine": {
+		"position": "static",
+		"display":"block",
+		"height": "1px",
+		"overflow": "hidden",
+		"margin": "3px 20px",
+		"background-color": "#CCCCCC",
+		"border-bottom": "1px solid #FFFFFF"
+	},
+	"menuItemDisable": {
+		"color": "#333",
+		"background-color": "#f6f6f6",
+	},
+
+	"menuOver": {
+		"border": "0px solid #999",
+		"background-color": "#F0F0F0"
+	},
+	"menuOut": {
+		"border": "0px solid #FFF",
+		"background-color": "#FFF"
+	},
+	"menuDown": {
+		"border": "0px solid #000000",
+		"background-color": "#F0F0F0"
+	},
+	"menuUp": {
+		"border": "0px solid #8d9cc3",
+		"background-color": "#FFF"
+	},
+	"toolbarButtonDownNode": {
+		"display":"block",
+		"float": "left",
+		"padding-left": "2px",
+		"padding-right": "2px",
+		"padding-top": "0px",
+		"height": "18px",
+		"color": "#ff0000",
+		"cursor": "pointer"
+	},
+	"menuItemSubmenuIcon":{
+		"background-image": "url("+o2.session.path+"/widget/$Menu/desktopStyle/submenu.png)",
+		"height": "16px",
+		"width": "16px",
+		"margin-top": "4px",
+		"float": "right"
+	}
+}

BIN
o2web/source/o2_core/o2/widget/$Menu/flatStyle/submenu.png


+ 120 - 0
o2web/source/o2_core/o2/widget/$Menu/flatUser/css.wcss

@@ -0,0 +1,120 @@
+{
+	"borderNode": {
+		"border": "0px solid #333",
+		"background-color": "#ffffff",
+		"padding": "0px",
+		"overflow": "hidden",
+		"display": "none",
+		"z-index": "999",
+		"opacity": 0,
+		"position": "absolute",
+		"float": "left",
+		"min-width": "130px" ,
+		"border-radius": "2px",
+		"box-shadow": "0 0 10px 0 rgba(0,0,0,0.25)",
+		"cursor": "default"
+	},
+	"container": {
+		"border-top": "1px solid #FFF",
+		"border-left": "1px solid #FFF",
+		"border-right": "1px solid #FFF",
+		"border-bottom": "1px solid #FFF",
+		"border-radius": "2px",
+		"background-color": "#FFF",
+		"padding": "0px",
+		"overflow": "hidden",
+		"cursor": "default"
+	},
+	"menuItem": {
+		"border-radius": "0px",
+		"display":"block",
+		"position": "static",
+		"height": "30px",
+		"border": "0px solid #FFF",
+		"background-color": "#FFF",
+		"cursor": "pointer",
+		"color": "#333333",
+		"font-family": "Microsoft YaHei",
+		"font-size": "12px"
+	},
+
+	"menuItemImgDiv": {
+		"display":"block",
+		"float": "left",
+		"width": "40px",
+		"height": "30px"
+	},
+	"menuItemImg": {
+		"height": "16px",
+		"width": "16px",
+		"margin-top": "7px",
+		"margin-left": "17px",
+		"border-radius": "4px"
+	},
+	"menuItemSeparator": {
+		"display":"block",
+		"float": "left",
+		"height": "34px",
+		"width": "0px",
+		"background-color": "#d7d7d7",
+		"border-right": "0px solid #d7d7d7",
+		"overflow": "hidden"
+	},
+	"menuItemText": {
+		"display":"block",
+		"position": "static",
+		"height": "30px",
+		"margin-left": "30px",
+		"margin-right": "10px",
+		"padding-right": "10px",
+		"line-height": "30px"
+	},
+	"menuLine": {
+		"position": "static",
+		"display":"block",
+		"height": "1px",
+		"overflow": "hidden",
+		"margin": "3px 5px",
+		"clear": "both",
+		"background-color": "#CCCCCC",
+		"border-bottom": "1px solid #FFFFFF"
+	},
+	"menuItemDisable": {
+		"color": "#333",
+		"background-color": "#f6f6f6",
+	},
+
+	"menuOver": {
+		"border": "0px solid #999",
+		"background-color": "#F0F0F0"
+	},
+	"menuOut": {
+		"border": "0px solid #FFF",
+		"background-color": "#FFF"
+	},
+	"menuDown": {
+		"border": "0px solid #000000",
+		"background-color": "#F0F0F0"
+	},
+	"menuUp": {
+		"border": "0px solid #8d9cc3",
+		"background-color": "#FFF"
+	},
+	"toolbarButtonDownNode": {
+		"display":"block",
+		"float": "left",
+		"padding-left": "2px",
+		"padding-right": "2px",
+		"padding-top": "0px",
+		"height": "18px",
+		"color": "#ff0000",
+		"cursor": "pointer"
+	},
+	"menuItemSubmenuIcon":{
+		"background-image": "url("+o2.session.path+"/widget/$Menu/desktopStyle/submenu.png)",
+		"height": "16px",
+		"width": "16px",
+		"margin-top": "4px",
+		"float": "right"
+	}
+}

BIN
o2web/source/o2_core/o2/widget/$Menu/flatUser/submenu.png


+ 18 - 0
o2web/source/o2_core/o2/widget/$O2Identity/xform/css.wcss

@@ -9,6 +9,15 @@
         "color": "",
         "color": "",
         "cursor": "pointer"
         "cursor": "pointer"
     },
     },
+    "identityNode_mobile" : {
+        "padding": "0px 5px",
+        "margin-right": "10px",
+        "margin-bottom": "0px",
+        "background": "transparent",
+        "border-radius":"5px",
+        "color": "",
+        "cursor": "pointer"
+    },
     "identityNode_over": {
     "identityNode_over": {
         "padding": "0px 5px",
         "padding": "0px 5px",
         "float": "left",
         "float": "left",
@@ -19,6 +28,15 @@
         "color": "#FFF",
         "color": "#FFF",
         "cursor": "pointer"
         "cursor": "pointer"
     },
     },
+    "identityNode_over_mobile": {
+        "padding": "0px 5px",
+        "margin-right": "10px",
+        "margin-bottom": "0px",
+        "background-color": "#da7429",
+        "border-radius":"5px",
+        "color": "#FFF",
+        "cursor": "pointer"
+    },
     "identityRemoveNode": {
     "identityRemoveNode": {
         "background": "url("+o2.session.path+"/widget/$O2Identity/default/icon/del.png) center center no-repeat",
         "background": "url("+o2.session.path+"/widget/$O2Identity/default/icon/del.png) center center no-repeat",
         "width": "16px",
         "width": "16px",

+ 18 - 0
o2web/source/o2_core/o2/widget/$ScrollBar/hide/css.wcss

@@ -0,0 +1,18 @@
+{
+	"scrollVAreaNode": {
+		"opacity": 0,
+		"float": "right",
+		"width": "0px",
+		"border-radius": "3px",
+	//	"background": "#afcde2"
+		"background": "#CCC"
+	},
+	"scrollVNode": {
+		"width": "0px",
+		"height": "50px",
+	//	"background": "#4095d4"
+		"background": "#888",
+		"border-radius": "3px",
+		"cursor": "pointer"
+	}
+}

BIN
o2web/source/o2_core/o2/widget/$Tab/blue_flat_mobile/close.gif


+ 75 - 0
o2web/source/o2_core/o2/widget/$Tab/blue_flat_mobile/css.wcss

@@ -0,0 +1,75 @@
+{
+	"tabNodeContainer": {
+	  "height": "100px",
+	  "background": "#E8ECEE",
+	  "border-top": "0px solid #CCC",
+	  "border-bottom": "0px solid #CCC",
+	  "margin-right" : "-2px"
+	},
+	"contentNodeContainer": {
+	  "line-height": "normal",
+	  "clear": "both",
+	  "overflow": "hidden"
+	},
+	"contentNodeArea": {
+		"overflow": "hidden",
+		"display": "none",
+		"opacity": 0
+	},
+	"tabNode": {
+	  "position": "relative",
+	  "margin-right": "0px",
+	  "float": "left",
+	  "height": "96px",
+	  "cursor": "pointer",
+	  "min-width": "70px",
+	  "background": "#E8ECEE",
+	  "border-bottom": "4px solid #E8ECEE",
+	  "border-right": "2px solid #CFD9DF",
+	  "border-radius" : "0px"
+//	  "width" : "calc(33.3% - 2px)"
+	},
+	"tabTextNode": {
+	  "color": "#000000",
+	  "line-height": "100px",
+	  "font-weight" : "normal",
+	  "text-align": "center",
+	  "margin-right": "4px",
+	  "margin-top": "0px",
+	  "margin-left": "4px",
+	  "font-size": "36px"
+	},
+	"tabCloseNode": {
+		"height": "24px",
+		"width": "20px",
+		"background": "url("+o2.session.path+"/widget/$Tab/default/close.gif) center center"
+	},
+	"tabNodeCurrent": {
+	  "position": "relative",
+	  "margin-top": "0px",
+	  "margin-right": "0px",
+	  "float": "left",
+	  "height": "96px",
+	  "min-width": "70px",
+	  "background": "#ffffff",
+	  "border-bottom": "4px solid #1D1E1F",
+	  "border-right": "2px solid #CFD9DF",
+	  "border-radius" : "0px"
+//	  "width" : "calc(33.3% - 2px)"
+	},
+	"tabTextNodeCurrent": {
+	  "color": "#000000",
+	  "line-height": "100px",
+	  "font-weight" : "normal",
+	  "text-align": "center",
+	  "margin-right": "4px",
+	  "margin-left": "4px",
+	  "font-size": "36px"
+	},
+
+	"tabCloseNodeCurrent": {
+		"height": "24px",
+		"width": "20px",
+		"background": "url("+o2.session.path+"/widget/$Tab/default/close.gif) center center"
+	}
+}

BIN
o2web/source/o2_core/o2/widget/$Tab/empower/close.png


BIN
o2web/source/o2_core/o2/widget/$Tab/empower/close_gray.png


+ 71 - 0
o2web/source/o2_core/o2/widget/$Tab/empower/css.wcss

@@ -0,0 +1,71 @@
+{
+	"tabNodeContainer": {
+		"height": "30px",
+		"padding": "20px",
+		"line-height": "30px"
+	},
+	"contentNodeContainer": {
+		"overflow": "hidden",
+		"clear": "left"
+	},
+	"contentNodeArea": {
+		"overflow": "hidden",
+		"display": "none",
+		"opacity": 0
+	},
+	"tabNode": {
+		"position": "static",
+        "float": "left",
+        "text-align": "center",
+        "border-bottom": "0px",
+        "padding": "0px 15px",
+        "height": "30px",
+        "line-height": "30px",
+        "background": "#F7F7F7",
+        "border-radius": "100px",
+        "margin": "0 10px 0 0"
+	},
+	"tabTextNode": {
+        "line-height": "30px",
+        "display": "inline",
+        "font-family": "MicrosoftYaHei",
+        "font-size": "14px",
+        "color": "#666666",
+        "text-align": "center"
+	},
+	"tabCloseNode": {
+		"height": "28px",
+		"width": "16px",
+		"background": "url("+o2.session.path+"/widget/$Tab/processlayout/close_gray.png) left center",
+		"background-repeat": "no-repeat",
+		"float": "right"
+	},
+	"tabNodeCurrent": {
+		"position": "static",
+        "float": "left",
+        "text-align": "center",
+        "border-bottom": "0px",
+        "padding": "0px 15px",
+        "height": "30px",
+        "line-height": "30px",
+        "background": "#4A90E2",
+        "border-radius": "100px",
+        "margin": "0 10px 0 0",
+	},
+	"tabTextNodeCurrent": {
+		"line-height": "30px",
+        "display": "inline",
+        "font-family": "MicrosoftYaHei",
+        "font-size": "14px",
+        "color": "#FFFFFF",
+        "text-align": "center"
+	},
+
+	"tabCloseNodeCurrent": {
+		"height": "28px",
+		"width": "16px",
+		"background": "url("+o2.session.path+"/widget/$Tab/processlayout/close.png) left center",
+		"background-repeat": "no-repeat",
+		"float": "left"
+	}
+}

BIN
o2web/source/o2_core/o2/widget/$Tab/empower/tabAreaBg.gif


BIN
o2web/source/o2_core/o2/widget/$Tab/empower/tabNodeCurrentBg.gif


+ 5 - 5
o2web/source/o2_core/o2/widget/$Tab/orgMobile/css.wcss

@@ -1,6 +1,6 @@
 {
 {
 	"tabNodeContainer": {
 	"tabNodeContainer": {
-        "height": "40px",
+        "height": "50px",
         "background": "#4c6b87",
         "background": "#4c6b87",
         "border-bottom": "0px solid #CCC"
         "border-bottom": "0px solid #CCC"
     },
     },
@@ -21,7 +21,7 @@
         "margin-left": "2px",
         "margin-left": "2px",
         "margin-right": "0px",
         "margin-right": "0px",
         "float": "left",
         "float": "left",
-        "height": "40px",
+        "height": "50px",
         "cursor": "pointer",
         "cursor": "pointer",
         //"min-width": "60px",
         //"min-width": "60px",
         "background": "#ffffff",
         "background": "#ffffff",
@@ -29,7 +29,7 @@
     },
     },
 	"tabTextNode": {
 	"tabTextNode": {
         "color": "#666666",
         "color": "#666666",
-        "line-height": "40px",
+        "line-height": "50px",
         "text-align": "center",
         "text-align": "center",
         "margin-right": "4px",
         "margin-right": "4px",
         "margin-top": "0px",
         "margin-top": "0px",
@@ -47,14 +47,14 @@
         "margin-left": "2px",
         "margin-left": "2px",
         "margin-right": "0px",
         "margin-right": "0px",
         "float": "left",
         "float": "left",
-        "height": "40px",
+        "height": "50px",
         //"min-width": "60px",
         //"min-width": "60px",
         "background": "#ffffff",
         "background": "#ffffff",
         "border-bottom": "2px solid #bf6364"
         "border-bottom": "2px solid #bf6364"
     },
     },
 	"tabTextNodeCurrent": {
 	"tabTextNodeCurrent": {
         "color": "#fb4747",
         "color": "#fb4747",
-        "line-height": "40px",
+        "line-height": "50px",
         "text-align": "center",
         "text-align": "center",
         "margin-right": "4px",
         "margin-right": "4px",
         "margin-left": "4px",
         "margin-left": "4px",

BIN
o2web/source/o2_core/o2/widget/$Tab/profileV2/close.png


BIN
o2web/source/o2_core/o2/widget/$Tab/profileV2/close_gray.png


+ 76 - 0
o2web/source/o2_core/o2/widget/$Tab/profileV2/css.wcss

@@ -0,0 +1,76 @@
+{
+	"tabNodeContainer": {
+		"height": "50px",
+		"border-bottom": "1px solid #E6E6E6",
+		"line-height": "50px"
+	},
+	"contentNodeContainer": {
+		"overflow": "hidden",
+		"clear": "left"
+	},
+	"contentNodeArea": {
+		"overflow": "hidden",
+		"display": "none",
+		"opacity": 0
+	},
+	"tabNode": {
+		"position": "static",
+		"margin-left": "0px",
+		"margin-right": "-1px",
+		"margin-top": "1px",
+		"float": "left",
+		"height": "28px",
+		"cursor": "pointer",
+		"width": "90px",
+		"text-align": "center",
+		"border-bottom": "0px"
+	},
+	"tabTextNode": {
+		"line-height": "28px",
+		"text-align": "center",
+		"margin-right": "8px",
+		"margin-top": "0px",
+		"margin-left": "8px",
+		"display": "inline",
+		"font-family": "MicrosoftYaHei",
+        "font-size": "16px",
+        "color": "#151515"
+	},
+	"tabCloseNode": {
+		"height": "28px",
+		"width": "16px",
+		"background": "url("+o2.session.path+"/widget/$Tab/processlayout/close_gray.png) left center",
+		"background-repeat": "no-repeat",
+		"float": "right"
+	},
+	"tabNodeCurrent": {
+		"position": "static",
+		"margin-left": "0px",
+		"margin-right": "-1px",
+		"margin-top": "1px",
+		"height": "47px",
+		"width": "90px",
+		"text-align": "center",
+		"border-bottom": "3px solid #4A90E2"
+	},
+	"tabTextNodeCurrent": {
+		"font-size": "12px",
+		"line-height": "29px",
+		"text-align": "center",
+		"margin-right": "8px",
+		"margin-left": "8px",
+		"margin-top": "0px",
+		"display": "inline",
+		"font-family": "MicrosoftYaHei",
+        "font-size": "16px",
+        "color": "#4A90E2"
+	},
+
+	"tabCloseNodeCurrent": {
+		"height": "28px",
+		"width": "16px",
+		"background": "url("+o2.session.path+"/widget/$Tab/processlayout/close.png) left center",
+		"background-repeat": "no-repeat",
+		"float": "left"
+	}
+}

BIN
o2web/source/o2_core/o2/widget/$Tab/profileV2/tabAreaBg.gif


BIN
o2web/source/o2_core/o2/widget/$Tab/profileV2/tabNodeCurrentBg.gif


+ 103 - 0
o2web/source/o2_core/o2/widget/$Toolbar/view_default/css.wcss

@@ -0,0 +1,103 @@
+{
+	"container": {
+		"background-color": "#fff",
+		"padding-top": "6px",
+		"padding-bottom": "1px",
+		"padding-left": "10px",
+		"padding-right": "2px",
+		"word-wrap" : "normal",
+		"word-break" : "keep-all",
+		"cursor": "pointer",
+		"overflow": "hidden",
+		"height": "auto",
+		"display":"block",
+	  	"min-height" : "36px",
+		"font-size": "14px",
+		"border-bottom": "1px solid #3c76b7"
+	},
+	"toolbarSeparator": {
+		"display":"block",
+		"float": "left",
+		"margin-bottom": "5px",
+		"margin-top": "5px",
+		"height": "22px",
+		"width": "1px",
+		"background-color": "#888888",
+		"border-right": "1px solid #FFFFFF",
+		"overflow": "hidden"
+	},
+
+	"button": {
+		"display":"block",
+		"position": "static",
+		"float": "left",
+		"border": "1px solid #fff",
+	  	"color" : "inherit",
+		"background-color": "#fff",
+		"height": "30px",
+		"margin-right": "8px",
+		"padding-left": "2px",
+		"padding-right": "2px",
+		"cursor": "pointer",
+		"border-radius": "5px"
+	},
+	"buttonImgDiv": {
+		"display":"block",
+		"float": "left",
+		"padding-top": "7px",
+		"padding-bottom": "1px",
+		"padding-left": "1px",
+		"padding-right": "1px",
+		"cursor": "pointer"
+	},
+	"buttonImg": {
+		"height": "16px",
+		"width": "16px",
+		"cursor": "pointer",
+		"margin-top": "0px"
+	},
+	"buttonTextDiv": {
+		"display":"block",
+		"float": "left",
+		"height": "30px",
+		"padding-left": "2px",
+		"padding-right": "2px",
+		"line-height": "30px",
+		"cursor": "pointer"
+	},
+
+	"buttonDisable": {
+		"color": "#999"
+	},
+	"buttonImgDivDisable": {
+		"color": "#999"
+	},
+	"buttonTextDivDisable": {
+		"color": "#999"
+	},
+
+	"buttonOver": {
+	  	"color" : "inherit",
+		"background-color": "#e7e7e7"
+	},
+	"buttonOut": {
+	  "color" : "inherit",
+		"background-color": "#fff"
+	},
+	"buttonDown": {
+		"background-color": "#f0f0f0"
+	},
+	"buttonUp": {
+		"background-color": "#e7e7e7"
+	},
+	"toolbarButtonDownNode": {
+		"display":"block",
+		"float": "left",
+		"padding-left": "2px",
+		"padding-right": "2px",
+		"padding-top": "5px",
+		"height": "18px",
+		"color": "#ff0000",
+		"cursor": "pointer"
+	}
+}

BIN
o2web/source/o2_core/o2/widget/$Toolbar/view_default/downicon.gif


BIN
o2web/source/o2_core/o2/widget/$Toolbar/view_default/separatorbg.gif


BIN
o2web/source/o2_core/o2/widget/$Toolbar/view_default/submenu.png


+ 106 - 21
o2web/source/o2_core/o2/widget/AttachmentController.js

@@ -114,7 +114,7 @@ o2.widget.AttachmentController = o2.widget.ATTER  = new Class({
         if (!this.node) this.node = new Element("div", {"styles": this.css.container_min});
         if (!this.node) this.node = new Element("div", {"styles": this.css.container_min});
 
 
         if (!this.minActionAreaNode){
         if (!this.minActionAreaNode){
-            this.minActionAreaNode = new Element("div", {"styles": this.css.minActionAreaNode}).inject(this.node);
+            this.minActionAreaNode = new Element("div", {"styles": this.css.minActionAreaNode }).inject(this.node);
             //this.minContent = new Element("div", {"styles": this.css.minContentNode}).inject(this.node);
             //this.minContent = new Element("div", {"styles": this.css.minContentNode}).inject(this.node);
 
 
             this.loadMinActions();
             this.loadMinActions();
@@ -143,7 +143,13 @@ o2.widget.AttachmentController = o2.widget.ATTER  = new Class({
         if( flag )this.minActionAreaNode.setStyle("display","none");
         if( flag )this.minActionAreaNode.setStyle("display","none");
 
 
         if( !this.minContent ){
         if( !this.minContent ){
-            this.minContent = new Element("div", {"styles": this.css.minContentNode}).inject(this.node);
+
+            this.minContent = new Element("div", {"styles":
+                layout.mobile ? this.css.minContentNode_mobile : this.css.minContentNode
+            }).inject(this.node);
+            if( layout.mobile ){
+                this.minContent.setStyle("clear","both");
+            }
         }else{
         }else{
             this.minContent.setStyle("display", "block");
             this.minContent.setStyle("display", "block");
             this.minContent.empty();
             this.minContent.empty();
@@ -906,7 +912,7 @@ o2.widget.AttachmentController = o2.widget.ATTER  = new Class({
 
 
                     var isContinue = true;
                     var isContinue = true;
                     if (beforeUpload) isContinue = beforeUpload(files);
                     if (beforeUpload) isContinue = beforeUpload(files);
-debugger;
+                    debugger;
                     if (isContinue){
                     if (isContinue){
                         var accepts = (accept) ? accept.split(o2.splitStr) : null;
                         var accepts = (accept) ? accept.split(o2.splitStr) : null;
 
 
@@ -934,18 +940,91 @@ debugger;
                                     formData.append(k, v)
                                     formData.append(k, v)
                                 });
                                 });
                                 formData.append('file', file);
                                 formData.append('file', file);
-                                restActions.invoke({
-                                    "name": invokeUrl,
-                                    "async": true,
-                                    "data": formData,
-                                    "file": file,
-                                    "parameter": parameter,
-                                    "success": function(json){
-                                        current++;
-                                        if (every) every(json, current, count);
-                                        callback();
-                                    }
-                                });
+                                if(parameter.fileMd5){
+                                    o2.load("/o2_lib/CryptoJS/components/spark-md5-min.js", function(){
+
+                                        var fileReader = new FileReader(), box = document.getElementById('box');
+                                        var blobSlice = File.prototype.mozSlice || File.prototype.webkitSlice || File.prototype.slice;
+                                        var chunkSize = 20971520;
+                                        // read in chunks of 20MB
+                                        var chunks = Math.ceil(file.size / chunkSize), currentChunk = 0, spark = new SparkMD5();
+
+                                        fileReader.onload = function(e) {
+                                            console.log("read chunk nr", currentChunk + 1, "of", chunks);
+                                            spark.appendBinary(e.target.result);
+                                            currentChunk++;
+
+                                            if (currentChunk < chunks) {
+                                                loadNext();
+                                            } else {
+                                                console.log("finished loading");
+                                                var fileMd5 = spark.end();
+
+                                                restActions.invoke({
+                                                    "name": "checkFileExist",
+                                                    "async": true,
+                                                    "parameter": {"fileMd5":fileMd5},
+                                                    "success": function(json){
+                                                        if(json.data.value){
+                                                            var formData2 = new FormData();
+                                                            formData2.append("fileMd5",fileMd5);
+                                                            formData2.append("fileName",file.name);
+                                                            restActions.invoke({
+                                                                "name": "addAttachmentMd5",
+                                                                "async": true,
+                                                                "data": formData2,
+                                                                "parameter": parameter,
+                                                                "success": function(json){
+                                                                    current++;
+                                                                    if (every) every(json, current, count);
+                                                                    callback();
+                                                                }
+                                                            });
+                                                        }else{
+                                                            restActions.invoke({
+                                                                "name": invokeUrl,
+                                                                "async": true,
+                                                                "data": formData,
+                                                                "file": file,
+                                                                "parameter": parameter,
+                                                                "success": function(json){
+                                                                    current++;
+                                                                    if (every) every(json, current, count);
+                                                                    callback();
+                                                                }
+                                                            });
+                                                        }
+
+                                                    }
+                                                });
+                                                // compute hash
+                                            }
+                                        };
+
+                                        function loadNext() {
+                                            var start = currentChunk * chunkSize, end = start + chunkSize >= file.size ? file.size : start + chunkSize;
+
+                                            fileReader.readAsBinaryString(blobSlice.call(file, start, end));
+                                        }
+
+                                        loadNext();
+                                    }.bind(this),null,false);
+
+                                }else{
+                                    restActions.invoke({
+                                        "name": invokeUrl,
+                                        "async": true,
+                                        "data": formData,
+                                        "file": file,
+                                        "parameter": parameter,
+                                        "success": function(json){
+                                            current++;
+                                            if (every) every(json, current, count);
+                                            callback();
+                                        }
+                                    });
+                                }
+
                             }
                             }
                         }
                         }
                     }
                     }
@@ -1077,7 +1156,8 @@ debugger;
             o2.release(att);
             o2.release(att);
         });
         });
         this.attachments = [];
         this.attachments = [];
-        this.content.empty();
+        var content = (this.minContent || this.content);
+        if (content) content.empty();
     }
     }
 
 
 });
 });
@@ -1570,7 +1650,7 @@ o2.widget.AttachmentController.AttachmentMin = new Class({
         }
         }
 
 
         this.createInforNode();
         this.createInforNode();
-        if (!Browser.Platform.ios){
+        if (!Browser.Platform.ios && !layout.mobile){
             this.tooltip = new mBox.Tooltip({
             this.tooltip = new mBox.Tooltip({
                 content: this.inforNode,
                 content: this.inforNode,
                 setStyles: {content: {padding: 15, lineHeight: 20}},
                 setStyles: {content: {padding: 15, lineHeight: 20}},
@@ -1581,9 +1661,12 @@ o2.widget.AttachmentController.AttachmentMin = new Class({
         this.setEvent();
         this.setEvent();
     },
     },
     loadList: function() {
     loadList: function() {
-        this.node.setStyles(this.css.minAttachmentNode_list);
+        debugger;
+        this.node.setStyles( layout.mobile ? this.css.minAttachmentNode_list_mobile : this.css.minAttachmentNode_list);
 
 
-        this.sepNode = new Element("div", {"styles": this.css.minAttachmentSepNode_list}).inject(this.node);
+        if( !layout.mobile ){
+            this.sepNode = new Element("div", {"styles": this.css.minAttachmentSepNode_list}).inject(this.node);
+        }
 
 
         this.actionAreaNode = new Element("div", {"styles": this.css.minAttachmentActionAreaNode}).inject(this.node);
         this.actionAreaNode = new Element("div", {"styles": this.css.minAttachmentActionAreaNode}).inject(this.node);
 
 
@@ -1702,7 +1785,8 @@ o2.widget.AttachmentController.AttachmentMin = new Class({
             "mouseout": function(){
             "mouseout": function(){
                 if (!this.isSelected){
                 if (!this.isSelected){
                     if (this.controller.options.listStyle==="list" || this.controller.options.listStyle==="sequence"){
                     if (this.controller.options.listStyle==="list" || this.controller.options.listStyle==="sequence"){
-                        this.node.setStyles(this.css["minAttachmentNode_"+this.controller.options.listStyle]);
+                        var cssKey = "minAttachmentNode_"+this.controller.options.listStyle + ( layout.mobile ? "_mobile" : "" );
+                        this.node.setStyles(this.css[cssKey]);
                     }else{
                     }else{
                         this.node.setStyles(this.css["attachmentNode_"+this.controller.options.listStyle]);
                         this.node.setStyles(this.css["attachmentNode_"+this.controller.options.listStyle]);
                     }
                     }
@@ -1760,7 +1844,8 @@ o2.widget.AttachmentController.AttachmentMin = new Class({
         this.isSelected = false;
         this.isSelected = false;
         //this.node.setStyles(this.css["minAttachmentNode_list"]);
         //this.node.setStyles(this.css["minAttachmentNode_list"]);
         if (this.controller.options.listStyle==="list" || this.controller.options.listStyle==="sequence"){
         if (this.controller.options.listStyle==="list" || this.controller.options.listStyle==="sequence"){
-            this.node.setStyles(this.css["minAttachmentNode_"+this.controller.options.listStyle]);
+            var cssKey = "minAttachmentNode_"+this.controller.options.listStyle + ( layout.mobile ? "_mobile" : "" );
+            this.node.setStyles(this.css[cssKey]);
         }else{
         }else{
             this.node.setStyles(this.css["attachmentNode_"+this.controller.options.listStyle]);
             this.node.setStyles(this.css["attachmentNode_"+this.controller.options.listStyle]);
         }
         }

+ 444 - 81
o2web/source/o2_core/o2/widget/Calendar.js

@@ -25,8 +25,8 @@ o2.widget.Calendar = o2.Calendar = new Class({
 	},
 	},
 	initialize: function(node, options){
 	initialize: function(node, options){
 		Locale.use("zh-CHS");
 		Locale.use("zh-CHS");
-		this.options.defaultTime = ""+this.options.baseDate.getHours()+":"+this.options.baseDate.getMinutes()+":"+this.options.baseDate.getSeconds();
 		this.setOptions(options);
 		this.setOptions(options);
+		this.options.defaultTime = ""+this.options.baseDate.getHours()+":"+this.options.baseDate.getMinutes()+":"+this.options.baseDate.getSeconds();
 
 
 		this.path = o2.session.path+"/widget/$Calendar/";
 		this.path = o2.session.path+"/widget/$Calendar/";
 		this.cssPath = o2.session.path+"/widget/$Calendar/"+this.options.style+"/css.wcss";
 		this.cssPath = o2.session.path+"/widget/$Calendar/"+this.options.style+"/css.wcss";
@@ -87,6 +87,41 @@ o2.widget.Calendar = o2.Calendar = new Class({
 
 
 		//this.move = true;
 		//this.move = true;
 		//this.containerDrag = new Drag.Move(this.container);
 		//this.containerDrag = new Drag.Move(this.container);
+
+		if( layout.mobile ){
+			this.maskNode = new Element("div.maskNode",{
+				styles : {
+					"width": "100%",
+					"height": "100%",
+					"opacity": 0.6,
+					"position": "absolute",
+					"background-color": "#CCC",
+					"top": "0px",
+					"left": "0px",
+					"z-index" : 150,
+					"-webkit-user-select": "none",
+					"-moz-user-select": "none",
+					"user-select" : "none"
+				},
+				events : {
+					"touchmove" : function(ev){
+						ev.stopPropagation();
+						ev.preventDefault();
+					}
+				}
+			}).inject((this.options.target) || $(document.body));
+			this.container.addEvents({
+				"touchmove" : function(ev){
+					ev.stopPropagation();
+					ev.preventDefault();
+				},
+				"touchend" : function(ev){
+					ev.stopPropagation();
+					//ev.preventDefault();
+				}
+			})
+		}
+
 	},
 	},
 	addEvents: function(){
 	addEvents: function(){
 		this.node.addEvent("focus", function(){
 		this.node.addEvent("focus", function(){
@@ -108,12 +143,14 @@ o2.widget.Calendar = o2.Calendar = new Class({
 			this.changeView();
 			this.changeView();
 		}.bind(this));
 		}.bind(this));
 
 
-		this.titleNode.addEvent("mousedown", function(){
-			this.move();
-		}.bind(this));
-		this.titleNode.addEvent("mouseup", function(){
-			this.unmove();
-		}.bind(this));
+		if( !layout.mobile ){
+			this.titleNode.addEvent("mousedown", function(){
+				this.move();
+			}.bind(this));
+			this.titleNode.addEvent("mouseup", function(){
+				this.unmove();
+			}.bind(this));
+		}
 
 
 		document.addEvent('mousedown', this.outsideClick.bind(this));
 		document.addEvent('mousedown', this.outsideClick.bind(this));
 	},
 	},
@@ -175,6 +212,7 @@ o2.widget.Calendar = o2.Calendar = new Class({
 		var month = this.currentTextNode.retrieve("month");
 		var month = this.currentTextNode.retrieve("month");
 
 
 		this.showMonth(year, month);
 		this.showMonth(year, month);
+		this.fireEvent("changeViewToMonth");
 	},
 	},
 	changeViewToYear: function(year){
 	changeViewToYear: function(year){
 		this.currentView = "year";
 		this.currentView = "year";
@@ -190,6 +228,7 @@ o2.widget.Calendar = o2.Calendar = new Class({
 		if (this.contentYearTable) this.contentYearTable.setStyle("display", "table");
 		if (this.contentYearTable) this.contentYearTable.setStyle("display", "table");
 
 
 		this.showYear(year);
 		this.showYear(year);
+		this.fireEvent("changeViewToYear");
 	},
 	},
 	changeViewToDay: function(year, month){
 	changeViewToDay: function(year, month){
 		this.currentView = "day";
 		this.currentView = "day";
@@ -206,6 +245,8 @@ o2.widget.Calendar = o2.Calendar = new Class({
 		if (this.contentTable) this.contentTable.setStyle("display", "table");
 		if (this.contentTable) this.contentTable.setStyle("display", "table");
 
 
 		this.showDay(year, month);
 		this.showDay(year, month);
+
+		this.fireEvent("changeViewToDay");
 	},
 	},
 	getNext: function(){
 	getNext: function(){
 		switch (this.currentView) {
 		switch (this.currentView) {
@@ -271,6 +312,8 @@ o2.widget.Calendar = o2.Calendar = new Class({
 
 
 		this._setDayTitle(null, thisYear, thisMonth);
 		this._setDayTitle(null, thisYear, thisMonth);
 		this._setDayDate(null,thisYear, thisMonth);
 		this._setDayDate(null,thisYear, thisMonth);
+
+		this.fireEvent("changeViewToDay");
 	},
 	},
 
 
 	getPrevDay: function(){
 	getPrevDay: function(){
@@ -285,6 +328,7 @@ o2.widget.Calendar = o2.Calendar = new Class({
 
 
 		this._setDayTitle(null, thisYear, thisMonth);
 		this._setDayTitle(null, thisYear, thisMonth);
 		this._setDayDate(null,thisYear, thisMonth);
 		this._setDayDate(null,thisYear, thisMonth);
+		this.fireEvent("changeViewToDay");
 	},
 	},
 
 
 	getNextMonth: function(){
 	getNextMonth: function(){
@@ -295,6 +339,7 @@ o2.widget.Calendar = o2.Calendar = new Class({
 		var thisYear = date.getFullYear();
 		var thisYear = date.getFullYear();
 
 
 		this.showMonth(thisYear);
 		this.showMonth(thisYear);
+		this.fireEvent("changeViewToMonth");
 	},
 	},
 	getPrevMonth: function(){
 	getPrevMonth: function(){
 		var year = this.currentTextNode.retrieve("year");
 		var year = this.currentTextNode.retrieve("year");
@@ -304,6 +349,7 @@ o2.widget.Calendar = o2.Calendar = new Class({
 		var thisYear = date.getFullYear();
 		var thisYear = date.getFullYear();
 
 
 		this.showMonth(thisYear);
 		this.showMonth(thisYear);
+		this.fireEvent("changeViewToMonth");
 	},
 	},
 	getNextYear: function(){
 	getNextYear: function(){
 		var year = this.currentTextNode.retrieve("year");
 		var year = this.currentTextNode.retrieve("year");
@@ -313,15 +359,18 @@ o2.widget.Calendar = o2.Calendar = new Class({
 		var thisYear = date.getFullYear();
 		var thisYear = date.getFullYear();
 
 
 		this.showYear(thisYear);
 		this.showYear(thisYear);
+		this.fireEvent("changeViewToYear");
 	},
 	},
 	getPrevYear: function(){
 	getPrevYear: function(){
 		var year = this.currentTextNode.retrieve("year");
 		var year = this.currentTextNode.retrieve("year");
 		var date = new Date(year, 1, 1);
 		var date = new Date(year, 1, 1);
+
 		date.increment("year", 0-this.yearLength)
 		date.increment("year", 0-this.yearLength)
 
 
 		var thisYear = date.getFullYear();
 		var thisYear = date.getFullYear();
 
 
 		this.showYear(thisYear);
 		this.showYear(thisYear);
+		this.fireEvent("changeViewToYear");
 	},
 	},
 
 
 	outsideClick: function(e) {
 	outsideClick: function(e) {
@@ -350,6 +399,9 @@ o2.widget.Calendar = o2.Calendar = new Class({
 					office.show();
 					office.show();
 				});
 				});
 			}
 			}
+			if( this.maskNode ){
+				this.maskNode.hide();
+			}
 //			}.bind(this));
 //			}.bind(this));
 			this.fireEvent("hide");
 			this.fireEvent("hide");
 		}
 		}
@@ -392,7 +444,7 @@ o2.widget.Calendar = o2.Calendar = new Class({
 //			}
 //			}
 			this.container.setStyle("display", "block");
 			this.container.setStyle("display", "block");
 
 
-			if (this.container.position){
+			if (this.container.position ){
 				this.container.position({
 				this.container.position({
 					relativeTo: this.node,
 					relativeTo: this.node,
 					position: 'bottomLeft',
 					position: 'bottomLeft',
@@ -450,6 +502,9 @@ o2.widget.Calendar = o2.Calendar = new Class({
 					}
 					}
 				}.bind(this));
 				}.bind(this));
 			}
 			}
+			if( this.maskNode ){
+				this.maskNode.show();
+			}
 
 
 //			this.morph.start({"opacity": 1}).chain(function(){
 //			this.morph.start({"opacity": 1}).chain(function(){
 			this.visible = true;
 			this.visible = true;
@@ -592,26 +647,35 @@ o2.widget.Calendar = o2.Calendar = new Class({
 			if (firstDate.toString() == this.options.baseDate.toString()){
 			if (firstDate.toString() == this.options.baseDate.toString()){
 				tds[i].addClass("current_"+this.options.style);
 				tds[i].addClass("current_"+this.options.style);
 				tds[i].setStyles(this.css["current_"+this.options.style]);
 				tds[i].setStyles(this.css["current_"+this.options.style]);
-
+				tds[i].removeClass("past_"+this.options.style);
 				tds[i].removeClass("gray_"+this.options.style);
 				tds[i].removeClass("gray_"+this.options.style);
 				tds[i].setStyle("border", "1px solid #FFF");
 				tds[i].setStyle("border", "1px solid #FFF");
 			}else if (firstDate.getMonth()!=baseDate.getMonth()){
 			}else if (firstDate.getMonth()!=baseDate.getMonth()){
 				tds[i].addClass("gray_"+this.options.style);
 				tds[i].addClass("gray_"+this.options.style);
 				tds[i].setStyles(this.css["gray_"+this.options.style]);
 				tds[i].setStyles(this.css["gray_"+this.options.style]);
 				tds[i].removeClass("current_"+this.options.style);
 				tds[i].removeClass("current_"+this.options.style);
+				tds[i].removeClass("past_"+this.options.style);
 				tds[i].setStyle("border", "1px solid #FFF");
 				tds[i].setStyle("border", "1px solid #FFF");
 			}else{
 			}else{
 				tds[i].setStyles(this.css["normal_"+this.options.style]);
 				tds[i].setStyles(this.css["normal_"+this.options.style]);
 				tds[i].removeClass("current_"+this.options.style);
 				tds[i].removeClass("current_"+this.options.style);
 				tds[i].removeClass("gray_"+this.options.style);
 				tds[i].removeClass("gray_"+this.options.style);
+				tds[i].removeClass("past_"+this.options.style);
 				tds[i].setStyle("border", "1px solid #FFF");
 				tds[i].setStyle("border", "1px solid #FFF");
 			}
 			}
 			var tmp = firstDate.clone();
 			var tmp = firstDate.clone();
 			if (tmp.clearTime().toString() == this.today.clearTime().toString()){
 			if (tmp.clearTime().toString() == this.today.clearTime().toString()){
-				//tds[i].addClass("today_"+this.options.style);
+				tds[i].addClass("today_"+this.options.style);
+				tds[i].removeClass("past_"+this.options.style);
 				tds[i].setStyles(this.css["today_"+this.options.style]);
 				tds[i].setStyles(this.css["today_"+this.options.style]);
 				tds[i].setStyle("border", "0px solid #AAA");
 				tds[i].setStyle("border", "0px solid #AAA");
 			}
 			}
+			if (tmp.diff(this.today)>0){
+				if (this.css["past_"+this.options.style]) tds[i].setStyles(this.css["past_"+this.options.style]);
+				tds[i].addClass("past_"+this.options.style);
+			}
+
+
 			tds[i].store("dateValue", firstDate.toString())
 			tds[i].store("dateValue", firstDate.toString())
 			firstDate.increment("day", 1);
 			firstDate.increment("day", 1);
 		}
 		}
@@ -646,7 +710,13 @@ o2.widget.Calendar = o2.Calendar = new Class({
 		var thisSeconds = (times[2]) ? times[2] : "0";
 		var thisSeconds = (times[2]) ? times[2] : "0";
 
 
 		this._setTimeTitle(null, date);
 		this._setTimeTitle(null, date);
-		this._setTimeDate(null, thisHour, thisMinutes, thisSeconds);
+
+		if( this.options.style.indexOf("mobile") > -1 ){
+			this._setTimeDate_mobile(null, thisHour, thisMinutes, thisSeconds);
+		}else{
+			this._setTimeDate(null, thisHour, thisMinutes, thisSeconds);
+		}
+
 
 
 		//	if (this.move){
 		//	if (this.move){
 		//		this.move = false;
 		//		this.move = false;
@@ -671,6 +741,116 @@ o2.widget.Calendar = o2.Calendar = new Class({
 		thisNode.set("text", text);
 		thisNode.set("text", text);
 		thisNode.store("date", date);
 		thisNode.store("date", date);
 	},
 	},
+	_setTimeDate_mobile: function(node, h, m, s){
+		var _self = this;
+
+		this.itmeHNode = this.contentTimeTable.getElement(".MWF_calendar_time_h");
+		this.itmeMNode = this.contentTimeTable.getElement(".MWF_calendar_time_m");
+		this.itmeSNode = this.contentTimeTable.getElement(".MWF_calendar_time_s");
+
+
+		this.showActionNode = this.contentTimeTable.getElement(".MWF_calendar_action_show");
+
+		var calendar = this;
+
+		if( !this.hMobileSelect ){
+			for( var i=0; i<24; i++ ){
+				new Element("div",{
+					"text" : this.addZero(i, 2 ),
+					"styles" : this.css.calendarTimeSelectItem_mobile
+				}).inject( this.itmeHNode );
+			}
+			this.selectedsHour = this.addZero(h, 2 );
+			this.hMobileSelect = new o2.Calendar.MobileSelect( this.itmeHNode.getParent(), {
+				"lineHeight" : 40,
+				"itemSize" : 24,
+				"itemIndex" : parseInt(h),
+				"onChange": function(value){
+					this.selectedHour = this.addZero(value, 2 );
+					//this.showHNode.set("text", this.addZero(i, 2 ));
+					//this.itmeHNode.getFirst().set("text", this.addZero(i, 2 ));
+				}.bind(this)
+			});
+			this.hMobileSelect.load();
+		}
+
+		if( !this.mMobileSelect ) {
+			for (var i = 0; i < 60; i++) {
+				new Element("div", {
+					"text": this.addZero(i, 2),
+					"styles": this.css.calendarTimeSelectItem_mobile
+				}).inject(this.itmeMNode);
+			}
+			this.selectedMinute = this.addZero(m, 2);
+			this.mMobileSelect = new o2.Calendar.MobileSelect(this.itmeMNode.getParent(), {
+				"lineHeight": 40,
+				"itemSize": 60,
+				"itemIndex": parseInt(m),
+				"onChange": function (value) {
+					this.selectedMinute = this.addZero(value, 2);
+					//this.showHNode.set("text", this.addZero(i, 2 ));
+					//this.itmeHNode.getFirst().set("text", this.addZero(i, 2 ));
+				}.bind(this)
+			});
+			this.mMobileSelect.load();
+		}
+
+		if(this.options.secondEnable ){
+			if(!this.sMobileSelect){
+				for( var i=0; i<60; i++ ){
+					new Element("div",{
+						"text" : this.addZero(i, 2 ),
+						"styles" : this.css.calendarTimeSelectItem_mobile
+					}).inject( this.itmeSNode );
+				}
+				this.selectedSecond = this.addZero(s, 2 );
+				this.sMobileSelect = new o2.Calendar.MobileSelect( this.itmeSNode.getParent(), {
+					"lineHeight" : 40,
+					"itemSize" : 60,
+					"itemIndex" : parseInt(s),
+					"onChange": function(value){
+						this.selectedSecond = this.addZero(value, 2 );
+						//this.showHNode.set("text", this.addZero(i, 2 ));
+						//this.itmeHNode.getFirst().set("text", this.addZero(i, 2 ));
+					}.bind(this)
+				});
+				this.sMobileSelect.load();
+			}
+		}else{
+			this.itmeSNode.hide();
+
+		}
+
+
+		if( this.options.secondEnable ){
+			this.contentTimeTable.getElements(".calendarTimeWheel_mobile").setStyle("width","33.3%");
+		}else{
+			this.contentTimeTable.getElements(".calendarTimeWheel_mobile").setStyle("width","50%");
+		}
+
+		if( this.options.secondEnable && this.showSNode ){
+			this.showSNode.set("text", this.addZero( s.toInt(), 2) );
+		}
+
+		if (!this.okButton){
+			this.okButton = new Element("button", {"text": "确定"}).inject(this.showActionNode);
+			this.okButton.addEvent("click", function(){
+				this._selectTime();
+				this.hide();
+			}.bind(this));
+			this.okButton.setStyles(this.css.calendarActionShowButton_mobile_ok);
+		}
+
+		if (!this.clearButton){
+			this.clearButton = new Element("button", {"text": "清除"}).inject(this.showActionNode);
+			this.clearButton.addEvent("click", function(){
+				this.node.set("value", "");
+				this.fireEvent("clear");
+				this.hide();
+			}.bind(this));
+			this.clearButton.setStyles(this.css.calendarActionShowButton_mobile_cancel);
+		}
+	},
 	_setTimeDate: function(node, h, m, s){
 	_setTimeDate: function(node, h, m, s){
 		if( !this.options.secondEnable ){
 		if( !this.options.secondEnable ){
 			var div = this.contentTimeTable.getElement(".MWF_calendar_time_s");
 			var div = this.contentTimeTable.getElement(".MWF_calendar_time_s");
@@ -697,40 +877,40 @@ o2.widget.Calendar = o2.Calendar = new Class({
 
 
 		var calendar = this;
 		var calendar = this;
 
 
-		if (COMMON.Browser.Platform.isMobile){
-			this.itmeHNode.empty();
-			this.itmeHNode.removeClass("calendarTimeSlider");
-			this.itmeHNode.setStyles(this.css.calendarTimeSliderNoStyle);
-			var sel = new Element("select").inject(this.itmeHNode);
-			for (i=0; i<=23; i++){
-				var v = (i<10) ? "0"+i: i;
-				var o = new Element("option", {
-					"value": v,
-					"text": v
-				}).inject(sel);
-				if (h==i) o.set("selected", true);
-			}
-			sel.addEvent("change", function(){
-				calendar.showHNode.set("text", this.options[this.selectedIndex].get("value"));
-			});
-			this.showHNode.set("text", sel.options[sel.selectedIndex].get("value"));
-
-			this.itmeMNode.empty();
-			this.itmeMNode.removeClass("calendarTimeSlider");
-			this.itmeMNode.setStyles(this.css.calendarTimeSliderNoStyle);
-			sel = new Element("select").inject(this.itmeMNode);
-			for (i=0; i<=59; i++){
-				var v = (i<10) ? "0"+i: i;
-				var o = new Element("option", {
-					"value": v,
-					"text": v
-				}).inject(sel);
-				if (m==i) o.set("selected", true);
-			}
-			sel.addEvent("change", function(){
-				calendar.showMNode.set("text", this.options[this.selectedIndex].get("value"));
-			});
-			this.showMNode.set("text", sel.options[sel.selectedIndex].get("value"));
+		if ( COMMON.Browser.Platform.isMobile ){
+			//this.itmeHNode.empty();
+			//this.itmeHNode.removeClass("calendarTimeSlider");
+			//this.itmeHNode.setStyles(this.css.calendarTimeSliderNoStyle);
+			//var sel = new Element("select").inject(this.itmeHNode);
+			//for (i=0; i<=23; i++){
+			//	var v = (i<10) ? "0"+i: i;
+			//	var o = new Element("option", {
+			//		"value": v,
+			//		"text": v
+			//	}).inject(sel);
+			//	if (h==i) o.set("selected", true);
+			//}
+			//sel.addEvent("change", function(){
+			//	calendar.showHNode.set("text", this.options[this.selectedIndex].get("value"));
+			//});
+			//this.showHNode.set("text", sel.options[sel.selectedIndex].get("value"));
+            //
+			//this.itmeMNode.empty();
+			//this.itmeMNode.removeClass("calendarTimeSlider");
+			//this.itmeMNode.setStyles(this.css.calendarTimeSliderNoStyle);
+			//sel = new Element("select").inject(this.itmeMNode);
+			//for (i=0; i<=59; i++){
+			//	var v = (i<10) ? "0"+i: i;
+			//	var o = new Element("option", {
+			//		"value": v,
+			//		"text": v
+			//	}).inject(sel);
+			//	if (m==i) o.set("selected", true);
+			//}
+			//sel.addEvent("change", function(){
+			//	calendar.showMNode.set("text", this.options[this.selectedIndex].get("value"));
+			//});
+			//this.showMNode.set("text", sel.options[sel.selectedIndex].get("value"));
 		}else{
 		}else{
 			var hSlider = new Slider(this.itmeHNode, this.itmeHNode.getFirst(), {
 			var hSlider = new Slider(this.itmeHNode, this.itmeHNode.getFirst(), {
 				range: [0, 23],
 				range: [0, 23],
@@ -810,13 +990,13 @@ o2.widget.Calendar = o2.Calendar = new Class({
 	_selectTime: function(){
 	_selectTime: function(){
 		var date = this.currentTextNode.retrieve("date");
 		var date = this.currentTextNode.retrieve("date");
 
 
-		var h = this.showHNode.get("text");
-		var m = this.showMNode.get("text");
+		var h = this.selectedHour || this.showHNode.get("text");
+		var m = this.selectedMinute || this.showMNode.get("text");
 		date.setHours(h);
 		date.setHours(h);
 		date.setMinutes(m);
 		date.setMinutes(m);
 
 
-		if( this.options.secondEnable && this.showSNode ){
-			var s = this.showSNode.get("text");
+		if( this.options.secondEnable && ( this.selectedSecond || this.showSNode) ){
+			var s = this.selectedSecond || this.showSNode.get("text");
 			date.setSeconds(s);
 			date.setSeconds(s);
 		}
 		}
 
 
@@ -845,6 +1025,7 @@ o2.widget.Calendar = o2.Calendar = new Class({
 	},
 	},
 	_selectDate: function(dateStr){
 	_selectDate: function(dateStr){
 		var date = new Date(dateStr);
 		var date = new Date(dateStr);
+		this.options.baseDate = date;
 		var dv = date.format(this.options.format);
 		var dv = date.format(this.options.format);
 		if (this.options.isTime){
 		if (this.options.isTime){
 			this.changeViewToTime(date);
 			this.changeViewToTime(date);
@@ -945,7 +1126,7 @@ o2.widget.Calendar = o2.Calendar = new Class({
 						calendar.changeViewToDay(this.retrieve("year"), this.retrieve("month"));
 						calendar.changeViewToDay(this.retrieve("year"), this.retrieve("month"));
 						break;
 						break;
 					case "year" :
 					case "year" :
-						calendar.changeViewToMonth(this.retrieve("year"))
+						calendar.changeViewToMonth(this.retrieve("year"));
 						break;
 						break;
 					case "time" :
 					case "time" :
 						//nothing
 						//nothing
@@ -976,27 +1157,59 @@ o2.widget.Calendar = o2.Calendar = new Class({
 					tds.setStyles(this.css.calendarYearsContentTd);
 					tds.setStyles(this.css.calendarYearsContentTd);
 					break;
 					break;
 				case "time" :
 				case "time" :
+					if( this.options.style.indexOf("mobile") > -1 ){
+
+						var nodes = table.getElements(".calendarTimeContent_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeContent_mobile);
+
+						nodes = table.getElements(".calendarTimeFixWidthNode_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeFixWidthNode_mobile);
+
+						nodes = table.getElements(".calendarTimeWheels_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeWheels_mobile);
+
+						nodes = table.getElements(".calendarTimeWheel_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeWheel_mobile);
+
+						nodes = table.getElements(".calendarTimeSelectContainer_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeSelectContainer_mobile);
 
 
-					var nodes = table.getElements(".calendarTimeArea");
-					if (nodes.length) nodes.setStyles(this.css.calendarTimeArea);
+						nodes = table.getElements(".calendarTimeSelectLine_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeSelectLine_mobile);
 
 
-					nodes = table.getElements(".calendarTimeSlider");
-					if (nodes.length) nodes.setStyles(this.css.calendarTimeSlider);
+						nodes = table.getElements(".calendarTimeShadowMask_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeShadowMask_mobile);
 
 
-					nodes = table.getElements(".calendarTimeSliderKnob");
-					if (nodes.length) nodes.setStyles(this.css.calendarTimeSliderKnob);
+						var node = table.getElement(".MWF_calendar_action_show");
+						if (node){
+							node.setStyles(this.css.calendarActionShow);
+							//var buttons = node.getElements("button");
+							//buttons.setStyles(this.css.calendarActionShowButton);
+						}
+
+					}else{
+						var nodes = table.getElements(".calendarTimeArea");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeArea);
+
+						nodes = table.getElements(".calendarTimeSlider");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeSlider);
+
+						nodes = table.getElements(".calendarTimeSliderKnob");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeSliderKnob);
 
 
-					nodes = table.getElements(".calendarTimeShow");
-					if (nodes.length) nodes.setStyles(this.css.calendarTimeShow);
+						nodes = table.getElements(".calendarTimeShow");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeShow);
 
 
-					nodes = table.getElements(".calendarTimeShowItem");
-					if (nodes.length) nodes.setStyles(this.css.calendarTimeShowItem);
+						nodes = table.getElements(".calendarTimeShowItem");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeShowItem);
+
+						var node = table.getElement(".MWF_calendar_action_show");
+						if (node){
+							node.setStyles(this.css.calendarActionShow);
+							var buttons = node.getElements("button");
+							buttons.setStyles(this.css.calendarActionShowButton);
+						}
 
 
-					var node = table.getElement(".MWF_calendar_action_show");
-					if (node){
-						node.setStyles(this.css.calendarActionShow);
-						var buttons = node.getElements("button");
-						buttons.setStyles(this.css.calendarActionShowButton);
 					}
 					}
 
 
 					break;
 					break;
@@ -1027,27 +1240,56 @@ o2.widget.Calendar = o2.Calendar = new Class({
 					tds.setStyles(this.css.calendarYearsContentTd);
 					tds.setStyles(this.css.calendarYearsContentTd);
 					break;
 					break;
 				case "time" :
 				case "time" :
+					if( this.options.style.indexOf("mobile") > -1 ){
+						var nodes = table.getElements(".calendarTimeContent_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeContent_mobile);
+
+						nodes = table.getElements(".calendarTimeFixWidthNode_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeFixWidthNode_mobile);
+
+						nodes = table.getElements(".calendarTimeWheels_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeWheels_mobile);
 
 
-					var nodes = table.getElements(".calendarTimeArea");
-					if (nodes.length) nodes.setStyles(this.css.calendarTimeArea);
+						nodes = table.getElements(".calendarTimeWheel_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeWheel_mobile);
 
 
-					nodes = table.getElements(".calendarTimeSlider");
-					if (nodes.length) nodes.setStyles(this.css.calendarTimeSlider);
+						nodes = table.getElements(".calendarTimeSelectContainer_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeSelectContainer_mobile);
 
 
-					nodes = table.getElements(".calendarTimeSliderKnob");
-					if (nodes.length) nodes.setStyles(this.css.calendarTimeSliderKnob);
+						nodes = table.getElements(".calendarTimeSelectLine_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeSelectLine_mobile);
 
 
-					nodes = table.getElements(".calendarTimeShow");
-					if (nodes.length) nodes.setStyles(this.css.calendarTimeShow);
+						nodes = table.getElements(".calendarTimeShadowMask_mobile");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeShadowMask_mobile);
 
 
-					nodes = table.getElements(".calendarTimeShowItem");
-					if (nodes.length) nodes.setStyles(this.css.calendarTimeShowItem);
+						var node = table.getElement(".MWF_calendar_action_show");
+						if (node){
+							node.setStyles(this.css.calendarActionShow);
+							//var buttons = node.getElements("button");
+							//buttons.setStyles(this.css.calendarActionShowButton);
+						}
+					}else{
+						var nodes = table.getElements(".calendarTimeArea");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeArea);
+
+						nodes = table.getElements(".calendarTimeSlider");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeSlider);
+
+						nodes = table.getElements(".calendarTimeSliderKnob");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeSliderKnob);
+
+						nodes = table.getElements(".calendarTimeShow");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeShow);
 
 
-					var node = table.getElement(".MWF_calendar_action_show");
-					if (node){
-						node.setStyles(this.css.calendarActionShow);
-						var buttons = node.getElements("button");
-						buttons.setStyles(this.css.calendarActionShowButton);
+						nodes = table.getElements(".calendarTimeShowItem");
+						if (nodes.length) nodes.setStyles(this.css.calendarTimeShowItem);
+
+						var node = table.getElement(".MWF_calendar_action_show");
+						if (node){
+							node.setStyles(this.css.calendarActionShow);
+							var buttons = node.getElements("button");
+							buttons.setStyles(this.css.calendarActionShowButton);
+						}
 					}
 					}
 
 
 					break;
 					break;
@@ -1060,4 +1302,125 @@ o2.widget.Calendar = o2.Calendar = new Class({
 		return table;
 		return table;
 	}
 	}
 
 
-});
+});
+
+
+o2.Calendar.MobileSelect = new Class({
+	Implements: [Options, Events],
+	options: {
+		"lineHeight" : 40, //每个item的高度
+		"itemSize" : 0, //item数量
+		"ratio" : 1, //滑动距离倍率
+		"itemIndex" : 0
+	},
+	initialize: function (wheelNode, options) {
+		this.setOptions( options );
+		this.wheelNode = wheelNode;
+		this.sliderNode = wheelNode.getFirst();
+	},
+	load : function(){
+		var _this = this;
+		this.curDistance = 0;
+		this.sliderNode.style.transform = "translate3d(0px, 80px, 0px)";
+		this.wheelNode.addEventListener('touchstart', function () {
+			_this.touch(event);
+		}, false);
+		this.wheelNode.addEventListener('touchend', function () {
+			_this.touch(event);
+		}, false);
+		this.wheelNode.addEventListener('touchmove', function () {
+			_this.touch(event);
+		}, false);
+		this.locatePostion( this.options.itemIndex );
+	},
+	touch: function (ev) {
+		var sliderNode = this.sliderNode;
+		ev = ev || window.event;
+		switch (ev.type) {
+			case "touchstart":
+				this.startTime = new Date();
+				this.startY = event.touches[0].clientY;
+				this.oldMoveY = this.startY;
+				break;
+			case "touchend":
+				this.moveEndY = event.changedTouches[0].clientY;
+
+				this.overTime = new Date();
+				var speed = (this.moveEndY - this.startY) / ( this.overTime - this.startTime );
+				var ratio = 1;
+				if( Math.abs(speed) > 0.7 ){
+					ratio = 5;
+				}else if( Math.abs(speed) < 0.2 ){
+					ratio = 0.7
+				}
+
+				this.offsetSum = ( this.moveEndY - this.startY ) * this.options.ratio * ratio;
+				this.updateCurDistance();
+				this.curDistance = this.fixPosition(this.curDistance);
+				this.movePosition( this.curDistance );
+				this.oversizeBorder = - ( this.options.itemSize - 3) * this.options.lineHeight;
+				if (this.curDistance + this.offsetSum > 2 * this.options.lineHeight) {
+					this.curDistance = 2 * this.options.lineHeight;
+					setTimeout(function () {
+						this.movePosition( this.curDistance );
+					}.bind(this), 100);
+				} else if (this.curDistance + this.offsetSum < this.oversizeBorder) {
+					this.curDistance = this.oversizeBorder;
+					setTimeout(function () {
+						this.movePosition( this.curDistance );
+					}.bind(this), 100);
+				}
+				this.fireEvent( "change", [this.getCurIndex()] );
+				break;
+			case "touchmove":
+				ev.preventDefault();
+				this.moveY = event.touches[0].clientY;
+				this.overTime = new Date();
+				var speed = (this.moveY - this.oldMoveY) / ( this.overTime - this.oldOverTime );
+				var ratio = 1;
+				if( Math.abs(speed) > 0.7 ){
+					ratio = 5;
+				}else if( Math.abs(speed) < 0.2 ){
+					ratio = 0.7
+				}
+
+				this.offset = ( this.moveY - this.oldMoveY ) * this.options.ratio * ratio;
+				this.updateCurDistance();
+				this.curDistance = this.curDistance + this.offset;
+				this.movePosition( this.curDistance );
+				this.oldMoveY = this.moveY;
+				this.oldOverTime = this.overTime;
+				break;
+		}
+	},
+	calcDistance: function (index) {
+		return 2 * this.options.lineHeight - index * this.options.lineHeight;
+	},
+	setCurDistance: function ( index ) {
+		this.curDistance = this.calcDistance( index );
+		this.movePosition( this.curDistance );
+	},
+	fixPosition: function (distance) {
+		return -(this.getIndex(distance) - 2) * this.options.lineHeight;
+	},
+	getCurIndex : function(){
+		return this.getIndex( this.curDistance );
+	},
+	getIndex: function (distance) {
+		return Math.round((2 * this.options.lineHeight - distance) / this.options.lineHeight);
+	},
+	movePosition: function ( distance) {
+		this.sliderNode.style.webkitTransform = 'translate3d(0,' + distance + 'px, 0)';
+		this.sliderNode.style.transform = 'translate3d(0,' + distance + 'px, 0)';
+	},
+	locatePostion: function ( index ) {
+		this.curDistance = this.calcDistance(index);
+		this.movePosition( this.curDistance );
+	},
+	updateCurDistance: function () {
+		this.curDistance = parseInt(this.sliderNode.style.transform.split(',')[1]);
+	},
+	getDistance: function () {
+		return parseInt(this.sliderNode.style.transform.split(',')[1]);
+	}
+});

+ 19 - 43
o2web/source/o2_core/o2/widget/CalendarPage.js

@@ -112,17 +112,14 @@ o2.widget.CalendarPage = o2.CalendarPage = new Class({
 				baseDate.setMonth(thisMonth-1);
 				baseDate.setMonth(thisMonth-1);
 				
 				
 				var selectDate =new Date(dateStr);
 				var selectDate =new Date(dateStr);
-				
-				//var baseDate = this.options.baseDate;
-//				var firstDate = baseDate.clone();
-//				firstDate.setDate(1);
-//				var day = firstDate.getDay();
-//
-//				firstDate.getMonth();
-//				var tmpDate = firstDate.clone();
 
 
+				var tbody;
+				if (el){
+					tbody = el.getParent("tbody");
+				}else{
+					tbody = this.contentTable.getElement("tbody");
+				}
 
 
-				var tbody = el.getParent("tbody");
 				var tds = tbody.getElements("td");
 				var tds = tbody.getElements("td");
 
 
 				for (var i=0; i<tds.length; i++){
 				for (var i=0; i<tds.length; i++){
@@ -131,55 +128,34 @@ o2.widget.CalendarPage = o2.CalendarPage = new Class({
 					if (thisDate.clearTime().toString() == this.today.clearTime().toString()){
 					if (thisDate.clearTime().toString() == this.today.clearTime().toString()){
 						tds[i].setStyles(this.css["today_"+this.options.style]);
 						tds[i].setStyles(this.css["today_"+this.options.style]);
 						tds[i].setStyle("border", "0px solid #AAA");
 						tds[i].setStyle("border", "0px solid #AAA");
-					}else if (thisDate.toString() == selectDate.toString()){
+					}else if (thisDate.clearTime().toString() == selectDate.clearTime().toString()){
 						tds[i].addClass("current_"+this.options.style);
 						tds[i].addClass("current_"+this.options.style);
 						tds[i].setStyles(this.css["current_"+this.options.style]);
 						tds[i].setStyles(this.css["current_"+this.options.style]);
 						tds[i].removeClass("gray_"+this.options.style);
 						tds[i].removeClass("gray_"+this.options.style);
+						tds[i].removeClass("past_"+this.options.style);
 						tds[i].setStyle("border", "1px solid #FFF");
 						tds[i].setStyle("border", "1px solid #FFF");
 					}else if(baseDate.getMonth()!=thisDate.getMonth()){
 					}else if(baseDate.getMonth()!=thisDate.getMonth()){
 						tds[i].addClass("gray_"+this.options.style);
 						tds[i].addClass("gray_"+this.options.style);
 						tds[i].setStyles(this.css["gray_"+this.options.style]);
 						tds[i].setStyles(this.css["gray_"+this.options.style]);
 						tds[i].removeClass("current_"+this.options.style);
 						tds[i].removeClass("current_"+this.options.style);
+						tds[i].removeClass("past_"+this.options.style);
 						tds[i].setStyle("border", "1px solid #FFF");
 						tds[i].setStyle("border", "1px solid #FFF");
+					}else if (thisDate.diff(this.today)>0){
+						if (this.css["past_"+this.options.style]) tds[i].setStyles(this.css["past_"+this.options.style]);
+						tds[i].addClass("past_"+this.options.style);
+						tds[i].removeClass("current_"+this.options.style);
+						tds[i].removeClass("gray_"+this.options.style);
 					}else{
 					}else{
 						tds[i].setStyles(this.css["normal_"+this.options.style]);
 						tds[i].setStyles(this.css["normal_"+this.options.style]);
+						tds[i].addClass("normal_"+this.options.style);
 						tds[i].removeClass("current_"+this.options.style);
 						tds[i].removeClass("current_"+this.options.style);
 						tds[i].removeClass("gray_"+this.options.style);
 						tds[i].removeClass("gray_"+this.options.style);
+						tds[i].removeClass("past_"+this.options.style);
 						tds[i].setStyle("border", "1px solid #FFF");
 						tds[i].setStyle("border", "1px solid #FFF");
 					}
 					}
-					
-					
-
-				//	tds[i].set("text", firstDate.getDate());
-//					if (firstDate.toString() == this.options.baseDate.toString()){
-//						tds[i].addClass("current_"+this.options.style);
-//						tds[i].setStyles(this.css["current_"+this.options.style]);
-//						tds[i].removeClass("gray_"+this.options.style);
-//						tds[i].setStyle("border", "1px solid #FFF");
-//					}else if (firstDate.getMonth()!=baseDate.getMonth()){
-//						tds[i].addClass("gray_"+this.options.style);
-//						tds[i].setStyles(this.css["gray_"+this.options.style]);
-//						tds[i].removeClass("current_"+this.options.style);
-//						tds[i].setStyle("border", "1px solid #FFF");
-//					}else{
-//						tds[i].setStyles(this.css["normal_"+this.options.style]);
-//						tds[i].removeClass("current_"+this.options.style);
-//						tds[i].removeClass("gray_"+this.options.style);
-//						tds[i].setStyle("border", "1px solid #FFF");
-//					}
-//					var tmp = firstDate.clone();
-//					if (tmp.clearTime().toString() == this.today.clearTime().toString()){
-//						//tds[i].addClass("today_"+this.options.style);
-//						tds[i].setStyles(this.css["today_"+this.options.style]);
-//						tds[i].setStyle("border", "0px solid #AAA");
-//					}
-//					//tds[i].retrieve("dateValue")
-//					tds[i].store("dateValue", firstDate.toString());
-//					firstDate.increment("day", 1);
-				}
-
 
 
-				el.setStyles(this.css["current_"+this.options.style]);
+				}
+				//el.setStyles(this.css["current_"+this.options.style]);
 			//	this.node.set("value", dv);
 			//	this.node.set("value", dv);
 			//	this.hide();
 			//	this.hide();
 				this.fireEvent("complate");
 				this.fireEvent("complate");
@@ -187,4 +163,4 @@ o2.widget.CalendarPage = o2.CalendarPage = new Class({
 		}
 		}
 	}
 	}
 	
 	
-});
+});

+ 2 - 2
o2web/source/o2_core/o2/widget/Dialog.js

@@ -163,7 +163,7 @@ o2.widget.Dialog = o2.DL = new Class({
 		if (layout.desktop.currentApp) content = layout.desktop.currentApp.content;
 		if (layout.desktop.currentApp) content = layout.desktop.currentApp.content;
 		this.containerDrag = new Drag.Move(this.node, {
 		this.containerDrag = new Drag.Move(this.node, {
 			"handle": this.title,
 			"handle": this.title,
-			"container": this.markNode || content,
+			"container": this.options.container || this.markNode || content,
 			"snap": 5
 			"snap": 5
 		});
 		});
 
 
@@ -514,4 +514,4 @@ o2.widget.Dialog = o2.DL = new Class({
 			this.markNode_up = null;
 			this.markNode_up = null;
 		}
 		}
 	}
 	}
-});
+});

+ 2 - 2
o2web/source/o2_core/o2/widget/ImageClipper.js

@@ -248,7 +248,7 @@ o2.widget.FlashImageClipper = new Class({
 			}.bind(this));
 			}.bind(this));
 		}else{
 		}else{
 			//公共图片服务
 			//公共图片服务
-			var addressObj = layout.desktop.serviceAddressList["x_file_assemble_control"];
+			var addressObj = layout.serviceAddressList["x_file_assemble_control"];
 			if (addressObj){
 			if (addressObj){
 				var address = layout.config.app_protocol+"//"+addressObj.host+(addressObj.port==80 ? "" : ":"+addressObj.port)+addressObj.context;
 				var address = layout.config.app_protocol+"//"+addressObj.host+(addressObj.port==80 ? "" : ":"+addressObj.port)+addressObj.context;
 			}else{
 			}else{
@@ -1037,4 +1037,4 @@ o2.widget.HTML5ImageClipper = new Class({
 		return new Blob( [ab] , {type : this.fileType });
 		return new Blob( [ab] , {type : this.fileType });
 	}
 	}
 
 
-});
+});

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

@@ -35,14 +35,14 @@ o2.widget.Menu = new Class({
 		if (this.fireEvent("queryLoad")){
 		if (this.fireEvent("queryLoad")){
 			this.node = new Element("div.MWFMenu");
 			this.node = new Element("div.MWFMenu");
 			this.node.set("styles", this.css.container);
 			this.node.set("styles", this.css.container);
-			
+
 			if (this.options.event){
 			if (this.options.event){
 				if (this.target) this.target.addEvent(this.options.event, this.showIm.bind(this));
 				if (this.target) this.target.addEvent(this.options.event, this.showIm.bind(this));
 			}
 			}
 			//this.node.inject(this.options.container || $(document.body));
 			//this.node.inject(this.options.container || $(document.body));
-            this.node.inject(this.options.container || this.target);
+			this.node.inject(this.options.container || this.target);
 
 
-            this.hide = this.hideMenu.bind(this);
+			this.hide = this.hideMenu.bind(this);
 			this.fireEvent("postLoad");
 			this.fireEvent("postLoad");
 		}
 		}
 	},
 	},

+ 34 - 20
o2web/source/o2_core/o2/widget/O2Identity.js

@@ -7,7 +7,8 @@ o2.widget.O2Identity = new Class({
 	options: {
 	options: {
 		"style": "default",
 		"style": "default",
         "canRemove": false,
         "canRemove": false,
-        "lazy": false
+        "lazy": false,
+        "disableInfor" : false
 	},
 	},
 	initialize: function(data, container, options){
 	initialize: function(data, container, options){
 		this.setOptions(options);
 		this.setOptions(options);
@@ -32,8 +33,11 @@ o2.widget.O2Identity = new Class({
         this.node.set("text", this.data.displayName || (this.data.name+"("+this.data.unitName+")"));
         this.node.set("text", this.data.displayName || (this.data.name+"("+this.data.unitName+")"));
     },
     },
     load: function(){
     load: function(){
-        if (!this.options.lazy) this.getPersonData();
-        this.node = new Element("div", {"styles": this.style.identityNode}).inject(this.container);
+        var style = ( layout.mobile && this.style.identityNode_mobile ) ?
+            this.style.identityNode_mobile : this.style.identityNode;
+
+        if (!this.options.lazy && !this.options.disableInfor) this.getPersonData();
+        this.node = new Element("div", {"styles": style }).inject(this.container);
         this.setText();
         this.setText();
 
 
         if (this.options.canRemove){
         if (this.options.canRemove){
@@ -44,29 +48,39 @@ o2.widget.O2Identity = new Class({
             }.bind(this));
             }.bind(this));
         }
         }
 
 
-        if (!this.options.lazy){
-            this.createInforNode(function(){
-                this.fireEvent("loadedInfor", [this]);
-            }.bind(this));
-        }else{
-            this.node.addEvents({
-                "mouseover": function(){
-                    if (!this.loadedInfor){
-                        this.getPersonData();
-                        this.createInforNode(function(){
-                            this.fireEvent("loadedInfor", [this]);
-                        }.bind(this));
-                    }
-                }.bind(this)
-            });
+        if( !this.options.disableInfor ){
+            if (!this.options.lazy ){
+                this.createInforNode(function(){
+                    this.fireEvent("loadedInfor", [this]);
+                }.bind(this));
+            }else{
+                this.node.addEvents({
+                    "mouseover": function(){
+                        if (!this.loadedInfor){
+                            this.getPersonData();
+                            this.createInforNode(function(){
+                                this.fireEvent("loadedInfor", [this]);
+                            }.bind(this));
+                        }
+                    }.bind(this)
+                });
+            }
         }
         }
         this.setEvent();
         this.setEvent();
         this.node.addEvents({
         this.node.addEvents({
             "mouseover": function(){
             "mouseover": function(){
-                this.node.setStyles(this.style.identityNode_over);
+
+                var style_over = ( layout.mobile && this.style.identityNode_over_mobile ) ?
+                    this.style.identityNode_over_mobile : this.style.identityNode_over;
+
+                this.node.setStyles( style_over );
             }.bind(this),
             }.bind(this),
             "mouseout": function(){
             "mouseout": function(){
-                this.node.setStyles(this.style.identityNode);
+
+                var style = ( layout.mobile && this.style.identityNode_mobile ) ?
+                    this.style.identityNode_mobile : this.style.identityNode;
+
+                this.node.setStyles(style);
             }.bind(this)
             }.bind(this)
         });
         });
     },
     },

+ 210 - 192
o2web/source/o2_core/o2/widget/ScrollBar.js

@@ -21,141 +21,147 @@ o2.widget.ScrollBar = new Class({
 		}
 		}
 	},
 	},
 
 
-    scrollEvent: function(node){
-        var scrollTop = node.scrollTop.toFloat();
-        var scrollLeft = node.scrollLeft.toFloat();
-        this.fireEvent("scroll", [scrollTop, scrollLeft]);
+	scrollEvent: function(node){
+		var scrollTop = node.scrollTop.toFloat();
+		var scrollLeft = node.scrollLeft.toFloat();
+		this.fireEvent("scroll", [scrollTop, scrollLeft]);
 	},
 	},
 	initialize : function(node, options) {
 	initialize : function(node, options) {
-        if (COMMON.Browser.Platform.isMobile){
-            node.setStyle("overflow", "auto");
-            node.addEvent("scroll", function(){
+		if (COMMON.Browser.Platform.isMobile){
+			node.setStyle("overflow", "auto");
+			node.addEvent("scroll", function(){
 				this.scrollEvent(node);
 				this.scrollEvent(node);
-            }.bind(this));
-            // node.addEvent("touchstart", function(e){ this.checkScroll()}.bind(this));
-            // node.addEvent("touchmove", function(e){
-             //    e.preventDefault();
-             //    // this.fireEvent("scroll", [1]);
-             //    // e.preventDefault();
-             //    //
-             //    // var scrollTop = node.scrollTop.toFloat();
-             //    // var scrollLeft = node.scrollLeft.toFloat();
-             //    // //this.fireEvent("scroll", [scrollTop, scrollLeft]);
-             //    e.stopPropagation();
-            // }.bind(this));
-            // node.addEvent("touchend", function(e){
-             //    this.scrollEvent(node);
+			}.bind(this));
+			// node.addEvent("touchstart", function(e){ this.checkScroll()}.bind(this));
+			// node.addEvent("touchmove", function(e){
+			//    e.preventDefault();
+			//    // this.fireEvent("scroll", [1]);
+			//    // e.preventDefault();
+			//    //
+			//    // var scrollTop = node.scrollTop.toFloat();
+			//    // var scrollLeft = node.scrollLeft.toFloat();
+			//    // //this.fireEvent("scroll", [scrollTop, scrollLeft]);
+			//    e.stopPropagation();
 			// }.bind(this));
 			// }.bind(this));
-            return true;
-        }
+			// node.addEvent("touchend", function(e){
+			//    this.scrollEvent(node);
+			// }.bind(this));
+			return true;
+		}
 
 
 		this.node = $(node);
 		this.node = $(node);
 		this.setOptions(options);
 		this.setOptions(options);
-		
+
 		this.path = o2.session.path+"/widget/$ScrollBar/";
 		this.path = o2.session.path+"/widget/$ScrollBar/";
 		this.cssPath = o2.session.path+"/widget/$ScrollBar/"+this.options.style+"/css.wcss";
 		this.cssPath = o2.session.path+"/widget/$ScrollBar/"+this.options.style+"/css.wcss";
 		this._loadCss();
 		this._loadCss();
 
 
-		document.body.onresize = function(e){
+		// document.body.onresize = function(e){
+		// 	this.checkScroll();
+		// }.bind(this);
+		// this.node.onresize = function(e){
+		// 	this.checkScroll();
+		// }.bind(this);
+
+		this.checkScrollFun = function(e){
 			this.checkScroll();
 			this.checkScroll();
 		}.bind(this);
 		}.bind(this);
-		this.node.onresize = function(e){
+		this.checkScrollStopFun = function(e){
 			this.checkScroll();
 			this.checkScroll();
+			e.stopPropagation();
 		}.bind(this);
 		}.bind(this);
-		this.node.addEvent("mouseover", function(e){
-			this.checkScroll();
-            e.stopPropagation();
-		}.bind(this));
-		this.node.addEvent("mouseout", function(e){
-			this.checkScroll();
-            e.stopPropagation();
-		}.bind(this));
-		
+
+		layout.desktop.addEvent("resize", this.checkScrollFun);
+		//layout.desktop.addEvent("onresize", this.checkScrollFun);
+		this.node.addEvent("mouseover", this.checkScrollStopFun);
+		this.node.addEvent("mouseout", this.checkScrollStopFun);
+
 //		this.node.addEvent("click", function(e){
 //		this.node.addEvent("click", function(e){
 //			this.checkScrollShow(e);
 //			this.checkScrollShow(e);
 //		}.bind(this));
 //		}.bind(this));
 
 
-        this.checkScrollShow();
-        document.body.addEvent("mousemove", function(e){
-            this.checkScrollShow(e);
-        }.bind(this));
-		
+		this.checkScrollShow();
+		this.checkScrollShowFun = function(e){
+			this.checkScrollShow(e);
+		}.bind(this);
+		document.body.addEvent("mousemove", this.checkScrollShowFun);
+
 //		this.node.getChildren().each(function(node){
 //		this.node.getChildren().each(function(node){
 //			node.onresize = function(e){
 //			node.onresize = function(e){
 //				this.checkScroll();
 //				this.checkScroll();
 //			}.bind(this);
 //			}.bind(this);
 //		}.bind(this));
 //		}.bind(this));
-		
-	//	this.node.onpropertychange = function(e){
-	//		this.checkScroll();
-	//	}.bind(this);
-		
+
+		//	this.node.onpropertychange = function(e){
+		//		this.checkScroll();
+		//	}.bind(this);
+
 	},
 	},
 
 
-    checkScrollShow: function(e){
-        if (!this.node.isPointIn) return false;
-        //if (this.node.isPointIn(e.event.clientX, e.event.clientY, this.scrollVWidth)){
-            if (this.scrollVAreaNode){
-                var opacity = this.scrollVAreaNode.getStyle("opacity");
-                if (opacity==0){
-                    if (!this.scrollAreaOverLock && !this.scrollAreaOutLock){
-                        this.scrollAreaOverLock = true;
-                        var margin = this.node.getStyle("margin-right").toFloat();
-                        if (this.options.indent){
-                            var marginFx = new Fx.Tween(this.node, {property: "margin-right", duration: "100"});
-                            marginFx.start(margin+this.scrollVWidth).chain(function(){
-                                this.scrollVAreaNode.setStyle("display", "block");
-
-                                var scrollFx = new Fx.Tween(this.scrollVAreaNode, {property: "opacity", duration: "100"});
-                                scrollFx.start(0,1).chain(function(){
-                                    this.scrollAreaOverLock = false;
-                                }.bind(this));
-
-                                //this.scrollVAreaNode.fade("in");
-
-                            }.bind(this));
-                        }else{
-                            this.scrollVAreaNode.setStyle("display", "block");
-
-                            var scrollFx = new Fx.Tween(this.scrollVAreaNode, {property: "opacity", duration: "100"});
-                            scrollFx.start(0,1).chain(function(){
-                                this.scrollAreaOverLock = false;
-                            }.bind(this));
-                        }
-                    }
-                }
-            }
-        // }else{
-        //     if (this.scrollVAreaNode){
-        //         var opacity = this.scrollVAreaNode.getStyle("opacity");
-        //         //		if (!this.options.isShow){
-        //         if (opacity==1){
-        //             if (!this.scrollAreaOutLock && !this.scrollAreaOverLock){
-        //                 if (!this.showScrollBar){
-        //                     this.scrollAreaOutLock = true;
-        //                     var scrollFx = new Fx.Tween(this.scrollVAreaNode, {property: "opacity", duration: "100"});
-        //                     scrollFx.start(0).chain(function(){
-        //                         var margin = this.node.getStyle("margin-right").toFloat();
-        //                         this.scrollVAreaNode.setStyle("display", "none");
-        //                         if (this.options.indent){
-        //                             var marginFx = new Fx.Tween(this.node, {property: "margin-right", duration: "100"});
-        //                             marginFx.start(margin-this.scrollVWidth).chain(function(){
-        //                                 this.scrollAreaOutLock = false;
-        //                             }.bind(this));
-        //                         }else{
-        //                             this.scrollAreaOutLock = false;
-        //                         }
-        //                     }.bind(this));
-        //                 }
-        //             }
-        //         }
-        //         //		}
-        //     }
-        // }
-    },
+	checkScrollShow: function(e){
+		if (!this.node.isPointIn) return false;
+		//if (this.node.isPointIn(e.event.clientX, e.event.clientY, this.scrollVWidth)){
+		if (this.scrollVAreaNode){
+			var opacity = this.scrollVAreaNode.getStyle("opacity");
+			if (opacity==0){
+				if (!this.scrollAreaOverLock && !this.scrollAreaOutLock){
+					this.scrollAreaOverLock = true;
+					var margin = this.node.getStyle("margin-right").toFloat();
+					if (this.options.indent){
+						var marginFx = new Fx.Tween(this.node, {property: "margin-right", duration: "100"});
+						marginFx.start(margin+this.scrollVWidth).chain(function(){
+							this.scrollVAreaNode.setStyle("display", "block");
+
+							var scrollFx = new Fx.Tween(this.scrollVAreaNode, {property: "opacity", duration: "100"});
+							scrollFx.start(0,1).chain(function(){
+								this.scrollAreaOverLock = false;
+							}.bind(this));
+
+							//this.scrollVAreaNode.fade("in");
+
+						}.bind(this));
+					}else{
+						this.scrollVAreaNode.setStyle("display", "block");
+
+						var scrollFx = new Fx.Tween(this.scrollVAreaNode, {property: "opacity", duration: "100"});
+						scrollFx.start(0,1).chain(function(){
+							this.scrollAreaOverLock = false;
+						}.bind(this));
+					}
+				}
+			}
+		}
+		// }else{
+		//     if (this.scrollVAreaNode){
+		//         var opacity = this.scrollVAreaNode.getStyle("opacity");
+		//         //		if (!this.options.isShow){
+		//         if (opacity==1){
+		//             if (!this.scrollAreaOutLock && !this.scrollAreaOverLock){
+		//                 if (!this.showScrollBar){
+		//                     this.scrollAreaOutLock = true;
+		//                     var scrollFx = new Fx.Tween(this.scrollVAreaNode, {property: "opacity", duration: "100"});
+		//                     scrollFx.start(0).chain(function(){
+		//                         var margin = this.node.getStyle("margin-right").toFloat();
+		//                         this.scrollVAreaNode.setStyle("display", "none");
+		//                         if (this.options.indent){
+		//                             var marginFx = new Fx.Tween(this.node, {property: "margin-right", duration: "100"});
+		//                             marginFx.start(margin-this.scrollVWidth).chain(function(){
+		//                                 this.scrollAreaOutLock = false;
+		//                             }.bind(this));
+		//                         }else{
+		//                             this.scrollAreaOutLock = false;
+		//                         }
+		//                     }.bind(this));
+		//                 }
+		//             }
+		//         }
+		//         //		}
+		//     }
+		// }
+	},
 
 
 	// checkScrollShow: function(e){
 	// checkScrollShow: function(e){
-     //    if (!this.node.isPointIn) return false;
+	//    if (!this.node.isPointIn) return false;
 	// 	if (this.node.isPointIn(e.event.clientX, e.event.clientY, this.scrollVWidth)){
 	// 	if (this.node.isPointIn(e.event.clientX, e.event.clientY, this.scrollVWidth)){
 	// 		if (this.scrollVAreaNode){
 	// 		if (this.scrollVAreaNode){
 	// 			var opacity = this.scrollVAreaNode.getStyle("opacity");
 	// 			var opacity = this.scrollVAreaNode.getStyle("opacity");
@@ -215,7 +221,7 @@ o2.widget.ScrollBar = new Class({
 	// 		}
 	// 		}
 	// 	}
 	// 	}
 	// },
 	// },
-	
+
 	setScrollNodePosition: function(){
 	setScrollNodePosition: function(){
 		this.node.scrollTo(0,0);
 		this.node.scrollTo(0,0);
 		if (this.scrollVNode){
 		if (this.scrollVNode){
@@ -223,10 +229,10 @@ o2.widget.ScrollBar = new Class({
 //			var y = 0-(this.scrollSize.y.toFloat()) + this.options.offset.V.y;
 //			var y = 0-(this.scrollSize.y.toFloat()) + this.options.offset.V.y;
 //			this.scrollVNode.setStyle("margin-left", ""+x+"px");
 //			this.scrollVNode.setStyle("margin-left", ""+x+"px");
 			this.scrollVNode.setStyle("margin-top", "0px");
 			this.scrollVNode.setStyle("margin-top", "0px");
-			
+
 //			this.scrollVNode.setStyle("margin-left", "100px");
 //			this.scrollVNode.setStyle("margin-left", "100px");
 //			this.scrollVNode.setStyle("margin-top", ""+y+"px");
 //			this.scrollVNode.setStyle("margin-top", ""+y+"px");
-			
+
 			this.setScrollVNodeMoveLimit();
 			this.setScrollVNodeMoveLimit();
 		}
 		}
 		if (this.scrollHNode){
 		if (this.scrollHNode){
@@ -243,10 +249,10 @@ o2.widget.ScrollBar = new Class({
 		}
 		}
 	},
 	},
 	setScrollVNodeMove: function(){
 	setScrollVNodeMove: function(){
-        this.scrollVAreaNode.addEvent("click", function(e){e.stopPropagation();});
+		this.scrollVAreaNode.addEvent("click", function(e){e.stopPropagation();});
 		this.scrollVNodeMove = new Drag(this.scrollVNode,{
 		this.scrollVNodeMove = new Drag(this.scrollVNode,{
 			"onStart": function(el, e){
 			"onStart": function(el, e){
-                this.fireEvent("scrollStart");
+				this.fireEvent("scrollStart");
 				var x = e.event.clientX;
 				var x = e.event.clientX;
 				var y = e.event.clientY;
 				var y = e.event.clientY;
 				el.store("position", {"x": x, "y": y});
 				el.store("position", {"x": x, "y": y});
@@ -255,21 +261,21 @@ o2.widget.ScrollBar = new Class({
 			}.bind(this),
 			}.bind(this),
 			"onComplete": function(e){
 			"onComplete": function(e){
 				this.showScrollBar = false;
 				this.showScrollBar = false;
-                this.fireEvent("scrollComplete");
+				this.fireEvent("scrollComplete");
 			}.bind(this),
 			}.bind(this),
 			"onDrag": function(el, e){
 			"onDrag": function(el, e){
 				var p = el.retrieve("position");
 				var p = el.retrieve("position");
 				var margin = el.retrieve("margin").toFloat();
 				var margin = el.retrieve("margin").toFloat();
-			//	var dx = (e.event.clientX.toFloat()) - (p.x.toFloat());
+				//	var dx = (e.event.clientX.toFloat()) - (p.x.toFloat());
 				var dy = (e.event.clientY.toFloat()) - (p.y.toFloat());
 				var dy = (e.event.clientY.toFloat()) - (p.y.toFloat());
 
 
 				var dmargin = margin+dy;
 				var dmargin = margin+dy;
-				
+
 				var scrollSize = this.node.getScrollSize();
 				var scrollSize = this.node.getScrollSize();
 				var clientSize = this.node.getSize();
 				var clientSize = this.node.getSize();
 				var scrollVNodeSize = this.scrollVNode.getSize();
 				var scrollVNodeSize = this.scrollVNode.getSize();
 				//var marginTop = this.node.getStyle("margin-top").toFloat();
 				//var marginTop = this.node.getStyle("margin-top").toFloat();
-				
+
 				var maxY = (clientSize.y.toFloat())-(scrollVNodeSize.y.toFloat());
 				var maxY = (clientSize.y.toFloat())-(scrollVNodeSize.y.toFloat());
 				var minY = 0;
 				var minY = 0;
 				if (dmargin<minY) dmargin = minY;
 				if (dmargin<minY) dmargin = minY;
@@ -277,9 +283,9 @@ o2.widget.ScrollBar = new Class({
 
 
 				this.scrollVNode.setStyle("margin-top", ""+dmargin+"px");
 				this.scrollVNode.setStyle("margin-top", ""+dmargin+"px");
 				this.scroll(null, dmargin);
 				this.scroll(null, dmargin);
-	
-			//	var vPosition = this.scrollVNode.getPosition();
-			//	this.scroll(null, (vPosition.y.toFloat())-(this.nodePosition.y.toFloat()));
+
+				//	var vPosition = this.scrollVNode.getPosition();
+				//	this.scroll(null, (vPosition.y.toFloat())-(this.nodePosition.y.toFloat()));
 			}.bind(this)
 			}.bind(this)
 		});
 		});
 	},
 	},
@@ -288,7 +294,7 @@ o2.widget.ScrollBar = new Class({
 		var x = (this.nodePosition.x.toFloat())+(this.clientSize.x.toFloat());
 		var x = (this.nodePosition.x.toFloat())+(this.clientSize.x.toFloat());
 		var y = (this.nodePosition.y.toFloat());
 		var y = (this.nodePosition.y.toFloat());
 		var maxY = y+(this.clientSize.y.toFloat()) - (this.scrollVNodeSize.y.toFloat());
 		var maxY = y+(this.clientSize.y.toFloat()) - (this.scrollVNodeSize.y.toFloat());
-		
+
 		this.scrollVNodeMove.detach();
 		this.scrollVNodeMove.detach();
 		this.scrollVNodeMove.setOptions({"limit": {"x": [x, x], "y": [y, maxY]}});
 		this.scrollVNodeMove.setOptions({"limit": {"x": [x, x], "y": [y, maxY]}});
 		this.scrollVNodeMove.attach();
 		this.scrollVNodeMove.attach();
@@ -297,30 +303,30 @@ o2.widget.ScrollBar = new Class({
 		var scrollSize = this.node.getScrollSize();
 		var scrollSize = this.node.getScrollSize();
 		var clientSize = this.node.getSize();
 		var clientSize = this.node.getSize();
 		var scrollVNodeSize = this.scrollVNode.getSize();
 		var scrollVNodeSize = this.scrollVNode.getSize();
-	//	var marginTop = this.node.getStyle("margin-top").toFloat();
+		//	var marginTop = this.node.getStyle("margin-top").toFloat();
 
 
 		var scrollHeight = scrollSize.y-clientSize.y;
 		var scrollHeight = scrollSize.y-clientSize.y;
 		var maxY = (clientSize.y.toFloat())-(scrollVNodeSize.y.toFloat());
 		var maxY = (clientSize.y.toFloat())-(scrollVNodeSize.y.toFloat());
 		var minY = 0;
 		var minY = 0;
-		
+
 		if (nodeDelta){
 		if (nodeDelta){
 			var scroll = this.node.getScroll();
 			var scroll = this.node.getScroll();
 			var scrollTo = (scroll.y.toFloat())+(nodeDelta.toFloat());
 			var scrollTo = (scroll.y.toFloat())+(nodeDelta.toFloat());
 			if (scrollTo<0) scrollTo = 0;
 			if (scrollTo<0) scrollTo = 0;
 			if (scrollTo>scrollHeight) scrollTo = scrollHeight;
 			if (scrollTo>scrollHeight) scrollTo = scrollHeight;
-			
+
 			//this.node.scrollTo(0, scrollTo);
 			//this.node.scrollTo(0, scrollTo);
 			this.fireEvent("scroll", [scrollTo]);
 			this.fireEvent("scroll", [scrollTo]);
 			this.node.tweenScroll(scrollTo, 1);
 			this.node.tweenScroll(scrollTo, 1);
-			
+
 			//this.node.tween("margin-top", -100);
 			//this.node.tween("margin-top", -100);
 
 
-			
+
 			var y = (scrollTo/(scrollHeight.toFloat()))*(maxY.toFloat());
 			var y = (scrollTo/(scrollHeight.toFloat()))*(maxY.toFloat());
-			
+
 			if (y<minY) y = minY;
 			if (y<minY) y = minY;
 			if (y>maxY) y = maxY;
 			if (y>maxY) y = maxY;
-			
+
 			// this.scrollVNode.set("tween", {"duration": "1", "transition": Fx.Transitions.Expo.easeOut});
 			// this.scrollVNode.set("tween", {"duration": "1", "transition": Fx.Transitions.Expo.easeOut});
 			// this.scrollVNode.tween("margin-top", ""+y+"px");
 			// this.scrollVNode.tween("margin-top", ""+y+"px");
 			this.scrollVNode.setStyle("margin-top", ""+y+"px");
 			this.scrollVNode.setStyle("margin-top", ""+y+"px");
@@ -328,49 +334,49 @@ o2.widget.ScrollBar = new Class({
 		if (scrollDelta){
 		if (scrollDelta){
 			if (scrollDelta>maxY) scrollDelta = maxY;
 			if (scrollDelta>maxY) scrollDelta = maxY;
 			var y = (scrollDelta/maxY)*scrollHeight;
 			var y = (scrollDelta/maxY)*scrollHeight;
-			
+
 			var scroll = this.node.getScroll();
 			var scroll = this.node.getScroll();
 			//this.node.scrollTo(0, y);
 			//this.node.scrollTo(0, y);
 			this.node.tweenScroll(y, 1);
 			this.node.tweenScroll(y, 1);
-            this.fireEvent("scroll", [y]);
+			this.fireEvent("scroll", [y]);
 		}
 		}
-		
+
 	},
 	},
 	checkScroll: function(){
 	checkScroll: function(){
 		var scrollSize = this.node.getScrollSize();
 		var scrollSize = this.node.getScrollSize();
 		var clientSize = this.node.getSize();
 		var clientSize = this.node.getSize();
 		var nodePosition = this.node.getPosition(this.node.getOffsetParent());
 		var nodePosition = this.node.getPosition(this.node.getOffsetParent());
-		
+
 		this.mousewheel = function(e){
 		this.mousewheel = function(e){
-            var delta = 1-e.event.wheelDelta;
+			var delta = 1-e.event.wheelDelta;
 
 
-            var step = ((this.options.distance.toFloat())/100)*(clientSize.y.toFloat());
+			var step = ((this.options.distance.toFloat())/100)*(clientSize.y.toFloat());
 
 
-            delta = (delta/(clientSize.y.toFloat()))*step;
-            this.scroll(delta, null);
-            e.stopPropagation();
-        }.bind(this);
-        this.domMousewheel = function(e){
-            var delta = e.detail;
+			delta = (delta/(clientSize.y.toFloat()))*step;
+			this.scroll(delta, null);
+			e.stopPropagation();
+		}.bind(this);
+		this.domMousewheel = function(e){
+			var delta = e.detail;
 
 
-            var step = ((this.options.distance.toFloat())/100)*(clientSize.y.toFloat());
+			var step = ((this.options.distance.toFloat())/100)*(clientSize.y.toFloat());
 
 
-            delta = (delta/6)*step;
-            this.scroll(delta, null);
-            e.stopPropagation();
-        }.bind(this);
+			delta = (delta/6)*step;
+			this.scroll(delta, null);
+			e.stopPropagation();
+		}.bind(this);
 
 
-        this.touchmove = function(e){
-            var delta = e.event.detail;
+		this.touchmove = function(e){
+			var delta = e.event.detail;
 
 
-            var step = ((this.options.distance.toFloat())/100)*(clientSize.y.toFloat());
+			var step = ((this.options.distance.toFloat())/100)*(clientSize.y.toFloat());
+
+			delta = (delta/(clientSize.y.toFloat()))*step;
+			this.scroll(delta, null);
+			e.preventDefault();
+			e.stopPropagation();
+		}.bind(this);
 
 
-            delta = (delta/(clientSize.y.toFloat()))*step;
-            this.scroll(delta, null);
-            e.preventDefault();
-            e.stopPropagation();
-        }.bind(this);
-		
 		if (scrollSize.y>clientSize.y){
 		if (scrollSize.y>clientSize.y){
 			if (!this.scrollVNode){
 			if (!this.scrollVNode){
 //				this.scrollVAreaNode = new Element("div", {
 //				this.scrollVAreaNode = new Element("div", {
@@ -380,15 +386,15 @@ o2.widget.ScrollBar = new Class({
 					"styles": this.css.scrollVAreaNode
 					"styles": this.css.scrollVAreaNode
 				}).inject(this.node, this.options.where);
 				}).inject(this.node, this.options.where);
 
 
-                //if (this.scrollVAreaNode.getStyle("position")=="absolute"){
-                //    this.scrollVAreaNode.position({
-                //        relativeTo: this.node,
-                //        position: "topright",
-                //        edge: "topleft"
-                //    });
-                //}
-				
-				
+				//if (this.scrollVAreaNode.getStyle("position")=="absolute"){
+				//    this.scrollVAreaNode.position({
+				//        relativeTo: this.node,
+				//        position: "topright",
+				//        edge: "topleft"
+				//    });
+				//}
+
+
 				this.scrollVNode = new Element("div", {
 				this.scrollVNode = new Element("div", {
 					"styles": this.css.scrollVNode
 					"styles": this.css.scrollVNode
 				}).inject(this.scrollVAreaNode);
 				}).inject(this.scrollVAreaNode);
@@ -396,37 +402,37 @@ o2.widget.ScrollBar = new Class({
 				var marginTop = this.node.getStyle("margin-top").toFloat();
 				var marginTop = this.node.getStyle("margin-top").toFloat();
 				var marginBottom = this.node.getStyle("margin-bottom").toFloat();
 				var marginBottom = this.node.getStyle("margin-bottom").toFloat();
 				var scrollVNodeSize = this.scrollVAreaNode.getSize();
 				var scrollVNodeSize = this.scrollVAreaNode.getSize();
-				
-			//	this.node.tween("margin-right", margin+scrollVNodeSize.x);
+
+				//	this.node.tween("margin-right", margin+scrollVNodeSize.x);
 				if (this.options.indent) this.scrollVAreaNode.setStyle("margin-right", margin);
 				if (this.options.indent) this.scrollVAreaNode.setStyle("margin-right", margin);
 				this.scrollVAreaNode.setStyle("margin-top", marginTop);
 				this.scrollVAreaNode.setStyle("margin-top", marginTop);
-				
+
 				this.scrollVAreaNode.setStyle("display", "none");
 				this.scrollVAreaNode.setStyle("display", "none");
-				
+
 				this.scrollVWidth = this.scrollVAreaNode.getStyle("width").toFloat();
 				this.scrollVWidth = this.scrollVAreaNode.getStyle("width").toFloat();
-				
+
 				this.setScrollVNodeMove();
 				this.setScrollVNodeMove();
-				
+
 				this.node.addEvent("mousewheel", this.mousewheel);
 				this.node.addEvent("mousewheel", this.mousewheel);
-                this.node.addEvent("touchmove", this.touchmove);
+				this.node.addEvent("touchmove", this.touchmove);
 
 
-                if (Browser.name=="firefox"){
-                    this.node.addEventListener("DOMMouseScroll", this.domMousewheel, false);
-                }
-                // this.node DOMMouseScroll
+				if (Browser.name=="firefox"){
+					this.node.addEventListener("DOMMouseScroll", this.domMousewheel, false);
+				}
+				// this.node DOMMouseScroll
+			}
+			if (this.scrollVAreaNode.getStyle("position")=="absolute"){
+				this.scrollVAreaNode.position({
+					relativeTo: this.node,
+					position: "topright",
+					edge: "topleft"
+				});
 			}
 			}
-            if (this.scrollVAreaNode.getStyle("position")=="absolute"){
-                this.scrollVAreaNode.position({
-                    relativeTo: this.node,
-                    position: "topright",
-                    edge: "topleft"
-                });
-            }
 			this.scrollVAreaNode.setStyle("height", clientSize.y);
 			this.scrollVAreaNode.setStyle("height", clientSize.y);
-		//	this.setScrollNodePosition();
+			//	this.setScrollNodePosition();
 		}else{
 		}else{
 			if (this.scrollVNode){
 			if (this.scrollVNode){
-				
+
 				if (!this.scrollAreaOutLock && !this.scrollAreaOverLock){
 				if (!this.scrollAreaOutLock && !this.scrollAreaOverLock){
 					if (!this.showScrollBar){
 					if (!this.showScrollBar){
 						this.scrollAreaOutLock = true;
 						this.scrollAreaOutLock = true;
@@ -439,34 +445,34 @@ o2.widget.ScrollBar = new Class({
 								var marginFx = new Fx.Tween(this.node, {property: "margin-right", duration: "100"});
 								var marginFx = new Fx.Tween(this.node, {property: "margin-right", duration: "100"});
 								marginFx.start(margin-this.scrollVWidth).chain(function(){
 								marginFx.start(margin-this.scrollVWidth).chain(function(){
 									this.scrollAreaOutLock = false;
 									this.scrollAreaOutLock = false;
-									
+
 									this.scrollVAreaNode.destroy();
 									this.scrollVAreaNode.destroy();
 									this.scrollVNode = null;
 									this.scrollVNode = null;
 									this.scrollVAreaNode = null;
 									this.scrollVAreaNode = null;
-								}.bind(this)); 
+								}.bind(this));
 							}else{
 							}else{
 								this.scrollAreaOutLock = false;
 								this.scrollAreaOutLock = false;
 								this.scrollVAreaNode.destroy();
 								this.scrollVAreaNode.destroy();
 								this.scrollVNode = null;
 								this.scrollVNode = null;
 								this.scrollVAreaNode = null;
 								this.scrollVAreaNode = null;
 							}
 							}
-							
+
 						}.bind(this));
 						}.bind(this));
 					};
 					};
 				};
 				};
 //				var scrollVNodeSize = this.scrollVAreaNode.getSize();
 //				var scrollVNodeSize = this.scrollVAreaNode.getSize();
 //				var margin = this.node.getStyle("margin-right").toFloat();
 //				var margin = this.node.getStyle("margin-right").toFloat();
-//						
+//
 //				this.scrollVAreaNode.destroy();
 //				this.scrollVAreaNode.destroy();
 //				this.scrollVNode = null;
 //				this.scrollVNode = null;
 //				this.scrollVAreaNode = null;
 //				this.scrollVAreaNode = null;
-				
-		//		this.node.tween("margin-right", margin-scrollVNodeSize.x);
+
+				//		this.node.tween("margin-right", margin-scrollVNodeSize.x);
 			}
 			}
 			this.node.removeEvents("mousewheel", this.mousewheel);
 			this.node.removeEvents("mousewheel", this.mousewheel);
-            if (Browser.name=="firefox"){
-                this.node.addEventListener("DOMMouseScroll", this.domMousewheel, false);
-            }
+			if (Browser.name=="firefox"){
+				this.node.addEventListener("DOMMouseScroll", this.domMousewheel, false);
+			}
 		}
 		}
 //		if (scrollSize.x>scrollSize.x){
 //		if (scrollSize.x>scrollSize.x){
 //			alert("ddd");
 //			alert("ddd");
@@ -480,6 +486,18 @@ o2.widget.ScrollBar = new Class({
 //				node.store("scrollbarH", scrollNode);
 //				node.store("scrollbarH", scrollNode);
 //			}
 //			}
 //		}
 //		}
-		
+
+	},
+	destroy: function(){
+		if (this.checkScrollFun) layout.desktop.removeEvent("resize", this.checkScrollFun);
+		//if (this.checkScrollFun) layout.desktop.removeEvent("onresize", this.checkScrollFun);
+		if (this.checkScrollStopFun) this.node.removeEvent("mouseover", this.checkScrollStopFun);
+		if (this.checkScrollStopFun) this.node.removeEvent("mouseout", this.checkScrollStopFun);
+		if (this.checkScrollShowFun) document.body.removeEvent("mousemove", this.checkScrollShowFun);
+		if (this.mousewheel) this.node.removeEvent("mousewheel", this.mousewheel);
+		if (this.touchmove) this.node.removeEvent("touchmove", this.touchmove);
+		if (this.scrollVAreaNode) this.scrollVAreaNode.destroy();
+		if (this.scrollVNode) this.scrollVNode.destroy();
+		o2.release(this);
 	}
 	}
 });
 });

+ 48 - 23
o2web/source/o2_core/o2/widget/Tablet.js

@@ -242,7 +242,7 @@ o2.widget.Tablet = o2.Tablet = new Class({
         }.bind(this)
         }.bind(this)
     },
     },
     uploadImage: function(  success, failure  ){
     uploadImage: function(  success, failure  ){
-        var image = this.getImage();
+        var image = this.getImage( null, true );
         if( image ){
         if( image ){
             if( this.options.action ){
             if( this.options.action ){
                 this.action = (typeOf(this.options.action)=="string") ? o2.Actions.get(action).action : this.options.action;
                 this.action = (typeOf(this.options.action)=="string") ? o2.Actions.get(action).action : this.options.action;
@@ -283,8 +283,8 @@ o2.widget.Tablet = o2.Tablet = new Class({
         }
         }
         return formData;
         return formData;
     },
     },
-    getImage : function( base64Code ){
-        var src = base64Code || this.getBase64Code();
+    getImage : function( base64Code, ignoreResultSize ){
+        var src = base64Code || this.getBase64Code( ignoreResultSize);
         src=window.atob(src);
         src=window.atob(src);
 
 
         var ia = new Uint8Array(src.length);
         var ia = new Uint8Array(src.length);
@@ -294,33 +294,59 @@ o2.widget.Tablet = o2.Tablet = new Class({
 
 
         return new Blob([ia], {type: this.fileType });
         return new Blob([ia], {type: this.fileType });
     },
     },
-    getBase64Code : function(){
+    getBase64Code : function( ignoreResultSize ){
         var ctx = this.ctx;
         var ctx = this.ctx;
         var canvas = this.canvas;
         var canvas = this.canvas;
         //var container = this.contentNode;
         //var container = this.contentNode;
         //var size = this.options.size;
         //var size = this.options.size;
-        var width, height;
-        //if( this.options.resultMaxSize ){
-        //    if( this.contentWidth >  )
-        //}else{
-        //    width = this.contentWidth;
-        //    height = this.contentHeight
-        //}
-        width = this.contentWidth;
-        height = this.contentHeight;
+        if( !ignoreResultSize && this.options.resultMaxSize ){
+
+            var width, height;
+            width = Math.min( this.contentWidth , this.options.resultMaxSize);
+            height = ( width / this.contentWidth) * this.contentHeight;
+
+            var src=canvas.toDataURL( this.fileType );
+            src=src.split(',')[1];
+            src = 'data:'+ this.fileType +';base64,' + src;
+
+            var tmpImageNode = new Element("img", {
+                width : this.contentWidth,
+                height : this.contentHeight,
+                src : src
+            });
+            var tmpCanvas = new Element("canvas", {
+                width : width,
+                height : height
+            }).inject( this.contentNode );
+            var tmpCtx = tmpCanvas.getContext("2d");
+
+            tmpCtx.drawImage(tmpImageNode,0,0, this.contentWidth,this.contentHeight,0,0,width,height);
 
 
-        //ctx.drawImage(this.imageNode,0,0, this.contentWidth,this.contentHeight,0,0,width,height);
-        var src=canvas.toDataURL( this.fileType );
-        src=src.split(',')[1];
+            var tmpsrc= tmpCanvas.toDataURL( this.fileType );
+            tmpsrc=tmpsrc.split(',')[1];
 
 
-        if(!src){
-            return "";
+            tmpImageNode.destroy();
+            tmpCanvas.destroy();
+            tmpCtx = null;
+
+            if(!tmpsrc){
+                return "";
+            }else{
+                return tmpsrc
+            }
         }else{
         }else{
-            return src
+            var src=canvas.toDataURL( this.fileType );
+            src=src.split(',')[1];
+
+            if(!src){
+                return "";
+            }else{
+                return src
+            }
         }
         }
     },
     },
-    getBase64Image: function( base64Code ){
-        if( !base64Code )base64Code = this.getBase64Code();
+    getBase64Image: function( base64Code, ignoreResultSize ){
+        if( !base64Code )base64Code = this.getBase64Code( ignoreResultSize );
         if( !base64Code )return null;
         if( !base64Code )return null;
         return 'data:'+ this.fileType +';base64,' + base64Code;
         return 'data:'+ this.fileType +';base64,' + base64Code;
     },
     },
@@ -345,7 +371,6 @@ o2.widget.Tablet = o2.Tablet = new Class({
         this.fireEvent("save", [ base64code, base64Image, imageFile]);
         this.fireEvent("save", [ base64code, base64Image, imageFile]);
     },
     },
     reset : function( itemNode ){
     reset : function( itemNode ){
-
         this.fileName = "untitled.png";
         this.fileName = "untitled.png";
         this.fileType = "image/png";
         this.fileType = "image/png";
         if( this.ctx ){
         if( this.ctx ){
@@ -789,7 +814,7 @@ o2.widget.Tablet.SizePicker = new Class({
                 }.bind(this)
                 }.bind(this)
             });
             });
 
 
-            previewContainer = new Element("div").inject(this.node);
+            var previewContainer = new Element("div").inject(this.node);
              new Element("div",{ text : "预览", styles : {
              new Element("div",{ text : "预览", styles : {
                 "float" : "left",
                 "float" : "left",
                  "margin-top" : "5px",
                  "margin-top" : "5px",

+ 9 - 5
o2web/source/o2_core/o2/xAction/RestActions.js

@@ -1,5 +1,5 @@
 MWF.xAction = MWF.xAction || {};
 MWF.xAction = MWF.xAction || {};
-MWF.require("MWF.xDesktop.Actions.RestActions", null, false);
+//MWF.require("MWF.xDesktop.Actions.RestActions", null, false);
 
 
 MWF.xAction.RestActions = MWF.Actions = {
 MWF.xAction.RestActions = MWF.Actions = {
     "actions": {},
     "actions": {},
@@ -144,7 +144,7 @@ MWF.xAction.RestActions = MWF.Actions = {
     },
     },
 
 
     "getHost": function(root){
     "getHost": function(root){
-        var addressObj = layout.desktop.serviceAddressList[root];
+        var addressObj = layout.serviceAddressList[root];
         var address = "";
         var address = "";
         if (addressObj){
         if (addressObj){
             address = layout.config.app_protocol+"//"+addressObj.host+(addressObj.port==80 ? "" : ":"+addressObj.port);
             address = layout.config.app_protocol+"//"+addressObj.host+(addressObj.port==80 ? "" : ":"+addressObj.port);
@@ -286,10 +286,13 @@ MWF.xAction.RestActions.Action = new Class({
                 urlEncode = (n>++i) ? functionArguments[i] : true;
                 urlEncode = (n>++i) ? functionArguments[i] : true;
                 cache = (n>++i) ? functionArguments[i] : (Browser.name != "ie");
                 cache = (n>++i) ? functionArguments[i] : (Browser.name != "ie");
             }
             }
-
+            return this.invoke(service,{"name": key, "async": async, "data": data, "file": file, "parameter": parameter, "success": success, "failure": failure, "urlEncode": urlEncode, "cache": cache});
             //if (!cache) debugger;
             //if (!cache) debugger;
-            return this.action.invoke({"name": key, "async": async, "data": data, "file": file, "parameter": parameter, "success": success, "failure": failure, "urlEncode": urlEncode, "cache": cache});
+            //return this.action.invoke({"name": key, "async": async, "data": data, "file": file, "parameter": parameter, "success": success, "failure": failure, "urlEncode": urlEncode, "cache": cache});
         }.bind(this);
         }.bind(this);
+    },
+    invoke: function(service, options){
+        return this.action.invoke(options);
     }
     }
 });
 });
 
 
@@ -301,4 +304,5 @@ Date.implement({
         }, null, false);
         }, null, false);
         return d;
         return d;
     }
     }
-});
+});
+

+ 21 - 2
o2web/source/o2_core/o2/xAction/services/x_faceset_control.js

@@ -5,9 +5,26 @@ MWF.xAction.RestActions.Action["x_faceset_control"] = new Class({
         this.action = new MWF.xAction.RestActions.Action["x_faceset_control"].RestActions("/xAction/services/"+root+".json", root, "");
         this.action = new MWF.xAction.RestActions.Action["x_faceset_control"].RestActions("/xAction/services/"+root+".json", root, "");
         this.action.actions = actions;
         this.action.actions = actions;
 
 
+        o2.UD.getPublicData("faceKeys", function(json){
+            this.faceKeys = (json) ? json.api : null;
+        }.bind(this), false);
         Object.each(this.action.actions, function(service, key){
         Object.each(this.action.actions, function(service, key){
             if (service.uri) if (!this[key]) this.createMethod(service, key);
             if (service.uri) if (!this[key]) this.createMethod(service, key);
         }.bind(this));
         }.bind(this));
+    },
+    invoke: function(service, options){
+        debugger;
+        if (this.faceKeys){
+            if(service.enctype && (service.enctype.toLowerCase()==="formdata")){
+                options.data.append("api_key", this.faceKeys.api_key);
+                options.data.append("api_secret", this.faceKeys.api_secret);
+            }else{
+                if (!options.data) options.data = {};
+                options.data.api_key = this.faceKeys.api_key;
+                options.data.api_secret = this.faceKeys.api_secret
+            }
+        }
+        return this.action.invoke(options);
     }
     }
     // saveDevice: function(data, success, failure){
     // saveDevice: function(data, success, failure){
     //     if (data.id){
     //     if (data.id){
@@ -27,7 +44,9 @@ MWF.xAction.RestActions.Action["x_faceset_control"] = new Class({
 MWF.xAction.RestActions.Action["x_faceset_control"].RestActions = new Class({
 MWF.xAction.RestActions.Action["x_faceset_control"].RestActions = new Class({
     Extends: MWF.xDesktop.Actions.RestActions,
     Extends: MWF.xDesktop.Actions.RestActions,
     getAddress: function(success, failure){
     getAddress: function(success, failure){
-        this.address = "http://dev.o2oa.net:8888/"+this.serviceName;
+        //this.address = "http://dev.o2oa.net:8888/"+this.serviceName;
+        this.address = "http://release.o2oa.net:8888/"+this.serviceName;
+        //this.address = "http://127.0.0.1:8888/"+this.serviceName;
         if (success) success.apply();
         if (success) success.apply();
     }
     }
-});
+});

+ 1 - 1
o2web/source/o2_core/o2/xAction/services/x_faceset_control.json

@@ -11,4 +11,4 @@
 
 
 
 
   "clazz": "x_faceset_control"
   "clazz": "x_faceset_control"
-}
+}

+ 2 - 0
o2web/source/o2_core/o2/xAction/services/x_file_assemble_control.json

@@ -1,6 +1,8 @@
 {
 {
   "addAttachment": {"uri": "/jaxrs/attachment/upload/folder/{folder}", "method": "POST", "enctype": "formData", "progress": true},
   "addAttachment": {"uri": "/jaxrs/attachment/upload/folder/{folder}", "method": "POST", "enctype": "formData", "progress": true},
   "addAttachment2": {"uri": "/jaxrs/attachment2/upload/folder/{folder}", "method": "POST", "enctype": "formData", "progress": true},
   "addAttachment2": {"uri": "/jaxrs/attachment2/upload/folder/{folder}", "method": "POST", "enctype": "formData", "progress": true},
+  "addAttachmentMd5": {"uri": "/jaxrs/attachment2/upload/folder/{folder}", "method": "POST", "enctype": "formData", "progress": true},
+  "checkFileExist": {"uri": "/jaxrs/attachment2/exist/file/{fileMd5}"},
   "addAttachment_jaxrs": {"uri": "/jaxrs/attachment", "method": "POST", "enctype": "formData", "progress": true},
   "addAttachment_jaxrs": {"uri": "/jaxrs/attachment", "method": "POST", "enctype": "formData", "progress": true},
   "listAttachment": {"uri": "/jaxrs/attachment/list/folder/{id}"},
   "listAttachment": {"uri": "/jaxrs/attachment/list/folder/{id}"},
   "listAttachmentTop": {"uri": "/jaxrs/attachment/list/top"},
   "listAttachmentTop": {"uri": "/jaxrs/attachment/list/top"},

+ 81 - 21
o2web/source/o2_core/o2/xAction/services/x_organization_assemble_authentication.json

@@ -1,24 +1,84 @@
 {
 {
-  "authentication": { "uri": "/jaxrs/authentication",  "method": "GET" },
-  "login": { "uri": "/jaxrs/authentication", "method": "POST" },
-  "loginAdmin": { "uri": "/jaxrs/authentication/administrator", "method": "POST" },
-  "logout" : { "uri" : "/jaxrs/authentication", "method": "DELETE" },
-  "getLoginMode" : {"uri":"/jaxrs/authentication/mode"}, //图片验证码默认可用,mode获取扫描二维码和手机验证码是否可用
-  "getAuthentication" : { "uri" : "/jaxrs/authentication" }, //获取当前登录用户
-  "loginByPassword" : { "uri" : "/jaxrs/authentication", "method": "POST" }, //用户登录.credential=xxxx,password=xxxx
-  "getLoginCaptcha" : {"uri":"/jaxrs/authentication/captcha/width/{width}/height/{height}"}, //验证码
-  "loginByCaptcha" : {"uri":"/jaxrs/authentication/captcha", "method": "POST"},
-  "createCredentialCode" : {"uri":"/jaxrs/authentication/code/credential/{credential}"}, //发送短信验证码
-  "checkCredential" : {"uri": "/jaxrs/authentication/check/credential/{credential}"}, //检查用户名是否存在
-  "loginByCode" : {"uri":"/jaxrs/authentication/code", "method": "POST"}, //使用短信验证码登录
-  "getLoginBind" : {"uri":"/jaxrs/authentication/bind"}, //扫描的二维码
-  "checkBindStatus" : {"uri" : "/jaxrs/authentication/bind/meta/{meta}"}, //通过二维码进行登录,轮询判断是否登录
-
-  "getOauthServer": { "uri": "/jaxrs/authentication/oauth/name/{name}",  "method": "GET" },
-  "listOauthServer": { "uri": "/jaxrs/authentication/oauth/list",  "method": "GET" },
-  "loginOauthServer": { "uri": "/jaxrs/authentication/oauth/login/name/{name}/code/{code}/redirecturi/{redirectUri}",  "method": "GET" },
-  "oauthBind": { "uri": "/jaxrs/authentication/oauth/bind/name/{name}/code/{code}/redirecturi/{redirectUri}",  "method": "GET" },
-
-
+  "authentication": {
+    "uri": "/jaxrs/authentication",
+    "method": "GET"
+  },
+  "login": {
+    "uri": "/jaxrs/authentication",
+    "method": "POST"
+  },
+  "loginAdmin": {
+    "uri": "/jaxrs/authentication/administrator",
+    "method": "POST"
+  },
+  "logout": {
+    "uri": "/jaxrs/authentication",
+    "method": "DELETE"
+  },
+  "getLoginMode": {
+    "uri": "/jaxrs/authentication/mode"
+  }, //图片验证码默认可用,mode获取扫描二维码和手机验证码是否可用
+  "getAuthentication": {
+    "uri": "/jaxrs/authentication"
+  }, //获取当前登录用户
+  "loginByPassword": {
+    "uri": "/jaxrs/authentication",
+    "method": "POST"
+  }, //用户登录.credential=xxxx,password=xxxx
+  "getLoginCaptcha": {
+    "uri": "/jaxrs/authentication/captcha/width/{width}/height/{height}"
+  }, //验证码
+  "loginByCaptcha": {
+    "uri": "/jaxrs/authentication/captcha",
+    "method": "POST"
+  },
+  "createCredentialCode": {
+    "uri": "/jaxrs/authentication/code/credential/{credential}"
+  }, //发送短信验证码
+  "checkCredential": {
+    "uri": "/jaxrs/authentication/check/credential/{credential}"
+  }, //检查用户名是否存在
+  "loginByCode": {
+    "uri": "/jaxrs/authentication/code",
+    "method": "POST"
+  }, //使用短信验证码登录
+  "getLoginBind": {
+    "uri": "/jaxrs/authentication/bind"
+  }, //扫描的二维码
+  "checkBindStatus": {
+    "uri": "/jaxrs/authentication/bind/meta/{meta}"
+  }, //通过二维码进行登录,轮询判断是否登录
+  "getOauthServer": {
+    "uri": "/jaxrs/authentication/oauth/name/{name}",
+    "method": "GET"
+  },
+  "listOauthServer": {
+    "uri": "/jaxrs/authentication/oauth/list",
+    "method": "GET"
+  },
+  "qywxOauthServer": {
+    "uri": "/jaxrs/authentication/oauth/qywx/config",
+    "method": "GET"
+  },
+  "dingdingOauthServer": {
+    "uri": "/jaxrs/authentication/oauth/dingding/config",
+    "method": "GET"
+  },
+  "loginOauthServer": {
+    "uri": "/jaxrs/authentication/oauth/login/name/{name}/code/{code}/redirecturi/{redirectUri}",
+    "method": "GET"
+  },
+  "loginOauthQywxServer": {
+    "uri": "/jaxrs/authentication/oauth/login/qywx/code/{code}",
+    "method": "GET"
+  },
+  "loginOauthDingdingServer": {
+    "uri": "/jaxrs/authentication/oauth/login/dingding/code/{code}",
+    "method": "GET"
+  },
+  "oauthBind": {
+    "uri": "/jaxrs/authentication/oauth/bind/name/{name}/code/{code}/redirecturi/{redirectUri}",
+    "method": "GET"
+  },
   "clazz": "x_organization_assemble_authentication"
   "clazz": "x_organization_assemble_authentication"
 }
 }

+ 7 - 0
o2web/source/o2_core/o2/xAction/services/x_organization_assemble_personal.js

@@ -29,4 +29,11 @@ MWF.xAction.RestActions.Action["x_organization_assemble_personal"] = new Class({
     deleteEmPower: function(id, success, failure, async){
     deleteEmPower: function(id, success, failure, async){
         this.action.invoke({"name": "deleteEmPower","parameter":{"id":id}, "async": async, "success": success, "failure": failure});
         this.action.invoke({"name": "deleteEmPower","parameter":{"id":id}, "async": async, "success": success, "failure": failure});
     },
     },
+
+    listToCurrentPersonPaging: function( page, size, key,success, failure, async){
+        this.action.invoke({"name": "listToCurrentPersonPaging", "parameter":{ "page":page, "size":size }, "data": { "key": key}, "async": async, "success": success, "failure": failure});
+    },
+    listWithCurrentPersonPaging: function( page, size, key,success, failure, async){
+        this.action.invoke({"name": "listWithCurrentPersonPaging", "parameter":{ "page":page, "size":size }, "data": { "key": key}, "async": async, "success": success, "failure": failure});
+    }
 });
 });

+ 4 - 2
o2web/source/o2_core/o2/xAction/services/x_organization_assemble_personal.json

@@ -16,7 +16,7 @@
   "checkRegisterPassword" : {"uri":"/jaxrs/regist/check/password/{password}"},
   "checkRegisterPassword" : {"uri":"/jaxrs/regist/check/password/{password}"},
   "checkRegisterMobile" : {"uri":"/jaxrs/regist/check/mobile/{mobile}"},
   "checkRegisterMobile" : {"uri":"/jaxrs/regist/check/mobile/{mobile}"},
   "register" : {"uri":"/jaxrs/regist", "method": "POST"},
   "register" : {"uri":"/jaxrs/regist", "method": "POST"},
- 
+
   "resetPassword" : {"uri":"/jaxrs/reset", "method": "PUT"},
   "resetPassword" : {"uri":"/jaxrs/reset", "method": "PUT"},
   "checkCredentialOnResetPassword" : {"uri":"/jaxrs/reset/check/credential/{credential}"},
   "checkCredentialOnResetPassword" : {"uri":"/jaxrs/reset/check/credential/{credential}"},
   "checkPasswordOnResetPassword" : {"uri":"/jaxrs/reset/check/password/{password}"},
   "checkPasswordOnResetPassword" : {"uri":"/jaxrs/reset/check/password/{password}"},
@@ -37,9 +37,11 @@
   "editEmPower": {"uri": "/jaxrs/empower/{id}", "method": "PUT"},
   "editEmPower": {"uri": "/jaxrs/empower/{id}", "method": "PUT"},
   "deleteEmPower": {"uri": "/jaxrs/empower/{id}", "method": "DELETE"},
   "deleteEmPower": {"uri": "/jaxrs/empower/{id}", "method": "DELETE"},
 
 
-
+  //2020年1月8日新版无这2个方法
   "getMyEmPowerLog": {"uri": "/jaxrs/empowerlog/list/currentperson", "method": "GET"},
   "getMyEmPowerLog": {"uri": "/jaxrs/empowerlog/list/currentperson", "method": "GET"},
   "getReceiveEmPowerLog": {"uri": "/jaxrs/empowerlog/list/to", "method": "GET"},
   "getReceiveEmPowerLog": {"uri": "/jaxrs/empowerlog/list/to", "method": "GET"},
+  "listToCurrentPersonPaging": {"uri": "/jaxrs/empowerlog/list/to/currentperson/paging/{page}/size/{size}", "method": "POST"},
+  "listWithCurrentPersonPaging": {"uri": "/jaxrs/empowerlog/list/currentperson/paging/{page}/size/{size}", "method": "POST"},
 
 
   "clazz": "x_organization_assemble_personal"
   "clazz": "x_organization_assemble_personal"
 }
 }

+ 3 - 1
o2web/source/o2_core/o2/xAction/services/x_processplatform_assemble_surface.json

@@ -186,6 +186,7 @@
 
 
   "manageDeleteReview": {"uri": "/jaxrs/review/{id}/application/{applicationFlag}/manage", "method": "DELETE"},
   "manageDeleteReview": {"uri": "/jaxrs/review/{id}/application/{applicationFlag}/manage", "method": "DELETE"},
   "addWorkCompletedReview": {"uri": "/jaxrs/review/create/workcompleted", "method": "POST"},
   "addWorkCompletedReview": {"uri": "/jaxrs/review/create/workcompleted", "method": "POST"},
+  "addWorkReview": {"uri": "/jaxrs/review/create/work", "method": "POST"},
 
 
   "getJobByTask": {"uri": "/jaxrs/work/task/{id}/complex"},
   "getJobByTask": {"uri": "/jaxrs/work/task/{id}/complex"},
   "getJobByWork": {"uri": "/jaxrs/work/{id}/complex"},
   "getJobByWork": {"uri": "/jaxrs/work/{id}/complex"},
@@ -265,6 +266,7 @@
 
 
   "loadWork": {"uri": "/jaxrs/work/workorworkcompleted/{workOrWorkCompleted}"},
   "loadWork": {"uri": "/jaxrs/work/workorworkcompleted/{workOrWorkCompleted}"},
   "getWorkLog": {"uri": "/jaxrs/worklog/list/workorworkcompleted/{workOrWorkCompleted}"},
   "getWorkLog": {"uri": "/jaxrs/worklog/list/workorworkcompleted/{workOrWorkCompleted}"},
+  "getRecordLog": {"uri": "/jaxrs/record/list/workorworkcompleted/{workOrWorkCompleted}"},
   "listAttachments": {"uri": "/jaxrs/attachment/list/workorworkcompleted/{workOrWorkCompleted}"},
   "listAttachments": {"uri": "/jaxrs/attachment/list/workorworkcompleted/{workOrWorkCompleted}"},
   "listTaskcompleted": {"uri": "/jaxrs/taskcompleted/list/workorworkcompleted/{workOrWorkCompleted}"},
   "listTaskcompleted": {"uri": "/jaxrs/taskcompleted/list/workorworkcompleted/{workOrWorkCompleted}"},
   "listReadcompleted": {"uri": "/jaxrs/readcompleted/list/workorworkcompleted/{workOrWorkCompleted}"},
   "listReadcompleted": {"uri": "/jaxrs/readcompleted/list/workorworkcompleted/{workOrWorkCompleted}"},
@@ -306,4 +308,4 @@
 
 
   "clazz": "x_processplatform_assemble_surface"
   "clazz": "x_processplatform_assemble_surface"
 
 
-}
+}

+ 3 - 1
o2web/source/o2_core/o2/xAction/services/x_program_center.json

@@ -33,9 +33,11 @@
   "getCollect": {"uri": "/jaxrs/config/collect"},
   "getCollect": {"uri": "/jaxrs/config/collect"},
   "getPerson": {"uri": "/jaxrs/config/person"},
   "getPerson": {"uri": "/jaxrs/config/person"},
   "getToken": {"uri": "/jaxrs/config/token"},
   "getToken": {"uri": "/jaxrs/config/token"},
+  "getPortal": {"uri": "/jaxrs/config/portal"},
   "setCollect": {"uri": "/jaxrs/config/collect", "method": "PUT"},
   "setCollect": {"uri": "/jaxrs/config/collect", "method": "PUT"},
   "setPerson": {"uri": "/jaxrs/config/person", "method": "PUT"},
   "setPerson": {"uri": "/jaxrs/config/person", "method": "PUT"},
   "setToken": {"uri": "/jaxrs/config/token", "method": "PUT"},
   "setToken": {"uri": "/jaxrs/config/token", "method": "PUT"},
+  "setPortal": {"uri": "/jaxrs/config/portal", "method": "PUT"},
 
 
   "getCenterServer": {"uri": "/jaxrs/config/centerserver"},
   "getCenterServer": {"uri": "/jaxrs/config/centerserver"},
   "setCenterServer": {"uri": "/jaxrs/config/centerserver", "method": "PUT"},
   "setCenterServer": {"uri": "/jaxrs/config/centerserver", "method": "PUT"},
@@ -98,4 +100,4 @@
 
 
 
 
 
 
-}
+}

+ 44 - 0
o2web/source/o2_core/o2/xAction/services/x_teamwork_assemble_control.js

@@ -0,0 +1,44 @@
+MWF.xAction.RestActions.Action["x_teamwork_assemble_control"] = new Class({
+    Extends: MWF.xAction.RestActions.Action,
+
+    attachmentTaskUpload: function(id, success, failure, formData, file,site){
+        this.action.invoke({"name": "attachmentTaskUpload", "parameter": {"id": id,"site":site},"data": formData,"file": file,"success": success,"failure": failure});
+    },
+    attachmentProjectUpload: function(id, success, failure, formData, file,site){
+        this.action.invoke({"name": "attachmentProjectUpload", "parameter": {"id": id,"site":site},"data": formData,"file": file,"success": success,"failure": failure});
+    },
+    attachmentGet: function(id, success, failure, async){
+        this.action.invoke({"name": "attachmentGet","async": async, "parameter": {"id": id},	"success": success,	"failure": failure});
+    },
+    attachmentRemove: function(id, success, failure, async){
+        this.action.invoke({"name": "attachmentRemove","async": async, "parameter": {"id": id},	"success": success,	"failure": failure});
+    },
+    attachmentDownload: function(id,documentid){
+        this.action.getActions(function(){
+            var url = this.action.actions.attachmentDownload.uri;
+            url = url.replace("{id}", encodeURIComponent(id));
+            url = url.replace("{documentid}", encodeURIComponent(documentid));
+            window.open(this.actionAttachment.address+url);
+        }.bind(this));
+    },
+    attachmentDownloadStream: function(id,documentid,callback){
+        this.action.getActions(function(){
+            var url = this.action.actions.attachmentDownloadStream.uri;
+            url = url.replace("{id}", encodeURIComponent(id));
+            url = url.replace("{documentid}", encodeURIComponent(documentid));
+            window.open(this.action.address+url);
+
+        }.bind(this));
+    },
+
+    attachmentDownloadUrl: function(id,documentid, callback){
+        this.action.getActions(function(){
+            var url = this.action.actions.attachmentDownload.uri;
+            url = url.replace("{id}", encodeURIComponent(id));
+            url = url.replace("{documentid}", encodeURIComponent(documentid));
+            if (callback) callback(this.action.address+url);
+        }.bind(this));
+    },
+
+    aa:function(){}
+});

+ 92 - 0
o2web/source/o2_core/o2/xAction/services/x_teamwork_assemble_control.json

@@ -0,0 +1,92 @@
+{
+  "getId" : {"uri":"/jaxrs/uuid/random"},
+
+  // ****************group*********************
+  "groupGet":{"uri":"/jaxrs/project_group/{id}","method": "GET"},
+  "groupWithIds": {"uri":"/jaxrs/project_group","method": "PUT"},
+  "groupSave":{"uri":"/jaxrs/project_group","method": "POST"},
+  "groupRemove":{"uri":"/jaxrs/project_group/{id}","method": "DELETE"},
+  "groupList":{"uri":"/jaxrs/project_group/list/my"},
+  // ****************group*********************
+
+  // ****************project list*********************
+  "projectGroupGet":{"uri":"/jaxrs/project/statitic/my","method": "GET"},
+  "projectSave":{"uri":"/jaxrs/project","method": "POST"},
+  "projectGet":{"uri":"/jaxrs/project/{id}"},
+  "projectRemove":{"uri":"/jaxrs/project/{id}","method": "DELETE"},
+  "projectListNext":{"uri":"/jaxrs/project/list/{id}/next/{count}","method": "PUT"},
+  "projectCompleteListNext":{"uri":"/jaxrs/project/list/completed/{id}/next/{count}","method": "PUT"},
+  "projectMyListNext":{"uri":"/jaxrs/project/list/my/{id}/next/{count}","method": "PUT"},
+  "projectArchiveListNext":{"uri":"/jaxrs/project/list/archive/{id}/next/{count}","method": "PUT"},
+  "projectUnGroupListNext":{"uri":"/jaxrs/project/list/groupness/{id}/next/{count}","method": "PUT"},
+  "projectRemoveListNext":{"uri":"/jaxrs/project/list/recycle/{id}/next/{count}","method": "PUT"},
+  "projectStarListNext":{"uri":"/jaxrs/project/list/star/{id}/next/{count}","method": "PUT"},
+  "projectListPrev":{"uri":"/jaxrs/project/list/{id}/prev/{count}","method": "PUT"},
+  "projectListPage":{"uri":"/jaxrs/project/list/{page}/size/{size}","method": "PUT"},
+  "projectStar":{"uri":"/jaxrs/project/star/{id}","method": "GET"},
+  "projectUnStar":{"uri":"/jaxrs/project/unstar/{id}","method": "GET"},
+  "projectIcon":{"uri":"/jaxrs/project/{id}/icon","method": "PUT"},
+  // ****************project list*********************
+
+  // ****************project*********************
+  "projectNaviGet":{"uri":"/jaxrs/task/statitic/{projectId}","method": "GET"},
+  "projectViewGet":{"uri":"/jaxrs/task/statitic/group/{projectId}","method": "GET"},
+  "projectExtFieldSave":{"uri":"/jaxrs/extfield/relevance","method": "POST"},
+  "projectExtFieldRemove":{"uri":"/jaxrs/extfield/relevance/{id}","method": "DELETE"},
+  "projectExtFieldGet":{"uri":"/jaxrs/extfield/rele/{id}","method": "GET"},
+  "projectExtFieldList":{"uri":"/jaxrs/extfield/list/fields/all","method": "GET"},
+  "projectExtFieldByProject":{"uri":"/jaxrs/extfield/list/{projectId}","method": "GET"},
+  // ****************project*********************
+
+  // ****************TaskGroup*********************
+  "taskGroupSave":{"uri":"/jaxrs/task_list","method": "POST"},
+  "taskGroupGet":{"uri":"/jaxrs/task_list/taskgroup/{taskGroupId}/tasklist/{taskListId}","method": "GET"},
+  "taskGroupRemove":{"uri":"/jaxrs/task_list/remove/{id}","method": "DELETE"},  //物理删除
+  "taskGroupDelete":{"uri":"/jaxrs/task_list/delete/{id}","method": "DELETE"},  //软删除
+
+  // ****************TaskGroup*********************
+
+  // ****************task*********************
+  "taskSave":{"uri":"/jaxrs/task","method": "POST"},
+  "taskGet":{"uri":"/jaxrs/task/{id}","method": "GET"},
+  "taskRemove":{"uri":"/jaxrs/task/{id}","method": "DELETE"},
+  "taskGroupList":{"uri":"/jaxrs/task_list/list/taskgroup/{taskgroup}","method": "GET"},
+  "taskListByListId":{"uri":"/jaxrs/task/list/project/{projectId}/tasklist/{taskListId}","method": "GET"},
+  "taskChangeGroup":{"uri":"/jaxrs/task_list/add2list/{listId}/behindTask","method": "PUT"},
+  "taskSubList":{"uri":"/jaxrs/task/list/sub/{taskId}","method": "GET"},
+  "taskDynamicListNext": {"uri":"/jaxrs/dynamic/list/{id}/next/{count}/task/{taskId}","method": "PUT"},
+  "taskTagAdd":{"uri":"/jaxrs/task_tag/rele/{taskId}/{tagId}/add","method": "GET"},
+  "taskTagRemove":{"uri":"/jaxrs/task_tag/rele/{taskId}/{tagId}/remove","method": "GET"},
+  "updateSingleProperty": {"uri":"/jaxrs/task/{id}/property","method": "PUT"},
+  "updateParticipantList": {"uri":"/jaxrs/task/participant/{id}/update","method": "PUT"},
+  "taskListNext": {"uri":"/jaxrs/task/list/{id}/next/{count}","method": "PUT"},
+  // ****************task*********************
+
+  // ****************task tag*********************
+  "taskTagSave":{"uri":"/jaxrs/task_tag","method": "POST"},
+  "taskTagGet":{"uri":"/jaxrs/task_tag/{id}","method": "GET"},
+  "taskTagRemove":{"uri":"/jaxrs/task_tag/{id}","method": "DELETE"},
+  "taskTagListByProjectId":{"uri":"/jaxrs/task_tag/list/project/{projectId}","method": "GET"},
+  "addTagToTask":{"uri":"/jaxrs/task_tag/rele/{taskId}/{tagId}/add","method": "GET"},
+  "removeTagToTask":{"uri":"/jaxrs/task_tag/rele/{taskId}/{tagId}/remove","method": "GET"},
+  // ****************task tag*********************
+
+  // ****************attachment*********************
+  "attachmentListByProjectId": {"uri":"/jaxrs/attachment/list/project/{id}"},
+  "attachmentListByTaskId": {"uri":"/jaxrs/attachment/list/task/{id}"},
+  "attachmentGet": {"uri":"/jaxrs/attachment/{id}"},
+  "attachmentRemove": {"uri": "/jaxrs/attachment/{id}", "method": "DELETE"},
+  "attachmentDownload": {"uri": "/jaxrs/attachment/download/{id}", "method": "GET"},
+  "attachmentDownloadStream": {"uri": "/jaxrs/attachment/download/{id}/stream/{stream}", "method": "GET"},
+  "attachmentTaskUpload": {"uri": "/jaxrs/attachment/upload/task/{id}/site/{site}", "method": "POST", "enctype": "formData"},
+  "attachmentProjectUpload": {"uri": "/jaxrs/attachment/upload/project/{id}/site/{site}", "method": "POST", "enctype": "formData"},
+  // ****************attachment*********************
+
+  //*******************chat*************************
+  "chatCreate":{"uri":"/jaxrs/chat","method": "POST"},
+  "chatGet": {"uri": "/jaxrs/chat/{id}", "method": "GET"},
+  //*******************chat*************************
+
+
+  "clazz": "x_teamwork_assemble_control"
+}

+ 13 - 3
o2web/source/o2_core/o2/xDesktop/$Authentication/application/css.wcss

@@ -151,7 +151,7 @@
 	"width" : "360px",
 	"width" : "360px",
 	"margin": "20px auto 0px auto",
 	"margin": "20px auto 0px auto",
 	"overflow" : "hidden",
 	"overflow" : "hidden",
-	"positon" : "static"
+	"position" : "relative"
   },
   },
   "formTableContainer2" : {
   "formTableContainer2" : {
 	"width" : "600px",
 	"width" : "600px",
@@ -720,5 +720,15 @@
 	"width" : "60px",
 	"width" : "60px",
 	"line-height" : "24px",
 	"line-height" : "24px",
 	"height" : "24px"
 	"height" : "24px"
-  }
-}
+  },
+    "formFooter": {
+      "text-align": "center",
+      "height": "60px",
+      "line-height": "60px",
+      "position": "absolute",
+      "bottom": "0px",
+      "font-size": "16px",
+      "color": "#999999",
+      "width": "100%"
+    }
+}

+ 13 - 3
o2web/source/o2_core/o2/xDesktop/$Authentication/default/css.wcss

@@ -144,7 +144,7 @@
 	"width" : "360px",
 	"width" : "360px",
 	"margin": "20px auto 0px auto",
 	"margin": "20px auto 0px auto",
 	"overflow" : "hidden",
 	"overflow" : "hidden",
-	"positon" : "static"
+	"position" : "relative"
   },
   },
   "formTableContainer2" : {
   "formTableContainer2" : {
 	"width" : "600px",
 	"width" : "600px",
@@ -718,5 +718,15 @@
 	"width" : "60px",
 	"width" : "60px",
 	"line-height" : "24px",
 	"line-height" : "24px",
 	"height" : "24px"
 	"height" : "24px"
-  }
-}
+  },
+    "formFooter": {
+      "text-align": "center",
+      "height": "60px",
+      "line-height": "60px",
+      "position": "absolute",
+      "bottom": "0px",
+      "font-size": "16px",
+      "color": "#999999",
+      "width": "100%"
+    }
+}

BIN
o2web/source/o2_core/o2/xDesktop/$Authentication/flat/android.png


BIN
o2web/source/o2_core/o2/xDesktop/$Authentication/flat/apple.png


+ 741 - 0
o2web/source/o2_core/o2/xDesktop/$Authentication/flat/css.wcss

@@ -0,0 +1,741 @@
+{
+  "formMaskNode": {
+	"width": "100%",
+	"height": "100%",
+	"opacity": 0.6,
+	"position": "absolute",
+	"background-color": "#ffffff",
+	"top": "0px",
+	"left": "0px"
+  },
+  "formAreaNode": {
+	"position": "absolute",
+	"opacity": 0,
+	"top": "0px"
+  },
+  "formNode": {
+	"background-color": "#ffffff",
+	"box-shadow": "5px 5px 30px #999",
+	"margin": "auto",
+	"border-radius" : "8px",
+	"overflow": "hidden",
+	"border": "1px solid #eeeeee"
+  },
+  "formTopNode": {
+	"color" : "#fff",
+	"height" : "110px",
+	"background-color": "#3c75b7",
+	"line-height": "30px",
+	"font-size": "14px",
+	"padding-top" : "35px",
+	"padding-bottom" : "15px",
+	"text-align": "left"
+  },
+  "formTopIconNode" : {
+	"width" : "36px",
+	"height" : "80px",
+	"margin" : "0px 18px 0px 30px",
+	"float": "left",
+	"background": "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/o2_logo.png) no-repeat center top"
+  },
+  "formTopTextNode" : {
+	//"font-family" : "PingFang-SC-Medium",
+	"border-left" : "1px solid #fff",
+	"padding-left" : "18px",
+	"font-size": "28px",
+	"overflow" : "hidden",
+	"min-height": "36px",
+	"margin-right": "20px"
+  },
+  "formTopCloseActionNode": {
+	"width": "32px",
+	"height": "32px",
+	"float": "right",
+	"margin-top" : "24px",
+	"margin-right" : "20px",
+	"background": "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_close_square_pre.png) no-repeat center center",
+	"cursor": "pointer"
+  },
+  "formTopContentNode" : {
+	"overflow" : "hidden",
+	"padding" : "0px",
+	"line-height": "30px",
+	"height": "30px",
+	"clear": "both",
+	"color": "#cccccc",
+	"font-size": "16px"
+  },
+  "formTopContentCustomNode" : {
+	"float" : "right",
+	"margin-top" : "0px",
+	"margin-right" : "10px",
+	"font-size" : "16px",
+	"cursor" : "pointer"
+  },
+  "formTopContentSepNode" : {
+	"float" : "right",
+	"width" : "1px",
+	"margin-top" : "8px",
+	"margin-right" : "10px",
+	"height" : "16px",
+	"border-left" : "1px solid #fff"
+  },
+  "formTopContentTitle" : {
+  },
+  "formTopContentValue" : {
+	"padding-right" : "20px",
+	"font-size": "12px"
+  },
+  "formNewNode": {
+	"width": "47px",
+	"height": "47px",
+	"background": "url(/x_component_Template/$Explorer/default/icon/new.png) no-repeat"
+  },
+  "formIconNode": {
+	"width": "47px",
+	"height": "47px"
+  },
+  "formEditNode": {
+	"width": "47px",
+	"height": "47px"
+  },
+  "formToolbar" : {
+	"padding-top" : "20px",
+	"height" : "35px",
+	"border-bottom" : "2px solid #999",
+	"padding-left" : "15px"
+  },
+  "formCategoryNode":{
+	"list-style" : "none",
+	"padding": "0px 10px 7px 10px",
+	"margin-left" : "10px",
+	"height": "20px",
+	"line-height": "20px",
+	"overflow": "hidden",
+	"font-family": "Microsoft YaHei",
+	"font-size": "18px",
+	"font-weight" : "normal",
+	"float": "left",
+	"cursor": "pointer",
+	"color":"#3c76c1",
+	"border-bottom" : "2px solid #fff"
+	//border-bottom-color: rgb(255, 255, 255); border-bottom-width: 2px; border-bottom-style: solid;
+	//"display":"inline-block","width":"80px","height":"30px","text-align":"center","line-height":"30px","cursor":"pointer","color":"#3c76c1","font-size":"14px","margin-right" : "10px"
+  },
+  "formCategoryNode_over" : {
+	"font-size": "18px",
+	"font-weight": "normal",
+	"border-bottom" : "2px solid #5c97e1"
+  },
+  "formCategoryNode_current" : {
+	"font-size": "18px",
+	"font-weight": "bold",
+	"border-bottom" : "2px solid #124c93"
+  },
+  "formContentNode": {
+	"border": "0px solid #666",
+	"width": "100%",
+	"margin": "auto",
+	"font-size": "14px",
+	"color": "#666",
+	"font-family": "Microsoft YaHei",
+	"overflow" : "hidden",
+	"position" : "relative"
+  },
+  "formTableContainer" : {
+	"width" : "360px",
+	"margin": "30px auto 0px auto",
+	"overflow" : "hidden",
+	"position" : "relative"
+  },
+  "formTableContainer2" : {
+	"width" : "360px",
+	"margin": "30px auto 0px auto",
+	"overflow" : "hidden",
+	"positon" : "static"
+  },
+  "formTableArea": {
+  },
+  "formBottomNode" : {
+	"height" : "50px",
+	"line-height" : "50px",
+	"border-top" : "1px solid #3d77c1",
+	"background-color" : "#fff",
+	"overflow" : "hidden"
+  },
+  "inputUser": {
+	"input::-ms-clear" : "display:none",
+	"color" : "#666",
+	"font-size" : "16px",
+	"width": "292px",
+	"border":"1px solid #d9d9d9",
+	"height": "40px",
+	"line-height": "40px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_username.png) no-repeat 18px center",
+	"background-color":"#FFF",
+	"padding-left" : "58px",
+	"border-radius" : "4px"
+  },
+  "inputMail" : {
+	"color" : "#666",
+	"font-size" : "16px",
+	"width": "292px",
+	"border":"1px solid #d9d9d9",
+	"height": "40px",
+	"line-height": "40px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_e_mail.png) no-repeat 18px center",
+	"background-color":"#FFF",
+	"padding-left" : "58px",
+	"border-radius" : "4px"
+  },
+  "inputMobile" : {
+	"color" : "#666",
+	"font-size" : "16px",
+	"width": "292px",
+	"border":"1px solid #d9d9d9",
+	"height": "40px",
+	"line-height": "40px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_phone.png) no-repeat 18px center",
+	"background-color":"#FFF",
+	"padding-left" : "58px",
+	"border-radius" : "4px"
+  },
+  "inputGenderType" : {
+	"color" : "#666",
+	"font-size" : "16px",
+	"border":"1px solid #d9d9d9",
+	"width" : "100px",
+	"padding-left" : "18px",
+	"height": "40px",
+	"line-height": "40px",
+	"background-color":"#FFF",
+	"border-radius" : "4px"
+  },
+  "inputPassword": {
+	"color" : "#666",
+	"font-size" : "16px",
+	"width": "292px",
+	"border":"1px solid #d9d9d9",
+	"height": "40px",
+	"line-height": "40px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_password_or.png) no-repeat 18px center",
+	"background-color":"#FFF",
+	"padding-left" : "58px",
+	"border-radius" : "4px"
+  },
+  "inputComfirmPassword": {
+	"color" : "#666",
+	"font-size" : "16px",
+	"width": "292px",
+	"border":"1px solid #d9d9d9",
+	"height": "40px",
+	"line-height": "40px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_password.png) no-repeat 18px center",
+	"background-color":"#FFF",
+	"padding-left" : "58px",
+	"border-radius" : "4px"
+  },
+  "inputVerificationCode" : {
+	"color" : "#666",
+	"font-size" : "16px",
+	"width": "108px",
+	"border":"1px solid #d9d9d9",
+	"height": "40px",
+	"line-height": "40px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_verify_code.png) no-repeat 18px center",
+	"background-color":"#FFF",
+	"padding-left" : "58px",
+	"border-radius" : "4px"
+  },
+  "inputVerificationCode2" : {
+	"color" : "#666",
+	"font-size" : "16px",
+	"width": "172px",
+	"border":"1px solid #d9d9d9",
+	"height": "40px",
+	"line-height": "40px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_verify_code.png) no-repeat 18px center",
+	"background-color":"#FFF",
+	"padding-left" : "58px",
+	"border-radius" : "4px"
+  },
+  "inputSendVerification" : {
+	"margin-left" : "20px",
+	"color" : "#fff",
+	"font-size" : "14px",
+	"width": "80px",
+	"height": "42px",
+	"line-height": "42px",
+	"background-color":"#3c75b7",
+	"border-radius" : "4px",
+	"border" : "0px"
+  },
+  "inputResendVerification" : {
+	"margin-left" : "10px",
+	"color" : "#666",
+	"font-size" : "14px",
+	"width": "90px",
+	"height": "42px",
+	"line-height": "42px",
+	"background-color":"#fff",
+	"border-radius" : "4px",
+	"border" : "1px solid #d9d9d9"
+  },
+  "inputSignUp" : {
+	"cursor" : "pointer",
+	"color" : "#fff",
+	"font-size" : "16px",
+	"width": "352px",
+	"height": "42px",
+	"line-height": "42px",
+	"background-color":"#3c75b7",
+	"border-radius" : "4px",
+	"border" : "0px"
+  },
+  "inputEmpty" : {
+	"border" : "1px solid #ff5c42"
+  },
+  "inputLogin" : {
+	"cursor" : "pointer",
+	"color" : "#fff",
+	"font-size" : "16px",
+	"width": "352px",
+	"height": "42px",
+	"line-height": "42px",
+	"background-color":"#3c75b7",
+	"border-radius" : "4px",
+	"border" : "0px"
+  },
+  "inputAutoLogin" : {
+	"color" : "#666",
+	"font-size" : "14px",
+	"font-weight" : "normal",
+	"cursor" : "pointer",
+	"float" : "left"
+  },
+  "warningMessageNode" : {
+	"float" : "left",
+	"margin-top" : "10px",
+	"font-size": "16px",
+	"color":"#ff5c42",
+	"padding-left": "20px",
+	"background" : "url(/x_component_Template/$MForm/o2platform/icon/icon_warning.png) left center no-repeat"
+  },
+  "noticeMessageNode" : {
+	"float" : "left",
+	"margin-top" : "10px",
+	"font-size": "16px",
+	"color":"#ff5c42",
+	"padding-left": "20px",
+	"background" : "url(/x_component_Template/$MForm/o2platform/icon/icon_right.png) left center no-repeat"
+  },
+  "title" : {
+	"height" : "30px",
+	"ling-height" : "30px"
+  },
+  "titleSep" : {
+	"border-left" : "2px solid #333",
+	"height" : "18px",
+	"ling-height" : "18px",
+	"float" : "left",
+	"margin-top" : "10px",
+	"margin-right" : "10px",
+	"margin-left" : "10px"
+  },
+  "titleNode_active" : {
+	"color" : "#333",
+	"height" : "24px",
+	"ling-height" : "24px",
+	"font-size" : "18px",
+	"margin-top" : "6px",
+	"font-weight" : "normal",
+	"float" : "left",
+	"cursor" : "pointer"
+  },
+  "titleNode_normal" : {
+	"color" : "#999",
+	"height" : "24px",
+	"margin-top" : "6px",
+	"ling-height" : "24px",
+	"font-size" : "18px",
+	"font-weight" : "normal",
+	"float" : "left",
+	"cursor" : "pointer"
+  },
+  "inputActive" : {
+	"border" : "1px solid #3c75b7"
+  },
+  "bindLoginTipPic" : {
+	"position" : "absolute",
+	"top" : "10px",
+	"right" : "75px",
+	"width": "149px",
+	"height": "28px",
+	"display": "none",
+	"opacity": 0,
+	"background": "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/img_marked_words.png) no-repeat"
+  },
+  "bindLoginAction" : {
+	"cursor" : "pointer",
+	"position" : "absolute",
+	"top" : "10px",
+	"right" : "5px",
+	"width": "60px",
+	"height": "60px",
+	"background": "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_scan_code_login.png) no-repeat"
+  },
+  "backtoPasswordLoginTipPic" : {
+	"display" : "none",
+	"position" : "absolute",
+	"top" : "10px",
+	"right" : "75px",
+	"width": "149px",
+	"height": "28px",
+	"display": "none",
+    "opacity": 0,
+	"background": "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/img_marked_words_2.png) no-repeat"
+  },
+  "backtoPasswordLoginAction" : {
+	"display" : "none",
+	"cursor" : "pointer",
+	"position" : "absolute",
+	"top" : "10px",
+	"right" : "5px",
+	"width": "60px",
+	"height": "60px",
+	"background": "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_password_login.png) no-repeat"
+  },
+  "signUpAction" : {
+	"margin-top" : "15px",
+	"color" : "#3c75b7",
+	"font-size" : "14px",
+	"font-weight" : "normal",
+	"float" : "right",
+	"margin-right" : "7px",
+	"cursor" : "pointer"
+  },
+  "gotoLoginAction" : {
+	"color" : "#3c75b7",
+	"font-size" : "14px",
+	"font-weight" : "normal",
+	"float" : "left",
+	"cursor" : "pointer"
+  },
+  "hasCountArea" : {
+	"color" : "#666",
+	"font-size" : "14px",
+	"font-weight" : "normal",
+	"float" : "left"
+  },
+  "forgetPassword" : {
+	"margin-top" : "15px",
+	"color" : "#666",
+	"font-size" : "14px",
+	"font-weight" : "normal",
+	"float" : "left",
+	"cursor" : "pointer"
+	//"margin-left" : "16px"
+  },
+  "passwordStrengthNode" : {
+	"margin-top" : "6px",
+	"float" : "left",
+	"padding-left" : "2px",
+	"width" : "35px",
+	"overflow" : "hidden"
+  },
+  "passwordStrengthColor" : {
+	"background-color" : "#b3b3b3",
+	"height" : "5px"
+  },
+  "passwordStrengthColor_low" : {
+	"background-color" : "#e6772e"
+  },
+  "passwordStrengthColor_middle" : {
+	"background-color" : "#3c75b7"
+  },
+  "passwordStrengthColor_high" : {
+	"background-color" : "#33c025"
+  },
+  "passwordStrengthText" : {
+	"font-size" : "14px",
+	"color" : "#999",
+	"text-align" : "center",
+	"margin-top" : "5px"
+  },
+  "passwordStrengthText_current" : {
+	"color" : "#666",
+	"text-align" : "center",
+	"margin-top" : "5px"
+  },
+  "verificationImage" : {
+	"height" : "40px"
+  },
+  "verificationChange" : {
+	"color" : "#3c75b7",
+	"cursor" : "pointer",
+	"line-height" : "40px",
+	"font-size" : "14px",
+	"margin-left" : "18px"
+  },
+  "bindLoginContainer" : {
+	"display" : "none",
+	"width" : "100%",
+	"overflow" : "hidden",
+	"positon" : "static"
+  },
+  "bindTitleNode" : {
+	"width" : "360px",
+	"color" : "#333",
+	"height" : "24px",
+	"ling-height" : "24px",
+	"font-size" : "18px",
+	"margin": "20px auto 20px auto",
+	"font-weight" : "normal",
+	"cursor" : "pointer"
+  },
+  "bindBodyArea" : {
+	"width" : "204px",
+	"height" : "204px",
+	"margin": "35px auto 0px auto",
+	"overflow" : "hidden"
+  },
+  "bindPicArea" : {
+	"float" : "left",
+	"width" : "200px"
+  },
+  "bindSepArea" : {
+	"display" : "none",
+	"float" : "left",
+	"margin-left" : "-1px",
+	"margin-right" : "-1px",
+	"width": "50px",
+	"height": "200px"
+  },
+  "bindExampleArea":{
+	"float" : "left",
+	"display" : "none",
+	"width": "144px",
+	"height": "200px",
+	"background": "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/pic_phone200px.png) no-repeat"
+  },
+  "bindTipArea" : {
+	"width" : "184px",
+	"margin": "25px auto 0px auto"
+  },
+  "bindTipIconArea" : {
+	"float" : "left",
+	"margin" : "5px",
+	"width": "28px",
+	"height": "28px",
+	"background": "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_scan.png) no-repeat"
+  },
+  "bindTipTextArea" : {
+	"margin-left" : "10px",
+	"float" : "left",
+	"font-size" : "14px",
+	"color" : "#666"
+  },
+  "bindTipLinkArea" : {
+	"cursor" : "pointer",
+	"display" : "inline",
+	"color" : "#3c75b7"
+  },
+  "stepsContainer" : {
+	"margin": "10px 0px 10px 30px",
+	"overflow" : "hidden"
+  },
+  "stepLink_1" : {
+	"position" : "absolute",
+	"top" : "11px",
+	"left" : "42px",
+	"border-top" : "2px solid #b3b3b3",
+	"height" : "2px",
+	"width" : "110px"
+  },
+  "stepLink_1_active" : {
+	"position" : "absolute",
+	"top" : "11px",
+	"left" : "42px",
+	"border-top" : "2px solid #3c75b7",
+	"height" : "2px",
+	"width" : "110px"
+  },
+  "stepLink_2" : {
+	"position" : "absolute",
+	"top" : "11px",
+	"left" : "47px",
+	"border-top" : "2px solid #b3b3b3",
+	"height" : "2px",
+	"width" : "120px"
+  },
+  "stepLink_2_active" : {
+	"position" : "absolute",
+	"top" : "11px",
+	"left" : "47px",
+	"border-top" : "2px solid #3c75b7",
+	"height" : "2px",
+	"width" : "120px"
+  },
+  "step_1" : {
+	"float" : "left",
+	"position" : "relative",
+	"color" : "#b3b3b3",
+	"font-size" : "15px",
+	"width" : "120px",
+	"height" : "25px",
+	"padding-top" : "30px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/pic_1_pre.png) 20px 1px no-repeat"
+  },
+  "step_1_active" : {
+	"float" : "left",
+	"position" : "relative",
+	"color" : "#3c75b7",
+	"font-size" : "15px",
+	"width" : "120px",
+	"height" : "25px",
+	"padding-top" : "30px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/pic_1_nor.png ) 20px 1px no-repeat"
+  },
+  "step_2" : {
+	"float" : "left",
+	"position" : "relative",
+	"color" : "#b3b3b3",
+	"font-size" : "15px",
+	"width" : "140px",
+	"height" : "25px",
+	"padding-top" : "30px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/pic_2_pre.png) 25px 1px no-repeat"
+  },
+  "step_2_active" : {
+	"float" : "left",
+	"position" : "relative",
+	"color" : "#3c75b7",
+	"font-size" : "15px",
+	"width" : "140px",
+	"height" : "25px",
+	"padding-top" : "30px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/pic_2_nor.png ) 25px 1px no-repeat"
+  },
+  "step_3" : {
+	"float" : "left",
+	"position" : "relative",
+	"color" : "#b3b3b3",
+	"font-size" : "15px",
+	"width" : "50px",
+	"height" : "25px",
+	"padding-top" : "30px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/pic_3_pre.png) 5px 1px no-repeat"
+  },
+  "step_3_active" : {
+	"float" : "left",
+	"position" : "relative",
+	"color" : "#3c75b7",
+	"font-size" : "15px",
+	"width" : "50px",
+	"height" : "25px",
+	"padding-top" : "30px",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/pic_3_nor.png ) 5px 1px no-repeat"
+  },
+  "stepFormResult" : {
+	"display" : "none",
+	"width" : "230px",
+	"text-align" : "center",
+	"margin" : "52px auto 0px auto"
+  },
+  "stepFormResult_fail" : {
+	"width" : "320px"
+  },
+  "resetPasswordSuccess" : {
+	"color" : "#333",
+	"font-size" : "18px",
+	"width" : "100%",
+	"padding-top" : "80px",
+	"text-align" : "center",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_right_70px.png ) center 0px no-repeat"
+  },
+  "resetPasswordFail" : {
+	"color" : "#333",
+	"font-size" : "18px",
+	"width" : "100%",
+	"padding-top" : "80px",
+	"text-align" : "center",
+	"background" : "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/icon_wrong_70px.png ) center 0px no-repeat"
+  },
+  "resetPasswordResultArea" : {
+	"margin-top" : "20px",
+	"font-size" : "16px",
+	"width" : "100%",
+	"text-align" : "center",
+	"overflow" : "hidden"
+  },
+  "resetPasswordResultWord" : {
+	"color" : "#333",
+	"float" : "left"
+  },
+  "resetPasswordResultAction" : {
+	"color" : "#3c75b7",
+	"float" : "left",
+	"cursor" : "pointer"
+  },
+  "cameraLoginIcon": {
+    "width": "60px",
+    "height": "80px",
+    "cursor": "pointer",
+    "border": "1px solid #red",
+    "background": "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/camera.png) no-repeat center center",
+    "position": "relative",
+    "top": "-24px",
+    "float": "right"
+  },
+  "closeCameraLoginIcon": {
+      "background": "url("+MWF.defaultPath+"/xDesktop/$Authentication/default/icon/closeCamera.png) no-repeat center center"
+  },
+  "cameraLoginVideoNode": {
+    "overflow": "hidden",
+    "background-color": "#eeeeee",
+    "position": "absolute",
+    "border-bottom-right-radius": "8px",
+    "border-bottom-left-radius": "8px",
+    "z-index": 100
+  },
+  "cameraLoginVideoInfoNode": {
+    "height": "60px",
+    "line-height": "60px",
+    "font-size": "16px",
+    "color": "#666666",
+    "text-align": "center"
+  },
+  "oauthListNode" : {
+	"overflow" : "hidden",
+	"padding-top" : "15px"
+  },
+  "oauthItemNode" : {
+	"float" : "left",
+	"width" : "60px",
+	"overflow" : "hidden",
+	"cursor" : "pointer",
+	"text-align" : "center",
+	"margin" : "5px 10px 5px 0px"
+  },
+  "oauthItemIconNode" : {
+//	"background-position" : "center center",
+//	"background-repeat" : "no-repeat",
+	"width" : "32px",
+	"height" : "32px"
+  },
+  "oauthItemTextNode" : {
+	"width" : "60px",
+	"line-height" : "24px",
+	"height" : "24px"
+  },
+  "formFooter": {
+    "text-align": "center",
+    "height": "60px",
+    "line-height": "60px",
+    "position": "absolute",
+    "bottom": "0px",
+    "font-size": "16px",
+    "color": "#999999",
+    "width": "100%"
+  }
+}

BIN
o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/camera.png


BIN
o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/closeCamera.png


BIN
o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/icon_check_nor.png


BIN
o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/icon_check_pre.png


BIN
o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/icon_close_round_nor.png


BIN
o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/icon_close_round_pre.png


BIN
o2web/source/o2_core/o2/xDesktop/$Authentication/flat/icon/icon_close_square_nor.png


Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff