Mobile improvement attempt

Signed-off-by: Janos SUTO <sj@acts.hu>
This commit is contained in:
Janos SUTO 2020-03-15 08:34:55 +01:00
parent 162f16ee53
commit 78a12afa17
4 changed files with 240 additions and 0 deletions

View File

@ -0,0 +1,11 @@
#mainscreen{position:absolute;top:40px;right:15px;bottom:20px;left:15px;min-width:320px;z-index:0;}
#mailleftcontainer{position:absolute;top:0;left:0;bottom:0;width:195px;}
#mailrightcontent{position:absolute;top:0px;left:0;right:0;bottom:0;}
#mailcontframe{border:1px solid #999999;position:absolute;width:100%;top:1px;bottom:0;background-color:#F9F9F9;overflow:hidden;}
#mailpreviewframe{border:1px solid #999999;position:absolute;width:100%;bottom:0px;background-color:#F9F9F9;text-align:left;overflow:auto;}
.boxlistcontent{position:absolute;top:0px;bottom:34px;left:0;right:0;width:100%;overflow-y:auto;overflow-x:hidden;height:auto;}
.top0{top:0;}
.boxfooter{position:absolute;bottom:0px;left:0px;right:0px;overflow:hidden;height:33px;border-top:1px solid #ccc;background-color:#f6f6f6;min-width:320px;}
#pagingrow{height:33px;overflow:hidden;}
#pagingbox{background-color:#eeeeee;border-right:1px solid #ccc;padding:4px;height:25px;overflow:hidden;min-width:180px;}
#notesbox{display:none;}

View File

@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print DEFAULT_LANG; ?>" lang="<?php print DEFAULT_LANG; ?>">
<head>
<title><?php print $title; ?></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="<?php print DEFAULT_LANG; ?>" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<?php if(SITE_KEYWORDS) { ?><meta name="keywords" content="<?php print SITE_KEYWORDS; ?>" /><?php } ?>
<?php if(SITE_DESCRIPTION) { ?><meta name="description" content="<?php print SITE_DESCRIPTION; ?>" /><?php } ?>
<?php if(PROVIDED_BY) { ?><meta name="author" content="<?php print PROVIDED_BY; ?>" /><?php } ?>
<meta name="rating" content="general" />
<meta name="robots" content="all" />
<meta http-equiv="x-ua-compatible" content="IE=edge">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu"
crossorigin="anonymous">
<link rel="stylesheet" href="/view/theme/default/assets/css/piler.css" />
<?php if(BRANDING_FAVICON) { ?><link rel="shortcut icon" href="<?php print BRANDING_FAVICON; ?>" /><?php } ?>
<?php print JS_CODE; ?>
<?php print CSS_CODE; ?>
</head>
<body onload="Piler.add_shortcuts();">
<div id="deleteconfirm-modal" class="modal hide fade">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" role="dialog" aria-hidden="true"><i class="glyphicon glyphicon-remove"></i></button>
<h3><?php print $text_forward_selected_emails_to; ?></h3>
</div>
<div class="modal-body">
<input type="text" id="restore_address" name="restore_address" />
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal" aria-hidden="true"><?php print $text_close; ?></a>
<a href="#" onclick="var addr = $('#restore_address').val(); if(addr) { Piler.bulk_restore_messages('<?php print $text_restored; ?>', addr); }" class="btn btn-primary" data-dismiss="modal" aria-hidden="true">OK</a>
</div>
</div>
<div id="piler1" class="container-fluid">
<input type="hidden" name="searchtype" id="searchtype" value="expert" />
<input type="hidden" name="sort" id="sort" value="date" />
<input type="hidden" name="order" id="order" value="0" />
<input type="hidden" name="ref" id="ref" value="" />
<input type="hidden" name="prefix" id="prefix" value="" />
<div class="row">
<div class="col-xs-8"><input type="text" id="_search" name="_search" class="form-control" placeholder="Search" /></div>
<div class="col-xs-4"><button id="button_search" class="btn btn-default btn-danger" onclick="Piler.expert(this); return false;"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button></div>
</div>
</div>
<div id="mainscreen">
<div id="mailleftcontainer">
</div>
<div id="mailrightcontainer">
<div id="mailrightcontent">
<div id="mailcontframe">
<div id="messagelistcontainer" class="boxlistcontent top0">
<?php print $content; ?>
</div>
</div>
<script type="text/javascript">
var mailviewsplit = new rcube_splitter({id:'splitter2', p1: 'mailcontframe', p2: 'mailpreviewframe', orientation: 'h', relative: true, start: (document.getElementById('mainscreen').clientHeight / 2)});
split.add_onload('mailviewsplit.init()');
</script>
<div id="mailpreviewframe"></div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
split.init();
});
</script>
<?php if(TRACKING_CODE) { print TRACKING_CODE; } ?>
</body>
</html>

View File

