-
{{.Title}} {{if .ForumName}}
{{.ForumName}} {{end}}
- {{if .Is_Closed}}
🔒︎{{end}}
-
{{.LastReplyAt}}
+
+ {{range .ItemList}}
{{else}}
There aren't any topics yet.{{if .CurrentUser.Perms.CreateTopic}}
Start one?{{end}}
{{end}}
-{{template "footer.html" . }}
\ No newline at end of file
+{{template "footer.html" . }}
diff --git a/themes/cosmo-conflux/public/main.css b/themes/cosmo-conflux/public/main.css
index cd3e5b3f..bfe75572 100644
--- a/themes/cosmo-conflux/public/main.css
+++ b/themes/cosmo-conflux/public/main.css
@@ -53,12 +53,7 @@ li {
}
li:first-child { border-left: 1px solid #7a7a7a; }
-li a {
- color: white;
- text-decoration: none;
-}
-
-li:hover a, li a:hover, li a:link, li a:visited {
+li a, li:hover a, li a:hover, li a:link, li a:visited {
color: white;
text-decoration: none;
}
@@ -97,9 +92,7 @@ li:hover {
opacity: 0.8;
text-align: center;
}
-.menu_alerts .alert_counter:empty {
- display: none;
-}
+.menu_alerts .alert_counter:empty { display: none; }
.selectedAlert {
background: white;
@@ -110,12 +103,8 @@ li:hover {
color: black;
font-weight: bold;
}
-.selectedAlert .alert_counter {
- display: none;
-}
-.menu_alerts .alertList {
- display: none;
-}
+.selectedAlert .alert_counter { display: none; }
+.menu_alerts .alertList { display: none; }
.selectedAlert .alertList {
position: absolute;
top: 41px;
@@ -152,9 +141,7 @@ li:hover {
width: 100%;
color: black;
}
-.alertItem .text.smaller {
- font-size: 9px;
-}
+.alertItem .text.smaller { font-size: 9px; }
#footer {
clear: left;
@@ -198,6 +185,14 @@ hr { color: silver; border: 1px solid silver; }
.rowitem:not(:last-child) { border-bottom: 1px dotted #ccc; }
.rowblock:first-of-type { margin-top: 8px; }
+.datarow {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+.rowsmall {
+ font-size:12px;
+}
+
.rowhead, .colhead {
background: #ce2424;
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#f97779), to(#ce2424));
@@ -265,8 +260,7 @@ hr { color: silver; border: 1px solid silver; }
word-wrap: break-word;
}
.colstack_head { margin-bottom: 0px; }
-.colstack_left:empty { display: none; }
-.colstack_right:empty { display: none; }
+.colstack_left:empty, .colstack_right:empty { display: none; }
.colstack_grid {
display: grid;
@@ -529,9 +523,7 @@ blockquote p {
padding-bottom: 0;
width: 100%;
}
-.user_content.nobuttons {
- min-height: 168px;
-}
+.user_content.nobuttons { min-height: 168px; }
.button_container {
border-top: solid 1px #eaeaea;
@@ -560,26 +552,14 @@ blockquote p {
border-left: solid 1px #eaeaea;
}
-.like_label:before {
- content: "😀";
-}
-.edit_label:before {
- content: "🖊️";
-}
-.trash_label:before {
- content: "🗑️";
-}
-.flag_label:before {
- content: "🚩";
-}
+.like_label:before { content: "😀"; }
+.edit_label:before { content: "🖊️"; }
+.trash_label:before { content: "🗑️"; }
+.flag_label:before { content: "🚩"; }
-.mod_button {
- margin-right: 4px;
-}
+.mod_button { margin-right: 4px; }
-.post_item:not(.simple) {
- background-color: #eaeaea;
-}
+.post_item:not(.simple) { background-color: #eaeaea; }
.post_item {
background-color: #eaeaea;
padding-top: 4px;
@@ -634,9 +614,7 @@ blockquote p {
box-shadow:0 1px 2px rgba(0,0,0,.1);
}
-.action_item .userinfo {
- display: none;
-}
+.action_item .userinfo { display: none; }
.action_item .content_container {
min-height: auto;
padding: 15px;
@@ -690,73 +668,40 @@ blockquote p {
font-size: 14px;
}
-.panel_floater {
- float: right;
-}
-#panel_groups > .rowitem > .panel_floater {
- float: none;
-}
-#panel_groups > .rowitem > .panel_floater > .panel_right_button {
- float: right;
-}
-#panel_forums > .rowitem > .panel_floater {
- float: none;
-}
-#panel_forums > .rowitem > .panel_floater > .panel_buttons {
- float: right;
-}
+.panel_floater { float: right; }
+#panel_groups > .rowitem > .panel_floater { float: none; }
+#panel_groups > .rowitem > .panel_floater > .panel_right_button { float: right; }
+#panel_forums > .rowitem > .panel_floater { float: none; }
+#panel_forums > .rowitem > .panel_floater > .panel_buttons { float: right; }
.panel_rank_tag, .forum_preset, .forum_active {
float: none;
color: #202020 !important;
font-size: 11px;
}
-.panel_rank_tag_admin:before {
- content: "Admins";
-}
-.panel_rank_tag_mod:before {
- content: "Mods";
-}
-.panel_rank_tag_banned:before {
- content: "Banned";
-}
-.panel_rank_tag_guest:before {
- content: "Guests";
-}
-.panel_rank_tag_member:before {
- content: "Members";
-}
+.panel_rank_tag_admin:before { content: "Admins"; }
+.panel_rank_tag_mod:before { content: "Mods"; }
+.panel_rank_tag_banned:before { content: "Banned"; }
+.panel_rank_tag_guest:before { content: "Guests"; }
+.panel_rank_tag_member:before { content: "Members"; }
-.forum_preset_announce:after {
- content: "Announcements";
-}
-.forum_preset_members:after {
- content: "Member Only";
-}
-.forum_preset_staff:after {
- content: "Staff Only";
-}
-.forum_preset_admins:after {
- content: "Admin Only";
-}
-.forum_preset_archive:after {
- content: "Archive";
-}
-.forum_preset_all:after {
- content: "Public";
-}
-.forum_preset_custom, .forum_preset_ {
- display: none !important;
-}
-.forum_active_Hide:before {
- content: "Hidden";
-}
-.forum_active_Hide + .forum_preset:before {
- content: " | ";
-}
-.forum_active_Show {
- display: none !important;
-}
+.forum_preset_announce:after { content: "Announcements"; }
+.forum_preset_members:after { content: "Member Only"; }
+.forum_preset_staff:after { content: "Staff Only"; }
+.forum_preset_admins:after { content: "Admin Only"; }
+.forum_preset_archive:after { content: "Archive"; }
+.forum_preset_all:after { content: "Public"; }
+.forum_preset_custom, .forum_preset_ { display: none !important; }
+.forum_active_Hide:before { content: "Hidden"; }
+.forum_active_Hide + .forum_preset:before { content: " | "; }
+.forum_active_Show { display: none !important; }
+
+.perm_preset_no_access:before { content: "No Access"; color: maroon; }
+.perm_preset_read_only:before { content: "Read Only"; color: green; }
+.perm_preset_can_post:before { content: "Can Post"; color: green; }
+.perm_preset_can_moderate:before { content: "Can Moderate"; color: darkblue; }
+.perm_preset_custom:before { content: "Custom"; color: black; }
+.perm_preset_default:before { content: "Default"; }
/* Responsive Layout */
/* Anything that isn't a small mobile */
@@ -840,9 +785,7 @@ blockquote p {
}
.rowblock { border-left: none; border-right: none; border-bottom: none; }
- .rowitem { border-left: none; border-right: none; }
- .rowhead { border-left: none; border-right: none; }
- .tbody { border-left: none; border-right: none; }
+ .rowitem, .rowhead, .tbody { border-left: none; border-right: none; }
}
@media(max-width: 620px) {
@@ -1000,9 +943,7 @@ blockquote p {
border: 1px solid rgba(90,90,90,0.75);
transition: transform 0.7s;
}
- ul:hover {
- transform: rotateX(-15deg);
- }
+ ul:hover { transform: rotateX(-15deg); }
li {
font-size: 15px;
@@ -1055,23 +996,13 @@ blockquote p {
}
@media (min-width: 1603px) {
- #back {
- width: 1548px;
- margin-left: auto;
- margin-right: auto;
- }
-
+ #back { width: 1548px; }
#main { width: 1250px; }
#main:not(.shrink_main) { width: calc(100% - 30px); }
}
@media (min-width: 2400px) {
- #back {
- width: 2000px;
- margin-left: auto;
- margin-right: auto;
- }
-
+ #back { width: 2000px; }
#main { width: 1690px; }
#main:not(.shrink_main) { width: calc(100% - 30px); }
.index_category {
@@ -1089,6 +1020,5 @@ blockquote p {
#main:not(.shrink_main) { width: calc(100% - 30px); }
.index_category { width: 1230px; }
.index_category:only-child { width: 100%; }
-
.right_sidebar { width: 350px; }
}
diff --git a/themes/cosmo/public/main.css b/themes/cosmo/public/main.css
index 0ec5e722..98a6d05f 100644
--- a/themes/cosmo/public/main.css
+++ b/themes/cosmo/public/main.css
@@ -87,9 +87,7 @@ li:hover {
opacity: 0.8;
text-align: center;
}
-.menu_alerts .alert_counter:empty {
- display: none;
-}
+.menu_alerts .alert_counter:empty { display: none; }
.selectedAlert {
background: white;
@@ -100,12 +98,8 @@ li:hover {
color: black;
font-weight: bold;
}
-.selectedAlert .alert_counter {
- display: none;
-}
-.menu_alerts .alertList {
- display: none;
-}
+.selectedAlert .alert_counter { display: none; }
+.menu_alerts .alertList { display: none; }
.selectedAlert .alertList {
position: absolute;
top: 41px;
@@ -142,9 +136,7 @@ li:hover {
width: 100%;
color: black;
}
-.alertItem .text.smaller {
- font-size: 9px;
-}
+.alertItem .text.smaller { font-size: 9px; }
hr { color: silver; border: 1px solid silver; }
@@ -180,6 +172,14 @@ hr { color: silver; border: 1px solid silver; }
.rowblock:first-of-type { margin-top: 8px; }
.rowitem:not(:last-child) { border-bottom: 1px dotted #ccc; }
+.datarow {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+.rowsmall {
+ font-size:12px;
+}
+
.rowhead, .colhead {
background: #ce2424;
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#f97779), to(#ce2424));
@@ -247,8 +247,7 @@ hr { color: silver; border: 1px solid silver; }
word-wrap: break-word;
}
.colstack_head { margin-bottom: 0px; }
-.colstack_left:empty { display: none; }
-.colstack_right:empty { display: none; }
+.colstack_left:empty, .colstack_right:empty { display: none; }
.colstack_grid {
display: grid;
@@ -492,7 +491,6 @@ blockquote p {
top: 44px;
}
.gadget { padding-bottom: 20px; }
-
.cell_author img { margin-right: 8px; }
.cell_last img { margin-right: 8px; }
@@ -542,10 +540,7 @@ blockquote p {
border-top-right-radius: 3px;
right: -1px;
}
-
-.tag_block.groupRibbon {
- display: none;
-}
+.tag_block.groupRibbon { display: none; }
/* From Tempra Conflux */
.user_content:not(.simple) {
@@ -558,9 +553,7 @@ blockquote p {
width: 100%;
border-radius: 4px;
}
-.user_content.nobuttons {
- min-height: 190px;
-}
+.user_content.nobuttons { min-height: 190px; }
.button_container {
border-top: solid 1px #eaeaea;
@@ -589,26 +582,14 @@ blockquote p {
border-left: solid 1px #eaeaea;
}
-.like_label:before {
- content: "😀";
-}
-.edit_label:before {
- content: "🖊️";
-}
-.trash_label:before {
- content: "🗑️";
-}
-.flag_label:before {
- content: "🚩";
-}
+.like_label:before { content: "😀"; }
+.edit_label:before { content: "🖊️"; }
+.trash_label:before { content: "🗑️"; }
+.flag_label:before { content: "🚩"; }
-.mod_button {
- margin-right: 4px;
-}
+.mod_button { margin-right: 4px; }
-.post_item:not(.simple) {
- background-color: #eaeaea;
-}
+.post_item:not(.simple) { background-color: #eaeaea; }
.post_item {
padding-top: 4px;
padding-left: 7px !important;
@@ -618,9 +599,7 @@ blockquote p {
padding-right: 7px !important;
padding-bottom: 2px;
}
-.post_item:last-child {
- padding-bottom: 7px;
-}
+.post_item:last-child { padding-bottom: 7px; }
.the_name {
margin-top: 3px;
text-align: center;
@@ -630,7 +609,6 @@ blockquote p {
.userinfo {
border-radius: 5px;
-
background: white;
width: 132px;
padding: 2px;
@@ -661,9 +639,7 @@ blockquote p {
border-radius: 4px;
}
-.action_item .userinfo {
- display: none;
-}
+.action_item .userinfo { display: none; }
.action_item .content_container {
min-height: auto;
padding: 15px;
@@ -717,73 +693,40 @@ blockquote p {
font-size: 14px;
}
-.panel_floater {
- float: right;
-}
-#panel_groups > .rowitem > .panel_floater {
- float: none;
-}
-#panel_groups > .rowitem > .panel_floater > .panel_right_button {
- float: right;
-}
-#panel_forums > .rowitem > .panel_floater {
- float: none;
-}
-#panel_forums > .rowitem > .panel_floater > .panel_buttons {
- float: right;
-}
+.panel_floater { float: right; }
+#panel_groups > .rowitem > .panel_floater { float: none; }
+#panel_groups > .rowitem > .panel_floater > .panel_right_button { float: right; }
+#panel_forums > .rowitem > .panel_floater { float: none; }
+#panel_forums > .rowitem > .panel_floater > .panel_buttons { float: right; }
.panel_rank_tag, .forum_preset, .forum_active {
float: none;
color: #202020 !important;
font-size: 11px;
}
-.panel_rank_tag_admin:before {
- content: "Admins";
-}
-.panel_rank_tag_mod:before {
- content: "Mods";
-}
-.panel_rank_tag_banned:before {
- content: "Banned";
-}
-.panel_rank_tag_guest:before {
- content: "Guests";
-}
-.panel_rank_tag_member:before {
- content: "Members";
-}
+.panel_rank_tag_admin:before { content: "Admins"; }
+.panel_rank_tag_mod:before { content: "Mods"; }
+.panel_rank_tag_banned:before { content: "Banned"; }
+.panel_rank_tag_guest:before { content: "Guests"; }
+.panel_rank_tag_member:before { content: "Members"; }
-.forum_preset_announce:after {
- content: "Announcements";
-}
-.forum_preset_members:after {
- content: "Member Only";
-}
-.forum_preset_staff:after {
- content: "Staff Only";
-}
-.forum_preset_admins:after {
- content: "Admin Only";
-}
-.forum_preset_archive:after {
- content: "Archive";
-}
-.forum_preset_all:after {
- content: "Public";
-}
-.forum_preset_custom, .forum_preset_ {
- display: none !important;
-}
-.forum_active_Hide:before {
- content: "Hidden";
-}
-.forum_active_Hide + .forum_preset:before {
- content: " | ";
-}
-.forum_active_Show {
- display: none !important;
-}
+.forum_preset_announce:after { content: "Announcements"; }
+.forum_preset_members:after { content: "Member Only"; }
+.forum_preset_staff:after { content: "Staff Only"; }
+.forum_preset_admins:after { content: "Admin Only"; }
+.forum_preset_archive:after { content: "Archive"; }
+.forum_preset_all:after { content: "Public"; }
+.forum_preset_custom, .forum_preset_ { display: none !important; }
+.forum_active_Hide:before { content: "Hidden"; }
+.forum_active_Hide + .forum_preset:before { content: " | "; }
+.forum_active_Show { display: none !important; }
+
+.perm_preset_no_access:before { content: "No Access"; color: maroon; }
+.perm_preset_read_only:before { content: "Read Only"; color: green; }
+.perm_preset_can_post:before { content: "Can Post"; color: green; }
+.perm_preset_can_moderate:before { content: "Can Moderate"; color: darkblue; }
+.perm_preset_custom:before { content: "Custom"; color: black; }
+.perm_preset_default:before { content: "Default"; }
/* Responsive Layout */
/* Anything that isn't a small mobile */
diff --git a/themes/tempra-conflux/public/main.css b/themes/tempra-conflux/public/main.css
index d776167e..27d64d1d 100644
--- a/themes/tempra-conflux/public/main.css
+++ b/themes/tempra-conflux/public/main.css
@@ -12,9 +12,7 @@ body {
}
/* Patch for Edge, until they fix emojis in arial x.x */
-@supports (-ms-ime-align:auto) {
-.user_content { font-family: Segoe UI Emoji, arial; }
-}
+@supports (-ms-ime-align:auto) { .user_content { font-family: Segoe UI Emoji, arial; } }
ul {
padding-left: 0px;
@@ -49,11 +47,15 @@ li a {
padding-right: 10px;
}
+.menu_bell {
+ cursor: default;
+}
.menu_alerts {
/*padding-left: 7px;*/
font-size: 20px;
padding-top: 2px;
color: rgb(80,80,80);
+ z-index: 500;
}
.menu_alerts .alert_counter {
position: relative;
@@ -69,9 +71,7 @@ li a {
text-align: center;
border: white solid 1px;
}
-.menu_alerts .alert_counter:empty {
- display: none;
-}
+.menu_alerts .alert_counter:empty { display: none; }
.selectedAlert {
background: white;
@@ -126,9 +126,7 @@ li a {
white-space: nowrap;
font-weight: normal;
}
-.alertItem:not(.withAvatar) {
- margin-left: 5px;
-}
+.alertItem:not(.withAvatar) { margin-left: 5px; }
.container {
width: 90%;
@@ -144,6 +142,9 @@ li a {
padding-top: 0px;
}
.rowblock:empty { display: none; }
+.rowsmall {
+ font-size:12px;
+}
.colblock_left {
border: 1px solid #ccc;
@@ -184,8 +185,7 @@ li a {
word-wrap: break-word;
}
.colstack_head { margin-bottom: 0px; }
-.colstack_left:empty { display: none; }
-.colstack_right:empty { display: none; }
+.colstack_left:empty, .colstack_right:empty { display: none; }
.colstack_grid {
display: grid;
@@ -241,6 +241,10 @@ li a {
}
.rowitem a:hover { color: silver; }
.opthead { display: none; }
+.datarow {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
.formrow {
width: 100%;
@@ -310,9 +314,7 @@ button {
}
.topic_status:empty { display: none; }
-.rowhead {
- background: linear-gradient(to bottom, white, hsl(0, 0%, 93%));
-}
+.rowhead { background: linear-gradient(to bottom, white, hsl(0, 0%, 93%)); }
.topic_sticky_head {
background-color: #FFFFEA;
background: linear-gradient(to bottom, hsl(60, 70%, 96%), hsl(60, 70%, 89%)), url('/static/fabric-base-simple-alpha.png');
@@ -395,9 +397,7 @@ button.username {
padding-bottom: 0;
width: 100%;
}
-.user_content.nobuttons {
- min-height: 168px;
-}
+.user_content.nobuttons { min-height: 168px; }
.button_container {
border-top: solid 1px #eaeaea;
@@ -426,29 +426,17 @@ button.username {
border-left: solid 1px #eaeaea;
}
-.like_label:before {
- content: "😀";
-}
-.edit_label:before {
- content: "🖊️";
-}
-.trash_label:before {
- content: "🗑️";
-}
-.flag_label:before {
- content: "🚩";
-}
+.like_label:before { content: "😀"; }
+.edit_label:before { content: "🖊️"; }
+.trash_label:before { content: "🗑️"; }
+.flag_label:before { content: "🚩"; }
-.mod_button {
- margin-right: 4px;
-}
+.mod_button { margin-right: 4px; }
.simple > .real_username { color: #404040; font-size: 17px; }
.simple > .user_content { background: none; }
.simple { background-color: white; }
-.post_item:not(.simple) {
- background-color: #eaeaea;
-}
+.post_item:not(.simple) { background-color: #eaeaea; }
.post_item {
padding-top: 4px;
padding-left: 5px;
@@ -457,9 +445,7 @@ button.username {
padding-right: 4px;
padding-bottom: 2px;
}
-.post_item:last-child {
- padding-bottom: 7px;
-}
+.post_item:last-child { padding-bottom: 7px; }
.post_tag {
margin-top: 0px;
text-align: center;
@@ -504,9 +490,7 @@ button.username {
box-shadow:0 1px 2px rgba(0,0,0,.1);
}
-.action_item .userinfo {
- display: none;
-}
+.action_item .userinfo { display: none; }
.action_item .content_container {
min-height: auto;
padding: 15px;
@@ -544,9 +528,7 @@ button.username {
}
/* Control Panel */
-.panel_upshift:visited {
- color: black;
-}
+.panel_upshift:visited { color: black; }
.tag-mini {
margin-left: 0px;
@@ -568,82 +550,48 @@ button.username {
font-size: 14px;
}
-.panel_floater {
- float: right;
-}
-#panel_groups > .rowitem > .panel_floater {
- float: none;
-}
-#panel_groups > .rowitem > .panel_floater > .panel_right_button {
- float: right;
-}
-#panel_forums > .rowitem > .panel_floater {
- float: none;
-}
-#panel_forums > .rowitem > .panel_floater > .panel_buttons {
- float: right;
-}
+.panel_floater { float: right; }
+#panel_groups > .rowitem > .panel_floater { float: none; }
+#panel_groups > .rowitem > .panel_floater > .panel_right_button { float: right; }
+#panel_forums > .rowitem > .panel_floater { float: none; }
+#panel_forums > .rowitem > .panel_floater > .panel_buttons { float: right; }
+#panel_forums > .rowitem > span > .forum_name { margin-right: 4px; }
+#panel_forum_quick_perms > .formrow > .formitem > a { margin-right: 4px; }
+.forum_active > select { margin-bottom: 3px } /* Quick fix, need to properly patch this */
.panel_rank_tag, .forum_preset, .forum_active {
float: none;
color: #202020 !important;
font-size: 11px;
}
-.panel_rank_tag_admin:before {
- content: "Admins";
-}
-.panel_rank_tag_mod:before {
- content: "Mods";
-}
-.panel_rank_tag_banned:before {
- content: "Banned";
-}
-.panel_rank_tag_guest:before {
- content: "Guests";
-}
-.panel_rank_tag_member:before {
- content: "Members";
-}
+.panel_rank_tag_admin:before { content: "Admins"; }
+.panel_rank_tag_mod:before { content: "Mods"; }
+.panel_rank_tag_banned:before { content: "Banned"; }
+.panel_rank_tag_guest:before { content: "Guests"; }
+.panel_rank_tag_member:before { content: "Members"; }
-.forum_preset_announce:after {
- content: "Announcements";
-}
-.forum_preset_members:after {
- content: "Member Only";
-}
-.forum_preset_staff:after {
- content: "Staff Only";
-}
-.forum_preset_admins:after {
- content: "Admin Only";
-}
-.forum_preset_archive:after {
- content: "Archive";
-}
-.forum_preset_all:after {
- content: "Public";
-}
-.forum_preset_custom, .forum_preset_ {
- display: none !important;
-}
-.forum_active_Hide:before {
- content: "Hidden";
-}
-.forum_active_Hide + .forum_preset:before {
- content: " | ";
-}
-.forum_active_Show {
- display: none !important;
-}
+.forum_preset_announce:after { content: "Announcements"; }
+.forum_preset_members:after { content: "Member Only"; }
+.forum_preset_staff:after { content: "Staff Only"; }
+.forum_preset_admins:after { content: "Admin Only"; }
+.forum_preset_archive:after { content: "Archive"; }
+.forum_preset_all:after { content: "Public"; }
+.forum_preset_custom, .forum_preset_ { display: none !important; }
+.forum_active_Hide:before { content: "Hidden"; }
+.forum_active_Hide + .forum_preset:before { content: " | "; }
+.forum_active_Show { display: none !important; }
-.theme_row > .panel_floater > .panel_right_button {
- margin-left: 5px;
-}
+.perm_preset_no_access:before { content: "No Access"; color: maroon; }
+.perm_preset_read_only:before { content: "Read Only"; color: green; }
+.perm_preset_can_post:before { content: "Can Post"; color: green; }
+.perm_preset_can_moderate:before { content: "Can Moderate"; color: darkblue; }
+.perm_preset_custom:before { content: "Custom"; color: black; }
+.perm_preset_default:before { content: "Default"; }
+
+.theme_row > .panel_floater > .panel_right_button { margin-left: 5px; }
@media(max-width: 1300px) {
- .theme_row {
- background-image: none !important;
- }
+ .theme_row { background-image: none !important; }
}
/* The Media Queries */
@@ -717,18 +665,14 @@ button.username {
padding-left: 42px;
height: 46px;
}
- .alertItem {
- padding: 8px;
- }
+ .alertItem { padding: 8px; }
.alertItem .text {
height: 30px;
font-size: 10px;
font-weight: bold;
white-space: normal;
}
- .alertItem .text.smaller {
- font-size: 9px;
- }
+ .alertItem .text.smaller { font-size: 9px; }
.post_container { overflow: visible !important; }
.post_item {
@@ -772,6 +716,7 @@ button.username {
.user_content.nobuttons { min-height: 100.5px !important; }
.the_name { font-size: 15px; }
.post_tag { font-size: 12px; }
+ .rowtopic { font-size: 14px; }
.container { width: 100% !important; }
}
diff --git a/themes/tempra-cursive/public/main.css b/themes/tempra-cursive/public/main.css
index 825b42c9..123003f4 100644
--- a/themes/tempra-cursive/public/main.css
+++ b/themes/tempra-cursive/public/main.css
@@ -49,11 +49,15 @@ li a {
padding-right: 10px;
}
+.menu_bell {
+ cursor: default;
+}
.menu_alerts {
/*padding-left: 7px;*/
font-size: 20px;
padding-top: 2px;
color: rgb(80,80,80);
+ z-index: 500;
}
.menu_alerts .alert_counter {
position: relative;
@@ -138,6 +142,7 @@ li a {
padding-top: 0px;
}
.rowblock:empty { display: none; }
+.rowsmall { font-size:12px; }
.colblock_left {
border: 1px solid #ccc;
@@ -235,6 +240,11 @@ li a {
.top_post { margin-bottom: 16px; }
.opthead { display: none; }
+.datarow {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
.formrow {
width: 100%;
background-color: white;
@@ -501,21 +511,11 @@ button.username {
opacity: 0.7;
}
-.panel_floater {
- float: right;
-}
-#panel_groups > .rowitem > .panel_floater {
- float: none;
-}
-#panel_groups > .rowitem > .panel_floater > .panel_right_button {
- float: right;
-}
-#panel_forums > .rowitem > .panel_floater {
- float: none;
-}
-#panel_forums > .rowitem > .panel_floater > .panel_buttons {
- float: right;
-}
+.panel_floater { float: right; }
+#panel_groups > .rowitem > .panel_floater { float: none; }
+#panel_groups > .rowitem > .panel_floater > .panel_right_button { float: right; }
+#panel_forums > .rowitem > .panel_floater { float: none; }
+#panel_forums > .rowitem > .panel_floater > .panel_buttons { float: right; }
#panel_forums > .rowitem > .panel_floater > .panel_buttons > .panel_right_button {
color: #505050;
font-size: 14px;
@@ -526,52 +526,30 @@ button.username {
opacity: 0.7;
font-size: 10px;
}
-.panel_rank_tag_admin:before {
- content: "Admin Group";
-}
-.panel_rank_tag_mod:before {
- content: "Mod Group";
-}
-.panel_rank_tag_banned:before {
- content: "Banned Group";
-}
-.panel_rank_tag_guest:before {
- content: "Guest Group";
-}
-.panel_rank_tag_member:before {
- content: "Member Group";
-}
+.panel_rank_tag_admin:before { content: "Admin Group"; }
+.panel_rank_tag_mod:before { content: "Mod Group"; }
+.panel_rank_tag_banned:before { content: "Banned Group"; }
+.panel_rank_tag_guest:before { content: "Guest Group"; }
+.panel_rank_tag_member:before { content: "Member Group"; }
+
+.forum_preset_announce:after { content: "Announcements"; }
+.forum_preset_members:after { content: "Member Only"; }
+.forum_preset_staff:after { content: "Staff Only"; }
+.forum_preset_admins:after { content: "Admin Only"; }
+.forum_preset_archive:after { content: "Archive"; }
+.forum_preset_all:after { content: "Public"; }
+.forum_preset_custom, .forum_preset_ { display: none !important; }
+.forum_active_Hide:before { content: "Hidden"; }
+.forum_active_Hide + .forum_preset:before { content: " | "; }
+.forum_active_Show { display: none !important; }
+
+.perm_preset_no_access:before { content: "No Access"; color: maroon; }
+.perm_preset_read_only:before { content: "Read Only"; color: green; }
+.perm_preset_can_post:before { content: "Can Post"; color: green; }
+.perm_preset_can_moderate:before { content: "Can Moderate"; color: darkblue; }
+.perm_preset_custom:before { content: "Custom"; color: black; }
+.perm_preset_default:before { content: "Default"; }
-.forum_preset_announce:after {
- content: "Announcements";
-}
-.forum_preset_members:after {
- content: "Member Only";
-}
-.forum_preset_staff:after {
- content: "Staff Only";
-}
-.forum_preset_admins:after {
- content: "Admin Only";
-}
-.forum_preset_archive:after {
- content: "Archive";
-}
-.forum_preset_all:after {
- content: "Public";
-}
-.forum_preset_custom, .forum_preset_ {
- display: none !important;
-}
-.forum_active_Hide:before {
- content: "Hidden";
-}
-.forum_active_Hide + .forum_preset:before {
- content: " | ";
-}
-.forum_active_Show {
- display: none !important;
-}
@media(max-width: 1300px) {
.theme_row {
background-image: none !important;
diff --git a/themes/tempra-simple/public/main.css b/themes/tempra-simple/public/main.css
index 889c4b54..465ce0c8 100644
--- a/themes/tempra-simple/public/main.css
+++ b/themes/tempra-simple/public/main.css
@@ -10,9 +10,7 @@ body {
}
/* Patch for Edge, until they fix emojis in arial x.x */
-@supports (-ms-ime-align:auto) {
-.user_content { font-family: Segoe UI Emoji, arial; }
-}
+@supports (-ms-ime-align:auto) { .user_content { font-family: Segoe UI Emoji, arial; } }
ul {
padding-left: 0px;
@@ -47,6 +45,7 @@ li a {
padding-right: 10px;
}
+.menu_bell { cursor: default; }
.menu_alerts {
/*padding-left: 7px;*/
font-size: 20px;
@@ -67,9 +66,7 @@ li a {
text-align: center;
border: white solid 1px;
}
-.menu_alerts .alert_counter:empty {
- display: none;
-}
+.menu_alerts .alert_counter:empty { display: none; }
.selectedAlert {
background: white;
@@ -79,9 +76,12 @@ li a {
background: white;
color: black;
}
+.selectedAlert .alert_counter { display: none; }
.menu_alerts .alertList {
display: none;
+ z-index: 500;
}
+
.selectedAlert .alertList {
position: absolute;
top: 51px;
@@ -142,6 +142,9 @@ li a {
padding-top: 0px;
}
.rowblock:empty { display: none; }
+.rowsmall {
+ font-size:12px;
+}
.colblock_left {
border: 1px solid #ccc;
@@ -182,8 +185,7 @@ li a {
word-wrap: break-word;
}
.colstack_head { margin-bottom: 0px; }
-.colstack_left:empty { display: none; }
-.colstack_right:empty { display: none; }
+.colstack_left:empty, .colstack_right:empty { display: none; }
.colstack_grid {
display: grid;
@@ -229,15 +231,10 @@ li a {
padding-top: 14px;
padding-bottom: 12px;
padding-right: 10px;
- /*font-weight: bold;*/
background-color: white;
}
-/*.rowitem:not(.passive) {
- font-size: 17px;
-}*/
-.rowitem:not(:last-child) {
- border-bottom: 1px dotted #ccc;
-}
+/*.rowitem:not(.passive) { font-size: 17px; }*/
+.rowitem:not(:last-child) { border-bottom: 1px dotted #ccc; }
.rowitem a {
text-decoration: none;
color: black;
@@ -246,6 +243,11 @@ li a {
.top_post { margin-bottom: 12px; }
.opthead { display: none; }
+.datarow {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
.formrow {
width: 100%;
background-color: white;
@@ -332,11 +334,7 @@ button.username { position: relative; top: -0.25px; }
.username.level { color: #303030; }
.username.real_username { color: #404040; font-size: 17px; }
.username.real_username:hover { color: black; }
-
-.post_item > .username {
- margin-top: 20px;
- display: inline-block;
-}
+.post_item > .username { margin-top: 20px; display: inline-block; }
.tag-mini {
text-transform: none;
@@ -358,17 +356,13 @@ button.username { position: relative; top: -0.25px; }
color: #202020;
opacity: 0.7;
}
-.post_item > .mod_button > button:hover {
- opacity: 0.9;
-}
+.post_item > .mod_button > button:hover { opacity: 0.9; }
.mod_button {
margin-right: 4px;
+ /*z-index: 10;*/
}
-
-.like_label:before, .like_count_label:before {
- content: "😀";
-}
+.like_label:before, .like_count_label:before { content: "😀"; }
.like_count_label {
color: #505050;
float: right;
@@ -383,27 +377,14 @@ button.username { position: relative; top: -0.25px; }
padding-right: 5px;
font-size: 17px;
}
-.edit_label:before {
- content: "🖊️";
-}
-.trash_label:before {
- content: "🗑️";
-}
-.pin_label:before {
- content: "📌";
-}
-.unpin_label:before {
- content: "📌";
-}
-.unpin_label {
- background-color: #D6FFD6;
-}
-.flag_label:before {
- content: "🚩";
-}
-.level_label:before {
- content: "👑";
-}
+
+.edit_label:before { content: "🖊️"; }
+.trash_label:before { content: "🗑️"; }
+.pin_label:before { content: "📌"; }
+.unpin_label:before { content: "📌"; }
+.unpin_label { background-color: #D6FFD6; }
+.flag_label:before { content: "🚩"; }
+.level_label:before { content: "👑"; }
.controls {
margin-top: 23px;
@@ -496,9 +477,7 @@ button.username { position: relative; top: -0.25px; }
position: relative;
top: -2px;
}
-.panel_upshift:visited {
- color: black;
-}
+.panel_upshift:visited { color: black; }
/*.panel_tag_upshift {
margin-left: 2px;
position: relative;
@@ -506,49 +485,28 @@ button.username { position: relative; top: -0.25px; }
color: #505050;
}*/
-.panel_floater {
- float: right;
-}
-.panel_rank_tag_admin:before {
- content: "👑";
-}
-.panel_rank_tag_mod:before {
- content: "👮";
-}
-.panel_rank_tag_banned:before {
- content: "⛓️";
-}
-.panel_rank_tag_guest:before {
- content: "👽";
-}
-.panel_rank_tag_member:before {
- content: "👪";
-}
+.panel_floater { float: right; }
+.panel_rank_tag_admin:before { content: "👑"; }
+.panel_rank_tag_mod:before { content: "👮"; }
+.panel_rank_tag_banned:before { content: "⛓️"; }
+.panel_rank_tag_guest:before { content: "👽"; }
+.panel_rank_tag_member:before { content: "👪"; }
-.forum_preset_announce:before {
- content: "📣";
-}
-.forum_preset_members:before {
- content: "👪";
-}
-.forum_preset_staff:before {
- content: "👮";
-}
-.forum_preset_admins:before {
- content: "👑";
-}
-.forum_preset_archive:before {
- content: "☠️";
-}
-.forum_preset_all, .forum_preset_custom, .forum_preset_ {
- display: none !important;
-}
-.forum_active_Hide:before {
- content: "🕵️";
-}
-.forum_active_Show {
- display: none !important;
-}
+.forum_preset_announce:before { content: "📣"; }
+.forum_preset_members:before { content: "👪"; }
+.forum_preset_staff:before { content: "👮"; }
+.forum_preset_admins:before { content: "👑"; }
+.forum_preset_archive:before { content: "☠️"; }
+.forum_preset_all, .forum_preset_custom, .forum_preset_ { display: none !important; }
+.forum_active_Hide:before { content: "🕵️"; }
+.forum_active_Show { display: none !important; }
+
+.perm_preset_no_access:before { content: "No Access"; color: maroon; }
+.perm_preset_read_only:before { content: "Read Only"; color: green; }
+.perm_preset_can_post:before { content: "Can Post"; color: green; }
+.perm_preset_can_moderate:before { content: "Can Moderate"; color: darkblue; }
+.perm_preset_custom:before { content: "Custom"; color: black; }
+.perm_preset_default:before { content: "Default"; }
@media (max-width: 880px) {
li {
@@ -562,8 +520,7 @@ button.username { position: relative; top: -0.25px; }
height: 30px;
margin-top: 8px;
}
- .menu_left { padding-right: 9px; }
- .menu_right { padding-right: 9px; }
+ .menu_left, .menu_right { padding-right: 9px; }
.menu_alerts {
padding-left: 7px;
padding-right: 7px;
@@ -591,9 +548,8 @@ button.username { position: relative; top: -0.25px; }
}
li a { font-size: 14px; }
ul { height: 26px; }
- .menu_left { padding-right: 7px; }
- .menu_right { padding-right: 7px; }
- .menu_create_topic { display: none;}
+ .menu_left, .menu_right { padding-right: 7px; }
+ .menu_create_topic { display: none; }
.menu_alerts {
padding-left: 4px;
@@ -615,25 +571,34 @@ button.username { position: relative; top: -0.25px; }
width: 135px;
margin-bottom: 5px;
}
+ .selectedAlert.hasAvatars .alertList { width: calc(100% - 8px); }
.alertItem.withAvatar {
background-size: 36px;
text-align: right;
padding-left: 10px;
height: 46px;
}
- .alertItem {
- padding: 8px;
+ .hasAvatars > .alertList > .alertItem.withAvatar {
+ background-size: 46px;
+ text-align: inherit;
+ padding-left: 56px;
+ height: 42px;
}
- .alertItem.withAvatar .text {
+ .alertItem { padding: 8px; }
+ .hasAvatars > .alertList > .alertItem { padding-top: 11px; }
+ .selectedAlert:not(.hasAvatars) > .alertList > .alertItem.withAvatar .text {
width: calc(100% - 20px);
height: 30px;
white-space: normal;
}
- .alertItem .text {
+ .selectedAlert:not(.hasAvatars) > .alertList > .alertItem .text {
font-size: 10px;
font-weight: bold;
margin-left: 0px;
}
+ .alertActive {
+ opacity: 0.7;
+ }
.hide_on_micro { display: none !important; }
.post_container { overflow: visible !important; }
@@ -672,6 +637,9 @@ button.username { position: relative; top: -0.25px; }
margin-left: 74px;
width: calc(100% - 74px);
}
+ .rowtopic {
+ font-size: 14px;
+ }
.container { width: 100% !important; }
}
@@ -685,13 +653,7 @@ button.username { position: relative; top: -0.25px; }
text-overflow: clip;
max-width: 84px;
}
- .post_item > .controls {
- margin-left: 72px;
- }
- .top_post > .post_item > .controls > .real_username {
- max-width: 57px;
- }
- .top_post > .post_item {
- padding-right: 4px;
- }
+ .post_item > .controls { margin-left: 72px; }
+ .top_post > .post_item > .controls > .real_username { max-width: 57px; }
+ .top_post > .post_item { padding-right: 4px; }
}
diff --git a/topic.go b/topic.go
index 361caa7b..e4519fd3 100644
--- a/topic.go
+++ b/topic.go
@@ -15,11 +15,13 @@ type Topic struct
Sticky bool
CreatedAt string
LastReplyAt string
+ //LastReplyBy int
ParentID int
Status string // Deprecated. Marked for removal.
IpAddress string
PostCount int
LikeCount int
+ ClassName string // CSS Class Name
}
type TopicUser struct
@@ -32,12 +34,14 @@ type TopicUser struct
Sticky bool
CreatedAt string
LastReplyAt string
+ //LastReplyBy int
ParentID int
Status string // Deprecated. Marked for removal.
IpAddress string
PostCount int
LikeCount int
-
+ ClassName string
+
CreatedByName string
Group int
Avatar string
@@ -61,12 +65,14 @@ type TopicsRow struct
Sticky bool
CreatedAt string
LastReplyAt string
+ //LastReplyBy int
ParentID int
Status string // Deprecated. Marked for removal.
IpAddress string
PostCount int
LikeCount int
-
+ ClassName string
+
CreatedByName string
Avatar string
Css template.CSS
@@ -76,7 +82,7 @@ type TopicsRow struct
URLPrefix string
URLName string
Level int
-
+
ForumName string //TopicsRow
}
@@ -131,7 +137,7 @@ func (sts *StaticTopicStore) CascadeGet(id int) (*Topic, error) {
if ok {
return topic, nil
}
-
+
topic = &Topic{ID:id}
err := get_topic_stmt.QueryRow(id).Scan(&topic.Title, &topic.Content, &topic.CreatedBy, &topic.CreatedAt, &topic.Is_Closed, &topic.Sticky, &topic.ParentID, &topic.IpAddress, &topic.PostCount, &topic.LikeCount)
if err == nil {
@@ -292,7 +298,7 @@ func get_topicuser(tid int) (TopicUser,error) {
return TopicUser{ID:tid}, err
}
init_user_perms(user)
-
+
// We might be better off just passing seperate topic and user structs to the caller?
return copy_topic_to_topicuser(topic, user), nil
} else if users.GetLength() < users.GetCapacity() {
@@ -309,10 +315,10 @@ func get_topicuser(tid int) (TopicUser,error) {
return tu, nil
}
}
-
+
tu := TopicUser{ID:tid}
err := get_topic_user_stmt.QueryRow(tid).Scan(&tu.Title, &tu.Content, &tu.CreatedBy, &tu.CreatedAt, &tu.Is_Closed, &tu.Sticky, &tu.ParentID, &tu.IpAddress, &tu.PostCount, &tu.LikeCount, &tu.CreatedByName, &tu.Avatar, &tu.Group, &tu.URLPrefix, &tu.URLName, &tu.Level)
-
+
the_topic := Topic{ID:tu.ID, Title:tu.Title, Content:tu.Content, CreatedBy:tu.CreatedBy, Is_Closed:tu.Is_Closed, Sticky:tu.Sticky, CreatedAt:tu.CreatedAt, LastReplyAt:tu.LastReplyAt, ParentID:tu.ParentID, IpAddress:tu.IpAddress, PostCount:tu.PostCount, LikeCount:tu.LikeCount}
//fmt.Printf("%+v\n", the_topic)
tu.Tag = groups[tu.Group].Tag
@@ -328,7 +334,7 @@ func copy_topic_to_topicuser(topic *Topic, user *User) (tu TopicUser) {
tu.URLPrefix = user.URLPrefix
tu.URLName = user.URLName
tu.Level = user.Level
-
+
tu.ID = topic.ID
tu.Title = topic.Title
tu.Content = topic.Content
diff --git a/user.go b/user.go
index 626ad031..2a6b9304 100644
--- a/user.go
+++ b/user.go
@@ -1,14 +1,16 @@
package main
-//import "fmt"
-import "sync"
-import "strings"
-import "strconv"
-import "net"
-import "net/http"
-import "golang.org/x/crypto/bcrypt"
-import "database/sql"
-import _ "github.com/go-sql-driver/mysql"
+import (
+ //"fmt"
+ "sync"
+ "strings"
+ "strconv"
+ "net"
+ "net/http"
+ "golang.org/x/crypto/bcrypt"
+ "database/sql"
+ _ "github.com/go-sql-driver/mysql"
+)
var guest_user User = User{ID:0,Group:6,Perms:GuestPerms}
diff --git a/utils.go b/utils.go
index 1f18fcb2..0a85dd6a 100644
--- a/utils.go
+++ b/utils.go
@@ -48,11 +48,11 @@ func relative_time(in string) (string, error) {
return "", nil
}
layout := "2006-01-02 15:04:05"
- t, err := time.Parse(layout, in)
+ t, err := time.ParseInLocation(layout, in, timeLocation)
if err != nil {
return "", err
}
-
+
diff := time.Since(t)
hours := diff.Hours()
seconds := diff.Seconds()
@@ -95,7 +95,7 @@ func convert_byte_in_unit(bytes float64,unit string) (count float64) {
case "KB": count = bytes / float64(kilobyte)
default: count = 0.1
}
-
+
if count < 0.1 {
count = 0.1
}
@@ -128,12 +128,12 @@ func SendEmail(email string, subject string, msg string) (res bool) {
return vhooks["email_send_intercept"](email, subject, msg).(bool)
}
body := "Subject: " + subject + "\n\n" + msg + "\n"
-
+
con, err := smtp.Dial(smtp_server + ":" + smtp_port)
if err != nil {
return
}
-
+
if smtp_username != "" {
auth := smtp.PlainAuth("",smtp_username,smtp_password,smtp_server)
err = con.Auth(auth)
@@ -141,7 +141,7 @@ func SendEmail(email string, subject string, msg string) (res bool) {
return
}
}
-
+
err = con.Mail(site_email)
if err != nil {
return
@@ -150,7 +150,7 @@ func SendEmail(email string, subject string, msg string) (res bool) {
if err != nil {
return
}
-
+
email_data, err := con.Data()
if err != nil {
return
@@ -159,7 +159,7 @@ func SendEmail(email string, subject string, msg string) (res bool) {
if err != nil {
return
}
-
+
err = email_data.Close()
if err != nil {
return
@@ -208,7 +208,7 @@ func getLevel(score int) (level int) {
var base float64 = 25
var current, prev float64
exp_factor := 2.8
-
+
for i := 1;;i++ {
_, bit := math.Modf(float64(i) / 10)
if bit == 0 {
@@ -229,7 +229,7 @@ func getLevelScore(getLevel int) (score int) {
var current, prev float64
var level int
exp_factor := 2.8
-
+
for i := 1;;i++ {
_, bit := math.Modf(float64(i) / 10)
if bit == 0 {
@@ -251,7 +251,7 @@ func getLevels(maxLevel int) []float64 {
exp_factor := 2.8
var out []float64
out = append(out, 0)
-
+
for i := 1;i <= maxLevel;i++ {
_, bit := math.Modf(float64(i) / 10)
if bit == 0 {