source: sandbox/2.4.2-expresso2/expressoMail1_2/js/TreeS.js @ 5744

Revision 5744, 4.8 KB checked in by alexandrecorreia, 12 years ago (diff)

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

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