Просмотр исходного кода

Merge branch 'fix/attachment_message' into 'develop'

Merge of fix/attachment_message to develop 增加附件上载进度显示

See merge request o2oa/o2oa!1169
胡起 5 лет назад
Родитель
Сommit
000498fbb2

+ 26 - 1
o2web/source/o2_core/o2/widget/$AttachmentController/blue_flat/css.wcss

@@ -499,5 +499,30 @@
         "float": "right",
         "margin-top": "10px",
         "margin-left": "10px"
+    },
+    "messageMaskNode": {
+        "position": "absolute",
+        "bottom": "0px",
+        "left": "0px",
+        "background-color": "#e6f2ff",
+        "opacity": 1,
+        "max-height": "4px"
+    },
+    "messageNode": {
+        "position": "absolute",
+        "bottom": "0px",
+        "left": "0px",
+        "background-color": "#a2cbf9",
+        "opacity": 1,
+        "max-height": "4px"
+    },
+    "messageText": {
+        "position": "absolute",
+        "top": "0px",
+        "left": "0px",
+        "color": "#ffffff",
+        "text-align": "center",
+        "z-index": 100,
+        "display": "none"
     }
-}
+}

+ 23 - 1
o2web/source/o2_core/o2/widget/$AttachmentController/cmcc/css.wcss

@@ -496,5 +496,27 @@
         "float": "right",
         "margin-top": "10px",
         "margin-left": "10px"
+    },
+    "messageMaskNode": {
+        "position": "absolute",
+        "top": "0px",
+        "left": "0px",
+        "background-color": "#666666",
+        "opacity": 0.6
+    },
+    "messageNode": {
+        "position": "absolute",
+        "top": "0px",
+        "left": "0px",
+        "background-color": "#666666",
+        "opacity": 0.8
+    },
+    "messageText": {
+        "position": "absolute",
+        "top": "0px",
+        "left": "0px",
+        "color": "#ffffff",
+        "text-align": "center",
+        "z-index": 100
     }
-}
+}

+ 23 - 1
o2web/source/o2_core/o2/widget/$AttachmentController/cms/css.wcss

@@ -488,5 +488,27 @@
     "float": "right",
     "margin-top": "10px",
     "margin-left": "10px"
+  },
+  "messageMaskNode": {
+    "position": "absolute",
+    "top": "0px",
+    "left": "0px",
+    "background-color": "#666666",
+    "opacity": 0.6
+  },
+  "messageNode": {
+    "position": "absolute",
+    "top": "0px",
+    "left": "0px",
+    "background-color": "#666666",
+    "opacity": 0.8
+  },
+  "messageText": {
+    "position": "absolute",
+    "top": "0px",
+    "left": "0px",
+    "color": "#ffffff",
+    "text-align": "center",
+    "z-index": 100
   }
-}
+}

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

@@ -498,5 +498,29 @@
         "float": "right",
         "margin-top": "10px",
         "margin-left": "10px"
+    },
+    "messageMaskNode": {
+      "position": "absolute",
+      "top": "0px",
+      "left": "0px",
+      "background-color": "#666666",
+      "opacity": 0.6,
+      "z-index": 98
+    },
+    "messageNode": {
+      "position": "absolute",
+      "top": "0px",
+      "left": "0px",
+      "background-color": "#666666",
+      "opacity": 0.8,
+      "z-index": 99
+    },
+    "messageText": {
+      "position": "absolute",
+      "top": "0px",
+      "left": "0px",
+      "color": "#ffffff",
+      "text-align": "center",
+      "z-index": 100
     }
-}
+}

+ 23 - 1
o2web/source/o2_core/o2/widget/$AttachmentController/mobile_blue_flat/css.wcss

@@ -515,5 +515,27 @@
         "float": "right",
         "margin-top": "10px",
         "margin-left": "10px"
