From 2c68f4ba9225711a07c4f49efecd282054d746f7 Mon Sep 17 00:00:00 2001 From: sdarwin Date: Fri, 26 Jul 2024 20:43:26 +0000 Subject: [PATCH 1/2] New templates and static --- ...Boost_Brandmark_BlackBoost_Transparent.svg | 24 + ...Boost_Brandmark_WhiteBoost_Transparent.svg | 28 + .../img/Boost_Symbol_Transparent.svg | 1 + .../hyperkitty/sass/_hyperkitty-base.scss | 139 ++++ .../hyperkitty/sass/_hyperkitty-message.scss | 627 ++++++++++++++++++ .../sass/_hyperkitty-variables.scss | 13 + hyperkitty/templates/hyperkitty/base.html | 257 +++++++ .../templates/hyperkitty/navbar-brand.html | 5 + postorius/static/postorius/css/style.css | 184 +++++ ...Boost_Brandmark_BlackBoost_Transparent.svg | 24 + ...Boost_Brandmark_WhiteBoost_Transparent.svg | 28 + .../img/Boost_Symbol_Transparent.svg | 1 + postorius/static/postorius/img/logo2010-2.jpg | Bin 0 -> 11314 bytes postorius/templates/postorius/base.html | 241 +++++++ .../postorius/lists/held_messages.html | 143 ++++ 15 files changed, 1715 insertions(+) create mode 100644 hyperkitty/static/hyperkitty/img/Boost_Brandmark_BlackBoost_Transparent.svg create mode 100644 hyperkitty/static/hyperkitty/img/Boost_Brandmark_WhiteBoost_Transparent.svg create mode 100755 hyperkitty/static/hyperkitty/img/Boost_Symbol_Transparent.svg create mode 100644 hyperkitty/static/hyperkitty/sass/_hyperkitty-base.scss create mode 100644 hyperkitty/static/hyperkitty/sass/_hyperkitty-message.scss create mode 100644 hyperkitty/static/hyperkitty/sass/_hyperkitty-variables.scss create mode 100644 hyperkitty/templates/hyperkitty/base.html create mode 100644 hyperkitty/templates/hyperkitty/navbar-brand.html create mode 100644 postorius/static/postorius/css/style.css create mode 100644 postorius/static/postorius/img/Boost_Brandmark_BlackBoost_Transparent.svg create mode 100644 postorius/static/postorius/img/Boost_Brandmark_WhiteBoost_Transparent.svg create mode 100755 postorius/static/postorius/img/Boost_Symbol_Transparent.svg create mode 100644 postorius/static/postorius/img/logo2010-2.jpg create mode 100644 postorius/templates/postorius/base.html create mode 100644 postorius/templates/postorius/lists/held_messages.html diff --git a/hyperkitty/static/hyperkitty/img/Boost_Brandmark_BlackBoost_Transparent.svg b/hyperkitty/static/hyperkitty/img/Boost_Brandmark_BlackBoost_Transparent.svg new file mode 100644 index 0000000..09ce682 --- /dev/null +++ b/hyperkitty/static/hyperkitty/img/Boost_Brandmark_BlackBoost_Transparent.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/hyperkitty/static/hyperkitty/img/Boost_Brandmark_WhiteBoost_Transparent.svg b/hyperkitty/static/hyperkitty/img/Boost_Brandmark_WhiteBoost_Transparent.svg new file mode 100644 index 0000000..0893f9b --- /dev/null +++ b/hyperkitty/static/hyperkitty/img/Boost_Brandmark_WhiteBoost_Transparent.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/hyperkitty/static/hyperkitty/img/Boost_Symbol_Transparent.svg b/hyperkitty/static/hyperkitty/img/Boost_Symbol_Transparent.svg new file mode 100755 index 0000000..f9c7f76 --- /dev/null +++ b/hyperkitty/static/hyperkitty/img/Boost_Symbol_Transparent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/hyperkitty/static/hyperkitty/sass/_hyperkitty-base.scss b/hyperkitty/static/hyperkitty/sass/_hyperkitty-base.scss new file mode 100644 index 0000000..099e8fd --- /dev/null +++ b/hyperkitty/static/hyperkitty/sass/_hyperkitty-base.scss @@ -0,0 +1,139 @@ +// floating navbar's height +$navbarHeight: 75px; +$navbarHoverColor: #e7e7e7; + + +html { + // for compatibility with Bootstrap 3, we set the default size to be 14 (b4 makes it 16). + font-size: 14px; +} + +body { + background-color: rgb(229, 231, 235); + color: rgb(49, 74, 87); + min-height: 100vh; + min-height: 100dvh; + display: grid; + grid-template-rows: auto 1fr auto; + +} + +nav#navbar-main { + background-color: $navbarColor; + border-bottom: 2px solid rgb(209, 213, 219); + + a.nav-link, div.navbar-header > a { + color: rgb(49, 74, 87); + } + +} + +.navbar-brand img { + height: 25px; + margin-right: 25px; +} + +.btn-primary { + background-color: rgb(255, 159, 0); + border-color: rgb(255, 159, 0); +} +.btn-primary:hover { + background-color: rgba(255, 159, 0, 0.8); + border-color: rgb(255, 159, 0); +} + +.boost-nav .nav-item a:hover { + color: rgb(255, 159, 0) !important; +} + +.boost-nav .nav-item { + line-height: 14px; + margin-right: 25px !important; +} + + +footer { + background-color: $navbarColor; + border-top: 1px solid $navbarHoverColor; + margin-top: 2em; + padding: 1em; + text-align: center; + p { + margin: 0; + } + + img { + height: 25px; + } +} + +//=== NAVBAR +nav { + padding-top: 5px; + padding-bottom: 5px; + + // general links + ul.nav-pills li:first-child { + padding-top: 2px; + } + + // login/logout + ul.auth a:last-child { + padding-right: 0; /* flush with right margin */ + } + + // override bootstrap color for search button + .input-group-addon { + background: inherit; + } + $searchColor: white; + .search { + background-color: $searchColor; + text-align: center; + border: none; + } + + .search-button { + background-color: $searchColor; + } + + // postorius link + .postorius { + padding: 10px 20px; + margin: 0; + float: right; + } + + .user-button { + background-color: inherit; + border: none; + } +} + +.navbar-toggler { + color: #999; +} + +// hack: forces search box to appear on one line in navbar in larger screens +// hack: we need extra .input-group to force search box to appear on one line in smaller screens +// note: any pixel-based width will allow hack to work +// @media (min-width: 768px) { +// nav .input-group { +// width: 200px; +// } +// } + + +.circle img { + border-radius: 50%; + width: 50px; + height: 50px; + /* width and height can be anything, as long as they're equal */ +} + +.circle-small img { + border-radius: 50%; + width: 40px; + height: 40px; + /* width and height can be anything, as long as they're equal */ +} diff --git a/hyperkitty/static/hyperkitty/sass/_hyperkitty-message.scss b/hyperkitty/static/hyperkitty/sass/_hyperkitty-message.scss new file mode 100644 index 0000000..fdd1499 --- /dev/null +++ b/hyperkitty/static/hyperkitty/sass/_hyperkitty-message.scss @@ -0,0 +1,627 @@ +// MESSAGE VIEW95px +$evenEmailColor: rgb(246, 246, 246); +$oddEmailColor: rgb(238, 238, 238); + +//=== Thread view ==/ + +.thread-header { + margin-bottom: 2em; + h3 { + text-align: center; + font-size: 1.5em; + margin-top: 8px; + margin-bottom: 0; + } + .thread-older, .thread-newer { + margin-top: 1em; + color: $subheadingColor; + } + button { + margin-top: 10px; + } + .thread-category { + text-align: center; + } + .thread-titles { + color: $subheadingColor; + } +} + +.view-thread .nav-tabs { + margin-bottom: 1.5em; + .dropdown-header { + padding-left: 0; + padding-right: 0; + } +} +.view-thread .anchor-link { + position: relative; + a { + position: absolute; + top: -95px; + } +} + +.view-thread { + .unread { + border-left: 2px solid #08c; + } +} +//=== Main section with the whole thread ==/ + +// First email of the thread +.email-header { + margin-bottom: 1em; + display: table; + width: 100%; + //display: inline-block; + + .gravatar-wrapper { + float: left; + } + .gravatar { + margin-bottom: 2px; + display: inline-block + } + + .fa-envelope { + font-size: 130%; + margin-right: 10px; + } + + .messagelink { + font-style: italic; + font-size: 90%; + color: rgb(167, 169, 172); + a { + color: rgb(167, 169, 172); + } + } + + .fa { + color: #08c; + } + +} + +.email-author { + margin-left: 0.5em;; + align-items: center; + + .name { + font-size: 1.25em; + } + .rank{ + color: $subheadingColor; + font-size: 80%; + font-weight: bold; + } +} + +.email-date { + .date { + font-weight: bold; + display: inline-block; + } + .time { + text-align: right; + display: inline-block; + span { + text-align: right; + color: $subheadingColor; + border-bottom: 1px dashed $rowBorderColor; + cursor: help; + } + } +} + +.email-body { + word-wrap: break-word; + + span.read-more a, + span.read-less a { + float: right; + padding: 3px 10px 0 0; + } + + .blockquote { + padding-left: 20px; + padding-right: 20px; + font-size: 1rem; + border-radius: 10px + } + + blockquote { + background: #e8ecf2; + border-left: 2px solid #3771c8; + } + + blockquote blockquote { + background: #e4f1df; + border-left: 2px solid #3771c8; + } + + blockquote blockquote blockquote { + background: #ffc4b3; + border-left: 2px solid #3771c8; + } + blockquote blockquote blockquote blockquote { + background: #e8ecf2; + border-left: 2px solid #3771c8; + } + + p { + white-space: pre-wrap; + } + + div { + white-space: pre-wrap; + } + + h1, h2, h3, h4, h5, h6 { + font-size: 1.2rem; + } + + pre { + border: none; + } + +} +.email-body.fixed { + font-family: 'Droid Sans Mono', monospace; + white-space: pre; +} + +.attachments { + padding-top: 8px; + p { + margin-bottom: 0; + font-weight: bold; + } +} + +.email-info { + position: relative; + .messagelink { + display: inline; + font-style: italic; + font-size: 90%; + color: rgb(167, 169, 172); + a { + color: rgb(167, 169, 172); + } + } + .messagelink span, .messagelink a { + padding: 5px; + margin-left: 2px; + border-radius: 2px; + } + .messagelink span:hover, .messagelink a:hover { + background: grey; + } + + .vote { + padding: 5px; + marging-left: 2px; + border-radius: 2px; + } + + .youlike:hover { + background: #E1F4A2; + } + + .youdislike:hover { + background: #FFAAAA + } + .reply { + // padding: 10px; + border-radius: 4px; + } + .reply:hover { + background: #e8ecf2; + } + .likeform-wrapper { + position: relative; + top: 0; + right: 0; + } + .likeform-wrapper a { + text-decoration: none; + } + .likestatus + span { + padding-right: 1em; + } + div.attachments { + display: inline; + margin-left: 1em; + .attachments-list { + margin-bottom: 0; + } + } + + .reply-form-unauthenticated { + display: none; + margin-top: 1em; + } + .reply-form { + display: none; + .reply-tools { + margin-top: 10px; + margin-bottom: 0; + label { + font-size: 90%; + font-weight: normal; + } + } + p { margin: 0; } + p.new-subject { + display: none; + margin-bottom: 0.5em; + } + p.message-text { + margin-bottom: 0.25em; + } + p.buttons { + margin-top: 1em; + } + } + .reply-result { + text-align: center; + .alert { + display: inline-block; + } + .alert-success { + margin-bottom: 0; + } + .alert-error { + white-space: pre; + text-align: left; + } + } + + +} + +.sort-mode { + text-align: right; + padding-top: 10px; +} + + +/* Set the indent of the replies based on the size of the screen.*/ +.reply-level-1 { + margin-left: 2em; +} +.reply-level-2 { + margin-left: 4em; +} +.reply-level-3 { + margin-left: 6em; +} +.reply-level-4 { + margin-left: 8em; +} +.reply-level-5 { + margin-left: 10em; +} + + +/* On smaller screens, do not indent replies as it gets harder to read emails + * at level 5. + */ +@include media-breakpoint-down(sm) { + // @media (max-width: 768px) { + .reply-level-1, .reply-level-2, .reply-level-3, .reply-level-4, .reply-level-5 { + margin-left: 0em; + } +} + + +/* The email thread */ +.view-thread .replies { + margin-top: -15px; +} +.replies .email { + border-top: 1px solid $rowBorderColor; + // padding: 0.5em; + margin: 20px 0 20px 0; + .unread { + border-top: 1px solid rgb(100, 100, 100); + background-color: rgb(214, 214, 214); + i.unread { + float: right; + margin-right: 2em; + } + } + .subject { + text-align: center; + // clear: both; + font-style: italic; + display: inline-flex; + padding-top: 5; + } + .email-body { + // padding: 5px; + background-color: rgb(255, 255, 255); + } +} +// .even .email { +// background-color: $evenEmailColor; +// } +// .odd .email { +// background-color: $oddEmailColor; +// } +.temporary .email { + background-color: rgb(215, 215, 229); + display: none; +} + + +// === Thread general information column + +.days-num { + font-size: 150%; +} +.days-text { + font-size: 70%; +} + + +#thread-overview-info, #message-overview-info { + a:hover .fa { + color: #fff; + } + .fa { + color: #BFBFBF; + } + .postorius .fa { + color: #007bff; + } +} + +#thread-overview-info { + #thread-date-info { + padding-bottom: 8px; + } + + .list-name { + word-wrap: break-word; + a { + color: black; + } + } + form.favorite { + margin-bottom: 0; + } + .favorite a { + i { + margin-right: 0.3em; + } + } + a.saved, + a.notsaved { + /* Will be shown via Javascript */ + display: none; + } +} + +//=== Tags + +#tag-title { + color: rgb(77, 77, 77); + @extend .small-caps; +} + +#tags { + color: rgb(167, 169, 172); + margin-top: 2em; +} +#tags ul { + padding: 10px 0; + margin: 0; +} +#tags ul li { + padding-left: 0; +} +#tags ul li span { + margin-left: 5px; +} +#tags .rmtag { + margin: 0; + display: inline; +} +#tags .rmtag a { + visibility: hidden; + font-size: 125%; +} +#tags:hover .rmtag a { + visibility: visible; +} +#tags:hover .rmtag a:hover { + text-decoration: none; +} + +#add-tag { + margin-top: 0.3em; +} + +//=== Participants ==/ + +#participants { + margin-top: 2em; + color: $subheadingColor; + h3#participants_title { + @extend .small-caps; + } + li { + margin: 1em 0; + } + .participant-gravatar { + padding-left: 0; + } +} + + +/* Inline quotes */ +.quoted-switch a { + background-color: #fafafa; + padding: 0 4px 2px 4px; + border-left: 2px solid rgb(55, 113, 200); + font-weight: bold; + font-size: 115%; + &:hover { + text-decoration: none; + } +} +.quoted-text { + border-left: 2px solid rgb(55, 113, 200); + padding: 0.5em; + background: #e8ecf2; + border-radius: 10px; +} + + +//=== Navigation for unread messages ==/ + #unreadnavbar { + position: fixed; + bottom: 0; + right: 0; + text-align: right; + padding-right: 2em; + display: none; + } + #unreadnavbar>div { + width: auto; + padding: 0.2em 1em; + border: 1px solid #888; + border-bottom: none; + background-color: #eee; + } + + + //=== Re-attach threads ==/ + .reattach-thread { + h1 { + text-align: center; + font-size: 24px; + line-height: 26px; + margin-bottom: 2em; + } + form { + margin-bottom: 0; + img.ajaxloader { + margin-left: 1em; + } + } + form.search { + margin-top: 2em; + p { + line-height: 22px; + } + input { + margin-left: 3em; + } + input, + button { + font-size: 12px; + padding: 2px 8px; + } + } + li.manual { + label { + display: inline; + } + input { + margin-bottom: 0; + } + input[type='text'] { + width: 22em; + } + } + p.buttons { + margin-top: 2em; + } + } + + //=== message_new.html: start a new thread ==/ + .new-thread-form { + //margin-left: 2em; + + #id_subject, + textarea { + width: 100%; + } + + p.buttons { + margin-top: 2em; + } + } + + /* +// tiny screen (<=320px): +// nav-tabs: less padding, smaller dropdowns, right-align last dropdown +@media (max-width: $screen-tn) { + .view-thread .nav-tabs { + >li a { + padding-left: 7px; + padding-right: 7px; + } + #navbarMonthsListDrop ~ .dropdown-menu { + min-width: 90px; + left: inherit; + right: 0; + } + } + #participants { + .participant-name { + margin-left: 0 !important; + } + } +} + */ + + // xs screen (<=540px): more padding/spacing in nav-tabs + @include media-breakpoint-down(539px) { + // @media (max-width: 539px) { + .view-thread .nav-tabs { + .dropdown-menu { + min-width: 120px; + } + #navbarMonthsListDrop ~ .dropdown-menu { + text-align: left; + } + } + } + // small screens (<768px) have smaller gravatar images + @include media-breakpoint-down(xs) { + // @media (max-width: $screen-xs-max) { + #participants { + .participant-name { + margin-left: 10px; + } + } + } + // mid screens (<992px): adjust spacing between gravatar images + // @include media-breakpoint-up(md) { + // @media (min-width: $screen-md-min) { + // #participants { + // img.gravatar { + // @include square(32px); + // } + // } + // } + + + //=== Message view ==/ + + .message-header { + margin: 1em 0 2em 0; + .message-back { + a { + padding: 0.2em 0; + .icon { + font-size: 1.5em; + } + } + } + } diff --git a/hyperkitty/static/hyperkitty/sass/_hyperkitty-variables.scss b/hyperkitty/static/hyperkitty/sass/_hyperkitty-variables.scss new file mode 100644 index 0000000..ab28131 --- /dev/null +++ b/hyperkitty/static/hyperkitty/sass/_hyperkitty-variables.scss @@ -0,0 +1,13 @@ +// Variables common to two or more pages + +$headingColor: #666; +$subheadingColor: #999; +$rowBorderColor: #ccc; +$rowSideGutter: 0.5em; +$rowHoverColor: #999; +$navbarColor: rgb(229,231,235); +$linkHoverColor: #ddd; +$linkColor: #08c; +$maroon: rgb(128,0,0); +$grey: #999; +$super-light-grey: #eee; diff --git a/hyperkitty/templates/hyperkitty/base.html b/hyperkitty/templates/hyperkitty/base.html new file mode 100644 index 0000000..2f5685a --- /dev/null +++ b/hyperkitty/templates/hyperkitty/base.html @@ -0,0 +1,257 @@ +{% load i18n %} +{% load compress %} +{% load static %} +{% load hk_generic %} +{% export_allowed as export_allowed %} + + + + + + + {% block head_title %}{{ site_name }}{% endblock %} + + + + + + {% compress css %} + + + + + {% endcompress %} + {% block additional_stylesheets %} {% endblock %} + {% block head_feed %}{% endblock %} + {% include 'hyperkitty/headers.html' %} + + + + + {% include 'hyperkitty/top.html' %} + + + + {% if messages %} +
+ {% for msg in messages %} +
+ + +
+ {% endfor %} +
+ {% endif %} + + + +
+ {% block content %} {% endblock %} +
+ + + + + + {% compress js %} + + {% block additionaljs %} {% endblock %} + + {% include 'hyperkitty/bottom.html' %} + + + diff --git a/hyperkitty/templates/hyperkitty/navbar-brand.html b/hyperkitty/templates/hyperkitty/navbar-brand.html new file mode 100644 index 0000000..be92db7 --- /dev/null +++ b/hyperkitty/templates/hyperkitty/navbar-brand.html @@ -0,0 +1,5 @@ +{% load static %} + + +Boost logo + diff --git a/postorius/static/postorius/css/style.css b/postorius/static/postorius/css/style.css new file mode 100644 index 0000000..85fe05a --- /dev/null +++ b/postorius/static/postorius/css/style.css @@ -0,0 +1,184 @@ +/* Sticky footer: http://getbootstrap.com/examples/sticky-footer/ */ +html { + position: relative; + min-height: 100%; + /* This mostly makes sure that the font size doesn't change with + bump to Bootstrap 4, which has a default HTML level font-size + of 16px rem. */ + font-size: 14px; + font-family: "Helvetica Neue", sans-serif; +} + +body { + margin-bottom: 90px; + background-color: rgb(229 231 235); + color: rgb(49, 74, 87); +} +.footer { + position: absolute; + bottom: 0; + width: 100%; + height: 60px; + background-color: rgb(229 231 235); + border-top: 1px solid #e7e7e7; + border-radius: 4px; + padding-top: 20px; +} +/* ---- */ + +.margin-bottom { + margin-bottom: 1em; +} + +form.bans-add-form { + margin-bottom: 2.5rem; +} +table.bans-current { + width: auto; +} + + +/* Header matches */ + +table.header-matches th .text-muted { + font-weight: normal; + font-size: small; +} +table.header-matches td .errorlist { + list-style-type: none; + padding: 0; + margin: 0; +} +.header-matches-pending-changes { + display: none; + margin-left: 1rem; +} + +.page-header{ + margin-bottom: 20px; + border-bottom: 1px solid #eee; + padding-bottom: 9px; + font-size: 175%; +} + +.page-header h1 { + margin-top: 0px; + padding-top: 0px; +} + +header, #header-nav { + max-width: 1280px; + margin: 0 auto; +} + +/* Improve contrast per accessibility guidelines */ +header.navbar { + background-color: rgb(229 231 235); + border-bottom: 2px solid rgb(209, 213, 219); + padding: 0; +} + +.boost-nav { + margin-top: 6px; +} +.boost-nav .nav-item a:hover { + color: rgb(255 159 0); +} + +.boost-nav .nav-item { + line-height: 14px; + margin-right: 25px !important; +} + +.navbar-default .navbar-brand { + color: rgb(49, 74, 87); +} +.navbar-default a.nav-link { + color: rgb(49, 74, 87); +} +.navbar-default .fa-bars { + color: rgb(49, 74, 87); +} +.navbar-brand img { + height: 25px; + margin-right: 25px; +} +.navbar-default .navbar-nav > li > a { + color: rgb(49, 74, 87); + font-weight: 400; + line-height: 1.4; +} +.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, .h4 .small, .h4 small, .h5 .small, .h5 small, .h6 .small, .h6 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small, h4 .small, h4 small, h5 .small, h5 small, h6 .small, h6 small { + color: #666; +} +a { + color: rgb(2, 132, 199); +} +a:hover { + color: rgb(255, 159, 0); +} +.btn-danger { + background-color: #c8423e; +} +.btn-success, .btn-success:hover { + background-color: rgb(156, 163, 175); + border-color: rgb(229, 231, 235); +} +.btn-warning { + background-color: #A4660E; +} +.btn-primary { + background-color: rgb(255, 159, 0); + border-color: rgb(255, 159, 0); +} +.btn-primary:hover { + background-color: rgba(255, 159, 0, 0.8); + border-color: rgb(255, 159, 0); +} +.alert-success { + color: #294C29; +} +.alert-danger { + color: #773231; +} + +h1, h2, h3, h4, h5, h6, h7 { + margin-bottom: 10px; + margin-top: 20px; +} + +.current-role { + font-size: 120%; + font-weight: 110%; + text-align: center; + /* padding-left: 15px; */ +} + +ul.horizontal-list { + list-style: none; + padding-inline-start: 0px; + padding-bottom: 0px; + margin-bottom: 0px; + height: 100%; +} + +ul.horizontal-list li { + display: inline; +} + +.username { + font-weight: 400; +} + +button.user-button { + background-color: inherit; + border: none; +} + +/* Disable the black border on the navbar toggler + when it is in focus. */ +.navbar-toggler:focus, +.navbar-toggler:active, +.navbar-toggler-icon:focus { + color: white; +} diff --git a/postorius/static/postorius/img/Boost_Brandmark_BlackBoost_Transparent.svg b/postorius/static/postorius/img/Boost_Brandmark_BlackBoost_Transparent.svg new file mode 100644 index 0000000..09ce682 --- /dev/null +++ b/postorius/static/postorius/img/Boost_Brandmark_BlackBoost_Transparent.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/postorius/static/postorius/img/Boost_Brandmark_WhiteBoost_Transparent.svg b/postorius/static/postorius/img/Boost_Brandmark_WhiteBoost_Transparent.svg new file mode 100644 index 0000000..0893f9b --- /dev/null +++ b/postorius/static/postorius/img/Boost_Brandmark_WhiteBoost_Transparent.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/postorius/static/postorius/img/Boost_Symbol_Transparent.svg b/postorius/static/postorius/img/Boost_Symbol_Transparent.svg new file mode 100755 index 0000000..f9c7f76 --- /dev/null +++ b/postorius/static/postorius/img/Boost_Symbol_Transparent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/postorius/static/postorius/img/logo2010-2.jpg b/postorius/static/postorius/img/logo2010-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..edd5e37324c46b61d0dca0406cfd4da5efb3953b GIT binary patch literal 11314 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 + + + + + + {% block head_title %}{{ site_name }}{% endblock %} + +{# #} + + + + + {% block additionalcss %}{% endblock %} + + + + + + + + +
+ {% for message in messages %} + + {% endfor %} + +
+ {% block content %}{% endblock content %} +
+
+ + + + + + + + + {% block additionaljs %}{% endblock %} + + diff --git a/postorius/templates/postorius/lists/held_messages.html b/postorius/templates/postorius/lists/held_messages.html new file mode 100644 index 0000000..7db2e54 --- /dev/null +++ b/postorius/templates/postorius/lists/held_messages.html @@ -0,0 +1,143 @@ +{% extends "postorius/base.html" %} +{% load i18n %} +{% load nav_helpers %} +{% load date_helpers %} +{% load tz %} +{% load pagination %} +{% load static %} + +{% block head_title %} +{% trans 'Held messages' %} | {{ list.fqdn_listname }} - {{ block.super }} +{% endblock %} + +{% block content %} + + {% list_nav 'list_held_messages' 'msgid:title:list_held_messages' %} + + {% if held_messages|length > 0 %} +
+ {% if form.choices.errors %} + {% for error in form.choices.errors %} +
{{ error }}
+ {% endfor %} + {% endif %} + {% csrf_token %} +
+
{% trans 'Perform action on selected messages' %}
+
+ + + +
+
+
{% trans "Click the message's subject for more options." %} +
+
+ + + + + + + + + + + + {% for msg in held_messages %} + + + + + + + + {% endfor %} + +
{% trans 'Subject' %}{% trans 'Sender' %}{% trans 'Reason' %}{% trans 'Hold Date' %}
+ + {% if msg.subject %} + {{ msg.subject }} + {% else %} + {% trans 'No Subject' %} + {% endif %} + + + {{ msg.sender }}{{ msg.reason }}{{ msg.hold_date|datetime_parse|localtime|date:"DATETIME_FORMAT"}}
+
+
+ {% paginator held_messages %} + + {% else %} +

{% trans 'There are currently no held messages.' %}

+ {% endif %} +{% endblock %} + +{% block additionaljs %} + + +{% endblock %} From f3bbea445c5d79e670a6c24ef936a2bbab9c7f5e Mon Sep 17 00:00:00 2001 From: sdarwin Date: Tue, 6 Aug 2024 22:26:36 +0000 Subject: [PATCH 2/2] reorganize templates and statics --- .../hyperkitty/sass/_hyperkitty-base.scss | 88 +-- .../hyperkitty/sass/_hyperkitty-message.scss | 622 +---------------- .../sass/_hyperkitty-variables.scss | 12 +- .../sass/original/_hyperkitty-base.scss | 112 ++++ .../sass/original/_hyperkitty-message.scss | 628 ++++++++++++++++++ .../sass/original/_hyperkitty-variables.scss | 13 + .../revsys-copies-bck/_hyperkitty-base.scss | 139 ++++ .../_hyperkitty-message.scss | 627 +++++++++++++++++ .../_hyperkitty-variables.scss | 13 + .../templates/hyperkitty/base.html.original | 250 +++++++ .../hyperkitty/navbar-brand.html.original | 1 + .../static/postorius/css/style.css.original | 154 +++++ .../templates/postorius/base.html.original | 224 +++++++ .../lists/held_messages.html.original | 146 ++++ 14 files changed, 2312 insertions(+), 717 deletions(-) create mode 100644 hyperkitty/static/hyperkitty/sass/original/_hyperkitty-base.scss create mode 100644 hyperkitty/static/hyperkitty/sass/original/_hyperkitty-message.scss create mode 100644 hyperkitty/static/hyperkitty/sass/original/_hyperkitty-variables.scss create mode 100644 hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-base.scss create mode 100644 hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-message.scss create mode 100644 hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-variables.scss create mode 100644 hyperkitty/templates/hyperkitty/base.html.original create mode 100644 hyperkitty/templates/hyperkitty/navbar-brand.html.original create mode 100644 postorius/static/postorius/css/style.css.original create mode 100644 postorius/templates/postorius/base.html.original create mode 100644 postorius/templates/postorius/lists/held_messages.html.original diff --git a/hyperkitty/static/hyperkitty/sass/_hyperkitty-base.scss b/hyperkitty/static/hyperkitty/sass/_hyperkitty-base.scss index 099e8fd..336bb9a 100644 --- a/hyperkitty/static/hyperkitty/sass/_hyperkitty-base.scss +++ b/hyperkitty/static/hyperkitty/sass/_hyperkitty-base.scss @@ -1,21 +1,9 @@ -// floating navbar's height -$navbarHeight: 75px; -$navbarHoverColor: #e7e7e7; - -html { - // for compatibility with Bootstrap 3, we set the default size to be 14 (b4 makes it 16). - font-size: 14px; -} +@import "original/hyperkitty-base"; body { background-color: rgb(229, 231, 235); color: rgb(49, 74, 87); - min-height: 100vh; - min-height: 100dvh; - display: grid; - grid-template-rows: auto 1fr auto; - } nav#navbar-main { @@ -25,7 +13,6 @@ nav#navbar-main { a.nav-link, div.navbar-header > a { color: rgb(49, 74, 87); } - } .navbar-brand img { @@ -51,89 +38,16 @@ nav#navbar-main { margin-right: 25px !important; } - footer { background-color: $navbarColor; - border-top: 1px solid $navbarHoverColor; - margin-top: 2em; - padding: 1em; - text-align: center; - p { - margin: 0; - } - - img { - height: 25px; - } } -//=== NAVBAR nav { - padding-top: 5px; - padding-bottom: 5px; - - // general links - ul.nav-pills li:first-child { - padding-top: 2px; - } - - // login/logout - ul.auth a:last-child { - padding-right: 0; /* flush with right margin */ - } - - // override bootstrap color for search button - .input-group-addon { - background: inherit; - } $searchColor: white; - .search { - background-color: $searchColor; - text-align: center; - border: none; - } - - .search-button { - background-color: $searchColor; - } - - // postorius link - .postorius { - padding: 10px 20px; - margin: 0; - float: right; - } - - .user-button { - background-color: inherit; - border: none; - } } .navbar-toggler { color: #999; } -// hack: forces search box to appear on one line in navbar in larger screens -// hack: we need extra .input-group to force search box to appear on one line in smaller screens -// note: any pixel-based width will allow hack to work -// @media (min-width: 768px) { -// nav .input-group { -// width: 200px; -// } -// } - -.circle img { - border-radius: 50%; - width: 50px; - height: 50px; - /* width and height can be anything, as long as they're equal */ -} - -.circle-small img { - border-radius: 50%; - width: 40px; - height: 40px; - /* width and height can be anything, as long as they're equal */ -} diff --git a/hyperkitty/static/hyperkitty/sass/_hyperkitty-message.scss b/hyperkitty/static/hyperkitty/sass/_hyperkitty-message.scss index fdd1499..f1d5dca 100644 --- a/hyperkitty/static/hyperkitty/sass/_hyperkitty-message.scss +++ b/hyperkitty/static/hyperkitty/sass/_hyperkitty-message.scss @@ -1,627 +1,9 @@ -// MESSAGE VIEW95px -$evenEmailColor: rgb(246, 246, 246); -$oddEmailColor: rgb(238, 238, 238); -//=== Thread view ==/ +@import "original/hyperkitty-message"; -.thread-header { - margin-bottom: 2em; - h3 { - text-align: center; - font-size: 1.5em; - margin-top: 8px; - margin-bottom: 0; - } - .thread-older, .thread-newer { - margin-top: 1em; - color: $subheadingColor; - } - button { - margin-top: 10px; - } - .thread-category { - text-align: center; - } - .thread-titles { - color: $subheadingColor; - } -} - -.view-thread .nav-tabs { - margin-bottom: 1.5em; - .dropdown-header { - padding-left: 0; - padding-right: 0; - } -} -.view-thread .anchor-link { - position: relative; - a { - position: absolute; - top: -95px; - } -} - -.view-thread { - .unread { - border-left: 2px solid #08c; - } -} -//=== Main section with the whole thread ==/ - -// First email of the thread -.email-header { - margin-bottom: 1em; - display: table; - width: 100%; - //display: inline-block; - - .gravatar-wrapper { - float: left; - } - .gravatar { - margin-bottom: 2px; - display: inline-block - } - - .fa-envelope { - font-size: 130%; - margin-right: 10px; - } - - .messagelink { - font-style: italic; - font-size: 90%; - color: rgb(167, 169, 172); - a { - color: rgb(167, 169, 172); - } - } - - .fa { - color: #08c; - } - -} - -.email-author { - margin-left: 0.5em;; - align-items: center; - - .name { - font-size: 1.25em; - } - .rank{ - color: $subheadingColor; - font-size: 80%; - font-weight: bold; - } -} - -.email-date { - .date { - font-weight: bold; - display: inline-block; - } - .time { - text-align: right; - display: inline-block; - span { - text-align: right; - color: $subheadingColor; - border-bottom: 1px dashed $rowBorderColor; - cursor: help; - } - } -} - -.email-body { - word-wrap: break-word; - - span.read-more a, - span.read-less a { - float: right; - padding: 3px 10px 0 0; - } - - .blockquote { - padding-left: 20px; - padding-right: 20px; - font-size: 1rem; - border-radius: 10px - } - - blockquote { - background: #e8ecf2; - border-left: 2px solid #3771c8; - } - - blockquote blockquote { - background: #e4f1df; - border-left: 2px solid #3771c8; - } - - blockquote blockquote blockquote { - background: #ffc4b3; - border-left: 2px solid #3771c8; - } - blockquote blockquote blockquote blockquote { - background: #e8ecf2; - border-left: 2px solid #3771c8; - } - - p { - white-space: pre-wrap; - } - - div { - white-space: pre-wrap; - } - - h1, h2, h3, h4, h5, h6 { - font-size: 1.2rem; - } - - pre { - border: none; - } - -} -.email-body.fixed { - font-family: 'Droid Sans Mono', monospace; - white-space: pre; -} - -.attachments { - padding-top: 8px; - p { - margin-bottom: 0; - font-weight: bold; - } -} - -.email-info { - position: relative; - .messagelink { - display: inline; - font-style: italic; - font-size: 90%; - color: rgb(167, 169, 172); - a { - color: rgb(167, 169, 172); - } - } - .messagelink span, .messagelink a { - padding: 5px; - margin-left: 2px; - border-radius: 2px; - } - .messagelink span:hover, .messagelink a:hover { - background: grey; - } - - .vote { - padding: 5px; - marging-left: 2px; - border-radius: 2px; - } - - .youlike:hover { - background: #E1F4A2; - } - - .youdislike:hover { - background: #FFAAAA - } - .reply { - // padding: 10px; - border-radius: 4px; - } - .reply:hover { - background: #e8ecf2; - } - .likeform-wrapper { - position: relative; - top: 0; - right: 0; - } - .likeform-wrapper a { - text-decoration: none; - } - .likestatus + span { - padding-right: 1em; - } - div.attachments { - display: inline; - margin-left: 1em; - .attachments-list { - margin-bottom: 0; - } - } - - .reply-form-unauthenticated { - display: none; - margin-top: 1em; - } - .reply-form { - display: none; - .reply-tools { - margin-top: 10px; - margin-bottom: 0; - label { - font-size: 90%; - font-weight: normal; - } - } - p { margin: 0; } - p.new-subject { - display: none; - margin-bottom: 0.5em; - } - p.message-text { - margin-bottom: 0.25em; - } - p.buttons { - margin-top: 1em; - } - } - .reply-result { - text-align: center; - .alert { - display: inline-block; - } - .alert-success { - margin-bottom: 0; - } - .alert-error { - white-space: pre; - text-align: left; - } - } - - -} - -.sort-mode { - text-align: right; - padding-top: 10px; -} - - -/* Set the indent of the replies based on the size of the screen.*/ -.reply-level-1 { - margin-left: 2em; -} -.reply-level-2 { - margin-left: 4em; -} -.reply-level-3 { - margin-left: 6em; -} -.reply-level-4 { - margin-left: 8em; -} -.reply-level-5 { - margin-left: 10em; -} - - -/* On smaller screens, do not indent replies as it gets harder to read emails - * at level 5. - */ -@include media-breakpoint-down(sm) { - // @media (max-width: 768px) { - .reply-level-1, .reply-level-2, .reply-level-3, .reply-level-4, .reply-level-5 { - margin-left: 0em; - } -} - - -/* The email thread */ -.view-thread .replies { - margin-top: -15px; -} .replies .email { - border-top: 1px solid $rowBorderColor; - // padding: 0.5em; - margin: 20px 0 20px 0; - .unread { - border-top: 1px solid rgb(100, 100, 100); - background-color: rgb(214, 214, 214); - i.unread { - float: right; - margin-right: 2em; - } - } .subject { - text-align: center; - // clear: both; - font-style: italic; - display: inline-flex; - padding-top: 5; - } - .email-body { - // padding: 5px; - background-color: rgb(255, 255, 255); - } -} -// .even .email { -// background-color: $evenEmailColor; -// } -// .odd .email { -// background-color: $oddEmailColor; -// } -.temporary .email { - background-color: rgb(215, 215, 229); - display: none; -} - - -// === Thread general information column - -.days-num { - font-size: 150%; -} -.days-text { - font-size: 70%; -} - - -#thread-overview-info, #message-overview-info { - a:hover .fa { - color: #fff; - } - .fa { - color: #BFBFBF; - } - .postorius .fa { - color: #007bff; - } -} - -#thread-overview-info { - #thread-date-info { - padding-bottom: 8px; - } - - .list-name { - word-wrap: break-word; - a { - color: black; - } - } - form.favorite { - margin-bottom: 0; - } - .favorite a { - i { - margin-right: 0.3em; - } - } - a.saved, - a.notsaved { - /* Will be shown via Javascript */ - display: none; - } -} - -//=== Tags - -#tag-title { - color: rgb(77, 77, 77); - @extend .small-caps; -} - -#tags { - color: rgb(167, 169, 172); - margin-top: 2em; -} -#tags ul { - padding: 10px 0; - margin: 0; -} -#tags ul li { - padding-left: 0; -} -#tags ul li span { - margin-left: 5px; -} -#tags .rmtag { - margin: 0; - display: inline; -} -#tags .rmtag a { - visibility: hidden; - font-size: 125%; -} -#tags:hover .rmtag a { - visibility: visible; -} -#tags:hover .rmtag a:hover { - text-decoration: none; -} - -#add-tag { - margin-top: 0.3em; -} - -//=== Participants ==/ - -#participants { - margin-top: 2em; - color: $subheadingColor; - h3#participants_title { - @extend .small-caps; - } - li { - margin: 1em 0; - } - .participant-gravatar { + padding-top: 5; padding-left: 0; } } - - -/* Inline quotes */ -.quoted-switch a { - background-color: #fafafa; - padding: 0 4px 2px 4px; - border-left: 2px solid rgb(55, 113, 200); - font-weight: bold; - font-size: 115%; - &:hover { - text-decoration: none; - } -} -.quoted-text { - border-left: 2px solid rgb(55, 113, 200); - padding: 0.5em; - background: #e8ecf2; - border-radius: 10px; -} - - -//=== Navigation for unread messages ==/ - #unreadnavbar { - position: fixed; - bottom: 0; - right: 0; - text-align: right; - padding-right: 2em; - display: none; - } - #unreadnavbar>div { - width: auto; - padding: 0.2em 1em; - border: 1px solid #888; - border-bottom: none; - background-color: #eee; - } - - - //=== Re-attach threads ==/ - .reattach-thread { - h1 { - text-align: center; - font-size: 24px; - line-height: 26px; - margin-bottom: 2em; - } - form { - margin-bottom: 0; - img.ajaxloader { - margin-left: 1em; - } - } - form.search { - margin-top: 2em; - p { - line-height: 22px; - } - input { - margin-left: 3em; - } - input, - button { - font-size: 12px; - padding: 2px 8px; - } - } - li.manual { - label { - display: inline; - } - input { - margin-bottom: 0; - } - input[type='text'] { - width: 22em; - } - } - p.buttons { - margin-top: 2em; - } - } - - //=== message_new.html: start a new thread ==/ - .new-thread-form { - //margin-left: 2em; - - #id_subject, - textarea { - width: 100%; - } - - p.buttons { - margin-top: 2em; - } - } - - /* -// tiny screen (<=320px): -// nav-tabs: less padding, smaller dropdowns, right-align last dropdown -@media (max-width: $screen-tn) { - .view-thread .nav-tabs { - >li a { - padding-left: 7px; - padding-right: 7px; - } - #navbarMonthsListDrop ~ .dropdown-menu { - min-width: 90px; - left: inherit; - right: 0; - } - } - #participants { - .participant-name { - margin-left: 0 !important; - } - } -} - */ - - // xs screen (<=540px): more padding/spacing in nav-tabs - @include media-breakpoint-down(539px) { - // @media (max-width: 539px) { - .view-thread .nav-tabs { - .dropdown-menu { - min-width: 120px; - } - #navbarMonthsListDrop ~ .dropdown-menu { - text-align: left; - } - } - } - // small screens (<768px) have smaller gravatar images - @include media-breakpoint-down(xs) { - // @media (max-width: $screen-xs-max) { - #participants { - .participant-name { - margin-left: 10px; - } - } - } - // mid screens (<992px): adjust spacing between gravatar images - // @include media-breakpoint-up(md) { - // @media (min-width: $screen-md-min) { - // #participants { - // img.gravatar { - // @include square(32px); - // } - // } - // } - - - //=== Message view ==/ - - .message-header { - margin: 1em 0 2em 0; - .message-back { - a { - padding: 0.2em 0; - .icon { - font-size: 1.5em; - } - } - } - } diff --git a/hyperkitty/static/hyperkitty/sass/_hyperkitty-variables.scss b/hyperkitty/static/hyperkitty/sass/_hyperkitty-variables.scss index ab28131..44e6f2b 100644 --- a/hyperkitty/static/hyperkitty/sass/_hyperkitty-variables.scss +++ b/hyperkitty/static/hyperkitty/sass/_hyperkitty-variables.scss @@ -1,13 +1,5 @@ -// Variables common to two or more pages -$headingColor: #666; -$subheadingColor: #999; -$rowBorderColor: #ccc; -$rowSideGutter: 0.5em; +@import "original/hyperkitty-variables"; + $rowHoverColor: #999; $navbarColor: rgb(229,231,235); -$linkHoverColor: #ddd; -$linkColor: #08c; -$maroon: rgb(128,0,0); -$grey: #999; -$super-light-grey: #eee; diff --git a/hyperkitty/static/hyperkitty/sass/original/_hyperkitty-base.scss b/hyperkitty/static/hyperkitty/sass/original/_hyperkitty-base.scss new file mode 100644 index 0000000..884f964 --- /dev/null +++ b/hyperkitty/static/hyperkitty/sass/original/_hyperkitty-base.scss @@ -0,0 +1,112 @@ +// floating navbar's height +$navbarHeight: 75px; +$navbarHoverColor: #e7e7e7; + + +html { + // for compatibility with Bootstrap 3, we set the default size to be 14 (b4 makes it 16). + font-size: 14px; +} + +body { + background-color: white; + min-height: 100vh; + min-height: 100dvh; + display: grid; + grid-template-rows: auto 1fr auto; + +} + +nav#navbar-main { + background-color: $navbarColor; + + a.nav-link, div.navbar-header > a { + color: white; + } + +} + + + + +footer { + background-color: #f8f8f8; + border-top: 1px solid $navbarHoverColor; + margin-top: 2em; + padding: 1em; + text-align: center; + p { + margin: 0; + } + + img { + height: 25px; + } +} + +//=== NAVBAR +nav { + padding-top: 5px; + padding-bottom: 5px; + + // general links + ul.nav-pills li:first-child { + padding-top: 2px; + } + + // login/logout + ul.auth a:last-child { + padding-right: 0; /* flush with right margin */ + } + + // override bootstrap color for search button + .input-group-addon { + background: inherit; + } + $searchColor: rgb(146, 194, 245); + .search { + background-color: $searchColor; + text-align: center; + border: none; + } + + .search-button { + background-color: $searchColor; + } + + // postorius link + .postorius { + padding: 10px 20px; + margin: 0; + float: right; + } + + .user-button { + background-color: inherit; + border: none; + } +} + +// hack: forces search box to appear on one line in navbar in larger screens +// hack: we need extra .input-group to force search box to appear on one line in smaller screens +// note: any pixel-based width will allow hack to work +// @media (min-width: 768px) { +// nav .input-group { +// width: 200px; +// } +// } + + +.circle img { + border-radius: 50%; + width: 50px; + height: 50px; + /* width and height can be anything, as long as they're equal */ +} + +.circle-small img { + border-radius: 50%; + width: 40px; + height: 40px; + /* width and height can be anything, as long as they're equal */ +} diff --git a/hyperkitty/static/hyperkitty/sass/original/_hyperkitty-message.scss b/hyperkitty/static/hyperkitty/sass/original/_hyperkitty-message.scss new file mode 100644 index 0000000..b86101f --- /dev/null +++ b/hyperkitty/static/hyperkitty/sass/original/_hyperkitty-message.scss @@ -0,0 +1,628 @@ +// MESSAGE VIEW95px +$evenEmailColor: rgb(246, 246, 246); +$oddEmailColor: rgb(238, 238, 238); + +//=== Thread view ==/ + +.thread-header { + margin-bottom: 2em; + h3 { + text-align: center; + font-size: 1.5em; + margin-top: 8px; + margin-bottom: 0; + } + .thread-older, .thread-newer { + margin-top: 1em; + color: $subheadingColor; + } + button { + margin-top: 10px; + } + .thread-category { + text-align: center; + } + .thread-titles { + color: $subheadingColor; + } +} + +.view-thread .nav-tabs { + margin-bottom: 1.5em; + .dropdown-header { + padding-left: 0; + padding-right: 0; + } +} +.view-thread .anchor-link { + position: relative; + a { + position: absolute; + top: -95px; + } +} + +.view-thread { + .unread { + border-left: 2px solid #08c; + } +} +//=== Main section with the whole thread ==/ + +// First email of the thread +.email-header { + margin-bottom: 1em; + display: table; + width: 100%; + //display: inline-block; + + .gravatar-wrapper { + float: left; + } + .gravatar { + margin-bottom: 2px; + display: inline-block + } + + .fa-envelope { + font-size: 130%; + margin-right: 10px; + } + + .messagelink { + font-style: italic; + font-size: 90%; + color: rgb(167, 169, 172); + a { + color: rgb(167, 169, 172); + } + } + + .fa { + color: #08c; + } + +} + +.email-author { + margin-left: 0.5em;; + align-items: center; + + .name { + font-size: 1.25em; + } + .rank{ + color: $subheadingColor; + font-size: 80%; + font-weight: bold; + } +} + +.email-date { + .date { + font-weight: bold; + display: inline-block; + } + .time { + text-align: right; + display: inline-block; + span { + text-align: right; + color: $subheadingColor; + border-bottom: 1px dashed $rowBorderColor; + cursor: help; + } + } +} + +.email-body { + word-wrap: break-word; + + span.read-more a, + span.read-less a { + float: right; + padding: 3px 10px 0 0; + } + + .blockquote { + padding-left: 20px; + padding-right: 20px; + font-size: 1rem; + border-radius: 10px + } + + blockquote { + background: #e8ecf2; + border-left: 2px solid #3771c8; + } + + blockquote blockquote { + background: #e4f1df; + border-left: 2px solid #3771c8; + } + + blockquote blockquote blockquote { + background: #ffc4b3; + border-left: 2px solid #3771c8; + } + blockquote blockquote blockquote blockquote { + background: #e8ecf2; + border-left: 2px solid #3771c8; + } + + p { + white-space: pre-wrap; + } + + div { + white-space: pre-wrap; + } + + h1, h2, h3, h4, h5, h6 { + font-size: 1.2rem; + } + + pre { + border: none; + } + +} +.email-body.fixed { + font-family: 'Droid Sans Mono', monospace; + white-space: pre; +} + +.attachments { + padding-top: 8px; + p { + margin-bottom: 0; + font-weight: bold; + } +} + +.email-info { + position: relative; + .messagelink { + display: inline; + font-style: italic; + font-size: 90%; + color: rgb(167, 169, 172); + a { + color: rgb(167, 169, 172); + } + } + .messagelink span, .messagelink a { + padding: 5px; + margin-left: 2px; + border-radius: 2px; + } + .messagelink span:hover, .messagelink a:hover { + background: grey; + } + + .vote { + padding: 5px; + marging-left: 2px; + border-radius: 2px; + } + + .youlike:hover { + background: #E1F4A2; + } + + .youdislike:hover { + background: #FFAAAA + } + .reply { + // padding: 10px; + border-radius: 4px; + } + .reply:hover { + background: #e8ecf2; + } + .likeform-wrapper { + position: relative; + top: 0; + right: 0; + } + .likeform-wrapper a { + text-decoration: none; + } + .likestatus + span { + padding-right: 1em; + } + div.attachments { + display: inline; + margin-left: 1em; + .attachments-list { + margin-bottom: 0; + } + } + + .reply-form-unauthenticated { + display: none; + margin-top: 1em; + } + .reply-form { + display: none; + .reply-tools { + margin-top: 10px; + margin-bottom: 0; + label { + font-size: 90%; + font-weight: normal; + } + } + p { margin: 0; } + p.new-subject { + display: none; + margin-bottom: 0.5em; + } + p.message-text { + margin-bottom: 0.25em; + } + p.buttons { + margin-top: 1em; + } + } + .reply-result { + text-align: center; + .alert { + display: inline-block; + } + .alert-success { + margin-bottom: 0; + } + .alert-error { + white-space: pre; + text-align: left; + } + } + + +} + +.sort-mode { + text-align: right; + padding-top: 10px; +} + + +/* Set the indent of the replies based on the size of the screen.*/ +.reply-level-1 { + margin-left: 2em; +} +.reply-level-2 { + margin-left: 4em; +} +.reply-level-3 { + margin-left: 6em; +} +.reply-level-4 { + margin-left: 8em; +} +.reply-level-5 { + margin-left: 10em; +} + + +/* On smaller screens, do not indent replies as it gets harder to read emails + * at level 5. + */ +@include media-breakpoint-down(sm) { + // @media (max-width: 768px) { + .reply-level-1, .reply-level-2, .reply-level-3, .reply-level-4, .reply-level-5 { + margin-left: 0em; + } +} + + +/* The email thread */ +.view-thread .replies { + margin-top: -15px; +} +.replies .email { + border-top: 1px solid $rowBorderColor; + // padding: 0.5em; + margin: 20px 0 20px 0; + .unread { + border-top: 1px solid rgb(100, 100, 100); + background-color: rgb(214, 214, 214); + i.unread { + float: right; + margin-right: 2em; + } + } + .subject { + text-align: center; + // clear: both; + font-style: italic; + display: inline-flex; + padding-top: 10px; + padding-left: 20px; + } + .email-body { + // padding: 5px; + background-color: rgb(255, 255, 255); + } +} +// .even .email { +// background-color: $evenEmailColor; +// } +// .odd .email { +// background-color: $oddEmailColor; +// } +.temporary .email { + background-color: rgb(215, 215, 229); + display: none; +} + + +// === Thread general information column + +.days-num { + font-size: 150%; +} +.days-text { + font-size: 70%; +} + + +#thread-overview-info, #message-overview-info { + a:hover .fa { + color: #fff; + } + .fa { + color: #BFBFBF; + } + .postorius .fa { + color: #007bff; + } +} + +#thread-overview-info { + #thread-date-info { + padding-bottom: 8px; + } + + .list-name { + word-wrap: break-word; + a { + color: black; + } + } + form.favorite { + margin-bottom: 0; + } + .favorite a { + i { + margin-right: 0.3em; + } + } + a.saved, + a.notsaved { + /* Will be shown via Javascript */ + display: none; + } +} + +//=== Tags + +#tag-title { + color: rgb(77, 77, 77); + @extend .small-caps; +} + +#tags { + color: rgb(167, 169, 172); + margin-top: 2em; +} +#tags ul { + padding: 10px 0; + margin: 0; +} +#tags ul li { + padding-left: 0; +} +#tags ul li span { + margin-left: 5px; +} +#tags .rmtag { + margin: 0; + display: inline; +} +#tags .rmtag a { + visibility: hidden; + font-size: 125%; +} +#tags:hover .rmtag a { + visibility: visible; +} +#tags:hover .rmtag a:hover { + text-decoration: none; +} + +#add-tag { + margin-top: 0.3em; +} + +//=== Participants ==/ + +#participants { + margin-top: 2em; + color: $subheadingColor; + h3#participants_title { + @extend .small-caps; + } + li { + margin: 1em 0; + } + .participant-gravatar { + padding-left: 0; + } +} + + +/* Inline quotes */ +.quoted-switch a { + background-color: #fafafa; + padding: 0 4px 2px 4px; + border-left: 2px solid rgb(55, 113, 200); + font-weight: bold; + font-size: 115%; + &:hover { + text-decoration: none; + } +} +.quoted-text { + border-left: 2px solid rgb(55, 113, 200); + padding: 0.5em; + background: #e8ecf2; + border-radius: 10px; +} + + +//=== Navigation for unread messages ==/ + #unreadnavbar { + position: fixed; + bottom: 0; + right: 0; + text-align: right; + padding-right: 2em; + display: none; + } + #unreadnavbar>div { + width: auto; + padding: 0.2em 1em; + border: 1px solid #888; + border-bottom: none; + background-color: #eee; + } + + + //=== Re-attach threads ==/ + .reattach-thread { + h1 { + text-align: center; + font-size: 24px; + line-height: 26px; + margin-bottom: 2em; + } + form { + margin-bottom: 0; + img.ajaxloader { + margin-left: 1em; + } + } + form.search { + margin-top: 2em; + p { + line-height: 22px; + } + input { + margin-left: 3em; + } + input, + button { + font-size: 12px; + padding: 2px 8px; + } + } + li.manual { + label { + display: inline; + } + input { + margin-bottom: 0; + } + input[type='text'] { + width: 22em; + } + } + p.buttons { + margin-top: 2em; + } + } + + //=== message_new.html: start a new thread ==/ + .new-thread-form { + //margin-left: 2em; + + #id_subject, + textarea { + width: 100%; + } + + p.buttons { + margin-top: 2em; + } + } + + /* +// tiny screen (<=320px): +// nav-tabs: less padding, smaller dropdowns, right-align last dropdown +@media (max-width: $screen-tn) { + .view-thread .nav-tabs { + >li a { + padding-left: 7px; + padding-right: 7px; + } + #navbarMonthsListDrop ~ .dropdown-menu { + min-width: 90px; + left: inherit; + right: 0; + } + } + #participants { + .participant-name { + margin-left: 0 !important; + } + } +} + */ + + // xs screen (<=540px): more padding/spacing in nav-tabs + @include media-breakpoint-down(539px) { + // @media (max-width: 539px) { + .view-thread .nav-tabs { + .dropdown-menu { + min-width: 120px; + } + #navbarMonthsListDrop ~ .dropdown-menu { + text-align: left; + } + } + } + // small screens (<768px) have smaller gravatar images + @include media-breakpoint-down(xs) { + // @media (max-width: $screen-xs-max) { + #participants { + .participant-name { + margin-left: 10px; + } + } + } + // mid screens (<992px): adjust spacing between gravatar images + // @include media-breakpoint-up(md) { + // @media (min-width: $screen-md-min) { + // #participants { + // img.gravatar { + // @include square(32px); + // } + // } + // } + + + //=== Message view ==/ + + .message-header { + margin: 1em 0 2em 0; + .message-back { + a { + padding: 0.2em 0; + .icon { + font-size: 1.5em; + } + } + } + } diff --git a/hyperkitty/static/hyperkitty/sass/original/_hyperkitty-variables.scss b/hyperkitty/static/hyperkitty/sass/original/_hyperkitty-variables.scss new file mode 100644 index 0000000..272a201 --- /dev/null +++ b/hyperkitty/static/hyperkitty/sass/original/_hyperkitty-variables.scss @@ -0,0 +1,13 @@ +// Variables common to two or more pages + +$headingColor: #666; +$subheadingColor: #999; +$rowBorderColor: #ccc; +$rowSideGutter: 0.5em; +$rowHoverColor: #08c; +$navbarColor: rgb(8, 109, 215); +$linkHoverColor: #ddd; +$linkColor: #08c; +$maroon: rgb(128,0,0); +$grey: #999; +$super-light-grey: #eee; diff --git a/hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-base.scss b/hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-base.scss new file mode 100644 index 0000000..099e8fd --- /dev/null +++ b/hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-base.scss @@ -0,0 +1,139 @@ +// floating navbar's height +$navbarHeight: 75px; +$navbarHoverColor: #e7e7e7; + + +html { + // for compatibility with Bootstrap 3, we set the default size to be 14 (b4 makes it 16). + font-size: 14px; +} + +body { + background-color: rgb(229, 231, 235); + color: rgb(49, 74, 87); + min-height: 100vh; + min-height: 100dvh; + display: grid; + grid-template-rows: auto 1fr auto; + +} + +nav#navbar-main { + background-color: $navbarColor; + border-bottom: 2px solid rgb(209, 213, 219); + + a.nav-link, div.navbar-header > a { + color: rgb(49, 74, 87); + } + +} + +.navbar-brand img { + height: 25px; + margin-right: 25px; +} + +.btn-primary { + background-color: rgb(255, 159, 0); + border-color: rgb(255, 159, 0); +} +.btn-primary:hover { + background-color: rgba(255, 159, 0, 0.8); + border-color: rgb(255, 159, 0); +} + +.boost-nav .nav-item a:hover { + color: rgb(255, 159, 0) !important; +} + +.boost-nav .nav-item { + line-height: 14px; + margin-right: 25px !important; +} + + +footer { + background-color: $navbarColor; + border-top: 1px solid $navbarHoverColor; + margin-top: 2em; + padding: 1em; + text-align: center; + p { + margin: 0; + } + + img { + height: 25px; + } +} + +//=== NAVBAR +nav { + padding-top: 5px; + padding-bottom: 5px; + + // general links + ul.nav-pills li:first-child { + padding-top: 2px; + } + + // login/logout + ul.auth a:last-child { + padding-right: 0; /* flush with right margin */ + } + + // override bootstrap color for search button + .input-group-addon { + background: inherit; + } + $searchColor: white; + .search { + background-color: $searchColor; + text-align: center; + border: none; + } + + .search-button { + background-color: $searchColor; + } + + // postorius link + .postorius { + padding: 10px 20px; + margin: 0; + float: right; + } + + .user-button { + background-color: inherit; + border: none; + } +} + +.navbar-toggler { + color: #999; +} + +// hack: forces search box to appear on one line in navbar in larger screens +// hack: we need extra .input-group to force search box to appear on one line in smaller screens +// note: any pixel-based width will allow hack to work +// @media (min-width: 768px) { +// nav .input-group { +// width: 200px; +// } +// } + + +.circle img { + border-radius: 50%; + width: 50px; + height: 50px; + /* width and height can be anything, as long as they're equal */ +} + +.circle-small img { + border-radius: 50%; + width: 40px; + height: 40px; + /* width and height can be anything, as long as they're equal */ +} diff --git a/hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-message.scss b/hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-message.scss new file mode 100644 index 0000000..fdd1499 --- /dev/null +++ b/hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-message.scss @@ -0,0 +1,627 @@ +// MESSAGE VIEW95px +$evenEmailColor: rgb(246, 246, 246); +$oddEmailColor: rgb(238, 238, 238); + +//=== Thread view ==/ + +.thread-header { + margin-bottom: 2em; + h3 { + text-align: center; + font-size: 1.5em; + margin-top: 8px; + margin-bottom: 0; + } + .thread-older, .thread-newer { + margin-top: 1em; + color: $subheadingColor; + } + button { + margin-top: 10px; + } + .thread-category { + text-align: center; + } + .thread-titles { + color: $subheadingColor; + } +} + +.view-thread .nav-tabs { + margin-bottom: 1.5em; + .dropdown-header { + padding-left: 0; + padding-right: 0; + } +} +.view-thread .anchor-link { + position: relative; + a { + position: absolute; + top: -95px; + } +} + +.view-thread { + .unread { + border-left: 2px solid #08c; + } +} +//=== Main section with the whole thread ==/ + +// First email of the thread +.email-header { + margin-bottom: 1em; + display: table; + width: 100%; + //display: inline-block; + + .gravatar-wrapper { + float: left; + } + .gravatar { + margin-bottom: 2px; + display: inline-block + } + + .fa-envelope { + font-size: 130%; + margin-right: 10px; + } + + .messagelink { + font-style: italic; + font-size: 90%; + color: rgb(167, 169, 172); + a { + color: rgb(167, 169, 172); + } + } + + .fa { + color: #08c; + } + +} + +.email-author { + margin-left: 0.5em;; + align-items: center; + + .name { + font-size: 1.25em; + } + .rank{ + color: $subheadingColor; + font-size: 80%; + font-weight: bold; + } +} + +.email-date { + .date { + font-weight: bold; + display: inline-block; + } + .time { + text-align: right; + display: inline-block; + span { + text-align: right; + color: $subheadingColor; + border-bottom: 1px dashed $rowBorderColor; + cursor: help; + } + } +} + +.email-body { + word-wrap: break-word; + + span.read-more a, + span.read-less a { + float: right; + padding: 3px 10px 0 0; + } + + .blockquote { + padding-left: 20px; + padding-right: 20px; + font-size: 1rem; + border-radius: 10px + } + + blockquote { + background: #e8ecf2; + border-left: 2px solid #3771c8; + } + + blockquote blockquote { + background: #e4f1df; + border-left: 2px solid #3771c8; + } + + blockquote blockquote blockquote { + background: #ffc4b3; + border-left: 2px solid #3771c8; + } + blockquote blockquote blockquote blockquote { + background: #e8ecf2; + border-left: 2px solid #3771c8; + } + + p { + white-space: pre-wrap; + } + + div { + white-space: pre-wrap; + } + + h1, h2, h3, h4, h5, h6 { + font-size: 1.2rem; + } + + pre { + border: none; + } + +} +.email-body.fixed { + font-family: 'Droid Sans Mono', monospace; + white-space: pre; +} + +.attachments { + padding-top: 8px; + p { + margin-bottom: 0; + font-weight: bold; + } +} + +.email-info { + position: relative; + .messagelink { + display: inline; + font-style: italic; + font-size: 90%; + color: rgb(167, 169, 172); + a { + color: rgb(167, 169, 172); + } + } + .messagelink span, .messagelink a { + padding: 5px; + margin-left: 2px; + border-radius: 2px; + } + .messagelink span:hover, .messagelink a:hover { + background: grey; + } + + .vote { + padding: 5px; + marging-left: 2px; + border-radius: 2px; + } + + .youlike:hover { + background: #E1F4A2; + } + + .youdislike:hover { + background: #FFAAAA + } + .reply { + // padding: 10px; + border-radius: 4px; + } + .reply:hover { + background: #e8ecf2; + } + .likeform-wrapper { + position: relative; + top: 0; + right: 0; + } + .likeform-wrapper a { + text-decoration: none; + } + .likestatus + span { + padding-right: 1em; + } + div.attachments { + display: inline; + margin-left: 1em; + .attachments-list { + margin-bottom: 0; + } + } + + .reply-form-unauthenticated { + display: none; + margin-top: 1em; + } + .reply-form { + display: none; + .reply-tools { + margin-top: 10px; + margin-bottom: 0; + label { + font-size: 90%; + font-weight: normal; + } + } + p { margin: 0; } + p.new-subject { + display: none; + margin-bottom: 0.5em; + } + p.message-text { + margin-bottom: 0.25em; + } + p.buttons { + margin-top: 1em; + } + } + .reply-result { + text-align: center; + .alert { + display: inline-block; + } + .alert-success { + margin-bottom: 0; + } + .alert-error { + white-space: pre; + text-align: left; + } + } + + +} + +.sort-mode { + text-align: right; + padding-top: 10px; +} + + +/* Set the indent of the replies based on the size of the screen.*/ +.reply-level-1 { + margin-left: 2em; +} +.reply-level-2 { + margin-left: 4em; +} +.reply-level-3 { + margin-left: 6em; +} +.reply-level-4 { + margin-left: 8em; +} +.reply-level-5 { + margin-left: 10em; +} + + +/* On smaller screens, do not indent replies as it gets harder to read emails + * at level 5. + */ +@include media-breakpoint-down(sm) { + // @media (max-width: 768px) { + .reply-level-1, .reply-level-2, .reply-level-3, .reply-level-4, .reply-level-5 { + margin-left: 0em; + } +} + + +/* The email thread */ +.view-thread .replies { + margin-top: -15px; +} +.replies .email { + border-top: 1px solid $rowBorderColor; + // padding: 0.5em; + margin: 20px 0 20px 0; + .unread { + border-top: 1px solid rgb(100, 100, 100); + background-color: rgb(214, 214, 214); + i.unread { + float: right; + margin-right: 2em; + } + } + .subject { + text-align: center; + // clear: both; + font-style: italic; + display: inline-flex; + padding-top: 5; + } + .email-body { + // padding: 5px; + background-color: rgb(255, 255, 255); + } +} +// .even .email { +// background-color: $evenEmailColor; +// } +// .odd .email { +// background-color: $oddEmailColor; +// } +.temporary .email { + background-color: rgb(215, 215, 229); + display: none; +} + + +// === Thread general information column + +.days-num { + font-size: 150%; +} +.days-text { + font-size: 70%; +} + + +#thread-overview-info, #message-overview-info { + a:hover .fa { + color: #fff; + } + .fa { + color: #BFBFBF; + } + .postorius .fa { + color: #007bff; + } +} + +#thread-overview-info { + #thread-date-info { + padding-bottom: 8px; + } + + .list-name { + word-wrap: break-word; + a { + color: black; + } + } + form.favorite { + margin-bottom: 0; + } + .favorite a { + i { + margin-right: 0.3em; + } + } + a.saved, + a.notsaved { + /* Will be shown via Javascript */ + display: none; + } +} + +//=== Tags + +#tag-title { + color: rgb(77, 77, 77); + @extend .small-caps; +} + +#tags { + color: rgb(167, 169, 172); + margin-top: 2em; +} +#tags ul { + padding: 10px 0; + margin: 0; +} +#tags ul li { + padding-left: 0; +} +#tags ul li span { + margin-left: 5px; +} +#tags .rmtag { + margin: 0; + display: inline; +} +#tags .rmtag a { + visibility: hidden; + font-size: 125%; +} +#tags:hover .rmtag a { + visibility: visible; +} +#tags:hover .rmtag a:hover { + text-decoration: none; +} + +#add-tag { + margin-top: 0.3em; +} + +//=== Participants ==/ + +#participants { + margin-top: 2em; + color: $subheadingColor; + h3#participants_title { + @extend .small-caps; + } + li { + margin: 1em 0; + } + .participant-gravatar { + padding-left: 0; + } +} + + +/* Inline quotes */ +.quoted-switch a { + background-color: #fafafa; + padding: 0 4px 2px 4px; + border-left: 2px solid rgb(55, 113, 200); + font-weight: bold; + font-size: 115%; + &:hover { + text-decoration: none; + } +} +.quoted-text { + border-left: 2px solid rgb(55, 113, 200); + padding: 0.5em; + background: #e8ecf2; + border-radius: 10px; +} + + +//=== Navigation for unread messages ==/ + #unreadnavbar { + position: fixed; + bottom: 0; + right: 0; + text-align: right; + padding-right: 2em; + display: none; + } + #unreadnavbar>div { + width: auto; + padding: 0.2em 1em; + border: 1px solid #888; + border-bottom: none; + background-color: #eee; + } + + + //=== Re-attach threads ==/ + .reattach-thread { + h1 { + text-align: center; + font-size: 24px; + line-height: 26px; + margin-bottom: 2em; + } + form { + margin-bottom: 0; + img.ajaxloader { + margin-left: 1em; + } + } + form.search { + margin-top: 2em; + p { + line-height: 22px; + } + input { + margin-left: 3em; + } + input, + button { + font-size: 12px; + padding: 2px 8px; + } + } + li.manual { + label { + display: inline; + } + input { + margin-bottom: 0; + } + input[type='text'] { + width: 22em; + } + } + p.buttons { + margin-top: 2em; + } + } + + //=== message_new.html: start a new thread ==/ + .new-thread-form { + //margin-left: 2em; + + #id_subject, + textarea { + width: 100%; + } + + p.buttons { + margin-top: 2em; + } + } + + /* +// tiny screen (<=320px): +// nav-tabs: less padding, smaller dropdowns, right-align last dropdown +@media (max-width: $screen-tn) { + .view-thread .nav-tabs { + >li a { + padding-left: 7px; + padding-right: 7px; + } + #navbarMonthsListDrop ~ .dropdown-menu { + min-width: 90px; + left: inherit; + right: 0; + } + } + #participants { + .participant-name { + margin-left: 0 !important; + } + } +} + */ + + // xs screen (<=540px): more padding/spacing in nav-tabs + @include media-breakpoint-down(539px) { + // @media (max-width: 539px) { + .view-thread .nav-tabs { + .dropdown-menu { + min-width: 120px; + } + #navbarMonthsListDrop ~ .dropdown-menu { + text-align: left; + } + } + } + // small screens (<768px) have smaller gravatar images + @include media-breakpoint-down(xs) { + // @media (max-width: $screen-xs-max) { + #participants { + .participant-name { + margin-left: 10px; + } + } + } + // mid screens (<992px): adjust spacing between gravatar images + // @include media-breakpoint-up(md) { + // @media (min-width: $screen-md-min) { + // #participants { + // img.gravatar { + // @include square(32px); + // } + // } + // } + + + //=== Message view ==/ + + .message-header { + margin: 1em 0 2em 0; + .message-back { + a { + padding: 0.2em 0; + .icon { + font-size: 1.5em; + } + } + } + } diff --git a/hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-variables.scss b/hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-variables.scss new file mode 100644 index 0000000..ab28131 --- /dev/null +++ b/hyperkitty/static/hyperkitty/sass/revsys-copies-bck/_hyperkitty-variables.scss @@ -0,0 +1,13 @@ +// Variables common to two or more pages + +$headingColor: #666; +$subheadingColor: #999; +$rowBorderColor: #ccc; +$rowSideGutter: 0.5em; +$rowHoverColor: #999; +$navbarColor: rgb(229,231,235); +$linkHoverColor: #ddd; +$linkColor: #08c; +$maroon: rgb(128,0,0); +$grey: #999; +$super-light-grey: #eee; diff --git a/hyperkitty/templates/hyperkitty/base.html.original b/hyperkitty/templates/hyperkitty/base.html.original new file mode 100644 index 0000000..4220195 --- /dev/null +++ b/hyperkitty/templates/hyperkitty/base.html.original @@ -0,0 +1,250 @@ +{% load i18n %} +{% load compress %} +{% load static %} +{% load hk_generic %} +{% export_allowed as export_allowed %} + + + + + + + {% block head_title %}{{ site_name }}{% endblock %} + + + + + + {% compress css %} + + + + + {% endcompress %} + {% block additional_stylesheets %} {% endblock %} + {% block head_feed %}{% endblock %} + {% include 'hyperkitty/headers.html' %} + + + + + {% include 'hyperkitty/top.html' %} + + + + {% if messages %} +
+ {% for msg in messages %} +
+ + +
+ {% endfor %} +
+ {% endif %} + + + +
+ {% block content %} {% endblock %} +
+ +
+
+

+ + {% trans 'Powered by' %} HyperKitty {% trans 'version' %} {{ HYPERKITTY_VERSION }}. +

+
+
+ + + + {% compress js %} + + {% block additionaljs %} {% endblock %} + + {% include 'hyperkitty/bottom.html' %} + + + diff --git a/hyperkitty/templates/hyperkitty/navbar-brand.html.original b/hyperkitty/templates/hyperkitty/navbar-brand.html.original new file mode 100644 index 0000000..a093c83 --- /dev/null +++ b/hyperkitty/templates/hyperkitty/navbar-brand.html.original @@ -0,0 +1 @@ +{{ site_name }} diff --git a/postorius/static/postorius/css/style.css.original b/postorius/static/postorius/css/style.css.original new file mode 100644 index 0000000..0d30e70 --- /dev/null +++ b/postorius/static/postorius/css/style.css.original @@ -0,0 +1,154 @@ +/* Sticky footer: http://getbootstrap.com/examples/sticky-footer/ */ +html { + position: relative; + min-height: 100%; + /* This mostly makes sure that the font size doesn't change with + bump to Bootstrap 4, which has a default HTML level font-size + of 16px rem. */ + font-size: 14px; +} + +body { + margin-bottom: 90px; +} +.footer { + position: absolute; + bottom: 0; + width: 100%; + height: 60px; + background-color: #f8f8f8; + border-top: 1px solid #e7e7e7; + border-radius: 4px; + padding-top: 20px; +} +/* ---- */ + +.margin-bottom { + margin-bottom: 1em; +} + +form.bans-add-form { + margin-bottom: 2.5rem; +} +table.bans-current { + width: auto; +} + + +/* Header matches */ + +table.header-matches th .text-muted { + font-weight: normal; + font-size: small; +} +table.header-matches td .errorlist { + list-style-type: none; + padding: 0; + margin: 0; +} +.header-matches-pending-changes { + display: none; + margin-left: 1rem; +} + +.page-header{ + margin-bottom: 20px; + border-bottom: 1px solid #eee; + padding-bottom: 9px; + font-size: 175%; +} + +.page-header h1 { + margin-top: 0px; + padding-top: 0px; +} + +/* Improve contrast per accessibility guidelines */ +header.navbar { + background-color: rgb(8, 109, 215); + min-height: 59px; +} + +.navbar-default .navbar-brand { + color: white; +} +.navbar-default a.nav-link { + color: white; +} +.navbar-default .fa-bars { + color: white; +} +.navbar-brand img { + height: 35px; +} +.navbar-default .navbar-nav > li > a { + color: white; + font-weight: 400; + line-height: 1.4; +} +.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, .h4 .small, .h4 small, .h5 .small, .h5 small, .h6 .small, .h6 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small, h4 .small, h4 small, h5 .small, h5 small, h6 .small, h6 small { + color: #666; +} +a { + color: #2269a6; +} +.btn-danger { + background-color: #c8423e; +} +.btn-success { + background-color: #298529; +} +.btn-warning { + background-color: #A4660E; +} +.alert-success { + color: #294C29; +} +.alert-danger { + color: #773231; +} + +/* .navbar-default { + margin-bottom: 20px; +} */ + +h1, h2, h3, h4, h5, h6, h7 { + margin-bottom: 10px; + margin-top: 20px; +} + +.current-role { + font-size: 120%; + font-weight: 110%; + text-align: center; + /* padding-left: 15px; */ +} + +ul.horizontal-list { + list-style: none; + padding-inline-start: 0px; + padding-bottom: 0px; + margin-bottom: 0px; + height: 100%; +} + +ul.horizontal-list li { + display: inline; +} + +.username { + font-weight: 400; +} + +button.user-button { + background-color: inherit; + border: none; +} + +/* Disable the black border on the navbar toggler + when it is in focus. */ +.navbar-toggler:focus, +.navbar-toggler:active, +.navbar-toggler-icon:focus { + color: white; +} \ No newline at end of file diff --git a/postorius/templates/postorius/base.html.original b/postorius/templates/postorius/base.html.original new file mode 100644 index 0000000..1a6c3b6 --- /dev/null +++ b/postorius/templates/postorius/base.html.original @@ -0,0 +1,224 @@ +{% load i18n %} +{% load static %} +{% load p_gravatar %} + + + + + + + {% block head_title %}{{ site_name }}{% endblock %} + + + + + + {% block additionalcss %}{% endblock %} + + + + + + +
+ {% for message in messages %} + + {% endfor %} + {% block content %}{% endblock content %} +
+ + + + + + + + + {% block additionaljs %}{% endblock %} + + diff --git a/postorius/templates/postorius/lists/held_messages.html.original b/postorius/templates/postorius/lists/held_messages.html.original new file mode 100644 index 0000000..7b61a60 --- /dev/null +++ b/postorius/templates/postorius/lists/held_messages.html.original @@ -0,0 +1,146 @@ +{% extends "postorius/base.html" %} +{% load i18n %} +{% load nav_helpers %} +{% load date_helpers %} +{% load tz %} +{% load pagination %} +{% load static %} +{% load humanize%} + +{% block head_title %} +{% trans 'Held messages' %} | {{ list.fqdn_listname }} - {{ block.super }} +{% endblock %} + +{% block content %} + + {% list_nav 'list_held_messages' 'msgid:title:list_held_messages' %} + + {% if held_messages|length > 0 %} +
+ {% if form.choices.errors %} + {% for error in form.choices.errors %} +
{{ error }}
+ {% endfor %} + {% endif %} + {% csrf_token %} +
+
{% trans 'Perform action on selected messages' %}
+
+ + + +
+
+
{% trans "Click the message's subject for more options." %} +
+
+ + + + + + + + + + + + + {% for msg in held_messages %} + + + + + + + + + {% endfor %} + +
{% trans 'Subject' %}{% trans 'Sender' %}{% trans 'Reason' %}{% trans 'Size' %}{% trans 'Hold Date' %}
+ + {% if msg.subject %} + {{ msg.subject }} + {% else %} + {% trans 'No Subject' %} + {% endif %} + + + {{ msg.sender }}{{ msg.reason }}{{ msg.msg|length|filesizeformat }}{{ msg.hold_date|datetime_parse|localtime|date:"DATETIME_FORMAT"}}
+
+
+ {% paginator held_messages %} + + {% else %} +

{% trans 'There are currently no held messages.' %}

+ {% endif %} +{% endblock %} + +{% block additionaljs %} + + +{% endblock %}