source: sandbox/2.3-MailArchiver/expressoMail1_2/js/drag_area.js @ 6779

Revision 6779, 7.5 KB checked in by rafaelraymundo, 12 years ago (diff)

Ticket #2946 - Liberado Expresso(branch 2.3) integrado ao MailArchiver?.

Line 
1//teste
2function DragArea(){
3
4        this.msg_number = false;
5        this.subject    = false;
6        this.folder             = '';
7        this.color_dd   = 'red';
8        this.from_list  = false;
9        this._mousemove = document.onmousemove;
10        this._mouseup = document.onmouseup;
11        this.div_dd = document.createElement("DIV");
12        this.id_messages_to_drag = new Array();
13        this.div_dd.style.position = 'absolute';
14        this.div_dd.style.zIndex = '15';
15        this.div_dd.style.border = '1px solid black';
16        this.div_dd.style.background ="#EEEEEE";
17        var value = "8.5";
18        this.div_dd.style.opacity = value/10;
19        this.div_dd.style.filter = 'alpha(opacity=' + value*10 + ')';   
20        this.div_dd.id = 'div_sel_messages';
21        this.div_dd.style.padding = "3px";
22        this.div_dd.style.width = "0px";
23        this.div_dd.style.height = "0px";
24        this.div_dd.style.display ='none';
25        this.envelope = new Image();
26        this.envelope.src = "templates/"+template+"/images/envelope.png";
27        document.body.appendChild(this.div_dd);
28       
29}
30
31DragArea.prototype.makeMenuBox = function(element){
32
33        element.oncontextmenu = function(e)
34        {
35                return false;
36        }
37       
38        var _this = this;
39       
40        element.onmousedown = function (e)
41        {
42                var _button = is_ie ? window.event.button : e.which;
43
44                if(_button == 2 || _button == 3)
45                {
46                        var boxFolder = element.id.substr(1,element.id.indexOf('tree_folders')-1);
47                        var boxName = element.firstChild.nextSibling.innerHTML;
48                        ConstructBoxMenu(is_ie ? window.event : e,boxName,boxFolder);
49                }
50                               
51                return true;
52        };     
53       
54}
55
56DragArea.prototype.makeDragged = function(element, msg_number, subject, from_list, folder){
57        element.oncontextmenu = function(e) {
58                return false;
59        }
60        var _this = this;
61        element.onmousedown = function (e){
62
63                var _button = is_ie ? window.event.button : e.which;
64       
65                if(_button == 2 || _button == 3) {
66                        var _checkb = Element("check_box_message_" + msg_number + getTabSufix());
67
68                        if(_checkb) {
69                                if(!_checkb.checked) {
70                                        _checkb.checked = true;
71                                        changeBgColor(is_ie ? window.event : e, msg_number);
72                                }
73                                ConstructRightMenu(is_ie ? window.event : e);
74                        }                       
75                        return false;
76                }
77
78                if(!_this.msg_number) {
79                        _this.msg_number = msg_number;
80
81                        if(!subject)
82                                _this.subject = get_lang("No Subject");
83                        //else if(subject.length > 40)
84                        //      _this.subject = subject.substring(0,40) + '...';                               
85                        else
86                                _this.subject    = subject;
87
88                        _this.from_list  = from_list;
89                        _this.div_dd.style.width = "auto";
90                        _this.div_dd.style.height = "auto";                     
91                        _this.folder = folder;
92                }
93                return true;
94        };     
95}
96DragArea.prototype.showLayerDrag = function(e){
97
98        var msg_number = _dragArea.from_list ? _dragArea.msg_number : _dragArea.msg_number.replace('_r','');
99        var _checkbox_element = Element("check_box_message_"+msg_number+getTabSufix());
100        if(_dragArea.from_list) {
101
102                if((_checkbox_element) && (! _checkbox_element.checked)) {
103                        if (is_ie)
104                                changeBgColor(window.event,msg_number);
105                        else
106                                changeBgColor(e,msg_number);
107                        _checkbox_element.checked = true;
108                }
109                id_messages_to_drag = get_selected_messages();
110                id_messages_to_drag = id_messages_to_drag ? id_messages_to_drag.split(',') : new Array();
111       
112                if(id_messages_to_drag.length > 1)
113                        this.subject = id_messages_to_drag.length +" mensagens selecionadas";
114        }
115
116        this.div_dd.innerHTML = "<img align='center' src='"+this.envelope.src+"'>&nbsp;<span id='content_dd'><font color='red' weight='bold'><b>"+this.subject+"</b></span></font>";
117        this.div_dd.style.display ='';
118}
119
120DragArea.prototype.onSelectStart = function(value){
121        if(!value) {
122                document.body.onselectstart = function (e){return false;}
123                document.body.ondragstart = function (e){return false;}
124        }
125        else {
126                document.body.onselectstart = function (e){return true;}
127                document.body.ondragstart = function (e){return true;}
128        }
129}
130
131DragArea.prototype.mouseMoveDrag = function(e){         
132       
133        var     e  = is_ie ? window.event : e;
134        var     _target = is_ie ? e.srcElement : e.target;
135        if(is_ie)
136                this.onSelectStart(false);
137
138        this.div_dd.style.left  = e.clientX + 5 + document.body.scrollLeft;
139        this.div_dd.style.top   = e.clientY + 10 + document.body.scrollTop;             
140
141        if(this.div_dd.style.display == 'none')
142                this.showLayerDrag(e);
143       
144        var reg = /^((n|l)(?!root))(.*)tree_folders$/;
145        var _color = this.color_dd;
146
147        if(reg.test(_target.parentNode.id) )
148                _color ='green';
149        else
150                _color ='red';
151       
152        if(this.color_dd != _color) {
153                Element('content_dd').innerHTML = "<font color='"+_color+"' weight='bold'><b>"+this.subject+"</b></font>";
154                this.color_dd = _color;
155        }
156
157        return false;
158}       
159
160var _dragArea = new DragArea();
161
162document.onmousemove = function(e) {
163        var     _target = is_ie ? window.event.srcElement : e.target;
164        if(_dragArea._mousemove)
165                _dragArea._mousemove(e);
166       
167        else if(_dragArea.msg_number && _target.type != 'checkbox') {
168                _dragArea.mouseMoveDrag(e);
169                if (is_ie)
170                        window.event.returnValue = false;
171                else
172                        e.returnValue = false;
173        }
174};
175
176document.onmouseup = function(e) {
177
178        var     _event  = is_ie ? window.event : e;
179        var     _target = is_ie ? _event.srcElement : _event.target;
180        var _button = is_ie ? _event.button : _event.which;
181        var _msg_id;
182
183        if(_button != 2 && _button != 3) {             
184
185                if(Element("div_rightbutton") && Element("div_rightbutton").style.display != 'none')
186                {
187                                               
188                        if(!_target.id.match(/link_rightbutton_(.*)$/)){
189                       
190                                var id_messages_to_drag = get_selected_messages();
191                                id_messages_to_drag = id_messages_to_drag ? id_messages_to_drag.split(',') : id_messages_to_drag;
192               
193                                for(var i = 0; id_messages_to_drag && i < id_messages_to_drag.length; i++) {                   
194                                        _msg_id = getMessageIdFromRowId(id_messages_to_drag[i]);
195                                        Element("check_box_message_"+id_messages_to_drag[i]).checked = false;
196                                        changeBgColor(_event ,_msg_id);
197                                }
198                                Element("chk_box_select_all_messages").checked = false;
199                                Element('div_rightbutton').style.display = 'none';
200                                _dragArea.msg_number = false;
201                                _dragArea.div_dd.style.display ='none';
202                                return false;
203                        }
204                }
205                if(is_ie)
206                        _dragArea.onSelectStart(true);
207       
208                if (Element("div_rightbutton_folder") && Element("div_rightbutton_folder").style.display != 'none')
209                {       
210                Element('div_rightbutton_folder').style.display = 'none';
211                }
212       
213        }       
214
215
216        if(_dragArea.msg_number) {
217
218                var reg = /^((n|l)(?!root))(.*)tree_folders$/;
219                var new_folder;
220               
221                if(reg.test(_target.parentNode.id) ){
222                        new_folder = _target.parentNode.id.substring(1,_target.parentNode.id.length).replace('tree_folders','');                       
223                        new_folder_name = new_folder.replace("INBOX"+cyrus_delimiter, "");
224                        if(new_folder_name == 'INBOX')
225                                new_folder_name = get_lang("Inbox");
226                        if ( _dragArea.from_list )
227                        {
228                                if (numBox != 0)
229                                        move_search_msgs("content_id_search_" + numBox, new_folder, new_folder_name);
230                                else   
231                                        proxy_mensagens.proxy_move_messages("null", 'selected', 0, new_folder, new_folder_name);
232                        }
233                        else
234                        {
235                                var msg_number = _dragArea.from_list ? _dragArea.msg_number : _dragArea.msg_number.replace('_r','');
236                                proxy_mensagens.proxy_move_messages("null", msg_number, msg_number + "_r", new_folder, new_folder_name);
237                        }
238                }
239               
240                else if(_dragArea.from_list && _target.type != 'checkbox' && _dragArea.div_dd.style.display !='none'){
241                        var id_messages_to_drag = get_selected_messages();
242                        if(id_messages_to_drag){
243                                id_messages_to_drag = id_messages_to_drag.split(',');
244                       
245                                for(var i = 0; id_messages_to_drag && i < id_messages_to_drag.length; i++) {                           
246                                        _msg_id = getMessageIdFromRowId(id_messages_to_drag[i]);
247                                        Element("check_box_message_"+id_messages_to_drag[i]).checked = false;
248                                        changeBgColor(_event ,_msg_id);
249                                }
250                                Element("chk_box_select_all_messages").checked = false;                 
251                        }
252                }
253       
254                _dragArea.msg_number = false;
255                _dragArea.div_dd.style.display ='none';
256                if(is_ie)
257                        _dragArea.onSelectStart(true);
258        }
259
260};
Note: See TracBrowser for help on using the repository browser.