@ -0,0 +1,90 @@
<div id="restorebox" class="alert alert-general" style="display:none;">
<?php if(Registry::get('auditor_user') == 1 && count($rcpt) > 0) { ?>
<?php foreach($rcpt as $r) { ?>
<input type="checkbox" class="restorebox" id="rcpt_<?php print $r; ?>" name="rcpt_<?php print $r; ?>" value="1" /> <?php print $r; ?><br />
<?php } ?>
<br />
<input type="button" id="restore_button" name="restore_button" value="<?php print $text_restore; ?>" class="btn btn-primary" onclick="Piler.restore_message_for_recipients(<?php print $id; ?>, '<?php print $text_restored; ?>', '<?php print $text_select_recipients; ?>');" />
<input type="button" value="<?php print $text_cancel; ?>" class="btn btn-inverse" onclick="$('#restorebox').hide();" />
<?php } ?>
</div>
<div class="messageheader">
<p>
<?php if($can_download == 1) { ?>
<a class="messagelink" href="index.php?route=message/download&amp;id=<?php print $id; ?>"><i class="icon-cloud-download"></i>&nbsp;<?php print $text_download_message; ?></a> |
<?php } ?>
<?php if(SMARTHOST || ENABLE_IMAP_AUTH == 1) { if(Registry::get('auditor_user') == 1) { ?>
<a class="messagelink" href="#" onclick="$('#restorebox').show();"><i class="icon-reply"></i>&nbsp;<?php print $text_restore_to_mailbox; ?></a> |
<?php } else if($can_restore == 1) { ?>
<a class="messagelink" href="#" onclick="Piler.restore_message(<?php print $id; ?>);"><i class="icon-reply"></i>&nbsp;<?php print $text_restore_to_mailbox; ?></a> |
<?php } } ?>
<a class="messagelink" href="#" onclick="Piler.view_headers(<?php print $id; ?>);"><i class="icon-envelope-alt"></i>&nbsp;<?php print $text_view_headers; ?></a>
<?php if(ENABLE_PDF_DOWNLOAD) { ?>
| <a class="messagelink" href="index.php?route=message/pdf&amp;id=<?php print $id; ?>"><img src="/view/theme/default/assets/images/fileicons/pdf.png" />&nbsp;<?php print "PDF"; ?></a>
<?php } ?>
<?php if($message['has_journal'] == 1 && Registry::get('auditor_user') == 1 && SHOW_ENVELOPE_JOURNAL == 1) { ?>
| <a class="messagelink" href="#" onclick="Piler.view_journal(<?php print $id; ?>);"><i class="icon-envelope-alt"></i>&nbsp;<?php print $text_view_journal_envelope; ?></a>
<?php } ?>
<?php if(Registry::get('auditor_user') == 1) { ?>
| <a class="messagelink" href="#" onclick="Piler.mark_as_private(<?php print $id; ?>, <?php $message['private'] == 1 ? print "0" : print "1" ?>);"><i class="icon-bookmark<?php if($message['private'] == 0) { ?>-empty<?php } ?>"></i>&nbsp;<?php print "private"; ?></a>
<?php } ?>
<?php if($spam == 1) { ?>
| <a class="messagelink" href="#" onclick="Piler.not_spam(<?php print $id; ?>);"><i class="icon-exclamation-sign"></i>&nbsp;<?php print $text_not_spam; ?></a>
<?php } ?>
| <a href="#" onclick="Piler.print_div('messageblock');"><i class="glyphicon glyphicon-print"></i>&nbsp;<?php print $text_print_message; ?></a>
<?php if(ENABLE_ON_THE_FLY_VERIFICATION == 0) {
if ($message['verification'] == 1) { ?><?php print $text_verified_flag; ?> <i class="glyphicon glyphicon-ok-sign icon-large" title="<?php print $text_verified_flag; ?>"></i><?php } else { ?><?php print $text_unverified_flag; ?> <i class="glyphicon glyphicon-remove-sign icon-large" title="<?php print $text_unverified_flag; ?>"></i><?php }
} ?>
| <a href="#" onclick="($('#notesbox').is(':hidden'))?$('#notesbox').show():$('#notesbox').hide();"><i class="glyphicon glyphicon-file"></i>&nbsp;<?php print $text_create_note; ?></a>
</p>
</div>
<div id="notesbox" class="input-prepend input-append" style="display:none;">
<span class="add-on"><i class="icon-file-alt icon-large"></i>&nbsp;<?php print $text_notes; ?>:</span>
<input type="text" size="60" id="note" name="note" class="mynote" value="<?php print preg_replace("/\"/", "&quot;", $message['note']); ?>" />
<input type="button" class="btn btn-info" value="<?php print $text_save; ?>" class="message_button" onclick="Piler.add_note_to_message(<?php print $id; ?>, '<?php print $text_saved; ?>'); " />
</div>
<?php if(ENABLE_FOLDER_RESTRICTIONS == 1) { ?>
<div id="folderbox" class="input-prepend input-append">
<span class="add-on"><i class="icon-folder-open-alt icon-large"></i>&nbsp;<?php print $text_folder; ?>:</span>
<select name="folder_id" id="folder_id" class="span2">
<option value="0" <?php if($folder_id == 0) { ?>selected="selected"<?php } ?>>---</option>
<?php foreach ($folders as $folder) { ?>
<option value="<?php print $folder['id']; ?>" <?php if($folder_id == $folder['id']) { ?>selected="selected"<?php } ?>><?php print $folder['name']; ?></option>
<?php } ?>
</select>
<input type="button" class="btn btn-info" value="<?php print $text_save; ?>" class="message_button" onclick="Piler.update_message_folder(<?php print $id; ?>, '<?php print $text_saved; ?>'); " />
</div>
<?php } ?>
<div id="messageblock">
<div class="messageheader">
<strong><?php if($message['subject'] == "" || $message['subject'] == "Subject:") { print "&lt;" . $text_no_subject . "&gt;"; } else { print $message['subject']; } ?></strong><br />
<strong><?php print $message['from']; ?></strong><br />
<strong><?php print $message['to']; ?></strong><br />
<?php if(strlen($message['cc']) > 6) { ?><strong><?php print $message['cc']; ?></strong><br /><?php } ?>
<strong><?php print $message['date']; ?></strong><br />
<?php foreach($attachments as $a) { ?>
<span><i class="attachment icon-paper-clip icon-large" title="Message Attachment"></i>&nbsp;<a href="index.php?route=message/attachment&id=<?php print $a['id']; ?>"><?php print $a['name']; ?></a></span>
<?php } ?><?php if(count($attachments) > 1) { ?>| <a href="index.php?route=message/attachments&id=<?php print $id; ?>"><i class="icon-briefcase"></i></a><?php } ?><br/>
</div>
<div class="messagecontents">
<?php print $message['message']; ?>
</div>
<?php foreach($images as $img) { ?>
<p><img src="<?php print SITE_URL; ?>/tmp/<?php print $img['name']; ?>" alt="" /></p>
<?php } ?>
</div>

