summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
authorsvncommit <devs@roundcube.net>2006-06-27 21:56:44 +0000
committersvncommit <devs@roundcube.net>2006-06-27 21:56:44 +0000
commitc8c1e0ef3b229a82e74c70aeacc29f2ba021afbe (patch)
tree8ee6b05456b33c8d80e8cf7bf86fb14ae7c3b338 /program
parentb068a07db2c519cde6bf1715e725cb70f2bbbc35 (diff)
Renameable folders, mail-checking changes, other fixes (richs)
Diffstat (limited to 'program')
-rw-r--r--program/include/main.inc22
-rw-r--r--program/include/rcube_imap.inc25
-rw-r--r--program/js/app.js96
-rw-r--r--program/localization/cn/labels.inc1
-rw-r--r--program/localization/cn/messages.inc2
-rw-r--r--program/localization/de_CH/labels.inc1
-rw-r--r--program/localization/de_CH/messages.inc2
-rw-r--r--program/localization/de_DE/labels.inc1
-rw-r--r--program/localization/de_DE/messages.inc2
-rwxr-xr-xprogram/localization/el/labels.inc1
-rwxr-xr-xprogram/localization/el/messages.inc2
-rw-r--r--program/localization/en_GB/labels.inc1
-rw-r--r--program/localization/en_GB/messages.inc2
-rw-r--r--program/localization/en_US/labels.inc3
-rw-r--r--program/localization/en_US/messages.inc2
-rw-r--r--program/localization/es/labels.inc1
-rw-r--r--program/localization/es/messages.inc2
-rw-r--r--program/localization/fr/labels.inc1
-rw-r--r--program/localization/fr/messages.inc2
-rw-r--r--program/localization/it/labels.inc1
-rw-r--r--program/localization/it/messages.inc2
-rw-r--r--program/localization/ja/labels.inc1
-rw-r--r--program/localization/ja/messages.inc2
-rw-r--r--program/localization/pt_BR/labels.inc1
-rw-r--r--program/localization/pt_BR/messages.inc2
-rw-r--r--program/localization/pt_PT/labels.inc1
-rw-r--r--program/localization/pt_PT/messages.inc2
-rwxr-xr-xprogram/localization/ru/labels.inc1
-rwxr-xr-xprogram/localization/ru/messages.inc2
-rw-r--r--program/steps/mail/check_recent.inc52
-rw-r--r--program/steps/mail/func.inc4
-rw-r--r--program/steps/settings/manage_folders.inc68
32 files changed, 264 insertions, 44 deletions
diff --git a/program/include/main.inc b/program/include/main.inc
index 0a158dcb6..cc019af67 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -289,11 +289,11 @@ function get_sequence_name($sequence)
// check the given string and returns language properties
function rcube_language_prop($lang, $prop='lang')
{
- global $INSTLL_PATH;
+ global $INSTALL_PATH;
static $rcube_languages, $rcube_language_aliases, $rcube_charsets;
if (empty($rcube_languages))
- @include($INSTLL_PATH.'program/localization/index.inc');
+ @include($INSTALL_PATH.'program/localization/index.inc');
// check if we have an alias for that language
if (!isset($rcube_languages[$lang]) && isset($rcube_language_aliases[$lang]))
@@ -357,7 +357,7 @@ function load_gui()
$OUTPUT->set_charset($CONFIG['charset']);
// add some basic label to client
- rcube_add_label('loading');
+ rcube_add_label('loading','checkingmail');
}
@@ -764,13 +764,13 @@ function rcube_list_languages()
if (!sizeof($sa_languages))
{
- @include($INSTLL_PATH.'program/localization/index.inc');
+ @include($INSTALL_PATH.'program/localization/index.inc');
- if ($dh = @opendir($INSTLL_PATH.'program/localization'))
+ if ($dh = @opendir($INSTALL_PATH.'program/localization'))
{
while (($name = readdir($dh)) !== false)
{
- if ($name{0}=='.' || !is_dir($INSTLL_PATH.'program/localization/'.$name))
+ if ($name{0}=='.' || !is_dir($INSTALL_PATH.'program/localization/'.$name))
continue;
if ($label = $rcube_languages[$name])
@@ -1192,6 +1192,7 @@ function rcube_xml_command($command, $str_attrib, $a_attrib=NULL)
'identityform' => 'rcube_identity_form',
'foldersubscription' => 'rcube_subscription_form',
'createfolder' => 'rcube_create_folder_form',
+ 'renamefolder' => 'rcube_rename_folder_form',
'composebody' => 'rcmail_compose_body'
);
@@ -1317,7 +1318,7 @@ function rcube_button($attrib)
$attrib['id'],
$attrib['type'],
$attrib['imageact'] ? $skin_path.$attrib['imageact'] : $attrib['classact'],
- $attirb['imagesel'] ? $skin_path.$attirb['imagesel'] : $attrib['classsel'],
+ $attrib['imagesel'] ? $skin_path.$attrib['imagesel'] : $attrib['classsel'],
$attrib['imageover'] ? $skin_path.$attrib['imageover'] : ''));
// make valid href to task buttons
@@ -1338,6 +1339,11 @@ function rcube_button($attrib)
$attrib['onmouseout'] = sprintf("return %s.button_out('%s','%s')", $JS_OBJECT_NAME, $command, $attrib['id']);
}
+ if ($command && $attrib['imagesel'])
+ {
+ $attrib['onmousedown'] = sprintf("return %s.button_sel('%s','%s')", $JS_OBJECT_NAME, $command, $attrib['id']);
+ $attrib['onmouseup'] = sprintf("return %s.button_out('%s','%s')", $JS_OBJECT_NAME, $command, $attrib['id']);
+ }
$out = '';
@@ -1350,7 +1356,7 @@ function rcube_button($attrib)
if ($attrib['label'])
$btn_content .= ' '.$attrib['label'];
- $link_attrib = array('href', 'onclick', 'onmouseover', 'onmouseout', 'title');
+ $link_attrib = array('href', 'onclick', 'onmouseover', 'onmouseout', 'onmousedown', 'onmouseup', 'title');
}
else if ($attrib['type']=='link')
{
diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc
index dccd64fc9..7ad4ad082 100644
--- a/program/include/rcube_imap.inc
+++ b/program/include/rcube_imap.inc
@@ -1262,9 +1262,30 @@ class rcube_imap
// set a new name to an existing mailbox
- function rename_mailbox($mbox_name, $new_name)
+ function rename_mailbox($mbox_name, $new_name, $subscribe=TRUE)
{
- // not implemented yet
+ $result = FALSE;
+
+ // replace backslashes
+ $name = preg_replace('/[\\\]+/', '-', $new_name);
+
+ $name_enc = UTF7EncodeString($new_name);
+
+ // reduce mailbox name to 100 chars
+ $name_enc = substr($name_enc, 0, 100);
+
+ $abs_name = $this->_mod_mailbox($name_enc);
+ $a_mailbox_cache = $this->get_cache('mailboxes');
+
+ if (strlen($abs_name) && (!is_array($a_mailbox_cache) || !in_array($abs_name, $a_mailbox_cache)))
+ $result = iil_C_RenameFolder($this->conn, $mbox_name, $abs_name);
+
+ // update mailboxlist cache
+ if ($result && $subscribe)
+ $this->unsubscribe($mbox_name);
+ $this->subscribe($name_enc);
+
+ return $result ? $name : FALSE;
}
diff --git a/program/js/app.js b/program/js/app.js
index c0dac3fed..c61c20a63 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -123,7 +123,7 @@ function rcube_webmail()
}
// enable mail commands
- this.enable_command('list', 'compose', 'add-contact', 'search', 'reset-search', true);
+ this.enable_command('list', 'checkmail', 'compose', 'add-contact', 'search', 'reset-search', true);
if (this.env.action=='show')
{
@@ -211,7 +211,7 @@ function rcube_webmail()
this.enable_command('save', true);
if (this.env.action=='folders')
- this.enable_command('subscribe', 'unsubscribe', 'create-folder', 'delete-folder', true);
+ this.enable_command('subscribe', 'unsubscribe', 'create-folder', 'rename-folder', 'delete-folder', true);
var identities_list = this.gui_objects.identitieslist;
if (identities_list)
@@ -613,12 +613,18 @@ function rcube_webmail()
{
if (this.env.search_request<0 || (this.env.search_request && props != this.env.mailbox))
this.reset_qsearch();
+
+ // Reset message list header, unless returning from compose/read/etc
+ if (this.env.mailbox != props && this.message_rows)
+ this.clear_message_list_header();
+
this.list_mailbox(props);
}
else if (this.task=='addressbook')
this.list_contacts();
break;
+
case 'sort':
// get the type of sorting
var a_sort = props.split('_');
@@ -842,6 +848,9 @@ function rcube_webmail()
//location.href = this.env.comm_path+'&_action=show&_uid='+this.env.prev_uid+'&_mbox='+this.env.mailbox;
break;
+ case 'checkmail':
+ this.check_for_recent();
+ break;
case 'compose':
var url = this.env.comm_path+'&_action=compose';
@@ -1034,6 +1043,10 @@ function rcube_webmail()
this.create_folder(props);
break;
+ case 'rename-folder':
+ this.rename_folder(props);
+ break;
+
case 'delete-folder':
if (confirm(this.get_label('deletefolderconfirm')))
this.delete_folder(props);
@@ -1554,6 +1567,7 @@ function rcube_webmail()
this.clear_message_list = function()
{
var table = this.gui_objects.messagelist;
+
var tbody = document.createElement('TBODY');
table.insertBefore(tbody, table.tBodies[0]);
table.removeChild(table.tBodies[1]);
@@ -1563,6 +1577,18 @@ function rcube_webmail()
};
+ this.clear_message_list_header = function()
+ {
+ var table = this.gui_objects.messagelist;
+
+ var colgroup = document.createElement('COLGROUP');
+ table.removeChild(table.colgroup);
+ table.insertBefore(colgroup, table.thead);
+
+ var thead = document.createElement('THEAD');
+ table.removeChild(table.thead);
+ table.insertBefore(thead, table.tBodies[0]);
+ };
this.expunge_mailbox = function(mbox)
{
@@ -2584,6 +2610,21 @@ function rcube_webmail()
form.elements['_folder_name'].focus();
};
+ this.rename_folder = function(props)
+ {
+ var form;
+ if ((form = this.gui_objects.editform) && form.elements['_folder_oldname'] && form.elements['_folder_newname'])
+ {
+ oldname = form.elements['_folder_oldname'].value;
+ newname = form.elements['_folder_newname'].value;
+ }
+
+ if (oldname && newname)
+ this.http_request('rename-folder', '_folder_oldname='+escape(oldname)+'&_folder_newname='+escape(newname));
+ else if (form.elements['_folder_newname'])
+ form.elements['_folder_newname'].focus();
+ };
+
this.delete_folder = function(folder)
{
@@ -2603,6 +2644,20 @@ function rcube_webmail()
var row;
if (id && (row = document.getElementById(id)))
row.style.display = 'none';
+
+ // remove folder from rename-folder list
+ var form;
+ if ((form = this.gui_objects.editform) && form.elements['_folder_oldname'])
+ {
+ for (var i=0;i<form.elements['_folder_oldname'].options.length;i++)
+ {
+ if (form.elements['_folder_oldname'].options[i].value == folder)
+ {
+ form.elements['_folder_oldname'].options[i] = null;
+ break;
+ }
+ }
+ }
};
@@ -2671,7 +2726,7 @@ function rcube_webmail()
var tbody = this.gui_objects.subscriptionlist.tBodies[0];
var id = tbody.childNodes.length+1;
-
+
// clone a table row
var row = this.clone_table_row(tbody.rows[0]);
row.id = 'rcmrow'+id;
@@ -2690,9 +2745,14 @@ function rcube_webmail()
if (row.cells[2].firstChild.tagName=='A')
row.cells[2].firstChild.onclick = new Function(this.ref+".command('delete-folder','"+name+"')");
- var form;
- if ((form = this.gui_objects.editform) && form.elements['_folder_name'])
- form.elements['_folder_name'].value = '';
+ var form;
+ if ((form = this.gui_objects.editform) && form.elements['_folder_name'])
+ form.elements['_folder_name'].value = '';
+
+ // add new folder to rename-folder list
+ if (form.elements['_folder_oldname'])
+ form.elements['_folder_oldname'].options[form.elements['_folder_oldname'].options.length] = new Option(name,name);
+
};
@@ -2795,6 +2855,26 @@ function rcube_webmail()
}
};
+ // mouse down on button
+ this.button_sel = function(command, id)
+ {
+ var a_buttons = this.buttons[command];
+ var button, img;
+
+ if(!a_buttons || !a_buttons.length)
+ return;
+
+ for(var n=0; n<a_buttons.length; n++)
+ {
+ button = a_buttons[n];
+ if(button.id==id && button.status=='act')
+ {
+ img = document.getElementById(button.id);
+ if (img && button.sel)
+ img.src = button.sel;
+ }
+ }
+ };
// mouse out of button
this.button_out = function(command, id)
@@ -3181,8 +3261,7 @@ function rcube_webmail()
ctype = ctype_array[0];
}
- if (request_obj.__lock)
- this.set_busy(false);
+ this.set_busy(false);
console(request_obj.get_text());
@@ -3236,6 +3315,7 @@ function rcube_webmail()
// send periodic request to check for recent messages
this.check_for_recent = function()
{
+ this.set_busy(true, 'checkingmail');
var d = new Date();
this.http_request('check-recent', '_t='+d.getTime());
};
diff --git a/program/localization/cn/labels.inc b/program/localization/cn/labels.inc
index bf7773457..62208fe63 100644
--- a/program/localization/cn/labels.inc
+++ b/program/localization/cn/labels.inc
@@ -91,6 +91,7 @@ $labels['saturday'] = '星期六';
$labels['today'] = '今天';
// toolbar buttons
+$labels['checkmail'] = '检查新消息';
$labels['writenewmessage'] = '写新邮件';
$labels['replytomessage'] = '回复邮件';
$labels['forwardmessage'] = '转发邮件';
diff --git a/program/localization/cn/messages.inc b/program/localization/cn/messages.inc
index edbe707f9..8ce103bff 100644
--- a/program/localization/cn/messages.inc
+++ b/program/localization/cn/messages.inc
@@ -37,6 +37,8 @@ $messages['loading'] = '读取...';
$messages['loadingdata'] = '读取数据...';
+$messages['checkingmail'] = '检查新消息...';
+
$messages['sendingmessage'] = '正在发送邮件...';
$messages['messagesent'] = '邮件发送成功';
diff --git a/program/localization/de_CH/labels.inc b/program/localization/de_CH/labels.inc
index 9141564c0..2b73ed0b5 100644
--- a/program/localization/de_CH/labels.inc
+++ b/program/localization/de_CH/labels.inc
@@ -91,6 +91,7 @@ $labels['saturday'] = 'Samstag';
$labels['today'] = 'Heute';
// toolbar buttons // Symbolleisten-Tipps
+$labels['checkmail'] = 'Überprüfung auf neue Anzeigen';
$labels['writenewmessage'] = 'Neue Nachricht schreiben';
$labels['replytomessage'] = 'Antwort verfassen';
$labels['replytoallmessage'] = 'Antwort an Absender und alle Empfänger';
diff --git a/program/localization/de_CH/messages.inc b/program/localization/de_CH/messages.inc
index 57c1513a2..0484b5ded 100644
--- a/program/localization/de_CH/messages.inc
+++ b/program/localization/de_CH/messages.inc
@@ -34,6 +34,8 @@ $messages['mailboxempty'] = 'Ordner ist leer';
$messages['loading'] = $messages['loadingdata'] = 'Daten werden geladen...';
+$messages['checkingmail'] = 'Überprüfung auf neue Anzeigen...';
+
$messages['sendingmessage'] = 'Nachricht wird gesendet...';
$messages['messagesent'] = 'Nachricht erfolgreich gesendet';
diff --git a/program/localization/de_DE/labels.inc b/program/localization/de_DE/labels.inc
index ac74b304a..1aab071e4 100644
--- a/program/localization/de_DE/labels.inc
+++ b/program/localization/de_DE/labels.inc
@@ -92,6 +92,7 @@ $labels['saturday'] = 'Samstag';
$labels['today'] = 'Heute';
// toolbar buttons // Symbolleisten-Tipps
+$labels['checkmail'] = 'Überprüfung auf neue Anzeigen';
$labels['writenewmessage'] = 'Neue Nachricht schreiben';
$labels['replytomessage'] = 'Antwort verfassen';
$labels['replytoallmessage'] = 'Antwort an Absender und alle Empfänger';
diff --git a/program/localization/de_DE/messages.inc b/program/localization/de_DE/messages.inc
index 622cd0d7d..f084b167b 100644
--- a/program/localization/de_DE/messages.inc
+++ b/program/localization/de_DE/messages.inc
@@ -36,6 +36,8 @@ $messages['mailboxempty'] = 'Ordner ist leer';
$messages['loading'] = $messages['loadingdata'] = 'Daten werden geladen...';
+$messages['checkingmail'] = 'Überprüfung auf neue Anzeigen...';
+
$messages['sendingmessage'] = 'Nachricht wird gesendet...';
$messages['messagesent'] = 'Nachricht erfolgreich gesendet';
diff --git a/program/localization/el/labels.inc b/program/localization/el/labels.inc
index 37b42c1ef..ff99364b3 100755
--- a/program/localization/el/labels.inc
+++ b/program/localization/el/labels.inc
@@ -97,6 +97,7 @@ $labels['saturday'] = 'Σάββατο';
$labels['today'] = 'Σήμερα';
// toolbar buttons
+$labels['checkmail'] = 'Έλεγχος για τα νέα μηνύματα';
$labels['writenewmessage'] = 'Δημιουργία νέου μηνύματος';
$labels['replytomessage'] = 'Απάντηση μηνύματος';
$labels['forwardmessage'] = 'Προώθηση μηνύματος';
diff --git a/program/localization/el/messages.inc b/program/localization/el/messages.inc
index 0d01054b0..c3612be46 100755
--- a/program/localization/el/messages.inc
+++ b/program/localization/el/messages.inc
@@ -38,6 +38,8 @@ $messages['loading'] = 'Φόρτωση...';
$messages['loadingdata'] = 'Φόρτωση δεδομένων...';
+$messages['checkingmail'] = 'Έλεγχος για τα νέα μηνύματα...';
+
$messages['sendingmessage'] = 'Αποστολή μηνύματος...';
$messages['messagesent'] = 'Το μήνυμα στάλθηκε επιτυχώς';
diff --git a/program/localization/en_GB/labels.inc b/program/localization/en_GB/labels.inc
index 3365f926c..fc7a93f28 100644
--- a/program/localization/en_GB/labels.inc
+++ b/program/localization/en_GB/labels.inc
@@ -91,6 +91,7 @@ $labels['saturday'] = 'Saturday';
$labels['today'] = 'Today';
// toolbar buttons
+$labels['checkmail'] = 'Check for new messages';
$labels['writenewmessage'] = 'Create a new message';
$labels['replytomessage'] = 'Reply to the message';
$labels['replytoallmessage'] = 'Reply to sender and all recipients';
diff --git a/program/localization/en_GB/messages.inc b/program/localization/en_GB/messages.inc
index de4e90114..262e30007 100644
--- a/program/localization/en_GB/messages.inc
+++ b/program/localization/en_GB/messages.inc
@@ -36,6 +36,8 @@ $messages['loading'] = 'Loading...';
$messages['loadingdata'] = 'Loading data...';
+$messages['checkingmail'] = 'Checking for new messages...';
+
$messages['messagesent'] = 'Message sent successfully';
$messages['savingmessage'] = 'Saving message...';
diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc
index c5cbaa453..436dacfd0 100644
--- a/program/localization/en_US/labels.inc
+++ b/program/localization/en_US/labels.inc
@@ -90,6 +90,7 @@ $labels['saturday'] = 'Saturday';
$labels['today'] = 'Today';
// toolbar buttons
+$labels['checkmail'] = 'Check for new messages';
$labels['writenewmessage'] = 'Create a new message';
$labels['replytomessage'] = 'Reply to the message';
$labels['replytoallmessage'] = 'Reply to sender and all recipients';
@@ -208,6 +209,8 @@ $labels['foldername'] = 'Folder name';
$labels['subscribed'] = 'Subscribed';
$labels['create'] = 'Create';
$labels['createfolder'] = 'Create new folder';
+$labels['rename'] = 'Rename';
+$labels['renamefolder'] = 'Rename existing folder';
$labels['deletefolder'] = 'Delete folder';
$labels['managefolders'] = 'Manage folders';
diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc
index d4f3643ae..a5ffc091c 100644
--- a/program/localization/en_US/messages.inc
+++ b/program/localization/en_US/messages.inc
@@ -36,6 +36,8 @@ $messages['loading'] = 'Loading...';
$messages['loadingdata'] = 'Loading data...';
+$messages['checkingmail'] = 'Checking for new messages...';
+
$messages['sendingmessage'] = 'Sending message...';
$messages['messagesent'] = 'Message sent successfully';
diff --git a/program/localization/es/labels.inc b/program/localization/es/labels.inc
index 1b648d5c1..3b28244b0 100644
--- a/program/localization/es/labels.inc
+++ b/program/localization/es/labels.inc
@@ -94,6 +94,7 @@ $labels['saturday'] = 'Sábado';
$labels['today'] = 'Hoy';
// toolbar buttons
+$labels['checkmail'] = 'Comprobación para saber si hay nuevos mensajes';
$labels['writenewmessage'] = 'Crear nuevo mensaje';
$labels['replytomessage'] = 'Responder al mensaje';
$labels['forwardmessage'] = 'Reenviar mensaje';
diff --git a/program/localization/es/messages.inc b/program/localization/es/messages.inc
index 551ee75dd..675bc8498 100644
--- a/program/localization/es/messages.inc
+++ b/program/localization/es/messages.inc
@@ -43,6 +43,8 @@ $messages['loading'] = 'Cargando...';
$messages['loadingdata'] = 'Cargando datos...';
+$messages['checkingmail'] = 'Comprobación para saber si hay nuevos mensajes...';
+
$messages['sendingmessage'] = 'Enviando mensaje...';
$messages['messagesent'] = 'Mensaje enviado correctamente';
diff --git a/program/localization/fr/labels.inc b/program/localization/fr/labels.inc
index 27a4f50dc..2fb2d6e83 100644
--- a/program/localization/fr/labels.inc
+++ b/program/localization/fr/labels.inc
@@ -91,6 +91,7 @@ $labels['saturday'] = 'Samedi';
$labels['today'] = 'Aujourd\'hui';
// toolbar buttons
+$labels['checkmail'] = 'Vérification les nouveaux messages';
$labels['writenewmessage'] = 'Créer un nouveau message';
$labels['replytomessage'] = 'Répondre au message';
$labels['replytoallmessage'] = 'Répondre à tous';
diff --git a/program/localization/fr/messages.inc b/program/localization/fr/messages.inc
index b8c2475ce..b0847107e 100644
--- a/program/localization/fr/messages.inc
+++ b/program/localization/fr/messages.inc
@@ -36,6 +36,8 @@ $messages['loading'] = 'Chargement en cours...';
$messages['loadingdata'] = 'Chargement des données en cours...';
+$messages['checkingmail'] = 'Vérification les nouveaux messages...';
+
$messages['sendingmessage'] = 'Message en cours d\'envoi...';
$messages['messagesent'] = 'Message envoyé';
diff --git a/program/localization/it/labels.inc b/program/localization/it/labels.inc
index b2d272685..0a080eafb 100644
--- a/program/localization/it/labels.inc
+++ b/program/localization/it/labels.inc
@@ -91,6 +91,7 @@ $labels['saturday'] = 'Sabato';
$labels['today'] = 'Oggi';
// toolbar buttons
+$labels['checkmail'] = 'Controllando per vedere se c'è nuovi messaggi';
$labels['writenewmessage'] = 'Scrivi un nuovo messaggio';
$labels['replytomessage'] = 'Rispondi al messaggio';
$labels['replytoallmessage'] = 'Rispondi a tutti';
diff --git a/program/localization/it/messages.inc b/program/localization/it/messages.inc
index 7afec1ca9..ae3c81819 100644
--- a/program/localization/it/messages.inc
+++ b/program/localization/it/messages.inc
@@ -36,6 +36,8 @@ $messages['loading'] = 'Caricamento...';
$messages['loadingdata'] = 'Caricamento dati...';
+$messages['checkingmail'] = 'Controllando per vedere se c'è nuovi messaggi...';
+
$messages['sendingmessage'] = 'Invio messaggio in corso...';
$messages['messagesent'] = 'Messaggio inviato correttamente';
diff --git a/program/localization/ja/labels.inc b/program/localization/ja/labels.inc
index 11a50aeed..3732185a1 100644
--- a/program/localization/ja/labels.inc
+++ b/program/localization/ja/labels.inc
@@ -91,6 +91,7 @@ $labels['saturday'] = '土曜日';
$labels['today'] = '今日';
// toolbar buttons
+$labels['checkmail'] = '新しいメッセージがあるように確認';
$labels['writenewmessage'] = '新規メッセージを作成する';
$labels['replytomessage'] = 'メッセージを返信する';
$labels['replytoallmessage'] = '送信者とすべての受信者に返信する';
diff --git a/program/localization/ja/messages.inc b/program/localization/ja/messages.inc
index 3dcca721a..4847bd41d 100644
--- a/program/localization/ja/messages.inc
+++ b/program/localization/ja/messages.inc
@@ -36,6 +36,8 @@ $messages['loading'] = '読み込み中...';
$messages['loadingdata'] = 'データを読み込み中です...';
+$messages['checkingmail'] = '新しいメッセージがあるように確認...';
+
$messages['sendingmessage'] = 'メッセージの送信中です...';
$messages['messagesent'] = 'メッセージの送信に成功しました。';
diff --git a/program/localization/pt_BR/labels.inc b/program/localization/pt_BR/labels.inc
index a396b6492..1b9e641e6 100644
--- a/program/localization/pt_BR/labels.inc
+++ b/program/localization/pt_BR/labels.inc
@@ -90,6 +90,7 @@ $labels['saturday'] = 'Sábado';
$labels['today'] = 'Hoje';
// toolbar buttons
+$labels['checkmail'] = 'Verificar para ver se há mensagens novas';
$labels['writenewmessage'] = 'Criar nova mensagem';
$labels['replytomessage'] = 'Responder';
$labels['replytoallmessage'] = 'Responder para todos';
diff --git a/program/localization/pt_BR/messages.inc b/program/localization/pt_BR/messages.inc
index ae3b70270..fb33bcf47 100644
--- a/program/localization/pt_BR/messages.inc
+++ b/program/localization/pt_BR/messages.inc
@@ -34,6 +34,8 @@ $messages['mailboxempty'] = 'A caixa postal está vazia';
$messages['loadingdata'] = 'Carregando informações...';
+$messages['checkingmail'] = 'Verificar para ver se há mensagens novas...';
+
$messages['messagesent'] = 'Mensagem enviada';
$messages['savingmessage'] = 'Mensagem do Saving...';
diff --git a/program/localization/pt_PT/labels.inc b/program/localization/pt_PT/labels.inc
index e69221001..2a26c544f 100644
--- a/program/localization/pt_PT/labels.inc
+++ b/program/localization/pt_PT/labels.inc
@@ -89,6 +89,7 @@ $labels['saturday'] = 'Sábado';
$labels['today'] = 'Hoje';
// toolbar buttons
+$labels['checkmail'] = 'Verificar para ver se há mensagens novas';
$labels['writenewmessage'] = 'Criar nova mensagem';
$labels['replytomessage'] = 'Responder';
$labels['replytoallmessage'] = 'Responder para todos';
diff --git a/program/localization/pt_PT/messages.inc b/program/localization/pt_PT/messages.inc
index 377f9659f..b204ea448 100644
--- a/program/localization/pt_PT/messages.inc
+++ b/program/localization/pt_PT/messages.inc
@@ -35,6 +35,8 @@ $messages['loading'] = 'Carregando...';
$messages['loadingdata'] = 'Carregando Informações...';
+$messages['checkingmail'] = 'Verificar para ver se há mensagens novas...';
+
$messages['sendingmessage'] = 'A enviar mensagem...';
$messages['messagesent'] = 'Mensagem enviada';
diff --git a/program/localization/ru/labels.inc b/program/localization/ru/labels.inc
index a434b0550..699403708 100755
--- a/program/localization/ru/labels.inc
+++ b/program/localization/ru/labels.inc
@@ -91,6 +91,7 @@ $labels['saturday'] = 'Суббота';
$labels['today'] = 'Сегодня';
// toolbar buttons
+$labels['checkmail'] = 'Проверять для новых сообщений';
$labels['writenewmessage'] = 'Новое сообщение';
$labels['replytomessage'] = 'Ответить';
$labels['replytoallmessage'] = 'Ответить всем';
diff --git a/program/localization/ru/messages.inc b/program/localization/ru/messages.inc
index 393d24627..0d1f69f8c 100755
--- a/program/localization/ru/messages.inc
+++ b/program/localization/ru/messages.inc
@@ -36,6 +36,8 @@ $messages['loading'] = 'Загрузка...';
$messages['loadingdata'] = 'Загрузка данных...';
+$messages['checkingmail'] = 'Проверять для новых сообщений...';
+
$messages['sendingmessage'] = 'Отправка сообщения...';
$messages['messagesent'] = 'Сообщение отправлено';
diff --git a/program/steps/mail/check_recent.inc b/program/steps/mail/check_recent.inc
index 8a563c4c4..e51cbf867 100644
--- a/program/steps/mail/check_recent.inc
+++ b/program/steps/mail/check_recent.inc
@@ -9,40 +9,48 @@
| Licensed under the GNU GPL |
| |
| PURPOSE: |
- | Check for recent messages |
+ | Check for recent messages, in all mailboxes |
| |
+-----------------------------------------------------------------------+
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id$
+ $Id: check_recent.inc 233 2006-06-26 17:31:20Z richs $
*/
$REMOTE_REQUEST = TRUE;
-$mbox_name = $IMAP->get_mailbox_name();
-if ($recent_count = $IMAP->messagecount(NULL, 'RECENT', TRUE))
+$a_mailboxes = $IMAP->list_mailboxes();
+
+foreach ($a_mailboxes as $mbox_name)
{
- $count = $IMAP->messagecount();
- $unread_count = $IMAP->messagecount(NULL, 'UNSEEN', TRUE);
-
- $commands = sprintf("this.set_unread_count('%s', %d, true);\n", addslashes($mbox_name), $unread_count);
- $commands .= sprintf("this.set_env('messagecount', %d);\n", $count);
- $commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_messagecount_text());
- $commands .= sprintf("this.set_quota('%s');\n", $IMAP->get_quota());
-
- // add new message headers to list
- $a_headers = array();
- for ($i=$recent_count, $id=$count-$recent_count+1; $i>0; $i--, $id++)
- $a_headers[] = $IMAP->get_headers($id, NULL, FALSE);
-
- $commands .= rcmail_js_message_list($a_headers, TRUE);
+ if ($mbox_name == $IMAP->get_mailbox_name())
+ {
+ if ($recent_count = $IMAP->messagecount(NULL, 'RECENT', TRUE))
+ {
+ $count = $IMAP->messagecount();
+ $unread_count = $IMAP->messagecount(NULL, 'UNSEEN', TRUE);
+
+ $commands .= sprintf("this.set_unread_count('%s', %d, true);\n", addslashes($mbox_name), $unread_count);
+ $commands .= sprintf("this.set_env('messagecount', %d);\n", $count);
+ $commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_messagecount_text());
+ $commands .= sprintf("this.set_quota('%s');\n", $IMAP->get_quota());
+
+ // add new message headers to list
+ $a_headers = array();
+ for ($i=$recent_count, $id=$count-$recent_count+1; $i>0; $i--, $id++)
+ $a_headers[] = $IMAP->get_headers($id, NULL, FALSE);
+
+ $commands .= rcmail_js_message_list($a_headers, TRUE);
+ }
+ }
+ else
+ {
+ if ($IMAP->messagecount($mbox_name, 'RECENT'))
+ $commands .= sprintf("this.set_unread_count('%s', %d);\n", addslashes($mbox_name), $IMAP->messagecount($mbox_name, 'UNSEEN'));
+ }
}
-if (strtoupper($mbox_name)!='INBOX' && $IMAP->messagecount('INBOX', 'RECENT'))
- $commands = sprintf("this.set_unread_count('INBOX', %d);\n", $IMAP->messagecount('INBOX', 'UNSEEN'));
-
-
rcube_remote_response($commands);
?>
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 8eff11c06..eac4e3747 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -304,10 +304,10 @@ function rcmail_message_list($attrib)
// define list of cols to be displayed
$a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject');
- $a_sort_cols = array('subject', 'date', 'from', 'to');
+ $a_sort_cols = array('subject', 'date', 'from', 'to', 'size');
// show 'to' instead of from in sent messages
- if (strtolower($IMAP->get_mailbox_name())=='sent' && ($f = array_search('from', $a_show_cols))
+ if (($IMAP->get_mailbox_name()==$CONFIG['sent_mbox'] || $IMAP->get_mailbox_name()==$CONFIG['drafts_mbox']) && ($f = array_search('from', $a_show_cols))
&& !array_search('to', $a_show_cols))
$a_show_cols[$f] = 'to';
diff --git a/program/steps/settings/manage_folders.inc b/program/steps/settings/manage_folders.inc
index 86b9bb7fe..dd321f0d8 100644
--- a/program/steps/settings/manage_folders.inc
+++ b/program/steps/settings/manage_folders.inc
@@ -19,7 +19,7 @@
*/
-// init IAMP connection
+// init IMAP connection
rcmail_imap_init(TRUE);
@@ -63,6 +63,27 @@ else if ($_action=='create-folder')
show_message('errorsaving', 'error');
}
+// rename a mailbox
+else if ($_action=='rename-folder')
+ {
+ if (!empty($_GET['_folder_oldname']) && !empty($_GET['_folder_newname']))
+ $rename = $IMAP->rename_mailbox(get_input_value('_folder_oldname', RCUBE_INPUT_GET), trim(get_input_value('_folder_newname', RCUBE_INPUT_GET)), TRUE);
+
+ if ($rename && $REMOTE_REQUEST)
+ {
+ $commands = sprintf("this.add_folder_row('%s');", rep_specialchars_output($rename, 'js'));
+ $commands .= sprintf("this.remove_folder_row('%s')", rep_specialchars_output($_GET['_folder_oldname'], 'js'));
+ rcube_remote_response($commands);
+ }
+ else if (!$rename && $REMOTE_REQUEST)
+ {
+ $commands = show_message('errorsaving', 'error');
+ rcube_remote_response($commands);
+ }
+ else if (!$rename)
+ show_message('errorsaving', 'error');
+ }
+
// delete an existing IMAP mailbox
else if ($_action=='delete-folder')
{
@@ -120,6 +141,9 @@ function rcube_subscription_form($attrib)
// create list of available folders
foreach ($a_unsubscribed as $i => $folder)
{
+ if ($CONFIG['protect_default_folders'] == TRUE && in_array($folder,$CONFIG['default_imap_folders']))
+ continue;
+
$zebra_class = $i%2 ? 'even' : 'odd';
$folder_js = rep_specialchars_output($folder, 'js');
$a_js_folders['rcmrow'.($i+1)] = $folder_js;
@@ -176,10 +200,50 @@ function rcube_create_folder_form($attrib)
return $out;
}
+function rcube_rename_folder_form($attrib)
+ {
+ global $CONFIG, $IMAP, $JS_OBJECT_NAME;
+
+ list($form_start, $form_end) = get_form_tags($attrib, 'rename-folder');
+ unset($attrib['form']);
+
+ // return the complete edit form as table
+ $out = "$form_start\n";
+
+ $a_unsubscribed = $IMAP->list_unsubscribed();
+ $select_folder = new select(array('name' => '_folder_oldname', 'id' => 'rcmfd_oldfolder'));
+
+ foreach ($a_unsubscribed as $i => $folder)
+ {
+ if ($CONFIG['protect_default_folders'] == TRUE && in_array($folder,$CONFIG['default_imap_folders']))
+ continue;
+
+ $select_folder->add($folder);
+ }
+
+ $out .= $select_folder->show();
+
+ $out .= " to ";
+ $inputtwo = new textfield(array('name' => '_folder_newname'));
+ $out .= $inputtwo->show();
+
+ if (get_boolean($attrib['button']))
+ {
+ $button = new input_field(array('type' => 'button',
+ 'value' => rcube_label('rename'),
+ 'onclick' => "$JS_OBJECT_NAME.command('rename-folder',this.form)"));
+ $out .= $button->show();
+ }
+
+ $out .= "\n$form_end";
+
+ return $out;
+ }
+
// add some labels to client
rcube_add_label('deletefolderconfirm');
parse_template('managefolders');
-?> \ No newline at end of file
+?>