mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-26 01:43:47 +01:00
stuff of the day: label/remove all sorted to meet birgits requirements; distinct display schema for listview to send/draft/template folders (address column); some translations for upcomming folder delition for folders with subfolders
This commit is contained in:
parent
391dde093e
commit
1f438436e1
@ -590,6 +590,7 @@ class mail_bo
|
||||
$mailbox=null;
|
||||
if($this->folderExists($this->sessionData['mailbox'])) $mailbox = $this->sessionData['mailbox'];
|
||||
if (empty($mailbox)) $mailbox = $this->icServer->getCurrentMailbox();
|
||||
/*
|
||||
if (isset(emailadmin_imap::$supports_keywords[$_icServerID]))
|
||||
{
|
||||
$this->icServer->openMailbox($mailbox);
|
||||
@ -598,6 +599,10 @@ class mail_bo
|
||||
{
|
||||
$this->icServer->examineMailbox($mailbox);
|
||||
}
|
||||
*/
|
||||
// the above should detect if there is a known information about supporting KEYWORDS
|
||||
// but does not work as expected :-(
|
||||
$this->icServer->examineMailbox($mailbox);
|
||||
//error_log(__METHOD__." using existing Connection ProfileID:".$_icServerID.' Status:'.print_r($this->icServer->_connected,true));
|
||||
//error_log(__METHOD__.__LINE__."->open connection for Server with profileID:".$_icServerID.function_backtrace());
|
||||
|
||||
|
@ -187,11 +187,11 @@ class mail_ui
|
||||
$starttime = microtime (true);
|
||||
$this->mail_bo->restoreSessionData();
|
||||
$sessionFolder = $this->mail_bo->sessionData['mailbox'];
|
||||
$toSchema = false;//decides to select list schema with column to selected (if false fromaddress is default)
|
||||
//$toSchema = false;//decides to select list schema with column to selected (if false fromaddress is default)
|
||||
if ($this->mail_bo->folderExists($sessionFolder))
|
||||
{
|
||||
$this->mail_bo->reopen($sessionFolder); // needed to fetch full set of capabilities
|
||||
$toSchema = $this->mail_bo->isDraftFolder($sessionFolder)||$this->mail_bo->isSentFolder($sessionFolder)||$this->mail_bo->isTemplateFolder($sessionFolder);
|
||||
//$toSchema = $this->mail_bo->isDraftFolder($sessionFolder)||$this->mail_bo->isSentFolder($sessionFolder)||$this->mail_bo->isTemplateFolder($sessionFolder);
|
||||
}
|
||||
//error_log(__METHOD__.__LINE__.' SessionFolder:'.$sessionFolder.' isToSchema:'.$toSchema);
|
||||
//_debug_array($content);
|
||||
@ -213,7 +213,8 @@ class mail_ui
|
||||
'start' => 0, // IO position in list
|
||||
'order' => 'date', // IO name of the column to sort after (optional for the sortheaders)
|
||||
'sort' => 'DESC', // IO direction of the sort: 'ASC' or 'DESC'
|
||||
'default_cols' => 'status,attachments,subject,'.($toSchema?'toaddress':'fromaddress').',date,size', // I columns to use if there's no user or default pref (! as first char uses all but the named columns), default all columns
|
||||
//'default_cols' => 'status,attachments,subject,'.($toSchema?'toaddress':'fromaddress').',date,size', // I columns to use if there's no user or default pref (! as first char uses all but the named columns), default all columns
|
||||
'default_cols' => 'status,attachments,subject,address,date,size', // I columns to use if there's no user or default pref (! as first char uses all but the named columns), default all columns
|
||||
'csv_fields' => false, // I false=disable csv export, true or unset=enable it with auto-detected fieldnames,
|
||||
//or array with name=>label or name=>array('label'=>label,'type'=>type) pairs (type is a eT widget-type)
|
||||
'actions' => self::get_actions(),
|
||||
@ -223,7 +224,8 @@ class mail_ui
|
||||
//$content[self::$nm_index]['path'] = self::get_home_dir();
|
||||
}
|
||||
}
|
||||
$content[self::$nm_index]['default_cols'] = 'status,attachments,subject,'.($toSchema?'toaddress':'fromaddress').',date,size'; // I columns to use if there's no user or default pref (! as first char uses all but the named columns), default all columns
|
||||
//$content[self::$nm_index]['default_cols'] = 'status,attachments,subject,'.($toSchema?'toaddress':'fromaddress').',date,size'; // I columns to use if there's no user or default pref (! as first char uses all but the named columns), default all columns
|
||||
$content[self::$nm_index]['default_cols'] = 'status,attachments,subject,address,date,size'; // I columns to use if there's no user or default pref (! as first char uses all but the named columns), default all columns
|
||||
$content[self::$nm_index]['csv_fields'] = false;
|
||||
if ($msg)
|
||||
{
|
||||
@ -948,36 +950,6 @@ class mail_ui
|
||||
'icon' => 'tag_message',
|
||||
'group' => ++$group,
|
||||
'children' => array(
|
||||
'label1' => array(
|
||||
'caption' => "<font color='#ff0000'>".lang('urgent')."</font>",
|
||||
'icon' => 'mail_label1',
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_1, true, true),
|
||||
),
|
||||
'label2' => array(
|
||||
'caption' => "<font color='#ff8000'>".lang('job')."</font>",
|
||||
'icon' => 'mail_label2',
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_2, true, true),
|
||||
),
|
||||
'label3' => array(
|
||||
'caption' => "<font color='#008000'>".lang('personal')."</font>",
|
||||
'icon' => 'mail_label3',
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_3, true, true),
|
||||
),
|
||||
'label4' => array(
|
||||
'caption' => "<font color='#0000ff'>".lang('to do')."</font>",
|
||||
'icon' => 'mail_label4',
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_4, true, true),
|
||||
),
|
||||
'label5' => array(
|
||||
'caption' => "<font color='#8000ff'>".lang('later')."</font>",
|
||||
'icon' => 'mail_label5',
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_5, true, true),
|
||||
),
|
||||
'unlabel' => array(
|
||||
'group' => ++$group,
|
||||
'caption' => "<font color='#ff0000'>".lang('remove all')."</font>",
|
||||
@ -985,6 +957,41 @@ class mail_ui
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_0, true, true),
|
||||
),
|
||||
'label1' => array(
|
||||
'group' => ++$group,
|
||||
'caption' => "<font color='#ff0000'>".lang('urgent')."</font>",
|
||||
'icon' => 'mail_label1',
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_1, true, true),
|
||||
),
|
||||
'label2' => array(
|
||||
'group' => $group,
|
||||
'caption' => "<font color='#ff8000'>".lang('job')."</font>",
|
||||
'icon' => 'mail_label2',
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_2, true, true),
|
||||
),
|
||||
'label3' => array(
|
||||
'group' => $group,
|
||||
'caption' => "<font color='#008000'>".lang('personal')."</font>",
|
||||
'icon' => 'mail_label3',
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_3, true, true),
|
||||
),
|
||||
'label4' => array(
|
||||
'group' => $group,
|
||||
'caption' => "<font color='#0000ff'>".lang('to do')."</font>",
|
||||
'icon' => 'mail_label4',
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_4, true, true),
|
||||
),
|
||||
'label5' => array(
|
||||
'group' => $group,
|
||||
'caption' => "<font color='#8000ff'>".lang('later')."</font>",
|
||||
'icon' => 'mail_label5',
|
||||
'onExecute' => 'javaScript:app.mail.mail_flag',
|
||||
'shortcut' => egw_keymanager::shortcut(egw_keymanager::_5, true, true),
|
||||
),
|
||||
),
|
||||
),
|
||||
// modified icons from http://creativecommons.org/licenses/by-sa/3.0/
|
||||
@ -1146,11 +1153,17 @@ unset($query['actions']);
|
||||
//save selected Folder to sessionData (mailbox)->currentFolder
|
||||
if (isset($query['selectedFolder'])) $this->mail_bo->sessionData['mailbox']=$_folderName;
|
||||
$this->mail_bo->saveSessionData();
|
||||
$toSchema = false;//decides to select list schema with column to selected (if false fromaddress is default)
|
||||
if ($this->mail_bo->folderExists($_folderName))
|
||||
{
|
||||
$toSchema = $this->mail_bo->isDraftFolder($_folderName)||$this->mail_bo->isSentFolder($_folderName)||$this->mail_bo->isTemplateFolder($_folderName);
|
||||
}
|
||||
|
||||
$rowsFetched['messages'] = null;
|
||||
$offset = $query['start']+1; // we always start with 1
|
||||
$maxMessages = $query['num_rows'];
|
||||
$sort = $query['order'];
|
||||
//error_log(__METHOD__.__LINE__.$query['order']);
|
||||
$sort = ($query['order']=='address'?($toSchema?'toaddress':'fromaddress'):$query['order']);
|
||||
if (!empty($query['search']))
|
||||
{
|
||||
//([filterName] => Schnellsuche[type] => quick[string] => ebay[status] => any
|
||||
@ -1236,9 +1249,9 @@ unset($query['actions']);
|
||||
if (empty($rowsFetched['messages'])) $rowsFetched['messages'] = $rowsFetched['rowsFetched'];
|
||||
|
||||
//error_log(__METHOD__.__LINE__.' Rows fetched:'.$rowsFetched.' Data:'.array2string($sortResult));
|
||||
$cols = array('row_id','uid','status','attachments','subject','toaddress','fromaddress','ccaddress','additionaltoaddress','date','size','modified');
|
||||
$cols = array('row_id','uid','status','attachments','subject','address','toaddress','fromaddress','ccaddress','additionaltoaddress','date','size','modified');
|
||||
if ($GLOBALS['egw_info']['user']['preferences']['common']['select_mode']=='EGW_SELECTMODE_TOGGLE') unset($cols[0]);
|
||||
$rows = $this->header2gridelements($sortResult['header'],$cols, $_folderName, $folderType,$previewMessage);
|
||||
$rows = $this->header2gridelements($sortResult['header'],$cols, $_folderName, $folderType=$toSchema,$previewMessage);
|
||||
//error_log(__METHOD__.__LINE__.array2string($rows));
|
||||
$endtime = microtime(true) - $starttime;
|
||||
//error_log(__METHOD__.__LINE__. " time used: ".$endtime.' for Folder:'.$_folderName.' Start:'.$query['start'].' NumRows:'.$query['num_rows']);
|
||||
@ -1560,6 +1573,7 @@ unset($query['actions']);
|
||||
$data['attachmentsPresent'] = $imageTag;
|
||||
$data['attachmentsBlock'] = $imageHTMLBlock;
|
||||
$data['toolbaractions'] = json_encode($actionsenabled);
|
||||
$data['address'] = ($_folderType?$data["toaddress"]:$data["fromaddress"]);
|
||||
$rv[] = $data;
|
||||
//error_log(__METHOD__.__LINE__.array2string($result));
|
||||
}
|
||||
@ -3330,6 +3344,9 @@ blockquote[type=cite] {
|
||||
*/
|
||||
function ajax_deleteFolder($_folderName)
|
||||
{
|
||||
//lang("Do you really want to DELETE Folder %1 ?",OldFolderName);
|
||||
//lang("All subfolders will be deleted too, and all messages in all affected folders will be lost");
|
||||
//lang("All messages in the folder will be lost");
|
||||
//error_log(__METHOD__.__LINE__.' OldFolderName:'.array2string($_folderName));
|
||||
$success = false;
|
||||
if ($_folderName)
|
||||
|
@ -1861,7 +1861,7 @@ app.classes.mail = AppJS.extend(
|
||||
OldFolderName = OldFolderName.trim();
|
||||
OldFolderName = OldFolderName.replace(/\([0-9]*\)/g,'').trim();
|
||||
//console.log(OldFolderName);
|
||||
reallyDelete = confirm(this.egw.lang("Do you really want to DELETE Folder %1 ? \r\nAll messages in the folder will be lost",OldFolderName));
|
||||
reallyDelete = confirm(this.egw.lang("Do you really want to DELETE Folder %1 ?",OldFolderName)+" \r\n"+(ftree.hasChildren(_senders[0].iface.id)?this.egw.lang("All subfolders will be deleted too, and all messages in all affected folders will be lost"):this.egw.lang("All messages in the folder will be lost")));
|
||||
if (reallyDelete)
|
||||
{
|
||||
app.mail.app_refresh(this.egw.lang("Deleting Folder %1",OldFolderName, 'mail'));
|
||||
|
@ -10,7 +10,9 @@ activating by date requires a start- and end-date! mail en Activating by date re
|
||||
add to addressbook mail en add to addressbook
|
||||
all adresses: mail en All Adresses:
|
||||
all available info admin en all available info
|
||||
all messages in the folder will be lost mail en All messages in the folder will be lost
|
||||
all of mail en all of
|
||||
all subfolders will be deleted too, and all messages in all affected folders will be lost mail en All subfolders will be deleted too, and all messages in all affected folders will be lost
|
||||
allow external images mail en Allow external images
|
||||
allow images from external sources in html emails mail en allow images from external sources in html emails
|
||||
allways a new window mail en allways a new window
|
||||
@ -54,6 +56,7 @@ display only when no plain text is available mail en display only when no plain
|
||||
displaying html messages is disabled mail en displaying html messages is disabled
|
||||
displaying plain messages is disabled mail en displaying plain messages is disabled
|
||||
do not auto create folders mail en do not auto create folders
|
||||
do you really want to delete folder %1 ? mail en Do you really want to DELETE Folder %1 ?
|
||||
do you want to be asked for confirmation before attaching selected messages to new mail? mail en Do you want to be asked for confirmation before attaching selected messages to new mail?
|
||||
do you want to be asked for confirmation before moving selected messages to another folder? mail en Do you want to be asked for confirmation before moving selected messages to another folder?
|
||||
do you want to prevent the editing/setup for forwarding of mails via settings (, even if sieve is enabled)? mail en Do you want to prevent the editing/setup for forwarding of mails via settings (, even if SIEVE is enabled)?
|
||||
@ -150,13 +153,16 @@ new message type mail en New message type
|
||||
no (valid) send folder set in preferences mail en No (valid) Send Folder set in preferences
|
||||
no action defined! mail en No action defined!
|
||||
no address to/cc/bcc supplied, and no folder to save message to provided. mail en No Address TO/CC/BCC supplied, and no folder to save message to provided.
|
||||
no adress, to send this mail to, supplied mail en no adress, to send this mail to, supplied
|
||||
no folder destination supplied, and no folder to save message or other measure to store the mail (save to infolog/tracker) provided, but required. mail en No Folder destination supplied, and no folder to save message or other measure to store the mail (save to infolog/tracker) provided, but required.
|
||||
no folders mail en no folders
|
||||
no message body supplied mail en no message body supplied
|
||||
no plain text part found mail en no plain text part found
|
||||
no recipient address given! mail en No recipient address given!
|
||||
no send folder set in preferences mail en No Send Folder set in preferences
|
||||
no signature mail en no signature
|
||||
no subject given! mail en No subject given!
|
||||
no subject supplied mail en no subject supplied
|
||||
none, create all mail en none, create all
|
||||
notify when new mails arrive in these folders mail en notify when new mails arrive in these folders
|
||||
on mail en on
|
||||
|
@ -11,6 +11,7 @@
|
||||
<column width="95"/>
|
||||
<column width="120"/>
|
||||
<column width="120"/>
|
||||
<column width="120"/>
|
||||
<column width="50"/>
|
||||
</columns>
|
||||
<rows>
|
||||
@ -20,6 +21,7 @@
|
||||
<nextmatch-header statustext="attachments, ..." label="..." id="attachments"/>
|
||||
<nextmatch-sortheader label="subject" id="subject"/>
|
||||
<nextmatch-sortheader align="center" label="date" id="date"/>
|
||||
<nextmatch-sortheader label="emailaddress" id="address"/>
|
||||
<nextmatch-sortheader label="to" id="toaddress"/>
|
||||
<nextmatch-sortheader label="from" id="fromaddress"/>
|
||||
<nextmatch-sortheader align="center" label="size" id="size"/>
|
||||
@ -30,6 +32,7 @@
|
||||
<html id="${row}[attachments]"/>
|
||||
<description id="${row}[subject]" no_lang="1"/>
|
||||
<date-time_today align="center" id="${row}[date]" readonly="true"/>
|
||||
<url-email id="${row}[address]" readonly="true"/>
|
||||
<url-email id="${row}[toaddress]" readonly="true"/>
|
||||
<url-email id="${row}[fromaddress]" readonly="true"/>
|
||||
<vfs-size align="right" id="${row}[size]" no_lang="1" readonly="true"/>
|
||||
|
Loading…
Reference in New Issue
Block a user