+    },
+    "messageMaskNode": {
+        "position": "absolute",
+        "top": "0px",
+        "left": "0px",
+        "background-color": "#e6f2ff",
+        "opacity": 0.6
+    },
+    "messageNode": {
+        "position": "absolute",
+        "top": "0px",
+        "left": "0px",
+        "background-color": "#a2cbf9",
+        "opacity": 0.8
+    },
+    "messageText": {
+        "position": "absolute",
+        "top": "0px",
+        "left": "0px",
+        "color": "#ffffff",
+        "text-align": "center",
+        "z-index": 100
     }
-}
+}

+ 321 - 7
o2web/source/o2_core/o2/widget/AttachmentController.js

@@ -927,6 +927,7 @@ o2.widget.AttachmentController = o2.widget.ATTER  = new Class({
                                 };
                                 if (layout.desktop.message) layout.desktop.message.addTooltip(msg);
                                 if (layout.desktop.message) layout.desktop.message.addMessage(msg);
+                                if (o2 && o2.xDesktop && o2.xDesktop.notice) o2.xDesktop.notice("error", {"x": "right", "y": "top"}, "文件:“"+file.name+"”不符合允许上传类型", this.node);
                             }else if (size && file.size> size*1024*1024){
                                 var msg = {
                                     "subject": o2.LP.widget.refuseUpload,
@@ -934,6 +935,7 @@ o2.widget.AttachmentController = o2.widget.ATTER  = new Class({
                                 };
                                 if (layout.desktop.message) layout.desktop.message.addTooltip(msg);
                                 if (layout.desktop.message) layout.desktop.message.addMessage(msg);
+                                if (o2 && o2.xDesktop && o2.xDesktop.notice) o2.xDesktop.notice("error", {"x": "right", "y": "top"}, "文件:“"+file.name+"”超出允许的大小,(仅允许上传小于"+size+"M的文件)", this.node);
                             }else{
                                 var formData = new FormData();
                                 Object.each(obj, function(v, k){
@@ -1011,6 +1013,7 @@ o2.widget.AttachmentController = o2.widget.ATTER  = new Class({
                                     }.bind(this),null,false);
 
                                 }else{
+                                    restActions.targetModule = {"module": this, "file": file};
                                     restActions.invoke({
                                         "name": invokeUrl,
                                         "async": true,
@@ -1038,6 +1041,21 @@ o2.widget.AttachmentController = o2.widget.ATTER  = new Class({
         this.fileUploadNode.click();
     },
 
+    addFormDataMessage: function(file){
+        return this.addAttachmentMessage(file);
+    },
+
+    addAttachmentMessage: function(file){
+        var messageItem;
+        if (this.options.size=="min"){
+            messageItem = new o2.widget.AttachmentController.AttachmentMessageMin(file, this);
+        }else{
+            messageItem = new o2.widget.AttachmentController.AttachmentMessage(file, this);
+        }
+        if (!this.messageItemList) this.messageItemList = {};
+        this.messageItemList[messageItem.data.id] = messageItem;
+        return messageItem;
+    },
 
     openInOfficeControl: function(e, node){},
     deleteAttachment: function(e, node){
@@ -1127,11 +1145,11 @@ o2.widget.AttachmentController = o2.widget.ATTER  = new Class({
         return names;
     },
 
-    addAttachment: function(data){
+    addAttachment: function(data, messageId){
         if (this.options.size=="min"){
-            this.attachments.push(new o2.widget.AttachmentController.AttachmentMin(data, this));
+            this.attachments.push(new o2.widget.AttachmentController.AttachmentMin(data, this, messageId));
         }else{
-            this.attachments.push(new o2.widget.AttachmentController.Attachment(data, this));
+            this.attachments.push(new o2.widget.AttachmentController.Attachment(data, this, messageId));
         }
         this.checkActions();
     },
@@ -1164,7 +1182,7 @@ o2.widget.AttachmentController = o2.widget.ATTER  = new Class({
 
 o2.widget.AttachmentController.Attachment = new Class({
 	Implements: [Events],
-	initialize: function(data, controller){
+	initialize: function(data, controller, messageId){
 		this.data = data;
 
         if( !this.data.person && this.data.creatorUid )this.data.person = this.data.creatorUid;
@@ -1176,6 +1194,11 @@ o2.widget.AttachmentController.Attachment = new Class({
         this.isSelected = false;
         this.seq = this.controller.attachments.length+1;
         this.actions = [];
+
+        if (messageId && this.controller.messageItemList) {
+            this.message = this.controller.messageItemList[messageId];
+        }
+
         this.load();
 	},
     _getLnkPar: function(url){
@@ -1186,7 +1209,14 @@ o2.widget.AttachmentController.Attachment = new Class({
         };
     },
     load: function(){
-        this.node = new Element("div").inject(this.content);
+	    if (this.message){
+            this.node = new Element("div").inject(this.message.node, "after");
+            this.message.node.destroy();
+            delete this.controller.messageItemList[this.message.data.id];
+        }else{
+            this.node = new Element("div").inject(this.content);
+        }
+
         switch (this.controller.options.listStyle){
             case "list":
                 this.loadList();
@@ -1619,7 +1649,7 @@ o2.widget.AttachmentController.Attachment = new Class({
 o2.widget.AttachmentController.AttachmentMin = new Class({
     Extends: o2.widget.AttachmentController.Attachment,
 
-    initialize: function(data, controller){
+    initialize: function(data, controller, messageId){
         this.data = data;
 
         if( !this.data.person && this.data.creatorUid )this.data.person = this.data.creatorUid;
@@ -1629,10 +1659,23 @@ o2.widget.AttachmentController.AttachmentMin = new Class({
         this.content = this.controller.minContent;
         this.isSelected = false;
         this.seq = this.controller.attachments.length+1;
+
+        if (messageId && this.controller.messageItemList) {
+            this.message = this.controller.messageItemList[messageId];
+        }
+
         this.load();
     },
     load: function(){
-        this.node = new Element("div").inject(this.content);
+        if (this.message){
+            this.node = new Element("div").inject(this.message.node, "after");
+            this.message.node.destroy();
+            delete this.controller.messageItemList[this.message.data.id];
+        }else{
+            this.node = new Element("div").inject(this.content);
+        }
+
+        //this.node = new Element("div").inject(this.content);
         //this.loadList();
         switch (this.controller.options.listStyle){
             case "list":
@@ -1854,3 +1897,274 @@ o2.widget.AttachmentController.AttachmentMin = new Class({
     }
 
 });
+
+o2.widget.AttachmentController.AttachmentMessage = new Class({
+    Extends: o2.widget.AttachmentController.Attachment,
+    Implements: [Events],
+    initialize: function(file, controller){
+        var d = (new Date).format("db");
+        var extension = file.name.substring(file.name.lastIndexOf(".")+1, file.name.length);
+        this.file = file;
+        this.data = {
+            activity: "",
+            activityName: "",
+            activityToken: "",
+            activityType: "manual",
+            application: "",
+            completed: false,
+            control: {allowRead:true, allowEdit:false, allowControl:false},
+            controllerIdentityList: [],
+            controllerUnitList: [],
+            createTime: d,
+            deepPath: false,
+            divisionList: [],
+            editIdentityList: [],
+            editUnitList: [],
+            extension: extension,
+            id: (new o2.widget.UUID()).toString(),
+            job: "",
+            lastUpdatePerson: (layout) ? layout.session.user.name : "",
+            lastUpdateTime: d,
+            length: file.size,
+            name: file.name,
+            person: (layout) ? layout.session.user.name : "",
+            process: "",
+            readIdentityList: [],
+            readUnitList: [],
+            site: "$doc",
+            storage: file.size,
+            type: "",
+            updateTime: d,
+            workCreateTime: ""
+        }
+
+
+        if( !this.data.person && this.data.creatorUid )this.data.person = this.data.creatorUid;
+
+        this.controller = controller;
+        this.css = this.controller.css;
+        this.listStyle = this.controller.options.listStyle;
+        this.content = this.controller.content;
+        this.isSelected = false;
+        this.seq = this.controller.attachments.length+1;
+        this.actions = [];
+        this.load();
+    },
+    load: function(){
+        this.node = new Element("div").inject(this.content);
+        switch (this.controller.options.listStyle){
+            case "list":
+                this.loadList();
+                break;
+            case "icon":
+                this.loadIcon();
+                break;
+            case "preview":
+                this.loadPreview();
+                break;
+            case "sequence":
+                this.loadSequence();
+                break;
+        }
+
+        this.setEvent();
+        this.loadMessage();
+    },
+    loadMessage: function(){
+        var size = this.node.getSize();
+        this.node.setStyle("position", "relative");
+
+        this.messageMaskNode = new Element("div", { "styles": this.css.messageMaskNode }).inject(this.node);
+        this.messageMaskNode.setStyles({
+            "width": ""+size.x+"px",
+            "height": ""+size.y+"px"
+        });
+
+
+        this.messageNode = new Element("div", { "styles": this.css.messageNode }).inject(this.node);
+        switch (this.controller.options.listStyle){
+            case "list":
+            case "sequence":
+                this.messageNode.setStyles({
+                    "width": "0px",
+                    "height": ""+size.y+"px"
+                });
+                break;
+            case "icon":
+            case "preview":
+                this.messageNode.setStyles({
+                    "width": ""+size.x+"px",
+                    "height": ""+size.y+"px"
+                });
+                break;
+        }
+
+        this.messageText = new Element("div", {
+            "styles": this.css.messageText,
+            "text": "0%"
+        }).inject(this.node);
+        this.messageText.setStyles({
+            "width": ""+size.x+"px",
+            "height": ""+size.y+"px",
+            "line-height": ""+size.y+"px"
+        });
+    },
+    updateProgress: function(percent){
+        var size = this.node.getSize();
+        switch (this.controller.options.listStyle){
+            case "list":
+            case "sequence":
+                var w = size.x*(percent/100);
+                this.messageNode.setStyles({
+                    "width":""+w+"px"
+                });
+                break;
+            case "icon":
+            case "preview":
+                var h = size.y*(1-percent/100);
+                this.messageNode.setStyle("height", ""+h+"px");
+                break;
+        }
+
+        var p = (percent*100).toInt()/100;
+        this.messageText.set("text", ""+p+"%")
+    },
+    transferComplete: function(){
+        this.messageText.set("text", "loading...")
+    }
+});
+o2.widget.AttachmentController.AttachmentMessageMin = new Class({
+    Extends: o2.widget.AttachmentController.AttachmentMin,
+    Implements: [Events],
+    initialize: function(file, controller){
+        var d = (new Date).format("db");
+        var extension = file.name.substring(file.name.lastIndexOf(".")+1, file.name.length);
+        this.file = file;
+        this.data = {
+            activity: "",
+            activityName: "",
+            activityToken: "",
+            activityType: "manual",
+            application: "",
+            completed: false,
+            control: {allowRead:true, allowEdit:false, allowControl:false},
+            controllerIdentityList: [],
+            controllerUnitList: [],
+            createTime: d,
+            deepPath: false,
+            divisionList: [],
+            editIdentityList: [],
+            editUnitList: [],
+            extension: extension,
+            id: (new o2.widget.UUID()).toString(),
+            job: "",
+            lastUpdatePerson: (layout) ? layout.session.user.name : "",
+            lastUpdateTime: d,
+            length: file.size,
+            name: file.name,
+            person: (layout) ? layout.session.user.name : "",
+            process: "",
+            readIdentityList: [],
+            readUnitList: [],
+            site: "$doc",
+            storage: file.size,
+            type: "",
+            updateTime: d,
+            workCreateTime: ""
+        }
+
+
+        if( !this.data.person && this.data.creatorUid )this.data.person = this.data.creatorUid;
+
+        this.controller = controller;
+        this.css = this.controller.css;
+        this.listStyle = this.controller.options.listStyle;
+        this.content = this.controller.minContent;
+        this.isSelected = false;
+        this.seq = this.controller.attachments.length+1;
+        this.actions = [];
+        this.load();
+    },
+    load: function(){
+        this.node = new Element("div").inject(this.content);
+        switch (this.controller.options.listStyle){
+            case "list":
+                this.loadList();
+                break;
+            case "icon":
+                this.loadIcon();
+                break;
+            case "preview":
+                this.loadPreview();
+                break;
+            case "sequence":
+                this.loadSequence();
+                break;
+        }
+
+        this.setEvent();
+        this.loadMessage();
+    },
+    loadMessage: function(){
+        var size = this.node.getSize();
+        this.node.setStyle("position", "relative");
+
+        this.messageMaskNode = new Element("div", { "styles": this.css.messageMaskNode }).inject(this.node);
+        this.messageMaskNode.setStyles({
+            "width": ""+size.x+"px",
+            "height": ""+size.y+"px"
+        });
+
+
+        this.messageNode = new Element("div", { "styles": this.css.messageNode }).inject(this.node);
+        switch (this.controller.options.listStyle){
+            case "list":
+            case "sequence":
+                this.messageNode.setStyles({
+                    "width": "0px",
+                    "height": ""+size.y+"px"
+                });
+                break;
+            case "icon":
+            case "preview":
+                this.messageNode.setStyles({
+                    "width": ""+size.x+"px",
+                    "height": ""+size.y+"px"
+                });
+                break;
+        }
+
+        this.messageText = new Element("div", {
+            "styles": this.css.messageText,
+            "text": "0%"
+        }).inject(this.node);
+        this.messageText.setStyles({
+            "width": ""+size.x+"px",
+            "height": ""+size.y+"px",
+            "line-height": ""+size.y+"px"
+        });
+    },
+    updateProgress: function(percent){
+        var size = this.node.getSize();
+        switch (this.controller.options.listStyle){
+            case "list":
+            case "sequence":
+                var w = size.x*(percent/100);
+                this.messageNode.setStyles({
+                    "width":""+w+"px"
+                });
+                break;
+            case "icon":
+            case "preview":
+                var h = size.y*(1-percent/100);
+                this.messageNode.setStyle("height", ""+h+"px");
+                break;
+        }
+
+        var p = (percent*100).toInt()/100;
+        this.messageText.set("text", ""+p+"%")
+    },
+    transferComplete: function(){
+        this.messageText.set("text", "loading...")
+    }
+});

+ 65 - 22
o2web/source/o2_core/o2/xDesktop/Actions/RestActions.js

@@ -131,49 +131,72 @@ MWF.xDesktop.Actions.RestActions = new Class({
         xhr.send(data);
     },
     setMessageText: function(messageItem, text){
-        if (messageItem){
+        if (messageItem && messageItem.message){
             var progressNode = messageItem.contentNode.getFirst("div").getFirst("div");
             var progressPercentNode = progressNode.getFirst("div");
             var progressInforNode = messageItem.contentNode.getFirst("div").getLast("div");
             progressInforNode.set("text", text);
             messageItem.dateNode.set("text", (new Date()).format("db"));
         }
-
+        //@upload message
+        if (messageItem && messageItem.moduleMessage){
+            if (messageItem.moduleMessage.setMessageText) messageItem.moduleMessage.setMessageText();
+        }
     },
     setMessageTitle: function(messageItem, text){
-        if (messageItem) messageItem.subjectNode.set("text", text);
+        if (messageItem && messageItem.message) messageItem.subjectNode.set("text", text);
+        //@upload message
+        if (messageItem && messageItem.moduleMessage){
+            if (messageItem.moduleMessage.setMessageTitle) messageItem.moduleMessage.setMessageTitle();
+        }
     },
     clearMessageProgress: function(messageItem){
-        if (messageItem) {
+        if (messageItem && messageItem.message) {
             var progressNode = messageItem.contentNode.getFirst("div").getFirst("div");
             progressNode.destroy();
         }
+        //@upload message
+        if (messageItem && messageItem.moduleMessage){
+            if (messageItem.moduleMessage.clearMessageProgress) messageItem.moduleMessage.clearMessageProgress();
+        }
     },
 
 
     transferStart: function(e, xhr, messageItem){
-        if (messageItem) {
+        if (messageItem && messageItem.message) {
             this.setMessageText(messageItem, MWF.LP.desktop.action.sendStart);
             messageItem.status = "progress";
         }
+        //@upload message
+        if (messageItem && messageItem.moduleMessage){
+            if (messageItem.moduleMessage.transferStart) messageItem.moduleMessage.transferStart();
+        }
         this.fireEvent("loadstart");
     },
     transferFailed: function(e, xhr, messageItem){
-        if (messageItem) {
+        if (messageItem && messageItem.message) {
             this.setMessageText(messageItem, MWF.LP.desktop.action.sendError);
             this.setMessageTitle(messageItem, MWF.LP.desktop.action.sendError);
             this.clearMessageProgress(messageItem);
             messageItem.status = "failed";
         }
+        //@upload message
+        if (messageItem && messageItem.moduleMessage){
+            if (messageItem.moduleMessage.transferFailed) messageItem.moduleMessage.transferFailed();
+        }
         this.fireEvent("error");
     },
     transferCanceled: function(e, xhr, messageItem){
-        if (messageItem) {
+        if (messageItem && messageItem.message) {
             this.setMessageText(messageItem, MWF.LP.desktop.action.sendAbort);
             this.setMessageTitle(messageItem, MWF.LP.desktop.action.sendAbort);
             this.clearMessageProgress(messageItem);
             messageItem.status = "cancel";
         }
+        //@upload message
+        if (messageItem && messageItem.moduleMessage){
+            if (messageItem.moduleMessage.transferCanceled) messageItem.moduleMessage.transferCanceled();
+        }
         this.fireEvent("abort");
     },
     transferComplete: function(e, xhr, messageItem, currentDate, file){
@@ -209,13 +232,18 @@ MWF.xDesktop.Actions.RestActions = new Class({
             var s = ms/1000;
             timeStr = ""+s.toInt()+MWF.LP.desktop.action.second;
         }
-        if (messageItem) {
+        if (messageItem && messageItem.message) {
             this.setMessageText(messageItem, MWF.LP.desktop.action.uploadComplete + "  " + MWF.LP.desktop.action.speed + ": " + speed + u + "  " + MWF.LP.desktop.action.time + ": " + timeStr, MWF.LP.desktop.action.uploadComplete);
             this.setMessageTitle(messageItem, MWF.LP.desktop.action.uploadComplete);
             this.clearMessageProgress(messageItem);
 
             messageItem.status = "completed";
         }
+        //@upload message
+        debugger;
+        if (messageItem && messageItem.moduleMessage){
+            if (messageItem.moduleMessage.transferComplete) messageItem.moduleMessage.transferComplete();
+        }
         //var msg = {
         //    "subject": MWF.LP.desktop.action.uploadComplete,
         //    "content": MWF.LP.desktop.action.uploadComplete+" : "+file.name
@@ -240,7 +268,7 @@ MWF.xDesktop.Actions.RestActions = new Class({
         }
         speed = speed.round(2);
 
-        if (messageItem) {
+        if (messageItem && messageItem.message) {
             if (messageItem.contentNode) {
                 var progressNode = messageItem.contentNode.getFirst("div").getFirst("div");
                 var progressPercentNode = progressNode.getFirst("div");
@@ -249,6 +277,11 @@ MWF.xDesktop.Actions.RestActions = new Class({
                 progressInforNode.set("text", MWF.LP.desktop.action.sendStart + ": " + speed + u);
             }
         }
+        //@upload message
+        debugger;
+        if (messageItem && messageItem.moduleMessage){
+            if (messageItem.moduleMessage.updateProgress) messageItem.moduleMessage.updateProgress(percent);
+        }
         this.fireEvent("progress");
     },
     xhrStateChange: function(e, xhr, messageItem, callback){
@@ -274,6 +307,7 @@ MWF.xDesktop.Actions.RestActions = new Class({
                         MWF.runCallback(callback, "success", [{
                             "type": "success",
                             "id": dataId,
+                            "messageId": (messageItem && messageItem.moduleMessage) ? messageItem.moduleMessage.data.id : "",
                             "data": json.data
                         }, xhr.responseText]);
                         break;
@@ -388,20 +422,21 @@ MWF.xDesktop.Actions.RestActions = new Class({
 	},
 	addFormDataMessage: function(file, noProgress, xhr, showMsg){
         debugger;
-        var contentHTML = "";
-        if (noProgress){
-            contentHTML = "<div style=\"height: 20px; line-height: 20px\">"+MWF.LP.desktop.action.sendReady+"</div></div>" ;
-        }else{
-            contentHTML = "<div style=\"overflow: hidden\"><div style=\"height: 3px; border:1px solid #999; margin: 3px 0px\">" +
-            "<div style=\"height: 3px; background-color: #acdab9; width: 0px;\"></div></div>" +
-            "<div style=\"height: 20px; line-height: 20px\">"+MWF.LP.desktop.action.sendReady+"</div></div>" ;
-        }
-		var msg = {
-			"subject": MWF.LP.desktop.action.uploadTitle,
-			//"content": MWF.LP.desktop.action.uploadTitle+" : "+file.name+"<br/>"+contentHTML
-            "content": ( file.name ? (file.name+"<br/>") : "" )+contentHTML
-		};
         if (layout.desktop.message){
+            var contentHTML = "";
+            if (noProgress){
+                contentHTML = "<div style=\"height: 20px; line-height: 20px\">"+MWF.LP.desktop.action.sendReady+"</div></div>" ;
+            }else{
+                contentHTML = "<div style=\"overflow: hidden\"><div style=\"height: 3px; border:1px solid #999; margin: 3px 0px\">" +
+                    "<div style=\"height: 3px; background-color: #acdab9; width: 0px;\"></div></div>" +
+                    "<div style=\"height: 20px; line-height: 20px\">"+MWF.LP.desktop.action.sendReady+"</div></div>" ;
+            }
+            var msg = {
+                "subject": MWF.LP.desktop.action.uploadTitle,
+                //"content": MWF.LP.desktop.action.uploadTitle+" : "+file.name+"<br/>"+contentHTML
+                "content": ( file.name ? (file.name+"<br/>") : "" )+contentHTML
+            };
+
             var messageItem = layout.desktop.message.addMessage(msg);
 
             //var _self = this;
@@ -423,6 +458,14 @@ MWF.xDesktop.Actions.RestActions = new Class({
                 }
             };
         }
+debugger;
+        //@upload message
+        if (this.targetModule){
+            var moduleMessage = this.targetModule.module.addFormDataMessage(this.targetModule.file);
+            if (!messageItem) messageItem  ={};
+            messageItem.moduleMessage = moduleMessage;
+            this.targetModule = null;
+        }
 
         //messageItem.addEvent("close", function(flag, e){
         //    debugger;

+ 1 - 1
o2web/source/x_component_cms_Xform/Attachment.js

@@ -208,7 +208,7 @@ MWF.xApplication.cms.Xform.Attachment = MWF.CMSAttachment = new Class({
                 this.form.documentAction.getAttachment(o.id, this.form.businessData.document.id, function (json) {
                     if (json.data) {
                         if (!json.data.control) json.data.control = {};
-                        this.attachmentController.addAttachment(json.data);
+                        this.attachmentController.addAttachment(json.data, o.messageId);
                         this.form.businessData.attachmentList.push(json.data);
                     }
                     this.attachmentController.checkActions();

+ 1 - 1
o2web/source/x_component_process_Xform/Attachment.js

@@ -1165,7 +1165,7 @@ MWF.xApplication.process.Xform.Attachment = MWF.APPAttachment = new Class({
                 this.form.workAction.getAttachment(o.id, this.form.businessData.work.id, function (json) {
                     if (json.data) {
                         if (!json.data.control) json.data.control = {};
-                        this.attachmentController.addAttachment(json.data);
+                        this.attachmentController.addAttachment(json.data, o.messageId);
                     }
                     this.attachmentController.checkActions();