Page MenuHomePhorge

No OneTemporary

Size
34 KB
Referenced Files
None
Subscribers
None
diff --git a/skins/elastic/styles/widgets/forms.less b/skins/elastic/styles/widgets/forms.less
index 876b774a4..c2b9c346d 100644
--- a/skins/elastic/styles/widgets/forms.less
+++ b/skins/elastic/styles/widgets/forms.less
@@ -1,846 +1,854 @@
/**
* Roundcube webmail styles for the Elastic skin
*
* Copyright (c) 2017, The Roundcube Dev Team
*
* The contents are subject to the Creative Commons Attribution-ShareAlike
* License. It is allowed to copy, distribute, transmit and to adapt the work
* by keeping credits to the original authors in the README.md file.
* See http://creativecommons.org/licenses/by-sa/3.0/ for details.
*/
/*** Common form elements ***/
#uploadform {
display: none;
}
form.smart-upload,
input.smart-upload {
visibility: hidden;
width: 1px;
height: 1px;
opacity: 0;
}
.propform {
/* TODO: do we need this? */
&:not(.popupmenu) {
width: 100%;
}
/* This is the way we can have multiple checkboxes in a single form field */
.form-check td:not(.title) > label {
display: block;
margin: 0;
line-height: 2rem;
label {
margin-right: .5rem;
}
}
td.datetime {
display: flex;
input:first-child {
margin-right: .5rem;
}
input:last-child {
width: 75%;
}
}
td.rowbuttons {
width: 1%;
white-space: nowrap;
span {
display: none;
}
a {
padding: 0;
line-height: 2.3rem;
height: 2.3rem;
font-size: 1rem;
&:before {
&:extend(.font-icon-class);
content: @fa-var-plus;
margin: 0;
}
&.delete:before {
content: @fa-var-trash-o;
}
&.advanced:before {
content: @fa-var-cog;
}
&:not(:last-child) {
margin-right: .25rem;
}
}
}
td.rowactions {
width: 1%;
.form-control {
width: auto;
}
}
td.rowtargets {
.input-group {
margin-bottom: .25rem;
*:first-child.input-group-addon {
text-align: left;
min-width: 7.5em;
}
}
& > .advanced {
margin-top: .25rem;
}
}
td > .flexbox {
display: flex;
& > .multi-input {
width: 100%;
margin-left: .25rem;
}
}
.rulerow {
margin-bottom: .5rem;
}
}
@media screen and (max-width: 576px) {
.propform {
table.compact-table {
overflow-x: initial;
tbody {
display: block;
}
.rowactions > select,
.flexbox > select {
width: 100%;
}
tr {
display: flex;
flex-direction: column;
td {
width: 100%;
padding-right: 0;
padding-left: 0;
&.rowbuttons {
text-align: right;
a {
margin-right: .5rem;
& > span {
display: inline;
}
}
}
}
}
}
}
}
.propform,
.formcontent {
legend {
font-weight: bold;
font-size: 1.2em;
}
}
/* Forms fixes for IE and Edge */
html.ms .propform {
.row:not(.form-check) > td {
display: flex;
}
@media screen and (min-width: 576px) {
.row.form-check > td {
display: flex;
}
}
@media screen and (max-width: 575px) {
.row {
display: block;
}
}
}
.formcontainer {
display: flex;
flex-direction: column;
justify-content:flex-start;
overflow-y: hidden !important;
height: 100%;
.formcontent {
overflow-x: hidden;
overflow-y: auto;
}
.formbuttons {
padding: 0.5rem 1rem;
}
}
html.layout-phone {
.formcontainer {
.formbuttons {
display: none;
}
}
}
.formcontent {
padding: 1em;
.row {
margin-right: 0; /* without these the form is too wide causing horizontal scrollbar appearence */
margin-left: 0;
.col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9,
.col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9 {
/* overwrite Bootstrap's redundant padding */
padding: 0;
}
}
.row.form-check {
padding-right: 0; /* without these e.g. inputs in compose screen are not aligned properly */
display: flex; /* https://github.com/twbs/bootstrap/issues/22348 */
flex-wrap: nowrap;
/* fixed checkbox vertical alignment */
td:not(.col-form-label) {
- padding-top: ~"calc(.5rem - 1px * 2)";
- padding-bottom: ~"calc(.5rem - 1px * 2)";
+ padding: 0;
}
/* alignment fixes needed because we do not stick precissely to Bootstrap's form structure */
@media screen and (max-width: 576px) {
.col-6 {
max-width: 100%;
flex: auto;
}
& > *:last-child {
width: 1%;
min-width: 2.2em; /* for icon-checkbox */
padding-right: 15px;
}
}
.form-check-input {
margin: 0; /* fixes checkbox alignment with other inputs in a form */
margin-top: .5rem;
margin-bottom: .5rem;
}
}
.nav-tabs {
margin-bottom: 1rem;
}
.hint {
margin-bottom: 1em;
font-style: italic;
}
}
@media screen and (max-width: @screen-width-mini) {
.formcontent {
.col-form-label {
flex: auto;
max-width: 100%;
}
.col-10 {
flex: auto;
max-width: 100%;
}
}
}
/* Some common icons for "iconized inputs" */
.input-group-addon.icon {
text-decoration: none;
&:before {
&:extend(.font-icon-class);
margin: 0;
line-height: 1;
}
&.user:before {
content: @fa-var-user;
}
&.pass:before {
content: @fa-var-lock;
}
&.host:before {
content: @fa-var-home;
}
&.cancel:before {
content: @fa-var-close;
}
&.edit:before {
content: @fa-var-pencil;
}
&.add:before {
content: @fa-var-plus;
}
&.search:before {
content: @fa-var-search;
}
&.filter:before {
content: @fa-var-filter;
}
.inner {
display: none;
}
}
td.editfield { width: 99%; /* TODO */ }
.form-group { margin-bottom: .5rem; /* overwrites Bootstrap style */ }
ul.proplist {
padding-left: 15px;
margin-bottom: 0;
list-style-type: none;
li {
line-height: 2.4rem;
margin-bottom: .25rem;
display: flex;
input[type=radio] {
vertical-align: middle;
margin-right: .5em;
& + .input-group {
flex-grow: 1;
}
}
label {
margin: 0;
}
.icon-checkbox {
height: 2.4rem !important;
margin-left: -1.2em;
& + label {
height: 1.8rem;
margin-right: .5rem;
}
}
select {
width: auto;
display: inline;
}
}
}
.checklist {
.form-check-input + label {
margin-right: .25rem;
line-height: 1;
}
}
/*** Forms in popups ***/
.popup form.propform {
padding: .5rem;
overflow-x: hidden;
}
.popupmenu.form {
&.nolist {
padding: 0 .5rem;
}
ul {
list-style-type: none;
padding: 0;
margin: 0;
}
li:not(.separator) {
padding: 0 1rem;
label {
margin: 0;
- line-height: @listing-line-height;
+ height: @listing-line-height;
input {
margin-right: .5rem;
}
}
}
input {
vertical-align: middle;
height: @listing-line-height !important;
}
select {
margin: .5rem 0;
}
.buttons {
text-align: center;
padding: .5rem;
}
}
+html.touch .popupmenu.form {
+ li {
+ input.icon-checkbox + label:before {
+ line-height: 1.4;
+ }
+ }
+}
+
/*** Smart list (multiple input) field ***/
.multi-input {
& > .content {
max-height: 11.65em;
overflow: hidden;
overflow-y: auto;
border-radius: .25rem;
border: 1px solid @color-input-border;
&.focused {
border: 1px solid @color-input-border-focus;
}
/* TODO: style button focus */
}
.input-group {
margin: 0 !important;
}
.input-group-addon {
&.reset:before {
&:extend(.font-icon-class);
content: @fa-var-trash-o;
margin: 0;
}
}
.input-group-addon,
.form-control {
height: 2.25rem; /* to be the same height as select.form-control element */
}
input.form-control {
padding-left: .5rem;
}
input,
input:focus,
.input-group-addon {
border-radius: 0;
border: 0;
border-bottom: 1px solid @color-input-border;
}
.input-group:last-child * {
border: 0;
}
& + .btn {
margin-top: .5rem;
}
&.is-invalid {
& > .content {
border: 1px solid @color-input-border-invalid;
}
& > .invalid-feedback {
display: inline-block;
}
}
}
/*** Files upload widget with list of files, upload form and drop area ***/
.file-upload {
/* TODO */
padding: 1em 1em 12em;
margin: 1em;
background-color: #f4f4f4;
.upload-form {
text-align: center;
padding-bottom: 1em;
}
.hint {
margin-bottom: .5rem;
}
.attachmentslist {
list-style: none;
li {
display: block;
padding-bottom: .5em;
}
}
&.droptarget {
&.hover {
}
&.active {
}
}
}
/*** Smart recipient input field ***/
.recipient-input {
display: flex;
flex-wrap: wrap;
padding: 0 .75rem .25rem .75rem;
&.focus {
border-color: @color-input-border-focus;
}
.recipient {
flex: 1;
display: flex;
position: relative;
max-width: 50%;
border: 1px solid @color-recipient-input-border;
background-color: @color-recipient-input-background;
border-radius: .25em;
padding: 0 .25em;
margin-top: .25rem;
margin-right: .2em;
white-space: nowrap;
@media screen and (max-width: 450px) {
width: 100%;
max-width: 100%;
}
}
.name {
flex-grow: 1;
display: inline-block;
line-height: 1.1;
padding: .25em;
vertical-align: middle;
overflow: hidden;
text-overflow: ellipsis;
}
.email {
text-indent: -5000rem;
display: inline-block;
width: 0;
}
.quotes {
position: absolute;
width: 0;
opacity: 0;
}
a.button.icon {
font-size: .8em;
cursor: pointer;
line-height: 1.5;
&:before {
float: none;
display: inline-block;
width: 1em;
margin: 0;
}
}
input {
flex-grow: 1;
min-width: 25%;
background: transparent !important;
border: 0 !important;
margin-top: .25rem;
outline: 0;
}
}
/*** Skin selection widget ***/
.skinselection {
white-space: nowrap;
display: table-row;
& > span {
display: table-cell;
vertical-align: middle;
padding: .1em .5em;
white-space: normal;
&:last-child {
padding-right: 0;
}
}
.skinitem input {
width: auto;
}
.skinname {
font-weight: bold;
}
.skinlicense,
.skinlicense a {
font-style: italic;
text-decoration: none;
}
.skinlicense a:hover {
text-decoration: underline;
}
.skinthumbnail {
width: 64px;
height: 64px;
border: 1px solid @color-input-border;
background: #fff;
border-radius: 4px;
}
}
/*** Image upload widget ***/
.image-upload {
position: relative;
overflow: hidden;
cursor: pointer;
a.button {
display: none;
position: absolute;
left: 0;
right: 0;
background-color: rgba(255, 255, 255, .85);
border-radius: 5px;
width: 2.5em;
padding: .5em;
margin: .5em;
}
&.changed a.button {
display: inline;
}
}
/*** Pretty icon checkbox ***/
input.icon-checkbox {
opacity: 0;
margin-left: -1.5em;
& + label {
margin: 0;
display: inline;
font-size: 1.2rem;
&:before {
&:extend(.font-icon-class);
content: @fa-var-toggle-off;
margin: 0;
color: @color-checkbox;
+ height: 2rem;
}
}
&:disabled + label {
opacity: 0.4;
pointer-events: none;
}
&:checked + label:before {
content: @fa-var-toggle-on;
color: @color-checkbox-checked;
}
&:focus + label:before {
color: @color-checkbox-focus;
}
&:checked:focus + label:before {
color: @color-checkbox-checked-focus;
}
&.form-check-input + label {
font-size: 1.25rem;
- padding: .4em 0;
+ padding-top: .25rem;
}
}
html.touch input.icon-checkbox + label {
font-size: 1.5rem;
}
/*** HTML editor widget (and TinyMCE editor) ***/
.mce-tinymce {
&.mce-container.mce-panel {
border-radius: .25rem;
border-color: @color-input-border;
overflow: hidden;
}
.mce-btn,
.mce-panel {
background-color: @color-input-addon-background;
}
}
.html-editor {
position: relative;
display: flex;
& > .nav {
border-color: transparent;
z-index: 1;
position: absolute;
top: 1px;
right: 1rem;
a.active {
border-color: @color-input-border !important;
&.mode-html {
background-color: @color-input-addon-background;
border-bottom-color: @color-input-addon-background !important;
}
&.mode-plain {
border-bottom-color: #fff !important;
}
}
a:hover {
border-bottom-color: transparent;
}
}
& > .googie_edit_layer,
& > .mce-tinymce,
& > textarea {
margin-top: 2.55rem;
font-family: monospace;
width: 100% !important;
}
}
/*** GoogieSpell widget ***/
.googie_window {
width: 16rem;
}
.googie_edit_layer {
font-family: monospace;
/* from Bootstrap's textarea */
padding: .5rem .75rem;
border: 1px solid @color-input-border;
border-radius: .3rem;
line-height: 1.25;
}
.googie_link {
color: @color-spellcheck-link;
text-decoration: underline;
cursor: pointer;
}
.googie_list {
td {
min-width: 8rem;
width: auto;
&.googie_list_onhover {
color: @color-toolbarmenu-hover;
background-color: @color-toolbarmenu-hover-background;
}
.googie_list_revert:before {
&:extend(.font-icon-class);
content: @fa-var-plus-square;
}
.googie_add_to_dict:before {
&:extend(.font-icon-class);
content: @fa-var-plus-square;
}
}
input {
display: inline-block;
margin: .5rem .5rem .5rem 0 !important;
padding: .5rem .75rem !important;
}
}
/* Remove outline on selects in Firefox */
@-moz-document url-prefix() {
select:-moz-focusring {
color: transparent !important;
text-shadow: 0 0 0 @color-font !important;
}
}
.form-control, .form-control:focus {
color: @color-font;
}
.invalid-feedback {
color: @color-error;
}
.form-control.is-invalid {
border-color: @color-input-border-invalid;
}
diff --git a/skins/elastic/styles/widgets/lists.less b/skins/elastic/styles/widgets/lists.less
index 4256265c2..8e59b9ef9 100644
--- a/skins/elastic/styles/widgets/lists.less
+++ b/skins/elastic/styles/widgets/lists.less
@@ -1,774 +1,773 @@
/**
* Roundcube webmail styles for the Elastic skin
*
* Copyright (c) 2017, The Roundcube Dev Team
*
* The contents are subject to the Creative Commons Attribution-ShareAlike
* License. It is allowed to copy, distribute, transmit and to adapt the work
* by keeping credits to the original authors in the README.md file.
* See http://creativecommons.org/licenses/by-sa/3.0/ for details.
*/
/*** List and treelist widgets ***/
.listing {
tbody td,
li {
border-bottom: 1px solid @color-list-border;
cursor: default;
font-weight: normal;
line-height: @listing-line-height;
}
tbody td,
li a {
display: block;
text-decoration: none;
cursor: default;
padding: 0 .5rem;
white-space: nowrap;
vertical-align: middle;
color: @color-list;
}
tbody td {
display: table-cell;
outline: none;
overflow: hidden;
text-overflow: ellipsis;
a {
color: @color-list;
}
}
li.selected,
tr.selected td {
color: @color-list-selected;
background-color: @color-list-selected-background;
}
td.selection {
padding: 0 0 0 .5em;
width: 2em;
text-align: center;
& > input {
vertical-align: middle;
}
}
td.name {
overflow: hidden;
text-overflow: ellipsis;
}
td.action {
/* TODO */
padding: 0 .5em;
width: 2em;
text-align: center;
&:empty {
width: 0;
}
}
li.droptarget > a,
tr.droptarget > td {
background-color: @color-list-droptarget-background;
}
li.disabled,
tr.disabled td {
color: @color-list-deleted;
}
/* Focus indicator */
/* because of border-collapse, we make the left border twice what we want it to be - half will be hidden to the left */
@media screen and (min-width: @screen-width-large) {
li > a,
tbody tr > td:first-child {
border-left: 2px solid transparent;
}
li > a:focus,
&.focus tbody tr.focused > td:first-child {
border-left: 2px solid @color-list-focus-indicator;
outline: 0;
}
}
}
table.listing {
width: 100%;
table-layout: fixed;
/*
border-spacing/border-collapse here fix problem with our focus indicator
when the table cells use overflow: hidden. I.e. we use border-spacing:0
instead of Bootstrap's border-collapse:collapse. Is this cross-browser?
*/
border-spacing: 0;
border-collapse: unset;
}
ul.listing {
list-style: none;
margin: 0;
padding: 0;
& > ul {
padding: 0;
}
li {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
position: relative;
ul {
border-top: 1px solid @color-list-border;
padding-left: 1.5em;
li:last-child {
border-bottom: none;
}
}
input.icon-checkbox + label,
input[type=checkbox] {
position: absolute;
top: 0;
right: .5rem;
height: @listing-line-height;
vertical-align: middle;
}
}
}
html.touch {
.listing:not(.toolbar) li,
.listing tbody td {
line-height: @listing-touch-line-height;
font-size: 1.2rem;
}
- input.icon-checkbox + label,
li input[type=checkbox] {
height: @listing-touch-line-height;
}
td.selection {
padding: 0;
width: 3em;
}
}
/* icons */
.listing.iconized li {
a:before {
&:extend(.font-icon-class);
height: 2em; /* TODO: ? */
margin-right: .5rem;
}
&.preferences > a:before {
content: @fa-var-sliders;
}
&.folders > a:before {
content: @fa-var-folder;
}
&.responses > a:before {
content: @fa-var-comment;
}
&.identities > a:before {
content: @fa-var-at;
}
&.password > a:before {
content: @fa-var-lock;
}
&.addressbook a:before {
content: @fa-var-book;
}
&.contactgroup a:before {
content: @fa-var-group;
}
&.contactsearch a:before {
content: @fa-var-search;
}
&.filter > a:before {
content: @fa-var-filter;
}
&.vacation > a:before {
content: @fa-var-clock-o;
}
&.enigma.keys > a:before {
content: @fa-var-key;
}
&.userinfo > a:before {
content: @fa-var-info-circle;
}
a.help:before {
content: @fa-var-life-bouy;
}
a.about:before {
content: @fa-var-question-circle-o;
}
a.license:before {
content: @fa-var-shield;
}
/* autocomplete popup */
& > i:before {
&:extend(.font-icon-class);
content: @fa-var-user;
margin-left: .5rem;
}
&.group > i:before {
content: @fa-var-group;
}
}
html.ie11 .listing.iconized li a:before {
font-size: 1.25rem;
}
.listing.iconized tr {
td:before {
&:extend(.font-icon-class);
margin-right: .5rem;
}
&.contact.person td.name:before {
content: @fa-var-user;
}
&.contact.group td.name:before {
content: @fa-var-group;
}
&.general > td.section:before {
content: @fa-var-desktop;
}
&.mailbox > td.section:before {
content: @fa-var-envelope-o;
}
&.mailview > td.section:before {
content: @fa-var-inbox;
}
&.compose > td.section:before {
content: @fa-var-paper-plane;
}
&.addressbook > td.section:before {
content: @fa-var-user;
}
&.folders > td.section:before {
content: @fa-var-folder-o;
}
&.server > td.section:before {
content: @fa-var-server;
}
&.enigma > td.section:before {
content: @fa-var-lock;
}
}
/* selecatable list: e.g. spellcheck language selection */
.listing.iconized.selectable li {
a:before {
&:extend(.font-icon-class);
content: "";
}
a.selected:before {
content: @fa-var-check;
}
}
.popupmenu .listing {
li.selected {
color: @color-toolbarmenu-hover;
background-color: @color-toolbarmenu-hover-background;
}
td {
overflow: hidden;
text-overflow: ellipsis;
}
}
ul.treelist li {
div.treetoggle {
position: absolute;
top: (@listing-line-height * 0.5);
left: 1.4em;
width: .8em;
height: .8em;
line-height: .8em;
cursor: pointer;
html.touch & {
top: (@listing-touch-line-height * 0.5);
}
&:before {
&:extend(.font-icon-class);
content: @fa-var-plus-square-o;
font-size: .8em;
width: .8em;
height: .8em;
background-color: white;
}
&.expanded:before {
content: @fa-var-minus-square-o;
}
}
& > a {
overflow: hidden;
text-overflow: ellipsis;
}
&.selected > a {
color: @color-list-selected;
background-color: @color-list-selected-background;
}
&.selected {
color: inherit;
background-color: transparent;
}
ul {
padding: 0;
li {
padding-left: 0;
a { padding-left: 1.5em; }
div.treetoggle { left: (1.5em + .9em); }
li {
a { padding-left: (2 * 1.5em); }
div.treetoggle { left: (2 * 1.5em + .9em); }
li {
a { padding-left: (3 * 1.5em); }
div.treetoggle { left: (3 * 1.5em + .9em); }
li {
a { padding-left: (4 * 1.5em); }
div.treetoggle { left: (4 * 1.5em + .9em); }
li {
a { padding-left: (5 * 1.5em); }
div.treetoggle { left: (5 * 1.5em + .9em); }
}
}
}
}
}
}
}
/*** Folders list widget ***/
.folderlist {
li {
&.mailbox {
&.unread {
/* TODO */
& > a {
padding-right: 2.8em;
}
}
&.recent {
color: @color-list-recent;
}
.unreadcount {
position: absolute;
top: 0;
right: 0;
min-width: 2em;
line-height: 1.4rem;
margin: (@listing-line-height - 1.4rem)/2;
padding: 0 .3em;
border-radius: .4em;
background: @color-list-badge-background;
color: @color-list-badge;
text-align: center;
font-weight: bold;
html.touch & {
line-height: 2rem;
margin: (@listing-touch-line-height - 2rem)/2;
}
}
&.selected .unreadcount {
/* todo */;
}
&.recent > .unreadcount {
background: @color-list-recent-badge-background;
color: @color-list-recent-badge;
}
&.root {
display: none !important;
/* FIXME: This element is confusing, I propose to not use it */
}
}
a:before {
&:extend(.font-icon-class);
content: @fa-var-folder-o;
margin-right: .5rem;
}
&.inbox a:before {
content: @fa-var-inbox;
}
&.trash a:before {
content: @fa-var-trash;
}
&.trash.empty a:before {
content: @fa-var-trash-o;
}
&.drafts a:before {
content: @fa-var-edit;
}
&.sent a:before {
content: @fa-var-paper-plane;
}
&.junk a:before {
content: @fa-var-recycle;
}
&.archive a:before {
content: @fa-var-archive;
}
}
}
/*** Messages list widget ***/
.messagelist > thead,
.messagelist .branch,
table.fixedcopy {
display: none;
}
.messagelist {
td {
border-left: 0;
width: 2em;
vertical-align: top;
font-size: 1rem !important;
}
td.subject {
width: 99%;
position: relative; /* for span.date positioning in Firefox */
background-clip: padding-box; /* fixes Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=688556 */
padding-right: 0;
a {
text-decoration: none;
cursor: default;
}
span {
line-height: 2em;
&.date {
right: 0;
top: 0;
position: absolute;
font-size: 90%;
color: @color-list-secondary;
}
&.fromto {
padding-left: 1.5em;
display: block;
margin-right: 10em;
overflow: hidden;
text-overflow: ellipsis;
font-size: 90%;
color: @color-list-secondary;
}
&.subject {
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
td.threads {
padding: 0 0 0 .25rem;
width: 1.5em;
}
td.flags {
width: 2.5em;
& > span {
height: 1.7em;
line-height: 1.7em;
display: block;
&.flag {
cursor: pointer;
}
}
}
tr.flagged td,
tr.flagged td.subject span.subject a,
tr.flagged td.subject span.date,
tr.flagged td.subject span.fromto {
color: @color-list-flagged;
}
tr.deleted td,
tr.deleted td.subject span.subject a,
tr.deleted td.subject span.date,
tr.deleted td.subject span.fromto {
color: @color-list-deleted;
}
tr.unread td.subject span.subject {
font-weight: bold;
}
/* thread parent message with unread children */
tr.unroot td.subject a {
text-decoration: underline;
}
tr.thread td.threads div:before {
&:extend(.font-icon-class);
content: @fa-var-angle-right;
cursor: pointer;
}
tr.thread.expanded td.threads div:before {
content: @fa-var-angle-down;
}
td.subject span.msgicon.status:before {
&:extend(.font-icon-class);
content: @fa-var-circle;
cursor: pointer;
font-size: .4em;
width: 3em;
}
td.subject span.msgicon.status.unread:before {
content: @fa-var-star;
font-size: 1.2em;
width: 1em;
}
td.subject span.msgicon.status.unreadchildren:before {
content: @fa-var-star-half-o;
font-size: 1.2em;
width: 1em;
}
td.subject span.msgicon.status.replied:before {
content: @fa-var-mail-reply;
font-size: 1.2em;
width: 1em;
}
td.subject span.msgicon.status.forwarded:before {
content: @fa-var-mail-forward;
font-size: 1.2em;
width: 1em;
}
td.subject span.msgicon.status.replied.forwarded:before {
content: @fa-var-mail-forward; /* TODO */
font-size: 1.2em;
width: 1em;
}
tr.deleted td.subject span.msgicon.status:before {
content: @fa-var-ban;
font-size: 1.2em;
width: 1em;
}
span.attachment span {
&:extend(.font-icon-class);
&:before {
margin: 0;
content: @fa-var-paperclip;
}
&.report:before {
content: @fa-var-file-text-o;
}
&.encrypted:before {
content: @fa-var-lock;
}
&.vcard:before {
content: @fa-var-user-o; /* vcard_attachments plugin */
}
}
span.flagged:before {
&:extend(.font-icon-class);
content: @fa-var-flag;
}
tr:hover span.unflagged:before {
&:extend(.font-icon-class);
content: @fa-var-flag-o;
}
}
html.layout-phone,
html.touch {
.messagelist {
td.flags {
display: none;
}
td.subject {
padding-right: 1em;
span.date {
right: 1em;
}
}
td.threads {
padding: 0;
width: 2em;
}
}
}
/* Attachments list */
.attachmentslist {
padding: 0;
}
.attachmentslist li {
display: inline-block;
line-height: 1.25em;
&:before {
&:extend(.font-icon-class);
content: @fa-var-file-o;
}
&.txt:before,
&.text:before {
content: @fa-var-file-text-o;
}
&.pdf:before {
content: @fa-var-file-pdf-o;
}
&.odt:before,
&.doc:before,
&.docx:before,
&.msword:before {
content: @fa-var-file-word-o;
}
&.ods:before,
&.xls:before,
&.xlsx:before,
&.msexcel:before {
content: @fa-var-file-excel-o;
}
&.rar:before,
&.zip:before,
&.gz:before {
content: @fa-var-file-zip-o;
}
&.image:before,
&.jpg:before,
&.jpeg:before,
&.png:before {
content: @fa-var-file-image-o;
}
&.mp3:before,
&.audio:before {
content: @fa-var-file-audio-o;
}
&.m4p:before,
&.video:before {
content: @fa-var-file-video-o;
}
&.ics:before,
&.calendar:before {
/* TODO */
}
&.vcard:before {
content: @fa-var-vcard;
}
&.html:before {
content: @fa-var-file-code-o;
}
&.eml:before,
&.rfc822:before {
/* TODO */
}
&.odp:before,
&.otp:before,
&.ppt:before,
&.pptx:before,
&.ppsx:before,
&.vnd.mspowerpoint:before {
content: @fa-var-file-powerpoint-o;
}
&.sig:before,
&.pgp-signature:before,
&.pkcs7-signature:before {
/* TODO */
}
&.application.asc:before {
/* TODO */
}
&.application.pgp-keys:before {
/* TODO */
}
.attachment-size {
color: @color-list-secondary;
}
a.button {
float: right;
}
a.delete:before {
float: right;
&:extend(.font-icon-class);
content: @fa-var-trash;
}
&.uploading {
&:before {
content: @fa-var-circle-o-notch;
.animated-icon-class;
}
a.cancelupload:before {
float: right;
&:extend(.font-icon-class);
content: @fa-var-remove;
}
}
}

File Metadata

Mime Type
text/x-diff
Expires
Sat, Apr 18, 8:19 AM (1 h, 25 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
436112
Default Alt Text
(34 KB)

Event Timeline