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

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

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

Line 
1        function cWFolders()
2        {
3                this.arrayWin = new Array();
4                this.el;
5                this.alert = false;
6        }
7
8        cWFolders.prototype.makeWindowNew = function(border_id, type,from_search)
9        { //Javascript doesn't seems to have polimorfism
10                _this = this;
11       
12                var el = document.createElement("DIV");
13                el.style.visibility = "hidden";
14                el.style.position = "absolute";
15                el.style.left = "0px";
16                el.style.top = "0px";
17                el.style.width = "0px";
18                el.style.height = "0px";
19                el.id = 'dJSWin_wfolders';
20                document.body.appendChild(el);
21               
22                el.innerHTML = "<table><tbody><tr><td>&nbsp</td><td>"+
23                "<div id='wfolders_content_tree' style='height:200px; width:250px; overflow:auto; background:#F7F7F7'></div>"+
24                "</td></tr></tbody></table>";
25
26                var space = document.createElement('SPAN');
27                space.innerHTML = "<BR>&nbsp;&nbsp;";
28                el.appendChild(space);
29
30                var butt = Element('dJSWin_wfolders_bok')
31                if (!butt){
32                        butt = document.createElement('INPUT');
33                        butt.id = 'dJSWin_wfolders_bok';
34                        butt.type = 'button';
35                        el.appendChild(butt);
36                }
37                if (type == 'save')
38                                butt.value = get_lang('Save');
39                else if (type == 'send_and_file')
40                butt.value = get_lang('Send and file');
41                else if (type == 'move_to')
42                        butt.value = get_lang('Move');
43                else if (type == 'change_folder')
44                        butt.value = get_lang('Change folder');
45                else if (type == 'import')
46                        butt.value = get_lang('Choose file');
47                else //default value
48                        butt.value = get_lang(type);
49
50                butt.onclick = function () {
51                        wfolders.arrayWin[el.id].close();
52                        if (type == 'save'){
53                                save_as_msg(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption,true);
54                        }
55                        else if (type == 'send_and_file'){
56                                send_message(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption);
57                                wfolders.alert = true;
58                        }
59                        else if (type == 'move_to')     {
60                                var msg_number =  (border_id ? border_id.replace('_r','') : 'selected');
61                                if (border_id.match('search'))
62                                        move_search_msgs(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption);       
63                                else{
64                                        proxy_mensagens.proxy_move_messages('null',msg_number, border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption);
65                                        wfolders.alert = true;
66                                }
67                        }
68                        else if (type == 'change_folder'){
69                                change_folder(wfolders_tree._selected.id, wfolders_tree._selected.caption);
70                                wfolders.alert = true;
71                        }
72                        else if (type == 'import'){
73                                //import_msgs(wfolders_tree);
74                                import_window(wfolders_tree._selected.id);
75                        }
76                };
77                if (type == 'save')
78                        butt.value = get_lang('Save');
79                else if (type == 'send_and_file')
80                        butt.value = get_lang('Send and file');
81
82                var space = document.createElement('SPAN');
83                space.innerHTML = "&nbsp;&nbsp;";
84                el.appendChild(space);
85
86                var butt = document.createElement('BUTTON');
87                var buttext = document.createTextNode(get_lang('Close'));
88                butt.appendChild(buttext);
89                butt.onclick = function () {wfolders.arrayWin[el.id].close();};
90                el.appendChild(butt);
91
92                wfolders_tree = new dFTree({name: 'wfolders_tree'});
93                if(!expresso_offline)
94                        var n_root = new dNode({id:'root', caption:get_lang("My Folders")});
95                else
96                        var n_root = new dNode({id:'local_root', caption:get_lang("local messages")});
97                wfolders_tree.add(n_root,'anything'); //Places the root; second argument can be anything.
98
99                var folders = tree_folders.getNodesList(cyrus_delimiter);
100                for (var i=1; i<folders.length; i++)
101                {
102                        if (proxy_mensagens.is_local_folder(folders[i].id) && (from_search || type == 'send_and_file')) {
103                                continue;
104                        }
105                        var nn = new dNode({
106                                id: folders[i].id,
107                                caption: lang_folder(folders[i].caption),
108                                plusSign: folders[i].plusSign
109                        });
110                        wfolders_tree.add(nn, folders[i].parent);
111                       
112                }
113                Element('wfolders_content_tree').innerHTML = ""; //As buscas não podem incluir mover entre pastas locais, pelo menos por enquanto
114                wfolders_tree.draw(Element('wfolders_content_tree'));
115                n_root.changeState();
116                if(!expresso_offline)
117                        wfolders_tree.getNodeById('INBOX')._select();
118                else
119                        wfolders_tree.getNodeById('local_Inbox')._select();
120                _this.showWindow(el, type);
121        }
122
123        cWFolders.prototype.makeWindow = function(border_id, type)
124        {
125                this.makeWindowNew(border_id,type,false);
126        }
127       
128        cWFolders.prototype.showWindow = function (div, type)
129        {
130                if(! div) {
131                        alert(get_lang("This list has no participants."));
132                        return;
133                }
134               
135                if(! this.arrayWin[div.id]) {
136                        div.style.width = "275px";
137                        div.style.height = "250px";
138                        var title = get_lang('Select a folder')+":";
139                        var wHeight = div.offsetHeight + "px";
140                        var wWidth =  div.offsetWidth   + "px";
141                        div.style.width = div.offsetWidth - 5;
142
143                        win = new dJSWin({
144                                id: 'win_'+div.id,
145                                content_id: div.id,
146                                width: wWidth,
147                                height: wHeight,
148                                title_color: '#3978d6',
149                                bg_color: '#eee',
150                                title: title,
151                                title_text_color: 'white',
152                                button_x_img: '../phpgwapi/images/winclose.gif',
153                                border: true });
154                       
155                        this.arrayWin[div.id] = win;
156                        win.draw();
157                }
158                else {
159                        win = this.arrayWin[div.id];
160                }
161                win.open();
162        }
163       
164/* Build the Object */
165        var wfolders;
166        wfolders = new cWFolders();
Note: See TracBrowser for help on using the repository browser.