source: branches/2.4/expressoMail1_2/js/TreeS.js @ 6931

Revision 6931, 5.0 KB checked in by eduardow, 12 years ago (diff)

Ticket #2987 - Inconsistencia excluindo com tela modal aberta - teclas de atalho.

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