View File

@ -0,0 +1,48 @@
<div id="messagelistcontainer" class="boxlistcontent">
<?php if($n > 0) { ?>
<table id="results" class="table table-striped table-condensed">
<tbody>
<?php $i=0; foreach ($messages as $message) { ?>
<tr onmouseover="Piler.current_message_id = <?php print $message['id']; ?>; return false;" id="e_<?php print $message['id']; ?>" class="resultrow new <?php if($message['deleted'] == 1) { ?>xxx<?php } ?>" onclick="Piler.view_message_by_pos(<?php print $i; ?>);">
<td id="c2_r<?php print $i; ?>" class="resultcell"><?php print ($page*$page_len) + $i + 1; ?>.</td>
<td id="c3_r<?php print $i; ?>" class="resultcell"><?php print $message['date']; ?><br /><?php print $message['shortfrom']; ?><br /><?php print $message['shortsubject']; ?></td>
</tr>
<?php $i++; } ?>
</tbody>
</table>
<?php } else if($n == 0) { ?>
<div class="alert alert-block alert-error lead"><i class="glyphicon glyphicon-exclamation-sign icon-2x pull-left"></i> <?php print $text_empty_search_result; ?></div>
<?php } ?>
</div>
<div id="messagelistfooter" class="boxfooter">
<div class="row-fluid">
<div id="pagingrow" class="span4">
<div id="pagingbox">
<?php if($n > 0){ ?>
&nbsp;
<?php if($page > 0) { ?><a href="#" class="navlink" onclick="Piler.navigation(0);"><i class="glyphicon glyphicon-chevron-left"></i></a><?php } else { ?><span class="navlink"><i class="glyphicon glyphicon-chevron-left muted"></i></span><?php } ?>
&nbsp;
<?php if($page > 0) { ?><a href="#" class="navlink" onclick="Piler.navigation(<?php print $prev_page; ?>);"><i class="glyphicon glyphicon-menu-left"></i></a><?php } else { ?><span class="navlink"><i class="glyphicon glyphicon-menu-left"></i></span><?php } ?>
&nbsp;
<?php print $hits_from; ?>-<?php print $hits_to; ?>, <?php print $text_total; ?>: <?php print $hits; ?><?php if($total_found > MAX_SEARCH_HITS) { ?> (<?php print $total_found; ?>)<?php } ?>
&nbsp;
<?php if($next_page <= $total_pages){ ?><a href="#" class="navlink" onclick="Piler.navigation(<?php print $next_page; ?>);"><i class="glyphicon glyphicon-menu-right"></i></a> <?php } else { ?><span class="navlink"><i class="glyphicon glyphicon-menu-right muted"></i></span><?php } ?>
&nbsp;
<?php if($page < $total_pages) { ?><a href="#" class="navlink" onclick="Piler.navigation(<?php print $total_pages; ?>);"><i class="glyphicon glyphicon-chevron-right"></i></a><?php } else { ?> <span class="navlink"><i class="glyphicon glyphicon-chevron-right muted"></i></span><?php } ?>
&nbsp;
<?php } else { print $text_none_found; } ?>
</div>
</div>
</div>
</div>