Add files via upload

This commit is contained in:
seb1k 2024-06-19 00:10:06 +02:00 committed by GitHub
parent 0329a1b3b4
commit 5b1812a49f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 132 additions and 58 deletions

View file

@ -347,7 +347,7 @@ pre code{font-size:inherit;color:inherit;word-break:normal}
.offset-xl-11{margin-left:91.666667%}
}
.table{width:100%;margin-bottom:1rem;color:#212529}
.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}
.table td,.table th{padding:.75rem;vertical-align:top;}
.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}
.table tbody+tbody{border-top:2px solid #dee2e6}
.table-sm td,.table-sm th{padding:.3rem}
@ -399,20 +399,9 @@ pre code{font-size:inherit;color:inherit;word-break:normal}
.table-dark.table-bordered{border:0}
.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}
.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}
@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-responsive-sm>.table-bordered{border:0}
}
@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-responsive-md>.table-bordered{border:0}
}
@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-responsive-lg>.table-bordered{border:0}
}
@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-responsive-xl>.table-bordered{border:0}
}
.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-responsive>.table-bordered{border:0}
.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}
@media (prefers-reduced-motion:reduce){.form-control{transition:none}
}

View file

@ -14,8 +14,7 @@
"additional_logo_types": ["dark", "small", "small-dark"]
},
"meta": {
"viewport": "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0",
"theme-color": "#f4f4f4",
"msapplication-navbutton-color": "#f4f4f4"
"viewport": "width=device-width, initial-scale=1.0, shrink-to-fit=no, maximum-scale=1.0",
"theme-color": "#ffffff"
}
}

32
styles/styles.min.css vendored
View file

