123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- MWF.xDesktop.MessageMobile = new Class({
- Implements: [Options, Events],
- options: {
- "css":{
- "messageContainerNode": {
- "width": "100%",
- "position": "absolute",
- "z-index": 500000,
- "top": "0px",
- "left": "0px",
- "background-color": "#FFF",
- "overflow": "hidden"
- },
- "messageContentNode":{
- "overflow": "hidden"
- },
- "messageHideContentNode": {
- "height": "10px",
- "line-height": "6px",
- "text-align": "center",
- "display": "none",
- "border-bottom": "1px solid #999",
- "background-color": "#EEE"
- },
- "messageItemNode": {
- "padding": "5px",
- "overflow": "hidden",
- "border-bottom": "1px solid #CCC",
- "background": "transparent",
- "cursor": "default"
- },
- "messageItemTopNode": {
- "height": "24px",
- "line-height": "24px",
- "font-size": "16px",
- "color": "#4387cd"
- },
- "messageItemCloseNode": {
- "height": "30px",
- "width": "16px",
- "float": "right",
- "cursor": "pointer",
- "background": "url("+MWF.defaultPath+"/xDesktop/$Layout/default/message/close.png) no-repeat center center"
- },
- "messageItemSubjectNode": {
- "height": "24px",
- "margin-right": "18px"
- },
- "messageItemContentNode": {
- "overflow": "hidden",
- "color": "#333",
- "font-size": "12px",
- "line-height": "20px"
- },
- "messageItemBottomNode": {
- "height": "24px",
- "font-size": "12px",
- "line-height": "24px"
- },
- "messageItemDateNode": {
- "color": "#666"
- }
- }
- },
-
- initialize: function(options){
- this.setOptions(options);
- this.container = $(document.body);
- this.css = this.options.css;
- this.isShow = false;
- this.isMorph = false;
- },
- load: function(){
- this.node = new Element("div", {"styles": this.css.messageContainerNode});
- this.node.inject(this.container);
- this.contentNode = new Element("div", {"styles": this.css.messageContentNode}).inject(this.node);
- this.hideNode = new Element("div", {"styles": this.css.messageHideContentNode, "text": "——"}).inject(this.node);
- this.hideNode.addEvent("click", this.hide.bind(this));
- this.setPosition();
- },
- show: function(){
- if (!this.isMorph){
- this.isMorph = true;
- if (!this.morph){
- this.morph = new Fx.Morph(this.node, {
- duration: "200",
- transition: Fx.Transitions.Sine.easeOut
- });
- }
- this.node.setStyle("display", "block");
- this.hideNode.setStyle("display", "block");
- this.setPosition();
- this.morph.start({"top": "0px"}).chain(function(){
- this.isShow = true;
- this.isMorph = false;
- }.bind(this));
- }
- },
- hide: function(){
- if (!this.isMorph){
- this.isMorph = true;
- if (!this.morph){
- this.morph = new Fx.Morph(this.node, {
- duration: "200",
- transition: Fx.Transitions.Sine.easeOut
- });
- }
- var position = this.node.getPosition();
- var size = this.node.getSize();
- var top = 0-size.y;
- this.morph.start({"top": ""+top+"px"}).chain(function(){
- this.node.setStyle("display", "none");
- this.isShow = false;
- this.isMorph = false;
- }.bind(this));
- }
- },
- addMessage: function(msg){
- var item = new MWF.xDesktop.MessageMobile.Item(this,msg);
- if (!this.isShow){
- this.setPosition();
- //this.show();
- }
- return item;
- },
- setPosition: function(){
- if (!this.isShow){
- var size = this.node.getSize();
- var top = 0-size.y;
- this.node.setStyle("top", ""+top+"px");
- }
- },
- addTooltip: function(msg){}
- });
- MWF.xDesktop.MessageMobile.Item = new Class({
- initialize: function(message, msg){
- this.message = message;
- this.container = this.message.contentNode;
- this.css = this.message.css;
- this.msg = msg;
- this.load();
- },
- load: function(){
- this.node = new Element("div", {"styles": this.css.messageItemNode});
-
- this.topNode = new Element("div", {"styles": this.css.messageItemTopNode}).inject(this.node);
- this.closeNode = new Element("div", {"styles": this.css.messageItemCloseNode}).inject(this.topNode);
- this.subjectNode = new Element("div", {"styles": this.css.messageItemSubjectNode}).inject(this.topNode);
-
- this.contentNode = new Element("div", {"styles": this.css.messageItemContentNode}).inject(this.node);
- this.bottomNode = new Element("div", {"styles": this.css.messageItemBottomNode}).inject(this.node);
-
- this.dateNode = new Element("div", {"styles": this.css.messageItemDateNode}).inject(this.bottomNode);
-
- this.subjectNode.set({"text": this.msg.subject, "title": this.msg.subject});
- this.contentNode.set({"html": this.msg.content});
- this.contentNode.set({"title": this.contentNode.get("text")});
- this.dateNode.set("text", (new Date()).format("db"));
-
- this.node.inject(this.container, "top");
- this.setEvent();
- },
- setEvent: function(){
- this.closeNode.addEvents({
- "click": function(){
- this.close();
- }.bind(this)
- });
- },
- close: function(callback){
- var morph = new Fx.Morph(this.node, {
- duration: "200"
- // transition: Fx.Transitions.Sine.easeOut
- });
- var size = this.node.getSize();
- this.node.setStyle("height", ""+size.y+"px");
- morph.start({
- "opacity": 0,
- "height": "0px"
- }).chain(function(){
- this.node.destroy();
- delete this;
- }.bind(this));
- },
- closeItem: function(callback){
- var morph = new Fx.Morph(this.node, {
- duration: "200"
- // transition: Fx.Transitions.Sine.easeOut
- });
- var size = this.node.getSize();
- this.node.setStyle("height", ""+size.y+"px");
- morph.start({
- "opacity": 0,
- "height": "0px"
- }).chain(function(){
- //this.message.addUnread(-1);
- this.node.destroy();
- if (callback) callback();
- delete this;
- }.bind(this));
- }
- });
|