source: trunk/expressoMail1_2/js/wfolders.js @ 670

Revision 670, 4.6 KB checked in by eduardoalex, 15 years ago (diff)

Ticket #413

  • Property svn:eol-style set to native
  • Property svn:executable set to *
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        { //Infelizmente javascript não parece suportar o polimorfismo...
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 //default value
46                        butt.value = get_lang(type);
47
48                butt.onclick = function () {
49                        wfolders.arrayWin[el.id].close();
50                        if (type == 'save'){
51                                save_as_msg(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption,true);
52                        }
53                        else if (type == 'send_and_file'){
54                                send_message(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption);
55                                wfolders.alert = true;
56                        }
57                        else if (type == 'move_to')     {
58                                var msg_number =  (border_id ? border_id.replace('_r','') : 'selected');
59                                if (border_id.match('search'))
60                                        move_search_msgs(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption);       
61                                else{
62                                        proxy_mensagens.proxy_move_messages('null',msg_number, border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption);
63                                        wfolders.alert = true;
64                                }
65                        }
66                        else if (type == 'change_folder'){
67                                change_folder(wfolders_tree._selected.id, wfolders_tree._selected.caption);
68                                wfolders.alert = true;
69                        }
70                        else if (type == 'import'){
71                                import_msgs(wfolders_tree);
72                        }
73                };
74                if (type == 'save')
75                        butt.value = get_lang('Save');
76                else if (type == 'send_and_file')
77                        butt.value = get_lang('Send and file');
78
79                var space = document.createElement('SPAN');
80                space.innerHTML = "&nbsp;&nbsp;";
81                el.appendChild(space);
82
83                var butt = document.createElement('BUTTON');
84                var buttext = document.createTextNode(get_lang('Close'));
85                butt.appendChild(buttext);
86                butt.onclick = function () {wfolders.arrayWin[el.id].close();};
87                el.appendChild(butt);
88
89                wfolders_tree = new dFTree({name: 'wfolders_tree'});
90                var n_root = new dNode({id:'root', caption:get_lang("My Folders")});
91                wfolders_tree.add(n_root,'anything'); //Places the root; second argument can be anything.
92
93                var folders = tree_folders.getNodesList(cyrus_delimiter);
94                for (var i=1; i<folders.length; i++)
95                {
96                        if (proxy_mensagens.is_local_folder(folders[i].id) && from_search) {
97                                continue;
98                        }
99                        var nn = new dNode({
100                                id: folders[i].id,
101                                caption: lang_folder(folders[i].caption),
102                                plusSign: folders[i].plusSign
103                        });
104                        wfolders_tree.add(nn, folders[i].parent);
105                       
106                }
107                Element('wfolders_content_tree').innerHTML = ""; //As buscas não podem incluir mover entre pastas locais, pelo menos por enquanto
108                wfolders_tree.draw(Element('wfolders_content_tree'));
109                n_root.changeState();
110                wfolders_tree.getNodeById('INBOX')._select();
111                _this.showWindow(el, type);
112        }
113
114        cWFolders.prototype.makeWindow = function(border_id, type)
115        {
116                this.makeWindowNew(border_id,type,false);
117        }
118       
119        cWFolders.prototype.showWindow = function (div, type)
120        {
121                if(! div) {
122                        alert(get_lang("This list has no participants."));
123                        return;
124                }
125               
126                if(! this.arrayWin[div.id]) {
127                        div.style.width = "275px";
128                        div.style.height = "250px";
129                        var title = get_lang('Select a folder')+":";
130                        var wHeight = div.offsetHeight + "px";
131                        var wWidth =  div.offsetWidth   + "px";
132                        div.style.width = div.offsetWidth - 5;
133
134                        win = new dJSWin({
135                                id: 'win_'+div.id,
136                                content_id: div.id,
137                                width: wWidth,
138                                height: wHeight,
139                                title_color: '#3978d6',
140                                bg_color: '#eee',
141                                title: title,
142                                title_text_color: 'white',
143                                button_x_img: '../phpgwapi/images/winclose.gif',
144                                border: true });
145                       
146                        this.arrayWin[div.id] = win;
147                        win.draw();
148                }
149                else {
150                        win = this.arrayWin[div.id];
151                }
152                win.open();
153        }
154       
155/* Build the Object */
156        var wfolders;
157        wfolders = new cWFolders();
Note: See TracBrowser for help on using the repository browser.