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

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