mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-07-01 03:52:34 +00:00
rerun gjs codemod
This commit is contained in:
parent
3ce1ce945d
commit
18bb729ba8
@ -0,0 +1,11 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiEmbeddingsListEditor from "../../../../../discourse/components/ai-embeddings-list-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template>
|
||||||
|
<AiEmbeddingsListEditor
|
||||||
|
@embeddings={{@controller.allEmbeddings}}
|
||||||
|
@currentEmbedding={{@controller.model}}
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
);
|
@ -1,4 +0,0 @@
|
|||||||
<AiEmbeddingsListEditor
|
|
||||||
@embeddings={{this.allEmbeddings}}
|
|
||||||
@currentEmbedding={{this.model}}
|
|
||||||
/>
|
|
@ -0,0 +1,8 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiEmbeddingsListEditor from "../../../../../discourse/components/ai-embeddings-list-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template>
|
||||||
|
<AiEmbeddingsListEditor @embeddings={{@controller.model}} />
|
||||||
|
</template>
|
||||||
|
);
|
@ -1 +0,0 @@
|
|||||||
<AiEmbeddingsListEditor @embeddings={{this.model}} />
|
|
@ -0,0 +1,11 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiEmbeddingsListEditor from "../../../../../discourse/components/ai-embeddings-list-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template>
|
||||||
|
<AiEmbeddingsListEditor
|
||||||
|
@embeddings={{@controller.allEmbeddings}}
|
||||||
|
@currentEmbedding={{@controller.model}}
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
);
|
@ -1,4 +0,0 @@
|
|||||||
<AiEmbeddingsListEditor
|
|
||||||
@embeddings={{this.allEmbeddings}}
|
|
||||||
@currentEmbedding={{this.model}}
|
|
||||||
/>
|
|
@ -0,0 +1,6 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiFeatures from "../../../../../discourse/components/ai-features";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template><AiFeatures @features={{@controller.model}} /></template>
|
||||||
|
);
|
@ -1 +0,0 @@
|
|||||||
<AiFeatures @features={{this.model}} />
|
|
@ -0,0 +1,11 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiLlmsListEditor from "../../../../../discourse/components/ai-llms-list-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template>
|
||||||
|
<AiLlmsListEditor
|
||||||
|
@llms={{@controller.allLlms}}
|
||||||
|
@currentLlm={{@controller.model}}
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
);
|
@ -1 +0,0 @@
|
|||||||
<AiLlmsListEditor @llms={{this.allLlms}} @currentLlm={{this.model}} />
|
|
@ -0,0 +1,6 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiLlmsListEditor from "../../../../../discourse/components/ai-llms-list-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template><AiLlmsListEditor @llms={{@controller.model}} /></template>
|
||||||
|
);
|
@ -1 +0,0 @@
|
|||||||
<AiLlmsListEditor @llms={{this.model}} />
|
|
@ -0,0 +1,12 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiLlmsListEditor from "../../../../../discourse/components/ai-llms-list-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template>
|
||||||
|
<AiLlmsListEditor
|
||||||
|
@llms={{@controller.allLlms}}
|
||||||
|
@currentLlm={{@controller.model}}
|
||||||
|
@llmTemplate={{@controller.llmTemplate}}
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
);
|
@ -1,5 +0,0 @@
|
|||||||
<AiLlmsListEditor
|
|
||||||
@llms={{this.allLlms}}
|
|
||||||
@currentLlm={{this.model}}
|
|
||||||
@llmTemplate={{this.llmTemplate}}
|
|
||||||
/>
|
|
@ -0,0 +1,11 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiPersonaListEditor from "../../../../../discourse/components/ai-persona-list-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template>
|
||||||
|
<AiPersonaListEditor
|
||||||
|
@personas={{@controller.allPersonas}}
|
||||||
|
@currentPersona={{@controller.model}}
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
);
|
@ -1,4 +0,0 @@
|
|||||||
<AiPersonaListEditor
|
|
||||||
@personas={{this.allPersonas}}
|
|
||||||
@currentPersona={{this.model}}
|
|
||||||
/>
|
|
@ -0,0 +1,6 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiPersonaListEditor from "../../../../../discourse/components/ai-persona-list-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template><AiPersonaListEditor @personas={{@controller.model}} /></template>
|
||||||
|
);
|
@ -1 +0,0 @@
|
|||||||
<AiPersonaListEditor @personas={{this.model}} />
|
|
@ -0,0 +1,11 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiPersonaListEditor from "../../../../../discourse/components/ai-persona-list-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template>
|
||||||
|
<AiPersonaListEditor
|
||||||
|
@personas={{@controller.allPersonas}}
|
||||||
|
@currentPersona={{@controller.model}}
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
);
|
@ -1,4 +0,0 @@
|
|||||||
<AiPersonaListEditor
|
|
||||||
@personas={{this.allPersonas}}
|
|
||||||
@currentPersona={{this.model}}
|
|
||||||
/>
|
|
@ -0,0 +1,6 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiSpam from "../../../../discourse/components/ai-spam";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template><AiSpam @model={{@controller.model}} /></template>
|
||||||
|
);
|
@ -1 +0,0 @@
|
|||||||
<AiSpam @model={{this.model}} />
|
|
@ -0,0 +1,16 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiToolEditor from "../../../../../discourse/components/ai-tool-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template>
|
||||||
|
<section class="ai-persona-tool-editor__current admin-detail pull-left">
|
||||||
|
<AiToolEditor
|
||||||
|
@tools={{@controller.allTools}}
|
||||||
|
@model={{@controller.model}}
|
||||||
|
@presets={{@controller.presets}}
|
||||||
|
@llms={{@controller.llms}}
|
||||||
|
@settings={{@controller.settings}}
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
);
|
@ -1,9 +0,0 @@
|
|||||||
<section class="ai-persona-tool-editor__current admin-detail pull-left">
|
|
||||||
<AiToolEditor
|
|
||||||
@tools={{this.allTools}}
|
|
||||||
@model={{this.model}}
|
|
||||||
@presets={{this.presets}}
|
|
||||||
@llms={{this.llms}}
|
|
||||||
@settings={{this.settings}}
|
|
||||||
/>
|
|
||||||
</section>
|
|
@ -0,0 +1,6 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiToolListEditor from "../../../../../discourse/components/ai-tool-list-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template><AiToolListEditor @tools={{@controller.model}} /></template>
|
||||||
|
);
|
@ -1 +0,0 @@
|
|||||||
<AiToolListEditor @tools={{this.model}} />
|
|
@ -0,0 +1,17 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiToolEditor from "../../../../../discourse/components/ai-tool-editor";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template>
|
||||||
|
<section class="ai-persona-tool-editor__current admin-detail pull-left">
|
||||||
|
<AiToolEditor
|
||||||
|
@tools={{@controller.allTools}}
|
||||||
|
@model={{@controller.model}}
|
||||||
|
@presets={{@controller.presets}}
|
||||||
|
@llms={{@controller.llms}}
|
||||||
|
@settings={{@controller.settings}}
|
||||||
|
@selectedPreset={{@controller.selectedPreset}}
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
);
|
@ -1,10 +0,0 @@
|
|||||||
<section class="ai-persona-tool-editor__current admin-detail pull-left">
|
|
||||||
<AiToolEditor
|
|
||||||
@tools={{this.allTools}}
|
|
||||||
@model={{this.model}}
|
|
||||||
@presets={{this.presets}}
|
|
||||||
@llms={{this.llms}}
|
|
||||||
@settings={{this.settings}}
|
|
||||||
@selectedPreset={{this.selectedPreset}}
|
|
||||||
/>
|
|
||||||
</section>
|
|
@ -0,0 +1,6 @@
|
|||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import AiUsage from "../../../../discourse/components/ai-usage";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template><AiUsage @model={{@controller.model}} /></template>
|
||||||
|
);
|
@ -1 +0,0 @@
|
|||||||
<AiUsage @model={{this.model}} />
|
|
@ -0,0 +1,89 @@
|
|||||||
|
import Component from "@ember/component";
|
||||||
|
import { attributeBindings, classNames } from "@ember-decorators/component";
|
||||||
|
import icon from "discourse/helpers/d-icon";
|
||||||
|
import number from "discourse/helpers/number";
|
||||||
|
import getURL from "discourse/lib/get-url";
|
||||||
|
|
||||||
|
@classNames("admin-report-counters")
|
||||||
|
@attributeBindings("model.description:title")
|
||||||
|
export default class AdminReportEmotion extends Component {
|
||||||
|
get todayLink() {
|
||||||
|
let date = moment().format("YYYY-MM-DD");
|
||||||
|
return this._filterURL(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
get yesterdayLink() {
|
||||||
|
let date = moment().subtract(1, "day").format("YYYY-MM-DD");
|
||||||
|
return this._filterURL(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
get lastSevenDaysLink() {
|
||||||
|
let date = moment().subtract(1, "week").format("YYYY-MM-DD");
|
||||||
|
return this._filterURL(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
get lastThirtyDaysLink() {
|
||||||
|
let date = moment().subtract(1, "month").format("YYYY-MM-DD");
|
||||||
|
return this._filterURL(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
_baseFilter() {
|
||||||
|
return "/filter?q=activity-after%3A";
|
||||||
|
}
|
||||||
|
|
||||||
|
_model() {
|
||||||
|
return "%20order%3A" + this.model.type;
|
||||||
|
}
|
||||||
|
|
||||||
|
_filterURL(date) {
|
||||||
|
return getURL(`${this._baseFilter()}${date}${this._model()}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="cell title">
|
||||||
|
{{#if this.model.icon}}
|
||||||
|
{{icon this.model.icon}}
|
||||||
|
{{/if}}
|
||||||
|
{{this.model.title}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cell value today-count">
|
||||||
|
<a href={{this.todayLink}}>
|
||||||
|
{{number this.model.todayCount}}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="cell value yesterday-count {{this.model.yesterdayTrend}}"
|
||||||
|
title={{this.model.yesterdayCountTitle}}
|
||||||
|
>
|
||||||
|
<a href={{this.yesterdayLink}}>
|
||||||
|
{{number this.model.yesterdayCount}}
|
||||||
|
</a>
|
||||||
|
{{icon this.model.yesterdayTrendIcon}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="cell value sevendays-count {{this.model.sevenDaysTrend}}"
|
||||||
|
title={{this.model.sevenDaysCountTitle}}
|
||||||
|
>
|
||||||
|
<a href={{this.lastSevenDaysLink}}>
|
||||||
|
{{number this.model.lastSevenDaysCount}}
|
||||||
|
</a>
|
||||||
|
{{icon this.model.sevenDaysTrendIcon}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="cell value thirty-days-count {{this.model.thirtyDaysTrend}}"
|
||||||
|
title={{this.model.thirtyDaysCountTitle}}
|
||||||
|
>
|
||||||
|
|
||||||
|
<a href={{this.lastThirtyDaysLink}}>
|
||||||
|
{{number this.model.lastThirtyDaysCount}}
|
||||||
|
</a>
|
||||||
|
{{#if this.model.canDisplayTrendIcon}}
|
||||||
|
{{icon this.model.thirtyDaysTrendIcon}}
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
}
|
@ -1,45 +0,0 @@
|
|||||||
<div class="cell title">
|
|
||||||
{{#if this.model.icon}}
|
|
||||||
{{d-icon this.model.icon}}
|
|
||||||
{{/if}}
|
|
||||||
{{this.model.title}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="cell value today-count">
|
|
||||||
<a href={{this.todayLink}}>
|
|
||||||
{{number this.model.todayCount}}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="cell value yesterday-count {{this.model.yesterdayTrend}}"
|
|
||||||
title={{this.model.yesterdayCountTitle}}
|
|
||||||
>
|
|
||||||
<a href={{this.yesterdayLink}}>
|
|
||||||
{{number this.model.yesterdayCount}}
|
|
||||||
</a>
|
|
||||||
{{d-icon this.model.yesterdayTrendIcon}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="cell value sevendays-count {{this.model.sevenDaysTrend}}"
|
|
||||||
title={{this.model.sevenDaysCountTitle}}
|
|
||||||
>
|
|
||||||
<a href={{this.lastSevenDaysLink}}>
|
|
||||||
{{number this.model.lastSevenDaysCount}}
|
|
||||||
</a>
|
|
||||||
{{d-icon this.model.sevenDaysTrendIcon}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="cell value thirty-days-count {{this.model.thirtyDaysTrend}}"
|
|
||||||
title={{this.model.thirtyDaysCountTitle}}
|
|
||||||
>
|
|
||||||
|
|
||||||
<a href={{this.lastThirtyDaysLink}}>
|
|
||||||
{{number this.model.lastThirtyDaysCount}}
|
|
||||||
</a>
|
|
||||||
{{#if this.model.canDisplayTrendIcon}}
|
|
||||||
{{d-icon this.model.thirtyDaysTrendIcon}}
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
@ -1,39 +0,0 @@
|
|||||||
import Component from "@ember/component";
|
|
||||||
import { attributeBindings, classNames } from "@ember-decorators/component";
|
|
||||||
import getURL from "discourse/lib/get-url";
|
|
||||||
|
|
||||||
@classNames("admin-report-counters")
|
|
||||||
@attributeBindings("model.description:title")
|
|
||||||
export default class AdminReportEmotion extends Component {
|
|
||||||
get todayLink() {
|
|
||||||
let date = moment().format("YYYY-MM-DD");
|
|
||||||
return this._filterURL(date);
|
|
||||||
}
|
|
||||||
|
|
||||||
get yesterdayLink() {
|
|
||||||
let date = moment().subtract(1, "day").format("YYYY-MM-DD");
|
|
||||||
return this._filterURL(date);
|
|
||||||
}
|
|
||||||
|
|
||||||
get lastSevenDaysLink() {
|
|
||||||
let date = moment().subtract(1, "week").format("YYYY-MM-DD");
|
|
||||||
return this._filterURL(date);
|
|
||||||
}
|
|
||||||
|
|
||||||
get lastThirtyDaysLink() {
|
|
||||||
let date = moment().subtract(1, "month").format("YYYY-MM-DD");
|
|
||||||
return this._filterURL(date);
|
|
||||||
}
|
|
||||||
|
|
||||||
_baseFilter() {
|
|
||||||
return "/filter?q=activity-after%3A";
|
|
||||||
}
|
|
||||||
|
|
||||||
_model() {
|
|
||||||
return "%20order%3A" + this.model.type;
|
|
||||||
}
|
|
||||||
|
|
||||||
_filterURL(date) {
|
|
||||||
return getURL(`${this._baseFilter()}${date}${this._model()}`);
|
|
||||||
}
|
|
||||||
}
|
|
19
assets/javascripts/discourse/components/model-accuracies.gjs
Normal file
19
assets/javascripts/discourse/components/model-accuracies.gjs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import { i18n } from "discourse-i18n";
|
||||||
|
|
||||||
|
const ModelAccuracies = <template>
|
||||||
|
{{#if @accuracies}}
|
||||||
|
<table class="reviewable-scores">
|
||||||
|
<tbody>
|
||||||
|
{{#each-in @accuracies as |model acc|}}
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">{{i18n "discourse_ai.reviewables.model_used"}}</td>
|
||||||
|
<td colspan="3">{{model}}</td>
|
||||||
|
<td colspan="4">{{i18n "discourse_ai.reviewables.accuracy"}}</td>
|
||||||
|
<td colspan="3">{{acc}}%</td>
|
||||||
|
</tr>
|
||||||
|
{{/each-in}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{{/if}}
|
||||||
|
</template>;
|
||||||
|
export default ModelAccuracies;
|
@ -1,14 +0,0 @@
|
|||||||
{{#if @accuracies}}
|
|
||||||
<table class="reviewable-scores">
|
|
||||||
<tbody>
|
|
||||||
{{#each-in @accuracies as |model acc|}}
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">{{i18n "discourse_ai.reviewables.model_used"}}</td>
|
|
||||||
<td colspan="3">{{model}}</td>
|
|
||||||
<td colspan="4">{{i18n "discourse_ai.reviewables.accuracy"}}</td>
|
|
||||||
<td colspan="3">{{acc}}%</td>
|
|
||||||
</tr>
|
|
||||||
{{/each-in}}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{{/if}}
|
|
@ -0,0 +1,60 @@
|
|||||||
|
import Component from "@glimmer/component";
|
||||||
|
import { array } from "@ember/helper";
|
||||||
|
import { LinkTo } from "@ember/routing";
|
||||||
|
import ReviewableCreatedBy from "discourse/components/reviewable-created-by";
|
||||||
|
import ReviewablePostHeader from "discourse/components/reviewable-post-header";
|
||||||
|
import htmlSafe from "discourse/helpers/html-safe";
|
||||||
|
import or from "truth-helpers/helpers/or";
|
||||||
|
import ChatChannelTitle from "discourse/plugins/chat/discourse/components/chat-channel-title";
|
||||||
|
import ChatChannel from "discourse/plugins/chat/discourse/models/chat-channel";
|
||||||
|
import ModelAccuracies from "./model-accuracies";
|
||||||
|
|
||||||
|
export default class ReviewableAiChatMessage extends Component {
|
||||||
|
get chatChannel() {
|
||||||
|
if (!this.args.reviewable.chat_channel) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return ChatChannel.create(this.args.reviewable.chat_channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
<template>
|
||||||
|
{{#if this.chatChannel}}
|
||||||
|
<div class="flagged-post-header">
|
||||||
|
<LinkTo
|
||||||
|
@route="chat.channel.near-message"
|
||||||
|
@models={{array
|
||||||
|
this.chatChannel.slugifiedTitle
|
||||||
|
this.chatChannel.id
|
||||||
|
@reviewable.target_id
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<ChatChannelTitle @channel={{this.chatChannel}} />
|
||||||
|
</LinkTo>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="post-contents-wrapper">
|
||||||
|
<ReviewableCreatedBy
|
||||||
|
@user={{@reviewable.target_created_by}}
|
||||||
|
@tagName=""
|
||||||
|
/>
|
||||||
|
<div class="post-contents">
|
||||||
|
<ReviewablePostHeader
|
||||||
|
@reviewable={{@reviewable}}
|
||||||
|
@createdBy={{@reviewable.target_created_by}}
|
||||||
|
@tagName=""
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div class="post-body">
|
||||||
|
{{htmlSafe
|
||||||
|
(or @reviewable.payload.message_cooked @reviewable.cooked)
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{yield}}
|
||||||
|
|
||||||
|
<ModelAccuracies @accuracies={{@reviewable.payload.accuracies}} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
}
|
@ -1,33 +0,0 @@
|
|||||||
{{#if this.chatChannel}}
|
|
||||||
<div class="flagged-post-header">
|
|
||||||
<LinkTo
|
|
||||||
@route="chat.channel.near-message"
|
|
||||||
@models={{array
|
|
||||||
this.chatChannel.slugifiedTitle
|
|
||||||
this.chatChannel.id
|
|
||||||
@reviewable.target_id
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<ChatChannelTitle @channel={{this.chatChannel}} />
|
|
||||||
</LinkTo>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="post-contents-wrapper">
|
|
||||||
<ReviewableCreatedBy @user={{@reviewable.target_created_by}} @tagName="" />
|
|
||||||
<div class="post-contents">
|
|
||||||
<ReviewablePostHeader
|
|
||||||
@reviewable={{@reviewable}}
|
|
||||||
@createdBy={{@reviewable.target_created_by}}
|
|
||||||
@tagName=""
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div class="post-body">
|
|
||||||
{{html-safe (or @reviewable.payload.message_cooked @reviewable.cooked)}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{yield}}
|
|
||||||
|
|
||||||
<ModelAccuracies @accuracies={{@reviewable.payload.accuracies}} />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
@ -1,11 +0,0 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import ChatChannel from "discourse/plugins/chat/discourse/models/chat-channel";
|
|
||||||
|
|
||||||
export default class ReviewableAiChatMessage extends Component {
|
|
||||||
get chatChannel() {
|
|
||||||
if (!this.args.reviewable.chat_channel) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
return ChatChannel.create(this.args.reviewable.chat_channel);
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,37 @@
|
|||||||
|
import ReviewableCreatedBy from "discourse/components/reviewable-created-by";
|
||||||
|
import ReviewablePostEdits from "discourse/components/reviewable-post-edits";
|
||||||
|
import ReviewablePostHeader from "discourse/components/reviewable-post-header";
|
||||||
|
import ReviewableTopicLink from "discourse/components/reviewable-topic-link";
|
||||||
|
import htmlSafe from "discourse/helpers/html-safe";
|
||||||
|
import { i18n } from "discourse-i18n";
|
||||||
|
import ModelAccuracies from "./model-accuracies";
|
||||||
|
|
||||||
|
const ReviewableAiPost = <template>
|
||||||
|
<div class="flagged-post-header">
|
||||||
|
<ReviewableTopicLink @reviewable={{@reviewable}} @tagName="" />
|
||||||
|
<ReviewablePostEdits @reviewable={{@reviewable}} @tagName="" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="post-contents-wrapper">
|
||||||
|
<ReviewableCreatedBy @user={{@reviewable.target_created_by}} @tagName="" />
|
||||||
|
<div class="post-contents">
|
||||||
|
<ReviewablePostHeader
|
||||||
|
@reviewable={{@reviewable}}
|
||||||
|
@createdBy={{@reviewable.target_created_by}}
|
||||||
|
@tagName=""
|
||||||
|
/>
|
||||||
|
<div class="post-body">
|
||||||
|
{{#if @reviewable.blank_post}}
|
||||||
|
<p>{{i18n "review.deleted_post"}}</p>
|
||||||
|
{{else}}
|
||||||
|
{{htmlSafe @reviewable.cooked}}
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{yield}}
|
||||||
|
|
||||||
|
<ModelAccuracies @accuracies={{@reviewable.payload.accuracies}} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>;
|
||||||
|
export default ReviewableAiPost;
|
@ -1,26 +0,0 @@
|
|||||||
<div class="flagged-post-header">
|
|
||||||
<ReviewableTopicLink @reviewable={{@reviewable}} @tagName="" />
|
|
||||||
<ReviewablePostEdits @reviewable={{@reviewable}} @tagName="" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="post-contents-wrapper">
|
|
||||||
<ReviewableCreatedBy @user={{@reviewable.target_created_by}} @tagName="" />
|
|
||||||
<div class="post-contents">
|
|
||||||
<ReviewablePostHeader
|
|
||||||
@reviewable={{@reviewable}}
|
|
||||||
@createdBy={{@reviewable.target_created_by}}
|
|
||||||
@tagName=""
|
|
||||||
/>
|
|
||||||
<div class="post-body">
|
|
||||||
{{#if @reviewable.blank_post}}
|
|
||||||
<p>{{i18n "review.deleted_post"}}</p>
|
|
||||||
{{else}}
|
|
||||||
{{html-safe @reviewable.cooked}}
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{yield}}
|
|
||||||
|
|
||||||
<ModelAccuracies @accuracies={{@reviewable.payload.accuracies}} />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
@ -1,6 +1,7 @@
|
|||||||
import Component from "@glimmer/component";
|
import Component from "@glimmer/component";
|
||||||
import { computed } from "@ember/object";
|
import { computed } from "@ember/object";
|
||||||
import { service } from "@ember/service";
|
import { service } from "@ember/service";
|
||||||
|
import bodyClass from "discourse/helpers/body-class";
|
||||||
import { i18n } from "discourse-i18n";
|
import { i18n } from "discourse-i18n";
|
||||||
|
|
||||||
export default class extends Component {
|
export default class extends Component {
|
||||||
@ -42,4 +43,15 @@ export default class extends Component {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<template>
|
||||||
|
{{#if this.isAiBotChat}}
|
||||||
|
{{bodyClass this.aiBotClasses}}
|
||||||
|
{{#if this.renderChatWarning}}
|
||||||
|
<div class="ai-bot-chat-warning">{{i18n
|
||||||
|
"discourse_ai.ai_bot.pm_warning"
|
||||||
|
}}</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
</template>
|
||||||
}
|
}
|
@ -1,8 +0,0 @@
|
|||||||
{{#if this.isAiBotChat}}
|
|
||||||
{{body-class this.aiBotClasses}}
|
|
||||||
{{#if this.renderChatWarning}}
|
|
||||||
<div class="ai-bot-chat-warning">{{i18n
|
|
||||||
"discourse_ai.ai_bot.pm_warning"
|
|
||||||
}}</div>
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
|
@ -0,0 +1,87 @@
|
|||||||
|
import { LinkTo } from "@ember/routing";
|
||||||
|
import RouteTemplate from "ember-route-template";
|
||||||
|
import icon from "discourse/helpers/d-icon";
|
||||||
|
import { i18n } from "discourse-i18n";
|
||||||
|
import AdminReport from "admin/components/admin-report";
|
||||||
|
import DashboardPeriodSelector from "admin/components/dashboard-period-selector";
|
||||||
|
import DTooltip from "float-kit/components/d-tooltip";
|
||||||
|
|
||||||
|
export default RouteTemplate(
|
||||||
|
<template>
|
||||||
|
<div class="sentiment section">
|
||||||
|
<div class="period-section">
|
||||||
|
<div class="section-title">
|
||||||
|
<h2 id="sentiment-heading">
|
||||||
|
{{i18n "discourse_ai.sentiments.dashboard.title"}}
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<DashboardPeriodSelector
|
||||||
|
@period={{@controller.period}}
|
||||||
|
@setPeriod={{@controller.setPeriod}}
|
||||||
|
@startDate={{@controller.startDate}}
|
||||||
|
@endDate={{@controller.endDate}}
|
||||||
|
@setCustomDateRange={{@controller.setCustomDateRange}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="section-body">
|
||||||
|
<div class="charts">
|
||||||
|
<AdminReport
|
||||||
|
@dataSourceName="overall_sentiment"
|
||||||
|
@filters={{@controller.filters}}
|
||||||
|
@showHeader={{true}}
|
||||||
|
/>
|
||||||
|
<div class="admin-report activity-metrics">
|
||||||
|
<div class="header">
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
<li class="item report">
|
||||||
|
<LinkTo @route="adminReports" class="report-url">
|
||||||
|
{{i18n "admin.dashboard.emotion.title"}}
|
||||||
|
</LinkTo>
|
||||||
|
<DTooltip @interactive="true">
|
||||||
|
<:trigger>
|
||||||
|
{{icon "circle-question"}}
|
||||||
|
</:trigger>
|
||||||
|
<:content>
|
||||||
|
<span>{{i18n
|
||||||
|
"admin.dashboard.emotion.description"
|
||||||
|
}}</span>
|
||||||
|
</:content>
|
||||||
|
</DTooltip>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="report-body">
|
||||||
|
<div class="counters-list">
|
||||||
|
<div class="counters-header">
|
||||||
|
<div class="counters-cell"></div>
|
||||||
|
<div class="counters-cell">{{i18n
|
||||||
|
"admin.dashboard.reports.today"
|
||||||
|
}}</div>
|
||||||
|
<div class="counters-cell">{{i18n
|
||||||
|
"admin.dashboard.reports.yesterday"
|
||||||
|
}}</div>
|
||||||
|
<div class="counters-cell">{{i18n
|
||||||
|
"admin.dashboard.reports.last_7_days"
|
||||||
|
}}</div>
|
||||||
|
<div class="counters-cell">{{i18n
|
||||||
|
"admin.dashboard.reports.last_30_days"
|
||||||
|
}}</div>
|
||||||
|
</div>
|
||||||
|
{{#each @controller.emotions as |metric|}}
|
||||||
|
<AdminReport
|
||||||
|
@showHeader={{false}}
|
||||||
|
@filters={{@controller.emotionFilters}}
|
||||||
|
@forcedModes="emotion"
|
||||||
|
@dataSourceName="emotion_{{metric}}"
|
||||||
|
/>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
);
|
@ -1,73 +0,0 @@
|
|||||||
<div class="sentiment section">
|
|
||||||
<div class="period-section">
|
|
||||||
<div class="section-title">
|
|
||||||
<h2 id="sentiment-heading">
|
|
||||||
{{i18n "discourse_ai.sentiments.dashboard.title"}}
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<DashboardPeriodSelector
|
|
||||||
@period={{this.period}}
|
|
||||||
@setPeriod={{this.setPeriod}}
|
|
||||||
@startDate={{this.startDate}}
|
|
||||||
@endDate={{this.endDate}}
|
|
||||||
@setCustomDateRange={{this.setCustomDateRange}}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section-body">
|
|
||||||
<div class="charts">
|
|
||||||
<AdminReport
|
|
||||||
@dataSourceName="overall_sentiment"
|
|
||||||
@filters={{this.filters}}
|
|
||||||
@showHeader={{true}}
|
|
||||||
/>
|
|
||||||
<div class="admin-report activity-metrics">
|
|
||||||
<div class="header">
|
|
||||||
<ul class="breadcrumb">
|
|
||||||
<li class="item report">
|
|
||||||
<LinkTo @route="adminReports" class="report-url">
|
|
||||||
{{i18n "admin.dashboard.emotion.title"}}
|
|
||||||
</LinkTo>
|
|
||||||
<DTooltip @interactive="true">
|
|
||||||
<:trigger>
|
|
||||||
{{d-icon "circle-question"}}
|
|
||||||
</:trigger>
|
|
||||||
<:content>
|
|
||||||
<span>{{i18n "admin.dashboard.emotion.description"}}</span>
|
|
||||||
</:content>
|
|
||||||
</DTooltip>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="report-body">
|
|
||||||
<div class="counters-list">
|
|
||||||
<div class="counters-header">
|
|
||||||
<div class="counters-cell"></div>
|
|
||||||
<div class="counters-cell">{{i18n
|
|
||||||
"admin.dashboard.reports.today"
|
|
||||||
}}</div>
|
|
||||||
<div class="counters-cell">{{i18n
|
|
||||||
"admin.dashboard.reports.yesterday"
|
|
||||||
}}</div>
|
|
||||||
<div class="counters-cell">{{i18n
|
|
||||||
"admin.dashboard.reports.last_7_days"
|
|
||||||
}}</div>
|
|
||||||
<div class="counters-cell">{{i18n
|
|
||||||
"admin.dashboard.reports.last_30_days"
|
|
||||||
}}</div>
|
|
||||||
</div>
|
|
||||||
{{#each this.emotions as |metric|}}
|
|
||||||
<AdminReport
|
|
||||||
@showHeader={{false}}
|
|
||||||
@filters={{this.emotionFilters}}
|
|
||||||
@forcedModes="emotion"
|
|
||||||
@dataSourceName="emotion_{{metric}}"
|
|
||||||
/>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
Loading…
x
Reference in New Issue
Block a user