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 *
RevLine 
[5440]1function treeS()
2{
3        this.FOLDER             = "";
4        this.xtools             = new xtools('../expressoMail1_2/templates/');
5        this.parentHtml         = null;
6}
[2]7
[5440]8treeS.prototype.make_Window = function()
9{
10        var div         = null;
11        var args        = null;
12       
13        args =
[2]14        {
[5440]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        };
[2]20
[5440]21        div                                     = document.createElement("div");
[5478]22        div.id                          = "divTreeFolders";
[5440]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                {
[5478]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                        }
[5440]47                }
48        };
[2]49
[5440]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        });
[5478]79
[5440]80}
[2]81
[5440]82treeS.prototype.setFolder = function(folderName)
83{
84        this.FOLDER = folderName;
85}
[2]86
[5440]87treeS.prototype.make_tree = function ()
88{
89        var elementHtml = null;
[2]90       
[5440]91        if( arguments.length > 0 )
92        {
93                elementHtml = arguments[0];
[2]94        }
[5440]95        else
96        {
97                if( Element('dftree_treeFolders') != null )
98                {
99                        elementHtml = Element('dftree_treeFolders').parentNode.parentNode;
100                        Element('dftree_treeFolders').innerHTML = "";
[2]101                }
102        }
103       
[5440]104        var treeFolders = new dFTree({ name : 'treeFolders' });
[2]105       
[5440]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');
[2]111
[5440]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+"')"});
[2]115                       
[5440]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 );
[2]142                }
[5440]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')" });
[2]149               
[5440]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);
[2]165                        }
[5440]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                                });
[1121]174                        }
[5440]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                                });
[2]182                        }
[5440]183                        treeFolders.add(nodeLocal, node_parent);
[2]184                }
185        }
186
[5440]187        treeFolders.draw(elementHtml);
188        treeFolders.getNodeById("root")._select();
189        root.changeState();
190}
191
[2]192/* Build the Object */
[5440]193var ttree = new treeS();
Note: See TracBrowser for help on using the repository browser.