Compare commits

...
This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.

5 Commits

Author SHA1 Message Date
Jordan Vidrine
ab4698a051 more 2021-12-27 14:11:17 -06:00
Jordan Vidrine
65ea17dfc8 mobile fixes 2021-12-27 12:49:09 -06:00
Jordan Vidrine
7dab93634b more 2021-12-27 12:44:14 -06:00
Jordan Vidrine
8b7935c6ba more 2021-12-27 12:43:04 -06:00
Jordan Vidrine
0d35da491c prettier 2021-12-27 12:39:38 -06:00
15 changed files with 97 additions and 68 deletions

View File

@ -36,7 +36,7 @@ export function navigateToTopic(topic, href) {
} }
export default Component.extend({ export default Component.extend({
tagName: "tr", tagName: "div",
classNameBindings: [":topic-list-item", "unboundClassNames", "topic.visited"], classNameBindings: [":topic-list-item", "unboundClassNames", "topic.visited"],
attributeBindings: ["data-topic-id", "role", "ariaLevel:aria-level"], attributeBindings: ["data-topic-id", "role", "ariaLevel:aria-level"],
"data-topic-id": alias("topic.id"), "data-topic-id": alias("topic.id"),

View File

@ -8,7 +8,7 @@ import { schedule } from "@ember/runloop";
import showModal from "discourse/lib/show-modal"; import showModal from "discourse/lib/show-modal";
export default Component.extend(LoadMore, { export default Component.extend(LoadMore, {
tagName: "table", tagName: "div",
classNames: ["topic-list"], classNames: ["topic-list"],
classNameBindings: ["bulkSelectEnabled:sticky-header"], classNameBindings: ["bulkSelectEnabled:sticky-header"],
showTopicPostBadges: true, showTopicPostBadges: true,
@ -194,7 +194,7 @@ export default Component.extend(LoadMore, {
$("input.bulk-select:checked").click(); $("input.bulk-select:checked").click();
}); });
onClick("th.sortable", function (e2) { onClick(".topic-list-data.sortable", function (e2) {
this.changeSort(e2.data("sort-order")); this.changeSort(e2.data("sort-order"));
this.rerender(); this.rerender();
}); });

View File

@ -3,7 +3,7 @@ import I18n from "I18n";
import discourseComputed from "discourse-common/utils/decorators"; import discourseComputed from "discourse-common/utils/decorators";
export default EmberObject.extend({ export default EmberObject.extend({
tagName: "td", tagName: "div",
@discourseComputed("topic.like_count", "topic.posts_count") @discourseComputed("topic.like_count", "topic.posts_count")
ratio(likeCount, postCount) { ratio(likeCount, postCount) {

View File

@ -1,5 +1,5 @@
{{#unless skipHeader}} {{#unless skipHeader}}
<thead class="topic-list-header"> <div class="topic-list-header">
{{raw "topic-list-header" {{raw "topic-list-header"
canBulkSelect=canBulkSelect canBulkSelect=canBulkSelect
toggleInTitle=toggleInTitle toggleInTitle=toggleInTitle
@ -14,7 +14,7 @@
bulkSelectEnabled=bulkSelectEnabled bulkSelectEnabled=bulkSelectEnabled
canDoBulkActions=canDoBulkActions canDoBulkActions=canDoBulkActions
}} }}
</thead> </div>
{{/unless}} {{/unless}}
{{plugin-outlet {{plugin-outlet
@ -29,7 +29,7 @@
tagName="" tagName=""
connectorTagName=""}} connectorTagName=""}}
<tbody class="topic-list-body"> <div class="topic-list-body">
{{#each filteredTopics as |topic|}} {{#each filteredTopics as |topic|}}
{{topic-list-item topic=topic {{topic-list-item topic=topic
bulkSelectEnabled=bulkSelectEnabled bulkSelectEnabled=bulkSelectEnabled
@ -45,7 +45,7 @@
tagsForUser=tagsForUser}} tagsForUser=tagsForUser}}
{{raw "list/visited-line" lastVisitedTopic=lastVisitedTopic topic=topic}} {{raw "list/visited-line" lastVisitedTopic=lastVisitedTopic topic=topic}}
{{/each}} {{/each}}
</tbody> </div>
{{plugin-outlet {{plugin-outlet
name="after-topic-list-body" name="after-topic-list-body"

View File

@ -1 +1 @@
<td class='category topic-list-data'>{{category-link category}}</td> <div class='category topic-list-data'>{{category-link category}}</div>

View File

@ -1,4 +1,4 @@
<td class='posters topic-list-data'> <div class='posters topic-list-data'>
{{#each posters as |poster|}} {{#each posters as |poster|}}
{{#if poster.moreCount}} {{#if poster.moreCount}}
<a class="posters-more-count">{{poster.moreCount}}</a> <a class="posters-more-count">{{poster.moreCount}}</a>
@ -6,4 +6,4 @@
<a href="{{poster.user.path}}" data-user-card="{{poster.user.username}}" class="{{poster.extraClasses}}">{{avatar poster avatarTemplatePath="user.avatar_template" usernamePath="user.username" namePath="user.name" imageSize="small"}}</a> <a href="{{poster.user.path}}" data-user-card="{{poster.user.username}}" class="{{poster.extraClasses}}">{{avatar poster avatarTemplatePath="user.avatar_template" usernamePath="user.username" namePath="user.name" imageSize="small"}}</a>
{{/if}} {{/if}}
{{/each}} {{/each}}
</td> </div>

View File

@ -1,11 +1,11 @@
{{~raw-plugin-outlet name="topic-list-before-columns"}} {{~raw-plugin-outlet name="topic-list-before-columns"}}
{{#if bulkSelectEnabled}} {{#if bulkSelectEnabled}}
<td class="bulk-select topic-list-data"> <div class="bulk-select topic-list-data">
<label for="bulk-select-{{topic.id}}"> <label for="bulk-select-{{topic.id}}">
<input type="checkbox" class="bulk-select" id="bulk-select-{{topic.id}}"> <input type="checkbox" class="bulk-select" id="bulk-select-{{topic.id}}">
</label> </label>
</td> </div>
{{/if}} {{/if}}
{{!-- {{!--
@ -15,7 +15,7 @@
This causes the topic-post-badge to be considered the same word as "text" This causes the topic-post-badge to be considered the same word as "text"
at the end of the link, preventing it from line wrapping onto its own line. at the end of the link, preventing it from line wrapping onto its own line.
--}} --}}
<td class='main-link clearfix topic-list-data' colspan="1"> <div class='main-link clearfix topic-list-data' colspan="1">
{{~raw-plugin-outlet name="topic-list-before-link"}} {{~raw-plugin-outlet name="topic-list-before-link"}}
<span class='link-top-line'> <span class='link-top-line'>
{{~raw-plugin-outlet name="topic-list-before-status"}} {{~raw-plugin-outlet name="topic-list-before-status"}}
@ -45,7 +45,7 @@
{{#if expandPinned}} {{#if expandPinned}}
{{raw "list/topic-excerpt" topic=topic}} {{raw "list/topic-excerpt" topic=topic}}
{{/if}} {{/if}}
</td> </div>
{{#if showPosters}} {{#if showPosters}}
{{raw "list/posters-column" posters=topic.featuredUsers}} {{raw "list/posters-column" posters=topic.featuredUsers}}
@ -54,28 +54,28 @@
{{raw "list/posts-count-column" topic=topic}} {{raw "list/posts-count-column" topic=topic}}
{{#if showLikes}} {{#if showLikes}}
<td class="num likes topic-list-data"> <div class="num likes topic-list-data">
{{#if hasLikes}} {{#if hasLikes}}
<a href='{{topic.summaryUrl}}'> <a href='{{topic.summaryUrl}}'>
{{number topic.like_count}} {{d-icon "heart"}} {{number topic.like_count}} {{d-icon "heart"}}
</a> </a>
{{/if}} {{/if}}
</td> </div>
{{/if}} {{/if}}
{{#if showOpLikes}} {{#if showOpLikes}}
<td class="num likes"> <div class="num likes">
{{#if hasOpLikes}} {{#if hasOpLikes}}
<a href='{{topic.summaryUrl}}'> <a href='{{topic.summaryUrl}}'>
{{number topic.op_like_count}} {{d-icon "heart"}} {{number topic.op_like_count}} {{d-icon "heart"}}
</a> </a>
{{/if}} {{/if}}
</td> </div>
{{/if}} {{/if}}
<td class="num views {{topic.viewsHeat}} topic-list-data"> <div class="num views {{topic.viewsHeat}} topic-list-data">
{{raw-plugin-outlet name="topic-list-before-view-count"}} {{raw-plugin-outlet name="topic-list-before-view-count"}}
{{number topic.views numberKey="views_long"}} {{number topic.views numberKey="views_long"}}
</td> </div>
{{raw "list/activity-column" topic=topic class="num topic-list-data" tagName="td"}} {{raw "list/activity-column" topic=topic class="num topic-list-data" tagName="div"}}

View File

@ -1,4 +1,4 @@
<td class="topic-list-data"> <div class="topic-list-data">
{{~raw-plugin-outlet name="topic-list-before-columns"}} {{~raw-plugin-outlet name="topic-list-before-columns"}}
<div class='pull-left'> <div class='pull-left'>
<a href="{{topic.lastPostUrl}}" data-user-card="{{topic.last_poster_username}}">{{avatar topic.lastPosterUser imageSize="large"}}</a> <a href="{{topic.lastPostUrl}}" data-user-card="{{topic.last_poster_username}}">{{avatar topic.lastPosterUser imageSize="large"}}</a>
@ -48,4 +48,4 @@
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div> </div>
</td> </div>

View File

@ -1,4 +1,4 @@
<th data-sort-order='{{order}}' class='{{view.className}} topic-list-data' scope="col" {{#if ariaLabel}}aria-label='{{ariaLabel}}'{{/if}} {{#if sortable}}tabindex="0" role="button" aria-pressed='{{view.ariaPressed}}' {{#if view.ariaSort}}aria-sort='{{view.ariaSort}}'{{/if}} {{/if}}> <div data-sort-order='{{order}}' class='{{view.className}} topic-list-data' scope="col" {{#if ariaLabel}}aria-label='{{ariaLabel}}'{{/if}} {{#if sortable}}tabindex="0" role="button" aria-pressed='{{view.ariaPressed}}' {{#if view.ariaSort}}aria-sort='{{view.ariaSort}}'{{/if}} {{/if}}>
{{~#if canBulkSelect}} {{~#if canBulkSelect}}
{{~#if showBulkToggle}} {{~#if showBulkToggle}}
{{raw "flat-button" class="bulk-select" icon="list" title="topics.bulk.toggle"}} {{raw "flat-button" class="bulk-select" icon="list" title="topics.bulk.toggle"}}
@ -17,4 +17,4 @@
{{~#if view.isSorting}} {{~#if view.isSorting}}
{{d-icon view.sortIcon}} {{d-icon view.sortIcon}}
{{/if ~}} {{/if ~}}
</th> </div>

View File

@ -1,10 +1,10 @@
{{~raw-plugin-outlet name="topic-list-header-before"~}} {{~raw-plugin-outlet name="topic-list-header-before"~}}
{{#if bulkSelectEnabled}} {{#if bulkSelectEnabled}}
<th class="bulk-select topic-list-data"> <div class="bulk-select topic-list-data">
{{#if canBulkSelect}} {{#if canBulkSelect}}
{{raw "flat-button" class="bulk-select" icon="list" title="topics.bulk.toggle"}} {{raw "flat-button" class="bulk-select" icon="list" title="topics.bulk.toggle"}}
{{/if}} {{/if}}
</th> </div>
{{/if}} {{/if}}
{{raw "topic-list-header-column" order='default' name=listTitle bulkSelectEnabled=bulkSelectEnabled showBulkToggle=toggleInTitle canBulkSelect=canBulkSelect canDoBulkActions=canDoBulkActions}} {{raw "topic-list-header-column" order='default' name=listTitle bulkSelectEnabled=bulkSelectEnabled showBulkToggle=toggleInTitle canBulkSelect=canBulkSelect canDoBulkActions=canDoBulkActions}}
{{#if showPosters}} {{#if showPosters}}

View File

@ -21,7 +21,7 @@ acceptance("User Anonymous", function () {
await visit("/u/eviltrout/activity/topics"); await visit("/u/eviltrout/activity/topics");
assert.ok(!exists(".user-stream .item"), "has no stream displayed"); assert.ok(!exists(".user-stream .item"), "has no stream displayed");
assert.ok(exists(".topic-list tr"), "it has a topic list"); assert.ok(exists(".topic-list .topic-list-item"), "it has a topic list");
await visit("/u/eviltrout/activity/replies"); await visit("/u/eviltrout/activity/replies");
assert.ok(exists(".user-main .about"), "it has the about section"); assert.ok(exists(".user-main .about"), "it has the about section");

View File

@ -174,11 +174,13 @@
top: var(--header-offset, 60px); top: var(--header-offset, 60px);
background: var(--secondary); background: var(--secondary);
z-index: 2; z-index: 2;
.default.topic-list-data {
padding: 4px 5px;
}
} }
.topic-list { .topic-list {
width: 100%; width: 100%;
border-collapse: collapse;
> .topic-list-body > .topic-list-item { > .topic-list-body > .topic-list-item {
&.has-excerpt .star { &.has-excerpt .star {
@ -218,16 +220,12 @@
line-height: $line-height-large; line-height: $line-height-large;
text-align: left; text-align: left;
vertical-align: middle; vertical-align: middle;
color: var(--primary-medium);
} }
.btn-flat .d-icon { .btn-flat .d-icon {
color: currentColor; color: currentColor;
} }
td {
color: var(--primary-medium);
font-size: $font-0;
}
.main-link { .main-link {
@extend .topic-list-main-link; @extend .topic-list-main-link;
@ -289,7 +287,6 @@
.badge-posts { .badge-posts {
font-weight: 700; font-weight: 700;
color: inherit; color: inherit;
padding: 15px 5px;
} }
} }

View File

@ -129,7 +129,8 @@ table {
border-collapse: collapse; border-collapse: collapse;
} }
tbody { tbody,
.topic-list-body {
border-top: 3px solid var(--primary-low); border-top: 3px solid var(--primary-low);
} }

View File

@ -5,6 +5,30 @@
// Base list // Base list
// -------------------------------------------------- // --------------------------------------------------
// Flex Layout
.topic-list-header,
.topic-list-item {
display: flex;
align-items: center;
}
.topic-list-item {
min-height: 70px;
}
.topic-list-data {
&.main-link,
&.default {
flex-grow: 1;
}
&.posters {
width: 146px;
}
&.num {
min-width: 65px;
}
}
.topic-list-icons { .topic-list-icons {
.d-icon-thumbtack { .d-icon-thumbtack {
color: var(--primary-med-or-secondary-med); color: var(--primary-med-or-secondary-med);
@ -21,18 +45,21 @@
} }
.topic-list { .topic-list {
@extend .topic-list-icons;
margin: 0 0 10px; margin: 0 0 10px;
.topic-list-data { }
padding: 12px 5px;
&:first-of-type { .topic-list-data {
padding-left: 10px; padding: 12px 5px;
} &:first-of-type {
&:last-of-type { padding-left: 10px;
padding-right: 10px;
}
} }
&:last-of-type {
padding-right: 10px;
}
}
.topic-list-body {
@extend .topic-list-icons;
button.bulk-select { button.bulk-select {
padding: 0; padding: 0;
@ -41,7 +68,6 @@
.topic-list-data.bulk-select { .topic-list-data.bulk-select {
padding: 0; padding: 0;
width: 30px;
label { label {
margin: 0px; margin: 0px;
padding: 12px 10px 16px 10px; padding: 12px 10px 16px 10px;
@ -67,7 +93,6 @@
.posters { .posters {
// we know there are up to 5 avatars of fixed size // we know there are up to 5 avatars of fixed size
// will be overridden by media width queries on narrow displays to 1 avatar's width // will be overridden by media width queries on narrow displays to 1 avatar's width
width: 146px;
> a { > a {
float: left; float: left;
margin-right: 4px; margin-right: 4px;
@ -83,9 +108,6 @@
} }
} }
} }
.topic-list-data.posters {
height: $td-posters-height;
}
.posters a:first-child .avatar.latest:not(.single) { .posters a:first-child .avatar.latest:not(.single) {
box-shadow: 0 0 3px 1px rgba(var(--tertiary-rgb), 0.35); box-shadow: 0 0 3px 1px rgba(var(--tertiary-rgb), 0.35);
border: 2px solid rgba(var(--tertiary-rgb), 0.5); border: 2px solid rgba(var(--tertiary-rgb), 0.5);
@ -94,16 +116,6 @@
left: -2px; left: -2px;
} }
.likes {
width: 65px;
}
.views {
width: 65px;
}
.posts {
width: 65px;
}
.post-actions { .post-actions {
clear: both; clear: both;
width: auto; width: auto;
@ -121,7 +133,6 @@
} }
} }
.activity { .activity {
width: 60px;
&:lang(zh_CN) { &:lang(zh_CN) {
width: 80px; width: 80px;
} }
@ -216,14 +227,14 @@ button.dismiss-read {
font-size: $font-0; font-size: $font-0;
} }
// suppress views column // suppress views column
.views { .topic-list-data.views {
display: none; display: none;
} }
// reduce width for more title space // reduce width for more title space
.posts { .topic-list-data.posts {
width: 50px; width: 50px;
} }
.posters { .topic-list-data.posters {
width: 30px; width: 30px;
text-align: center; text-align: center;
} }

View File

@ -114,7 +114,27 @@
.topic-list-data { .topic-list-data {
padding: 7px 0; padding: 7px 0;
max-width: 300px; display: flex;
.right {
margin-left: 10px;
flex-grow: 1;
display: grid;
grid-template-columns: 75% 25%;
grid-template-rows: 50% 50%;
grid-template-areas: "title replies" "data data";
.main-link {
grid-area: title;
}
.pull-right {
grid-area: replies;
.num {
justify-content: end;
}
}
.topic-item-stats {
grid-area: data;
}
}
} }
.main-link { .main-link {
@ -424,7 +444,7 @@ button.dismiss-read {
// base defines extra padding for easier click/top of title field // base defines extra padding for easier click/top of title field
// this is a bit too much for mobile // this is a bit too much for mobile
td .main-link { .topic-list-data .main-link {
width: 78%; width: 78%;
display: inline-block; display: inline-block;
a.title { a.title {