styling on compose toolbar; add print button on compose window; some codecleanup; some control regarding the compose actions on vfs-file-selector, infolog and tracker creation

This commit is contained in:
Klaus Leithoff 2013-10-07 15:02:35 +00:00
parent 78855fa7b7
commit cd5d52d811
5 changed files with 80 additions and 87 deletions

View File

@ -357,7 +357,6 @@ class mail_compose
if (!$remove) $_content['attachments'][] = $att; if (!$remove) $_content['attachments'][] = $att;
} }
} }
$CAtFStart = array2string($_content);
// someone clicked something like send, or saveAsDraft // someone clicked something like send, or saveAsDraft
$buttonClicked = false; $buttonClicked = false;
if ($_content['button']['send']) if ($_content['button']['send'])
@ -389,7 +388,7 @@ $CAtFStart = array2string($_content);
egw_framework::refresh_opener(lang('Message send failed: %1',$message),'mail'); egw_framework::refresh_opener(lang('Message send failed: %1',$message),'mail');
} }
} }
if ($_content['button']['saveAsDraft']) if ($_content['button']['saveAsDraft']||$_content['button']['saveAsDraftAndPrint'])
{ {
$buttonClicked = $suppressSigOnTop = true; $buttonClicked = $suppressSigOnTop = true;
$savedOK = true; $savedOK = true;
@ -405,20 +404,6 @@ $CAtFStart = array2string($_content);
egw_framework::message(lang('Message saved successfully.'),'mail'); egw_framework::message(lang('Message saved successfully.'),'mail');
} }
} }
// form was submitted either by clicking a button or by changing one of the triggering selectboxes
// identity and signatureID; this might trigger that the signature in mail body may have to be altered
if (
(!empty($composeCache['identity']) && !empty($_content['identity']) && $_content['identity'] != $composeCache['identity']) ||
(!empty($composeCache['signatureID']) && !empty($_content['signatureID']) && $_content['signatureID'] != $composeCache['signatureID'])
)
{
$buttonClicked = true;
}
// all values are empty for a new compose window
if ($buttonClicked = true)
{
$suppressSigOnTop = true;
}
$insertSigOnTop = false; $insertSigOnTop = false;
$content = (is_array($_content)?$_content:array()); $content = (is_array($_content)?$_content:array());
// user might have switched desired mimetype, so we should convert // user might have switched desired mimetype, so we should convert
@ -455,6 +440,21 @@ $CAtFStart = array2string($_content);
$content['is_plain'] = false; $content['is_plain'] = false;
} }
$content['body'] = ($content['body'] ? $content['body'] : $content['mail_'.($content['mimeType'] == 'html'?'html':'plain').'text']); $content['body'] = ($content['body'] ? $content['body'] : $content['mail_'.($content['mimeType'] == 'html'?'html':'plain').'text']);
// form was submitted either by clicking a button or by changing one of the triggering selectboxes
// identity and signatureID; this might trigger that the signature in mail body may have to be altered
if ( !empty($content['body']) &&
(!empty($composeCache['identity']) && !empty($_content['identity']) && $_content['identity'] != $composeCache['identity']) ||
(!empty($composeCache['signatureID']) && !empty($_content['signatureID']) && $_content['signatureID'] != $composeCache['signatureID'])
)
{
$buttonClicked = true;
}
// all values are empty for a new compose window
if ($buttonClicked = true)
{
$suppressSigOnTop = true;
}
$alwaysAttachVCardAtCompose = false; // we use this to eliminate double attachments, if users VCard is already present/attached $alwaysAttachVCardAtCompose = false; // we use this to eliminate double attachments, if users VCard is already present/attached
if ( isset($GLOBALS['egw_info']['apps']['stylite']) && (isset($this->preferencesArray['attachVCardAtCompose']) && if ( isset($GLOBALS['egw_info']['apps']['stylite']) && (isset($this->preferencesArray['attachVCardAtCompose']) &&
$this->preferencesArray['attachVCardAtCompose'])) $this->preferencesArray['attachVCardAtCompose']))
@ -766,13 +766,6 @@ $CAtFStart = array2string($_content);
/* /*
if ($GLOBALS['egw_info']['user']['apps']['addressbook']) {
$this->t->set_var("link_addressbook",egw::link('/index.php',array(
'menuaction' => 'addressbook.addressbook_ui.emailpopup',
)));
} else {
$this->t->set_var("link_addressbook",'');
}
$this->t->set_var("focusElement",$_focusElement); $this->t->set_var("focusElement",$_focusElement);
$linkData = array $linkData = array
@ -786,26 +779,6 @@ $CAtFStart = array2string($_content);
'menuaction' => 'felamimail.uicompose.fileSelector', 'menuaction' => 'felamimail.uicompose.fileSelector',
'composeid' => $this->composeID 'composeid' => $this->composeID
); );
$this->t->set_var('file_selector_url',egw::link('/index.php',$linkData));
$this->t->set_var('vfs_selector_url',egw::link('/index.php',array(
'menuaction' => 'filemanager.filemanager_select.select',
'mode' => 'open-multiple',
'method' => 'felamimail.uicompose.vfsSelector',
'id' => $this->composeID,
'label' => lang('Attach'),
)));
if ($GLOBALS['egw_info']['user']['apps']['filemanager'])
{
$this->t->set_var('vfs_attach_button','
<button class="menuButton" type="button" onclick="fm_compose_displayVfsSelector();" title="'.htmlspecialchars(lang('filemanager')).'">
<img src="'.common::image('filemanager','navbar').'" height="18">
</button>');
}
else
{
$this->t->set_var('vfs_attach_button','');
}
$linkData = array $linkData = array
( (
'menuaction' => 'felamimail.uicompose.action', 'menuaction' => 'felamimail.uicompose.action',
@ -1127,6 +1100,26 @@ if (is_array($content['attachments']))error_log(__METHOD__.__LINE__.'before merg
$preserv['attachments'] = $content['attachments']; $preserv['attachments'] = $content['attachments'];
if (is_array($content['attachments']))error_log(__METHOD__.__LINE__.' Attachments:'.array2string($content['attachments'])); if (is_array($content['attachments']))error_log(__METHOD__.__LINE__.' Attachments:'.array2string($content['attachments']));
// if no filemanager -> no vfsFileSelector
if (!$GLOBALS['egw_info']['user']['apps']['filemanager'])
{
$content['vfsNotAvailable'] = "mail-index_quotaDisplayNone";
}
// if no infolog -> no save as infolog
if (!$GLOBALS['egw_info']['user']['apps']['infolog'])
{
$content['noInfologAvailable'] = "mail-index_quotaDisplayNone";
}
// if no tracker -> no save as tracker
if (!$GLOBALS['egw_info']['user']['apps']['tracker'])
{
$content['noTrackerAvailable'] = "mail-index_quotaDisplayNone";
}
if (!$GLOBALS['egw_info']['user']['apps']['infolog'] && !$GLOBALS['egw_info']['user']['apps']['tracker'])
{
$content['noSaveAsAvailable'] = "mail-index_quotaDisplayNone";
}
// composeID to detect if we have changes to certain content
$preserv['composeID'] = $content['composeID'] = $this->composeID; $preserv['composeID'] = $content['composeID'] = $this->composeID;
//error_log(__METHOD__.__LINE__.' ComposeID:'.$preserv['composeID']); //error_log(__METHOD__.__LINE__.' ComposeID:'.$preserv['composeID']);
$preserv['is_html'] = $content['is_html']; $preserv['is_html'] = $content['is_html'];

View File

@ -1349,12 +1349,6 @@ unset($query['actions']);
} }
//error_log(__METHOD__.array2string($css_styles)); //error_log(__METHOD__.array2string($css_styles));
//if (in_array("check", $cols))
// don't overwrite check with "false" as this forces the grid to
// deselect the row - sending "0" doesn't do that
//if (in_array("check", $cols)) $data["check"] = $previewMessage == $header['uid'] ? true : 0;// $row_selected; //TODO:checkbox true or false
//$data["check"] ='<input style="width:12px; height:12px; border: none; margin: 1px;" class="{row_css_class}" type="checkbox" id="msgSelectInput" name="msg[]" value="'.$message_uid.'"
// onclick="toggleFolderRadio(this, refreshTimeOut)">';
if (in_array("subject", $cols)) if (in_array("subject", $cols))
{ {
@ -1374,7 +1368,6 @@ unset($query['actions']);
// make the subject shorter if it is to long // make the subject shorter if it is to long
$fullSubject = $header['subject']; $fullSubject = $header['subject'];
$subject = $header['subject']; $subject = $header['subject'];
#$this->t->set_var('attachments', $header['attachment']);
} else { } else {
$subject = @htmlspecialchars('('. lang('no subject') .')', ENT_QUOTES, $this->charset); $subject = @htmlspecialchars('('. lang('no subject') .')', ENT_QUOTES, $this->charset);
} }
@ -1462,12 +1455,6 @@ unset($query['actions']);
} else { } else {
$senderAddress = $header['to_address']; $senderAddress = $header['to_address'];
} }
$linkData = array
(
'menuaction' => 'mail.mail_compose.compose',
'send_to' => base64_encode($senderAddress)
);
$windowName = 'compose_'.$header['uid'];
// sent or drafts or template folder means foldertype > 0, use to address instead of from // sent or drafts or template folder means foldertype > 0, use to address instead of from
$header2add = $header['to_address'];//mail_bo::htmlentities($header['to_address'],$this->charset); $header2add = $header['to_address'];//mail_bo::htmlentities($header['to_address'],$this->charset);
@ -1482,7 +1469,6 @@ unset($query['actions']);
$sender_name = $header['to_address']; $sender_name = $header['to_address'];
$full_address = $header['to_address']; $full_address = $header['to_address'];
} }
//$data["toaddress"] = "<nobr><a href=\"#\" onclick=\"fm_handleComposeClick(false,'".$GLOBALS['egw']->link('/index.php',$linkData)."', '".$windowName."', this); return false;\" title=\"".@htmlspecialchars($full_address, ENT_QUOTES | ENT_IGNORE, $this->charset,false)."\">".@htmlspecialchars($sender_name, ENT_QUOTES | ENT_IGNORE, $this->charset,false)."</a></nobr>";
$data["toaddress"] = $full_address; $data["toaddress"] = $full_address;
} }
@ -1509,16 +1495,6 @@ unset($query['actions']);
} else { } else {
$senderAddress = $header['sender_address']; $senderAddress = $header['sender_address'];
} }
/*
$linkData = array
(
'menuaction' => 'mail.mail_compose.compose',
'send_to' => base64_encode($senderAddress)
);
$windowName = 'compose_'.$header['uid'];
$data["fromaddress"] = "<nobr><a href=\"#\" onclick=\"fm_handleComposeClick(false,'".$GLOBALS['egw']->link('/index.php',$linkData)."', '".$windowName."', this); return false;\" title=\"".@htmlspecialchars($full_address, ENT_QUOTES | ENT_IGNORE, $this->charset,false)."\">".@htmlspecialchars($sender_name, ENT_QUOTES | ENT_IGNORE, $this->charset,false)."</a></nobr>";
*/
$data["fromaddress"] = $full_address; $data["fromaddress"] = $full_address;
} }
if (in_array("date", $cols)) if (in_array("date", $cols))
@ -1533,16 +1509,6 @@ unset($query['actions']);
if (in_array("size", $cols)) if (in_array("size", $cols))
$data["size"] = $header['size']; /// size $data["size"] = $header['size']; /// size
/*
//TODO: url_add_to_addressbook isn't in any of the templates.
//If you want to use it, you need to adopt syntax to the new addressbook (popup)
$this->t->set_var('url_add_to_addressbook',$GLOBALS['egw']->link('/index.php',$linkData));
*/
//$this->t->set_var('msg_icon_sm',$msg_icon_sm);
//$this->t->set_var('phpgw_images',EGW_IMAGES);
//$result["data"] = $data;
$data["class"] = implode(' ', $css_styles); $data["class"] = implode(' ', $css_styles);
$data['attachmentsPresent'] = $imageTag; $data['attachmentsPresent'] = $imageTag;
$data['attachmentsBlock'] = $imageHTMLBlock; $data['attachmentsBlock'] = $imageHTMLBlock;

