source: branches/2.5/expressoMail1_2/js/drag_area.js @ 5533

Revision 5533, 7.8 KB checked in by douglasz, 12 years ago (diff)

Ticket #1875 - Commit inicial do codigo das funcionalidades de marcadores e sinalizadores

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