source: trunk/expressoMail1_2/js/preferences.js @ 271

Revision 271, 10.8 KB checked in by niltonneto, 16 years ago (diff)

Fechamento de versão: 1.2211
Tickets:

#50 Criar uma funcionalidade para inserir imagens embutidas no corpo da mensagem.
#174 Implementar rascunho com anexos
#182 Criar funcionalidade de salvar automaticamente os emails em rascunhos
#183 Funcionalidade de drag and drop na busca
#185 Adicionar tabela na edição de email
#186 Correção do problema com nomes de anexos com caracteres especiais
#188 Definir aspectos de QA do ExpressoMail?
#190 Problema ao salvar informações de filtros no IE

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1/**************************************************************************\
2 Início
3\**************************************************************************/
4        function Preferences(){
5                this.prefeW             = new Array;
6        }
7        // Cria as divs;
8        Preferences.prototype.showList = function(){
9       
10                id = '1';
11                _this = this;
12               
13                form_pref = document.createElement("DIV");
14                form_pref.style.visibility = "hidden";
15                form_pref.style.position = "absolute";
16                form_pref.id = "window_confexp";
17                document.body.appendChild(form_pref);
18                prefe.showWindow(form_pref);
19                var form = Element("form_preferences");
20               
21                if(!form) {
22                        form = document.createElement("FORM");
23                        form.id  = "form_preferences";
24                        form.innerHTML =        "<table border='0' cellpading='0' cellspacing='0'>"+
25                                "<tr><td colspan='2'><center>" + get_lang('Config for expressoMail') + "</center></td></tr>"+
26                                "<tr><td nowrap> - " + get_lang('What is the maximum number of messages per page?') + "</td>"+
27                                "<td>&nbsp;<select id='sel_num_max' name='sel_num_max'>"+
28                                "<option value='25'>25</option>"+
29                                "<option value='50'>50</option>"+
30                                "<option value='75'>75</option>"+
31                                "<option value='100'>100</option>"+                                                                                                             
32                                "</select></td>"+
33                                "</tr>"+
34                                "<tr><td nowrap> - " + get_lang('Save deleted messages in trash folder?') + "</td>"+
35                                "<td><input type='checkBox' id='check_save_men' name='check_save_men'></td>"+
36                                "</tr>"+
37                                "<tr><td nowrap> - " + get_lang('Delete trash messages after how many days?') + "</td>"+
38                                "<td>&nbsp;<select id='sel_del_men' name='sel_del_men'>"+
39                                "<option value='0'>" + get_lang('None') + "</option>"+
40                                "<option value='1'>"+get_lang("1 day")+"</option>"+
41                                "<option value='2'>"+get_lang("2 days")+"</option>"+                                                                                           
42                                "<option value='3'>"+get_lang("3 days")+"</option>"+                                                   
43                                "<option value='4'>"+get_lang("4 days")+"</option>"+                                                   
44                                "<option value='5'>"+get_lang("5 days")+"</option>"+                                                   
45                                "</select></td>"+
46                                "</tr>"+
47                                "<tr><td nowrap> - " + get_lang('Show previous message, after delete actual message?') + "</td>"+
48                                "<td><input type='checkBox' id='check_show_previous' name='check_show_previous'></td>"+
49                                "</tr>"+
50                                "<tr><td nowrap> - " + get_lang('Do you wanna receive an alert for new messages?') + "</td>"+
51                                "<td><input type='checkBox' id='check_alert' name='check_alert'></td>"+
52                                "</tr>"+
53                                "<tr><td nowrap> - " + get_lang('Show default view on main screen?') + "</td>"+
54                                "<td><input type='checkBox' id='check_view' name='check_view'></td>"+
55                                "</tr>"+
56                                "<tr><td nowrap> - " + get_lang('Save sent messages in folder') + "</td>"+                             
57                                "<td>&nbsp;<select style='width:125px' id='sel_name_box' name='sel_name_box'></select></td>"+
58                                "</tr>"+
59                                "<tr><td> - " + get_lang('Hide menu folders?') + "</td>"+
60                                "<td><input type='checkBox' id='check_menu' name='check_menu'></td>"+
61                                "</tr>"+
62                                "<tr><td> - " + get_lang('What is the height of the lines in the list of messages?') + "</td>"+
63                                "<td>&nbsp;<select id='sel_height_line' name='sel_height_line'>"+
64                                "<option value='20'>"+get_lang("Normal")+"</option>"+
65                                "<option value='30'>"+get_lang("Medium")+"</option>"+
66                                "<option value='40'>"+get_lang("Big")+"</option>"+                                                                                                             
67                                "</select></td>"+
68                                "</tr>"+
69                                "<tr><td> - " + get_lang('What the font size in the list of messages?') + "</td>"+
70                                "<td>&nbsp;<select id='sel_size_font' name='sel_size_font'>"+
71                                "<option value='10'>"+get_lang("Small")+"</option>"+
72                                "<option value='11'>"+get_lang("Normal")+"</option>"+                                                   
73                                "<option value='15'>"+get_lang("Big")+"</option>"+
74                                "</select></td></tr>"+
75                                "<tr><td> - " + get_lang("Auto save draft") + "?</td>"+
76                                "<td><input type='checkBox' id='auto_save_draft' name='auto_save_draft'></td></tr>"+
77                                "<tr><td> - " + get_lang("Use shortcuts?") + "</td>"+
78                                "<td><input type='checkBox' id='use_shortcuts' name='use_shortcuts'></td></tr>"+
79                                "<tr><td colspan='2'> - " + get_lang('Signature') + "<br>"+
80                                "<textarea id='txt_signature' name='txt_signature' rows='3' cols='59'></textarea></td>"+
81                                "</tr>"+
82                                "<tr><td><input type='button' value='"+get_lang("Cancel")+"' onclick='prefe.close_win();'>"+
83                                "<td align='left'><input type='button' value='"+get_lang("Save")+"' onclick='prefe.save_form()'>"+
84                                "</tr>"+
85                                "</table>";
86                        form_pref.appendChild(form);
87                        var sel_nm = Element("sel_name_box");
88                        var opt = new Option(get_lang("Select the user"),"-1",true,true);
89                        sel_nm.options[sel_nm.length] = opt;
90                        for(var i=0; i < folders.length; i++){
91                                var opt = new Option(lang_folder(folders[i].folder_name),folders[i].folder_id,false,true);
92                                sel_nm.options[sel_nm.length] = opt;
93                        }
94                        sel_nm.options[0].selected = true;
95                        _this.clean_all();
96                }
97                _this.load_form();
98        }
99       
100        // Preenche os campos no form;
101        Preferences.prototype.load_form = function(){
102                var sel_num_max = Element("sel_num_max");
103                        for(var i=0; i < sel_num_max.options.length; i++){
104                                if(sel_num_max.options[i].value == preferences.max_email_per_page){sel_num_max.options[i].selected = true;}
105                        }
106                var check_save_men = Element("check_save_men");
107                        if( preferences.save_deleted_msg == 1){check_save_men.checked = true;}
108                var sel_del_men = Element("sel_del_men");
109                        for(var i=0; i < sel_del_men.options.length; i++){
110                                if(sel_del_men.options[i].value == preferences.delete_trash_messages_after_n_days){sel_del_men.options[i].selected = true;}
111                        }
112                var check_show_previous = Element("check_show_previous");
113                        if( preferences.delete_and_show_previous_message == 1){check_show_previous.checked = true;}
114                var check_alert = Element("check_alert");
115                        if( preferences.alert_new_msg == 1){check_alert.checked = true;}
116                var check_view = Element("check_view");
117                        if( preferences.mainscreen_showmail == 1){check_view.checked = true;}
118                var sel_name_box = Element("sel_name_box");
119                        for(var i=0; i < sel_name_box.options.length; i++){
120                                if(sel_name_box.options[i].value == preferences.save_in_folder){sel_name_box.options[i].selected = true;}
121                        }
122                var check_menu = Element("check_menu");
123                        if( preferences.hide_folders == 1){check_menu.checked = true;}
124                var sel_height_line = Element("sel_height_line");
125                        for(var i=0; i < sel_height_line.options.length; i++){
126                                if( sel_height_line.options[i].value == preferences.line_height){sel_height_line.options[i].selected = true;}
127                        }
128                var sel_size_font = Element("sel_size_font");
129                        for(var i=0; i < sel_size_font.options.length; i++){
130                                if(sel_size_font.options[i].value == preferences.font_size){sel_size_font.options[i].selected = true;}
131                        }
132                var txt_signature = Element("txt_signature");
133                        txt_signature.value = preferences.signature;
134               
135                if( preferences.use_shortcuts == 1) Element("use_shortcuts").checked = true;
136                if( preferences.auto_save_draft == 1) Element("auto_save_draft").checked = true;
137        }
138       
139
140        // Salva as opções do form;
141        Preferences.prototype.save_form = function(){
142       
143           //var prefe_string;                 
144                var reload_page = false;
145
146                if(preferences.max_email_per_page != Element("sel_num_max").value)
147                        reload_page = true;
148                else if(preferences.delete_trash_messages_after_n_days != Element("sel_del_men").value)
149                        reload_page = true;
150                else if(preferences.hide_folders != Element("check_menu").checked)
151                        reload_page = true;
152                else if(preferences.line_height != Element("sel_height_line").value)
153                reload_page = true;
154            else if(preferences.font_size != Element("sel_size_font").value)
155                        reload_page = true;
156            else if(preferences.use_shortcuts != Element("use_shortcuts").checked)
157                        reload_page = true;
158            else if(preferences.auto_save_draft != Element("auto_save_draft").checked)
159                        reload_page = true;
160                               
161                preferences.max_email_per_page = Element("sel_num_max").value;
162                preferences.save_deleted_msg = Element("check_save_men").checked ? 1 : 0;
163                preferences.delete_trash_messages_after_n_days = Element("sel_del_men").value;
164                preferences.delete_and_show_previous_message = Element("check_show_previous").checked ? 1 : 0;
165                preferences.alert_new_msg = Element("check_alert").checked ? 1 : 0;
166                preferences.mainscreen_showmail = Element("check_view").checked ? 1 : 0;
167                preferences.save_in_folder = Element("sel_name_box").value;
168                preferences.hide_folders = Element("check_menu").checked ? 1 : 0;
169            preferences.line_height = Element("sel_height_line").value;
170                preferences.font_size = Element("sel_size_font").value;
171                preferences.signature = Element("txt_signature").value;
172                preferences.use_shortcuts = Element("use_shortcuts").checked ? 1 : 0;
173                preferences.auto_save_draft = Element("auto_save_draft").checked ? 1 : 0;
174               
175                var _this = this;
176               
177                var handler_preferences = function(data){
178                        if(data && data.success){
179                                if(reload_page)
180                                        window.location.reload(true);
181                                else
182                                        _this.close_win();
183                        }else{
184                                alert(data);
185                        }
186                }
187                var args   = "$this.db_functions.update_preferences";
188                var params = "prefe_string="+url_encode(connector.serialize(preferences));
189                cExecute(args,handler_preferences,params);
190        }       
191        //Fecha a janela
192        Preferences.prototype.close_win = function(){
193                this.prefeW['window_confexp'].close();
194        }
195       
196        // Salva uma unica preferencia
197        Preferences.prototype.save = function(key, value){
198                var _this = this;               
199                var handler_preferences = function(data){
200                        if(data && data.success)
201                                return;                 
202                        else
203                                alert(data);
204                }
205                preferences[key] = value;
206                var args   = "$this.db_functions.update_preferences";
207                var params = "prefe_string="+url_encode(connector.serialize(preferences));
208                cExecute(args,handler_preferences,params);
209        }       
210
211        //Limpa os campos
212        Preferences.prototype.clean_all = function(){
213                document.getElementById('check_save_men').checked = false;
214                document.getElementById('check_show_previous').value = false;
215                document.getElementById('check_alert').checked = false;
216                document.getElementById('check_view').checked = false;
217                document.getElementById('check_menu').checked = false;
218                document.getElementById("sel_name_box").options[0].selected = true;
219                document.getElementById('txt_signature').value = "";
220        }
221
222        //Monta a janela principal da aplicação;
223        Preferences.prototype.showWindow = function(div){
224               
225                if(! this.prefeW[div.id]) {
226                        div.style.height = is_ie ? "385px" : "370px";
227                        div.style.width = "510px";
228                        div.style.visibility = "hidden";
229                        div.style.position = "absolute";
230                        div.style.paddingLeft = "10px";                 
231                        var title = get_lang("ExpressoMail 1.2 Configuration");
232                        var wHeight = div.offsetHeight + "px";
233                        var wWidth =  div.offsetWidth   + "px";
234
235                        win = new dJSWin({                     
236                                id: 'cc_'+div.id,
237                                content_id: div.id,
238                                width: wWidth,
239                                height: wHeight,
240                                title_color: '#3978d6',
241                                bg_color: '#eee',
242                                title: title,                                           
243                                title_text_color: 'white',
244                                button_x_img: '../phpgwapi/images/winclose.gif',
245                                border: true });
246                       
247                        this.prefeW[div.id] = win;
248                        win.draw();
249                }
250                else {
251                        win = this.prefeW[div.id];
252
253                }
254                win.open();
255        }
256// Cria o objeto       
257        var prefe;
258        prefe = new Preferences();
Note: See TracBrowser for help on using the repository browser.