This adds some new visualizations and styles and reports and cleans up some existing styles and class names. Daily activity rhythm <img width="1588" height="412" alt="image" src="https://github.com/user-attachments/assets/0c7980e4-7bb6-4e08-9957-24c3c5718572" /> Helping new members <img width="1456" height="310" alt="image" src="https://github.com/user-attachments/assets/096a13da-ab63-45d4-9b68-53a01df62a78" /> Chat activity <img width="1442" height="926" alt="image" src="https://github.com/user-attachments/assets/07ce2cab-1963-4918-a9ff-805c251a1377" /> Assigns <img width="1388" height="844" alt="image" src="https://github.com/user-attachments/assets/ee49c6ee-2da6-4bfa-b500-715ed7ceb13a" /> AI usage <img width="1442" height="1254" alt="image" src="https://github.com/user-attachments/assets/b382bffb-010d-4072-9144-cb7e6a8680e3" /> Invitations <img width="1486" height="1346" alt="image" src="https://github.com/user-attachments/assets/020f68a9-69d2-46ed-9f38-b0d5e98d02de" /> Writing analysis <img width="917" height="409" alt="image" src="https://github.com/user-attachments/assets/1147427c-513f-4737-8f28-99bfc6f4aff9" /> --------- Co-authored-by: awesomerobot <[email protected]> Co-authored-by: Martin Brennan <[email protected]>
119 lines
4.1 KiB
Plaintext
119 lines
4.1 KiB
Plaintext
import Component from "@glimmer/component";
|
|
import { concat } from "@ember/helper";
|
|
import avatar from "discourse/helpers/bound-avatar-template";
|
|
import number from "discourse/helpers/number";
|
|
import { i18n } from "discourse-i18n";
|
|
|
|
export default class Invites extends Component {
|
|
get mostActiveInvitee() {
|
|
return this.args.report.data.most_active_invitee;
|
|
}
|
|
|
|
<template>
|
|
<div class="rewind-report-page --invites">
|
|
<div class="guest-book">
|
|
<div class="guest-book__cover">
|
|
<div class="guest-book__title">
|
|
{{i18n "discourse_rewind.reports.invites.guest_book_title"}}
|
|
</div>
|
|
<div class="guest-book__subtitle">
|
|
{{i18n "discourse_rewind.reports.invites.guest_book_subtitle"}}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="guest-book__page">
|
|
<div class="guest-book__entry">
|
|
<div class="guest-book__entry-label">
|
|
{{i18n "discourse_rewind.reports.invites.label_invitations_sent"}}
|
|
</div>
|
|
<div class="guest-book__entry-value">
|
|
{{number @report.data.total_invites}}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="guest-book__entry">
|
|
<div class="guest-book__entry-label">
|
|
{{i18n "discourse_rewind.reports.invites.label_guests_joined"}}
|
|
</div>
|
|
<div class="guest-book__entry-value">
|
|
{{number @report.data.redeemed_count}}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="guest-book__entry">
|
|
<div class="guest-book__entry-label">
|
|
{{i18n "discourse_rewind.reports.invites.label_acceptance_rate"}}
|
|
</div>
|
|
<div class="guest-book__entry-value">
|
|
{{@report.data.redemption_rate}}%
|
|
</div>
|
|
</div>
|
|
|
|
<div class="guest-book__divider"></div>
|
|
|
|
<div class="guest-book__section-title">
|
|
{{i18n "discourse_rewind.reports.invites.section_contributions"}}
|
|
</div>
|
|
|
|
<div class="guest-book__entry --small">
|
|
<div class="guest-book__entry-label">
|
|
{{i18n "discourse_rewind.reports.invites.label_posts_written"}}
|
|
</div>
|
|
<div class="guest-book__entry-value">
|
|
{{number @report.data.invitee_post_count}}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="guest-book__entry --small">
|
|
<div class="guest-book__entry-label">
|
|
{{i18n "discourse_rewind.reports.invites.label_topics_started"}}
|
|
</div>
|
|
<div class="guest-book__entry-value">
|
|
{{number @report.data.invitee_topic_count}}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="guest-book__entry --small">
|
|
<div class="guest-book__entry-label">
|
|
{{i18n "discourse_rewind.reports.invites.label_likes_given"}}
|
|
</div>
|
|
<div class="guest-book__entry-value">
|
|
{{number @report.data.invitee_like_count}}
|
|
</div>
|
|
</div>
|
|
|
|
{{#if this.mostActiveInvitee}}
|
|
<div class="guest-book__divider"></div>
|
|
|
|
<div class="guest-book__section-title">
|
|
{{i18n "discourse_rewind.reports.invites.section_most_active"}}
|
|
</div>
|
|
|
|
<a
|
|
href={{concat "/u/" this.mostActiveInvitee.username}}
|
|
class="guest-book__signature"
|
|
>
|
|
{{avatar
|
|
this.mostActiveInvitee.avatar_template
|
|
"large"
|
|
username=this.mostActiveInvitee.username
|
|
name=this.mostActiveInvitee.name
|
|
}}
|
|
<div class="guest-book__signature-info">
|
|
<span class="guest-book__signature-name">
|
|
{{this.mostActiveInvitee.username}}
|
|
</span>
|
|
{{#if this.mostActiveInvitee.name}}
|
|
<span class="guest-book__signature-realname">
|
|
{{this.mostActiveInvitee.name}}
|
|
</span>
|
|
{{/if}}
|
|
</div>
|
|
</a>
|
|
{{/if}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
}
|