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 *
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");
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        };
[2]39
[5440]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}
[2]71
[5440]72treeS.prototype.setFolder = function(folderName)
73{
74        this.FOLDER = folderName;
75}
[2]76
[5440]77treeS.prototype.make_tree = function ()
78{
79        var elementHtml = null;
[2]80       
[5440]81        if( arguments.length > 0 )
82        {
83                elementHtml = arguments[0];
[2]84        }
[5440]85        else
86        {
87                if( Element('dftree_treeFolders') != null )
88                {
89                        elementHtml = Element('dftree_treeFolders').parentNode.parentNode;
90                        Element('dftree_treeFolders').innerHTML = "";
[2]91                }
92        }
93       
[5440]94        var treeFolders = new dFTree({ name : 'treeFolders' });
[2]95       
[5440]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');
[2]101
[5440]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+"')"});
[2]105                       
[5440]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 );
[2]132                }
[5440]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')" });
[2]139               
[5440]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);
[2]155                        }
[5440]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                                });
[1121]164                        }
[5440]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                                });
[2]172                        }
[5440]173                        treeFolders.add(nodeLocal, node_parent);
[2]174                }
175        }
176
[5440]177        treeFolders.draw(elementHtml);
178        treeFolders.getNodeById("root")._select();
179        root.changeState();
180}
181
[2]182/* Build the Object */
[5440]183var ttree = new treeS();
Note: See TracBrowser for help on using the repository browser.