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

Revision 5478, 4.7 KB checked in by alexandrecorreia, 12 years ago (diff)

Ticket #673 - Novas dialogs com Jquery para o novo visual do expresso.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1function treeS()
2{
3        this.FOLDER             = "";
4        this.xtools             = new xtools('../expressoMail1_2/templates/');
5        this.parentHtml         = null;
6}
7
8treeS.prototype.make_Window = function()
9{
10        var div         = null;
11        var args        = null;
12       
13        args =
14        {
15                "delete_folder"         : get_lang('Delete folder'),
16                "export_messages"       : get_lang('Export messages'),
17                "new_folder"            : get_lang('New folder'),
18                "rename_folder"         : get_lang('Rename folder')
19        };
20
21        div                                     = document.createElement("div");
22        div.id                          = "divTreeFolders";
23        div.innerHTML           = this.xtools.parse(this.xtools.xml('treeFolders'), 'treeFolders.xsl', args );
24        this.parentHtml         = div;
25       
26        var openWindow = function()
27        {
28                if( folders.length == 0 )
29                {
30                        write_msg( "ERRO : Sem dados" );
31                        $(div).dialog("destroy");
32                        div.removeChild( div.firstChild );
33                        return false;
34                }
35                else
36                {
37                        if( Element('dftree_treeFolders') != null )
38                        {
39                                $(div).dialog("destroy");
40                                div.removeChild( div.firstChild );
41                                return;
42                        }
43                        else
44                        {
45                                ttree.make_tree(div.firstChild);
46                        }
47                }
48        };
49
50        $(div).dialog(
51        {
52                resizable       : false,
53                title           : get_lang("Manager your folders and export messages"),
54                position        : 'center',
55                width           : 600,
56                height          : 300,
57                modal           : false,
58                buttons         : [
59                                                {
60                                                        text: get_lang("Close"),
61                                                        click: function()
62                                                        {
63                                                                $(this).dialog("destroy");
64                                                                div.removeChild(div.firstChild);
65                                                        },
66                                                        style: "margin-top: -2.1em"
67                                                }
68                ],
69                beforeClose     : function()
70                {
71                        $(this).dialog("destroy");
72                        div.removeChild(div.firstChild);
73                },
74                open            : function()
75                {
76                        openWindow();
77                }
78        });
79
80}
81
82treeS.prototype.setFolder = function(folderName)
83{
84        this.FOLDER = folderName;
85}
86
87treeS.prototype.make_tree = function ()
88{
89        var elementHtml = null;
90       
91        if( arguments.length > 0 )
92        {
93                elementHtml = arguments[0];
94        }
95        else
96        {
97                if( Element('dftree_treeFolders') != null )
98                {
99                        elementHtml = Element('dftree_treeFolders').parentNode.parentNode;
100                        Element('dftree_treeFolders').innerHTML = "";
101                }
102        }
103       
104        var treeFolders = new dFTree({ name : 'treeFolders' });
105       
106        if( !expresso_offline )
107        {
108                var root        = new dNode({ id : 'root', caption: get_lang('My Folders'), onClick: "ttree.setFolder('root')" });
109               
110                treeFolders.add(root, 'root');
111
112                for(var i = 0; i < folders.length ; i++ )
113                {
114                        var nn = new dNode({ id:folders[i].folder_id, caption: lang_folder(folders[i].folder_name), plusSign:folders[i].folder_hasChildren, onClick: "ttree.setFolder('"+folders[i].folder_id+"')"});
115                       
116                        if ( folders[i].folder_parent == '' )
117                        {
118                                folders[i].folder_parent = 'root';
119                        }
120            else if ( folders[i].folder_parent == 'user' )
121            {
122                if ( treeFolders.getNodeById('user') )
123                {
124                        var n_root_shared_folders = new dNode({ id:'user', caption:get_lang("Shared Folders"), plusSign:true});
125                    treeFolders.add( n_root_shared_folders,'root');
126                }
127            }
128
129                        // Ver Ticket #1548
130                        if( folders[i].folder_parent != 'root')
131                        {
132                var node_parent = treeFolders.getNodeById(folders[i].folder_parent);
133               
134                if( typeof node_parent != 'undefined')
135                {
136                        node_parent.plusSign = true;
137                        treeFolders.alter(node_parent);
138                }
139            }
140                       
141                        treeFolders.add( nn, folders[i].folder_parent );
142                }
143        }       
144
145        //Pastas locais
146        if ( preferences.use_local_messages == 1 )
147        {
148                var n_root_local = new dNode({ id : "local_root", caption : get_lang("local folders"), onClick: "ttree.setFolder('root')" });
149               
150                treeFolders.add( n_root_local, 'root' );
151               
152                var local_folders = expresso_local_messages.list_local_folders();
153               
154                //Coloca as pastas locais.
155                for (var i in local_folders)
156                {
157                        var node_parent = "local_root";
158                        var new_caption = local_folders[i][0];
159                       
160                        if( local_folders[i][0].indexOf("/") != "-1" )
161                        {
162                                final_pos       = local_folders[i][0].lastIndexOf("/");
163                                node_parent = "local_"+local_folders[i][0].substr(0,final_pos);
164                                new_caption = local_folders[i][0].substr(final_pos+1);
165                        }
166                                   
167                        if ( local_folders[i][1] > 0 )
168                        {
169                                var nodeLocal = new dNode({
170                                                                                        id: "local_" + local_folders[i][0],
171                                                                                        caption: lang_folder(new_caption) + '<font style=color:red>&nbsp(</font><span id="local_unseen" style=color:red>' + local_folders[i][1] + '</span><font style=color:red>)</font>',
172                                                                                        plusSign: local_folders[i][2]
173                                });
174                        }
175                        else
176                        {
177                                var nodeLocal = new dNode({
178                                                                                        id: "local_" + local_folders[i][0],
179                                                                                        caption: lang_folder(new_caption),
180                                                                                        plusSign: local_folders[i][2]
181                                });
182                        }
183                        treeFolders.add(nodeLocal, node_parent);
184                }
185        }
186
187        treeFolders.draw(elementHtml);
188        treeFolders.getNodeById("root")._select();
189        root.changeState();
190}
191
192/* Build the Object */
193var ttree = new treeS();
Note: See TracBrowser for help on using the repository browser.