View File

@ -1437,6 +1437,11 @@ app.mail = AppJS.extend(
this.et2_obj.submit(); this.et2_obj.submit();
}, },
saveAsDraftAndPrint: function(_egw, _widget, _window)
{
this.et2_obj.submit();
},
sieve_editRules_radiobtn: function() sieve_editRules_radiobtn: function()
{ {
console.log("hi i am radiobtn"); console.log("hi i am radiobtn");

View File

@ -342,6 +342,7 @@ input[type=button] {
#mail-index_button\[mailcreate\] { #mail-index_button\[mailcreate\] {
width: 99%; width: 99%;
text-align: left; text-align: left;
font-weight: bold;
padding-left: 25px; padding-left: 25px;
background-image: url(images/write_mail.png) !important; background-image: url(images/write_mail.png) !important;
background-position: left; background-position: left;
@ -350,7 +351,10 @@ input[type=button] {
#mail-compose_button\[send\] { #mail-compose_button\[send\] {
text-align: left; text-align: left;
padding-left: 25px; font-weight: bold;
padding-left: 30px;
width: 80px;
margin: 0px !important;
background-image: url(images/mail_send.png) !important; background-image: url(images/mail_send.png) !important;
background-position: left; background-position: left;
background-repeat: no-repeat; background-repeat: no-repeat;
@ -361,6 +365,25 @@ input[type=button] {
position: relative; position: relative;
margin-top: 3px; margin-top: 3px;
} }
#mail-compose_fileselector {
width: 245px !important;
}
#mail-compose_toolbar {
padding: 0px !important;
}
#mail-compose_toolbar > button {
padding: .2em .4em;
}
#mail-compose_toolbar > img {
width: 16px;
padding: 0px;
height: 16px !important;
}
#mail-compose_toolbar > button > span > img {
width: 16px;
padding: 0px;
height: 16px !important;
}
#mail-display_toolbar { #mail-display_toolbar {
padding: 0px; padding: 0px;
} }

