Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,7 @@ export default class SiteSettingComponent extends Component {
<LinkTo
@route="adminLogs.staffActionLogs"
@query={{hash filters=this.staffLogFilter force_refresh=true}}
class="staff-action-log-link"
title={{i18n "admin.settings.history"}}
>
<span class="history-icon">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ import SiteSettingComponent from "./site-setting";
export default class ThemeSiteSettingEditor extends SiteSettingComponent {
@service toasts;

get staffLogFilter() {
return {
subject: `${this.args.model.name}: ${this.setting.setting}`,
action_name: "change_theme_site_setting",
};
}

_save() {
return this.setting
.updateSetting(this.args.model.id, this.buffered.get("value"))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import { click, fillIn, render, typeIn } from "@ember/test-helpers";
import {
click,
fillIn,
render,
triggerEvent,
typeIn,
} from "@ember/test-helpers";
import { module, skip, test } from "qunit";
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import pretender, { response } from "discourse/tests/helpers/create-pretender";
Expand All @@ -7,7 +13,7 @@ import { i18n } from "discourse-i18n";
import SiteSettingComponent from "admin/components/site-setting";
import SiteSetting from "admin/models/site-setting";

module("Integration | Component | site-setting", function (hooks) {
module("Integration | Component | SiteSetting", function (hooks) {
setupRenderingTest(hooks);

test("displays host-list setting value", async function (assert) {
Expand All @@ -29,7 +35,7 @@ module("Integration | Component | site-setting", function (hooks) {
assert.dom(".formatted-selection").hasText("a.com, b.com");
});

test("Error response with html_message is rendered as HTML", async function (assert) {
test("error response with html_message is rendered as HTML", async function (assert) {
const self = this;

this.set(
Expand All @@ -56,7 +62,7 @@ module("Integration | Component | site-setting", function (hooks) {
assert.dom(".validation-error").includesHtml(message);
});

test("Error response without html_message is not rendered as HTML", async function (assert) {
test("error response without html_message is not rendered as HTML", async function (assert) {
const self = this;

this.set(
Expand Down Expand Up @@ -180,10 +186,38 @@ module("Integration | Component | site-setting", function (hooks) {
assert.dom(".input-setting-string").hasAttribute("type", "password");
assert.dom(".setting-toggle-secret svg").hasClass("d-icon-far-eye");
});

test("shows link to the staff action logs for the setting on hover", async function (assert) {
const self = this;

this.set(
"setting",
SiteSetting.create({
setting: "enable_badges",
value: "false",
default: "true",
type: "bool",
})
);

await render(
<template><SiteSettingComponent @setting={{self.setting}} /></template>
);

await triggerEvent("[data-setting='enable_badges']", "mouseenter");

assert
.dom("[data-setting='enable_badges'] .staff-action-log-link")
.exists()
.hasAttribute(
"href",
`/admin/logs/staff_action_logs?filters=${encodeURIComponent(JSON.stringify({ subject: "enable_badges", action_name: "change_site_setting" }))}&force_refresh=true`
);
});
});

module(
"Integration | Component | site-setting | file_size_restriction type",
"Integration | Component | SiteSetting | file_size_restriction type",
function (hooks) {
setupRenderingTest(hooks);

Expand Down Expand Up @@ -434,7 +468,7 @@ module(
);

module(
"Integration | Component | site-setting | font-list type",
"Integration | Component | SiteSetting | font-list type",
function (hooks) {
setupRenderingTest(hooks);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { render, triggerEvent } from "@ember/test-helpers";
import { module, test } from "qunit";
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import ThemeSiteSettingEditor from "admin/components/theme-site-setting-editor";
import SiteSetting from "admin/models/site-setting";
import Theme from "admin/models/theme";

module("Integration | Component | ThemeSiteSettingEditor", function (hooks) {
setupRenderingTest(hooks);

test("shows link to the staff action logs for the setting on hover", async function (assert) {
const self = this;

this.set(
"setting",
SiteSetting.create({
setting: "enable_welcome_banner",
value: "false",
default: "true",
type: "bool",
})
);

this.set("model", Theme.create({ name: "Test Theme" }));

await render(
<template>
<ThemeSiteSettingEditor
@setting={{self.setting}}
@model={{self.model}}
/>
</template>
);

await triggerEvent("[data-setting='enable_welcome_banner']", "mouseenter");

assert
.dom("[data-setting='enable_welcome_banner'] .staff-action-log-link")
.exists()
.hasAttribute(
"href",
`/admin/logs/staff_action_logs?filters=${encodeURIComponent(JSON.stringify({ subject: "Test Theme: enable_welcome_banner", action_name: "change_theme_site_setting" }))}&force_refresh=true`
);
});
});
Loading