@ -18,6 +18,15 @@ html.dark-mode {
}
fieldset:nth-of-type(1) legend {
display:none;
}
#pluginlist td{
padding:2px 10px
}
.insummary{
opacity:.5;
padding:5px;
@ -934,11 +943,18 @@ vertical-align:top;
float:initial !important;
}
#mailtoolbar{
margin-top:-25px;
}
#mailtoolbar a{
display:inline-block;
}
.header-headers td.date{
position:absolute;
right:20px;
}
html.layout-normal #mailtoolbar span,
html.layout-small #mailtoolbar span{
@ -3669,6 +3685,7 @@ color: var(--font2);
white-space: nowrap;
vertical-align: middle;
color: #2c363a;
padding: 0 .5rem;
}
@ -3770,11 +3787,6 @@ html.layout-small td.selection {
opacity: 0.4;
}
html:not(.touch) .listing li > a,
html:not(.touch) .listing tbody tr > td:first-child,
html:not(.touch) .listing:not(.withselection) tbody tr > td.selection + td {
}
html:not(.touch) .listing li > a:focus,
html:not(.touch) .listing.focus tbody tr.focused > td:first-child,
html:not(.touch) .listing.focus:not(.withselection) tbody tr.focused > td.selection + td {
@ -3851,9 +3863,10 @@ ul.listing.simplelist li {
font-weight: 700;
}
html.touch .listing tbody td,
html.touch .listing:not(.toolbar) li {
line-height: 47px;
html:not(.layout-large) .listing tbody td,
html:not(.layout-large) .listing:not(.toolbar) li {
line-height: 44px;
font-size: 1.2rem;
}
@ -6750,7 +6763,8 @@ body.task-error-login #layout #layout-content > .header{
#message-header .header-content {
min-height: 4rem;
flex: 1;
max-width: 200px;
width: calc(100vw - 230px);
white-space: nowrap;
}

View file

@ -36,6 +36,22 @@
<div id="compose-options" class="formcontent" role="region" aria-labelledby="aria-label-composeoptions">
<h2 id="aria-label-composeoptions" class="voice"><roundcube:label name="arialabelcomposeoptions" /></h2>
<roundcube:container name="composeoptions" id="compose-options" />
<div class="form-group row form-check">
<label for="fromButton" class="col-form-label col-6"><roundcube:label name="from" /></label>
<div class="col-6 form-check">
<input name="fromButton" id="fromButton" tabindex="2" class="form-check-input" value="1" type="checkbox" onchange="click_from_button(this)" disabled>
</div>
</div>
<div class="form-group row form-check">
<label for="compose-priority2022" class="col-form-label col-6"><span style="color:#f88;font-weight:bold;font-size:16px;">! </span> High Importance</label>
<div class="col-6 form-check">
<input name="_dsn" id="compose-priority2022" tabindex="2" class="form-check-input" value="1" type="checkbox" onchange="define_priority(this)">
</div>
</div>
<roundcube:if condition="!in_array('mdn_default', (array)config:dont_override)" />
<div class="form-group row form-check">
<label for="compose-mdn" class="col-form-label col-6"><roundcube:label name="returnreceipt" /></label>
@ -52,25 +68,20 @@
</div>
</div>
<roundcube:endif />
<div class="form-group row">
<div class="form-group row" style="display:none">
<label for="compose-priority" class="col-form-label col-6"><roundcube:label name="priority" /></label>
<div class="col-6">
<roundcube:object name="prioritySelector" id="compose-priority" noform="true" tabindex="2" class="custom-select" />
</div>
</div>
<roundcube:if condition="!config:no_save_sent_messages" />
<div class="form-group row">
<label for="compose-store-target" class="col-form-label col-6"><roundcube:label name="savesentmessagein" /></label>
<div class="col-6">
<roundcube:object name="storetarget" id="compose-store-target" noform="true" tabindex="2" class="custom-select" />
</div>
</div>
<roundcube:endif />
</div>
</div>
</div>
<div id="layout-content" class="listbox selected" role="main">
<div id="layout-content" class="listbox selected" role="main" ondrag="log('a')" dragover="log('b')" dragenter="log('c')" drop="log('d')">
<h2 id="aria-label-toolbar" class="voice"><roundcube:label name="arialabeltoolbar" /></h2>
<div class="header">
@ -127,6 +138,11 @@
<!-- message headers -->
<div id="compose-headers" role="region" aria-labelledby="aria-label-composeheaders">
<h2 id="aria-label-composeheaders" class="voice"><roundcube:label name="arialabelmessageheaders" /></h2>
<table style="width:100%"><tr><td class="hide_small" style=" width: 1%;vertical-align:middle">
<roundcube:button command="send" class="btn btn-primary send" label="send" tabindex="1" data-content-button="true" style="height: 50px; padding-right: 12px;"/>
</td>
<td>
<div class="compose-headers">
<div id="compose_from" class="form-group row">
<label for="_from" class="col-2 col-form-label"><roundcube:label name="from" /></label>
@ -216,6 +232,7 @@
</div>
</div>
</div>
</td></tr></table>
</div>
<!-- message compose body -->
<div id="composebodycontainer">
@ -226,12 +243,6 @@
<roundcube:endif />
</div>
</form>
<div class="formbuttons">
<roundcube:button command="send" class="btn btn-primary send" label="send" tabindex="1" data-content-button="true" />
<div class="float-right">
<roundcube:button command="extwin" type="link" label="openinextwin" data-hidden="small" class="button icon btn btn-link extwin" data-tabindex="1" condition="!env:extwin" />
</div>
</div>
</div>
</div>

View file

@ -12,7 +12,7 @@
<roundcube:add_label name="choosefiles" />
<roundcube:object name="doctype" value="html5" />
<roundcube:if condition="!env:framed || env:extwin" />
<html>
<html class="layout-small">
<roundcube:else />
<html class="iframe">
<roundcube:endif />

View file

@ -1 +0,0 @@

View file

@ -1,7 +1,7 @@
<div id="layout-sidebar" class="listbox<roundcube:exp expression="!request:_action ? ' selected' : ''"/>" role="navigation" aria-labelledby="aria-label-settingstabs">
<div class="header">
<a style="width:40px;font-size: 1.75rem;height: 58px;text-decoration:none;text-align:center;" href="./?_task=mail"><i class="sebicon backicon"></i></a>
<a style="width:40px;font-size: 1.75rem;height: 58px;text-decoration:none;text-align:center;" href="./?_task=mail"><i class="sebicon backicon" style="font-size:1.75rem"></i></a>
<span id="aria-label-settingstabs" class="header-title"><roundcube:label name="settings" /></span>
</div>
<div class="scroller">

View file

@ -18,7 +18,7 @@
<h1 class="voice"><roundcube:label name="mail" /></h1>
<!-- folders list -->
<div id="layout-sidebar" class="listbox" role="navigation" aria-labelledby="aria-label-folderlist">
<div id="layout-sidebar" class="listbox hidden" role="navigation" aria-labelledby="aria-label-folderlist">
<span class="header-title username" style="padding: 0 10px;"></span>
@ -135,7 +135,7 @@
</div>
<!-- message preview -->
<div id="layout-content">
<div id="layout-content" class="hidden">
<h2 id="aria-label-toolbar" class="voice"><roundcube:label name="arialabeltoolbar" /></h2>
<div class="header_back">

82
ui.min.js vendored
View file

@ -19,7 +19,6 @@ warn = function() { return Function.prototype.bind.call(console.warn, console
error = function() { return Function.prototype.bind.call(console.error, console);}();
"use strict";
function rcube_elastic_ui()
@ -102,6 +101,8 @@ function rcube_elastic_ui()
// Detect screen size/mode
screen_mode();
screen_resize_html() //prevent ugly blinking on phone
// Initialize layout
layout_init();
@ -749,8 +750,25 @@ if(rcmail.env.action=="preview")
$('#compose-options').prepend(this)
});
}
//From button
var fromButton = rcmail.get_cookie('fromButton');
if(fromButton==null) // if no pref in cookie
{
fromButton=true;
if(_from.options.length==1) //by default, show nothing if there is only 1 address
fromButton = "false";
}
if(fromButton=="false")
$('#compose_from').hide();
else
$('#fromButton').prop( "checked", true );
}
$('#fromButton').prop( "disabled", false );
// In compose/preview window we do not provide "Back" button, instead
// we modify the "Mail" button in the task menu to act like it (i.e. calls 'list' command)
if (!rcmail.env.extwin && (rcmail.env.action == 'compose' || rcmail.env.action == 'show')) {
@ -768,6 +786,7 @@ if(rcmail.env.action=="preview")
// restore headers view to last state
//headers_show();
elastic2022_change_mailheader()
}
}
else if (rcmail.task == 'settings') {
@ -869,14 +888,17 @@ if(rcmail.env.action=="preview")
$('.click_change_theme').removeClass('dark').addClass('light').find('span')
$('.sebicon_contrast_txt').text(rcmail.gettext('lightmode'));
$('html').addClass('dark-mode');
$('meta[name="theme-color"]').attr('content', '#1A1C1E')
}
else {
$('#taskmenu a.theme').removeClass('light').addClass('dark').find('span').text(rcmail.gettext('darkmode'));
$('.click_change_theme').removeClass('light').addClass('dark').find('span')
$('.sebicon_contrast_txt').text(rcmail.gettext('darkmode'));
$('html').removeClass('dark-mode');
$('meta[name="theme-color"]').attr('content', '#ffffff')
}
screen_logo(mode);
$('iframe').each(switch_iframe_color_mode);
};
@ -4650,9 +4672,9 @@ function scroll_mailbymail(e)
var scrollTop=mlc.scrollTop
//find first shown tr
var trs=messagelist.querySelectorAll('tr')
var trs=messagelist.querySelectorAll('tr:not([style*="display:none"])')
for(var i=1;i<trs.length;i++)
if(scrollTop<=trs[i].offsetTop)
if(trs[i].style.display!="none" && scrollTop<=trs[i].offsetTop)
break;
if(trs[i].offsetTop-scrollTop>15 && e.deltaY>0) i--;
@ -4728,9 +4750,7 @@ if(parent.rcmail.env.archive_folder) // Archive plugin
li_prev.parentElement.insertBefore(li,li_prev);
//small
log('show')
parent.document.getElementById("header_topmenu_archive").style.display="inline-block"
log(parent.document.getElementById("header_topmenu_archive"))
}
}
@ -5239,13 +5259,9 @@ function go_PWA()
var href = window.location.href
var url = href.substring(0, href.lastIndexOf('/')) + "/";
var theme_color = "#ffffff"
if($('HTML')[0].classList.contains('dark-mode'))
theme_color = "#000000"
var myDynamicManifest = {
"name": "Rouncube",
theme_color: theme_color,
"theme_color": $('meta[name="theme-color"]').attr('content'),
"start_url": url,
"icons": [{
"src": url+"/skins/elastic2022/images/rc192x192.png",
@ -5309,3 +5325,49 @@ function plugin_switchIdent_addCbElastic2022($sw) {
return false;
}
function elastic2022_change_mailheader()
{
var trdate = $('.header-headers .date')[0].closest('tr')
trdate.querySelector('.header-title').style.visibility="hidden"
trdate.parentElement.appendChild(trdate); // move date to last line
var fromhref = $('.header-headers .from .adr a')[0].href
var replyto = $('.header-headers .replyto')
if(replyto.length) // delete replyTo if same as "from"
{
var replytohref = replyto[0].querySelector('a').href
if(replytohref==fromhref)
{
replyto.parent().hide()
}
}
var sender = $('.header-headers .sender')
if(sender.length) // delete sender if same as "from"
{
var senderhrefhref = replyto[0].querySelector('a').href
if(senderhrefhref==fromhref)
{
sender.parent().hide()
}
}
}
function click_from_button(e)
{
if(e.disabled) return;
var ischecked = e.checked
rcmail.set_cookie('fromButton', ischecked, false);
if(ischecked) $('#compose_from').show();
else $('#compose_from').hide();
}