View File

@ -11,15 +11,21 @@
</menulist> </menulist>
<textbox class="mail-index_quotaDisplayNone" readonly="true" id="composeID"/> <textbox class="mail-index_quotaDisplayNone" readonly="true" id="composeID"/>
</hbox> </hbox>
<hbox> <hbox class="et2_toolbar ui-widget-header ui-corner-all mail-compose_toolbar">
<button label="Send" id="button[send]"/> <buttononly value="saveAsDraft" id="button[saveAsDraft]" image="fileexport" onclick="app.mail.saveAsDraft"/> <button class="et2_button ui-button mail-compose_button" label="Send" id="button[send]"/>
<vfs-select id="selectFromVFSForCompose" onchange="app.mail.vfsUploadForCompose"/> <buttononly class="et2_button ui-button" value="saveAsDraft" id="button[saveAsDraft]" image="fileexport" onclick="app.mail.saveAsDraft"/>
<file statustext="Select file to attach to message" multiple='true' progress='mailUploadProgress' onFinish="app.mail.uploadForCompose" id="uploadForCompose" drop_target ="mailUploadSection"/> <buttononly class="et2_button ui-button" value="saveAsDraftAndPrint" id="button[saveAsDraftAndPrint]" image="print" onclick="app.mail.saveAsDraftAndPrint"/>
<description value="Save:"/> <vfs-select class="$cont[vfsNotAvailable]" id="selectFromVFSForCompose" onchange="app.mail.vfsUploadForCompose"/>
<image class="et2_button_icon" label="Save as infolog on send" src="infolog/navbar" no_lang="1"/> <file class="mail-compose_fileselector" statustext="Select file to attach to message" multiple='true' progress='mailUploadProgress' onFinish="app.mail.uploadForCompose" id="uploadForCompose" drop_target ="mailUploadSection"/>
<checkbox statustext="check to save as infolog on send" id="to_infolog" options="$cont[to_infolog]"/> <description class="$cont[noSaveAsAvailable]" value="Save:"/>
<image class="et2_button_icon" label="Save as tracker on send" src="tracker/navbar" no_lang="1"/> <hbox class="$cont[noInfologAvailable]">
<checkbox statustext="check to save as trackerentry on send" id="to_tracker" options="$cont[to_tracker]"/> <image class="et2_button ui-button et2_button_icon" label="Save as infolog on send" src="infolog/navbar" no_lang="1"/>
<checkbox statustext="check to save as infolog on send" id="to_infolog" options="$cont[to_infolog]"/>
</hbox>
<hbox class="$cont[noTrackerAvailable]">
<image class="et2_button ui-button et2_button_icon" label="Save as tracker on send" src="tracker/navbar" no_lang="1"/>
<checkbox statustext="check to save as trackerentry on send" id="to_tracker" options="$cont[to_tracker]"/>
</hbox>
<description value="Recieve notification"/> <description value="Recieve notification"/>
<checkbox statustext="check to recieve a notification when the message is read (note: not all clients support this and/or the reciever may not authorize the notification)" id="disposition" options="$cont[disposition]"/> <checkbox statustext="check to recieve a notification when the message is read (note: not all clients support this and/or the reciever may not authorize the notification)" id="disposition" options="$cont[disposition]"/>
<description value="Priority"/> <description value="Priority"/>