source: trunk/expressoMail1_2/js/TreeS.js @ 689

Revision 689, 6.8 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/**************************************************************************\
2 Início
3\**************************************************************************/
4
5        function treeS()
6        {
7                this.arrayW = new Array();
8                this.el;
9                this.FOLDER = "";
10        }
11
12        treeS.prototype.make_Window = function(){       
13                _this = this;
14                connector.loadScript("TreeShow");
15                var title = ':: '+get_lang("Manager your folders and export messages")+' ::';
16                tree                              = document.createElement("DIV");
17                tree.style.visibility = "hidden";
18                tree.style.position   = "absolute";
19                tree.style.left           = "0px";
20                tree.style.top            = "0px";
21                tree.style.width          = "0px";
22                tree.style.height         = "0px";                                                                     
23                tree.id                           = "window_tree";
24                document.body.appendChild(tree);
25
26                tree.innerHTML = "&nbsp;&nbsp;&nbsp;<b><font color='BLACK' nowrap>"+title+"</font></b>"+
27                "&nbsp;&nbsp;<br><u></u>&nbsp;&nbsp;";
28
29                var div_buttons = document.createElement("DIV");
30                div_buttons.id = "div_buttons";
31                div_buttons.style.position = "absolute";               
32                div_buttons.style.left = "440px";
33                div_buttons.style.top = "20px"         
34                div_buttons.style.width = "130px";
35                div_buttons.style.height = "214px";
36                div_buttons.innerHTML = "<table border='0' cellpading='0' cellspacing='0'>"+
37                                                            "<tr>"+
38                                                            "<td><input type='button' value='"+get_lang('New folder')+"' onclick='proxy_mensagens.proxy_create_folder()'></td>"+
39                                                            "</tr>"+
40                                                            "<tr>"+
41                                                            "<td><input type='button' value='"+get_lang('Delete folder')+"' onclick='proxy_mensagens.proxy_remove_folder()'></td>"+
42                                                            "</tr>"+
43                                                            "<tr>"+
44                                                            "<td><input type='button' value='"+get_lang('Rename folder')+"' onclick='proxy_mensagens.proxy_rename_folder()'></td>"+
45                                                            "</tr>"+
46                                                            "<tr>"+
47                                                            "<td><input type='button' value='"+get_lang('Export messages')+"' onclick='ttreeBox.export_all_msg()'></td>"+
48                                                            "</tr>"+
49                                                            "<tr><td><br><br><br><br><br></td></tr>"+
50                                                            "<tr><td><input type='button' value='"+get_lang('Close')+"' onclick='ttree.close_win()'></td></tr>"+
51                                                            "</table>";
52                tree.appendChild(div_buttons);         
53
54                // Conf tree
55                var jo = document.createElement("DIV");
56                jo.id = "div_tree";
57                jo.style.position = "absolute";
58                jo.style.left = "10px";
59                jo.style.top = "20px";
60                jo.style.width = "420px";
61                jo.style.height = "215px";
62                jo.style.borderStyle = "outset";
63                jo.style.borderColor = "black";
64                jo.style.borderWidth = "2px";
65                jo.style.background  = "#F7F7F7";
66                jo.style.overflow    = "auto";
67                jo.innerHTML = "";
68                tree.appendChild(jo);
69
70                ttree.make_tree(folders,"div_tree","folders_tree","ttree.get_folder(\"root\")","","root",false);
71                _this.showWindow(tree);
72
73        }
74       
75        treeS.prototype.get_folder = function(param){
76                this.FOLDER = param;
77        }
78
79        treeS.prototype.showWindow = function (div){
80                if(! div) {
81                        return;
82                }
83               
84                if(! this.arrayW[div.id]) {
85                        div.style.width  = "580px";
86                        div.style.height = "250px";
87                        div.style.zIndex = "10000";                     
88                        var title = get_lang("Folder Management");
89                        var wHeight = div.offsetHeight + "px";
90                        var wWidth =  div.offsetWidth   + "px";
91                        div.style.width = div.offsetWidth - 5;
92
93                        win = new dJSWin({
94                                id: 'win_'+div.id,
95                                content_id: div.id,
96                                width: wWidth,
97                                height: wHeight,
98                                title_color: '#3978d6',
99                                bg_color: '#eee',
100                                title: title,
101                                title_text_color: 'white',
102                                button_x_img: '../phpgwapi/images/winclose.gif',
103                                border: true });
104                       
105                        this.arrayW[div.id] = win;
106                        win.draw();
107                }
108                else {
109                        win = this.arrayW[div.id];
110                }
111                win.open();
112        }
113       
114        treeS.prototype.close_win = function(){
115       
116                this.FOLDER = "";
117                this.arrayW['window_tree'].close();
118       
119        }
120
121        treeS.prototype.make_tree = function (data,destination,name_tree, click_root, opentomb, selected,menu_folder){
122                //Somente para teste
123                //alert("data: " + data.length + "\n" + "destination : " + destination + "\n" + "name_tree : " + name_tree + "\n" + "click_root : " + click_root + "\n" + "opentomb : " + opentomb + "\n" + "selected : " + selected + "\n" + "menu_folder : " + menu_folder);
124                       
125                if(Element('dftree_' + name_tree)){
126                        Element('dftree_' + name_tree).innerHTML = '';
127                }
128               
129                folders_tree = new dFTree({name: name_tree});
130
131                if(click_root != ""){
132                        var n_root = new dNode({id:'root', caption:get_lang("My Folders"), onClick:click_root});
133                }else{
134                        var n_root = new dNode({id:'root', caption:get_lang("My Folders")});           
135                }
136                folders_tree.add(n_root,'root'); //Places the root; second argument can be anything.
137
138                if(data.length == 0){
139                        alert("sem dados");
140                        return false;
141                }
142       
143                for (var i=0; i<data.length; i++){
144                        if(menu_folder){
145                                if (data[i].folder_unseen > 0)
146                                        var nn = new dNode({id:data[i].folder_id, caption:lang_folder(data[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+data[i].folder_id+'_unseen" style=color:red>'+data[i].folder_unseen+'</span><font style=color:red>)</font>', onClick:"change_folder('"+data[i].folder_id+"','"+data[i].folder_name+"')", plusSign:data[i].folder_hasChildren});
147                                else
148                                        var nn = new dNode({id:data[i].folder_id, caption:lang_folder(data[i].folder_name), onClick:"change_folder('"+data[i].folder_id+"','"+data[i].folder_name+"')", plusSign:data[i].folder_hasChildren});
149                        }else{
150                                var nn = new dNode({id:data[i].folder_id, caption:lang_folder(data[i].folder_name), plusSign:data[i].folder_hasChildren});
151                        }
152       
153                        if (data[i].folder_parent == '')
154                                data[i].folder_parent = 'root';
155                        else if (data[i].folder_parent == 'user'){
156                                if (!tree_folders.getNodeById('user')){
157                                        var n_root_shared_folders = new dNode({id:'user', caption:get_lang("Shared Folders"), plusSign:true});
158                                        folders_tree.add(n_root_shared_folders,'root');
159                                }
160                        }
161                        folders_tree.add(nn,data[i].folder_parent);
162                }
163                //Pastas locais
164                if (preferences.use_local_messages == 1) {
165                        var n_root_local = new dNode({
166                                id: 'local_root',
167                                caption: get_lang("local messages"),
168                                plusSign: true
169                        });
170                        folders_tree.add(n_root_local, 'root');
171                       
172                        var local_folders = expresso_local_messages.list_local_folders();
173                        for (var i in local_folders) { //Coloca as pastas locais.
174                                if (local_folders[i][1] > 0)
175                                        var nodeLocal = new dNode({
176                                                id: "local_" + local_folders[i][0],
177                                                caption: lang_folder(local_folders[i][0]) + '<font style=color:red>&nbsp(</font><span id="local_unseen" style=color:red>' + local_folders[i][1] + '</span><font style=color:red>)</font>',
178                                                plusSign: 0
179                                        });
180                                else
181                                        var nodeLocal = new dNode({
182                                                id: "local_" + local_folders[i][0],
183                                                caption: lang_folder(local_folders[i][0]),
184                                                plusSign: 0
185                                        });
186                                folders_tree.add(nodeLocal, "local_root");
187                        }
188                }
189                folders_tree.draw(Element(destination));
190                n_root.changeState();
191                if(opentomb != ""){folders_tree.openTo(opentomb);}
192                if(selected != "" && folders_tree.getNodeById(selected)){folders_tree.getNodeById(selected)._select();}
193
194        }
195
196/* Build the Object */
197        var ttree;
198        ttree = new treeS();
Note: See TracBrowser for help on using the repository browser.