DEV: Refactor the Automation Plugin UI to match admin UI guidelines (#31060)

This change updates the Automation plugin to make use of the `use_new_show_route` plugin flag, as well as generally updating the UI to match current admin UI guidelines. Notable changes include:

- Moving template/router/controller files to make use of the `admin.adminPlugins.show` route.
- Changing the URIs from `/admin/plugins/discourse-automation` to `/admin/plugins/automation`, to match the `PLUGIN_NAME`.
- Adding UI wrappers around the New/Edit forms, and polishing the list of defined automations.
This commit is contained in:
Gary Pendergast
2025-02-05 14:34:15 +11:00
committed by GitHub
parent a2dbcedbd9
commit f439bf14cc
26 changed files with 432 additions and 421 deletions

View File

@ -32,7 +32,7 @@ describe DiscourseAutomation::AdminAutomationsController do
before { sign_in(Fabricate(:admin)) }
it "shows the automation" do
get "/admin/plugins/discourse-automation/automations/#{automation.id}.json"
get "/admin/plugins/automation/automations/#{automation.id}.json"
expect(response.status).to eq(200)
expect(response.parsed_body["automation"]["id"]).to eq(automation.id)
end
@ -42,7 +42,7 @@ describe DiscourseAutomation::AdminAutomationsController do
before { sign_in(Fabricate(:user)) }
it "raises a 404" do
get "/admin/plugins/discourse-automation/automations/#{automation.id}.json"
get "/admin/plugins/automation/automations/#{automation.id}.json"
expect(response.status).to eq(404)
end
end
@ -63,7 +63,7 @@ describe DiscourseAutomation::AdminAutomationsController do
before { sign_in(Fabricate(:admin)) }
it "creates the 'forced triggerable' automation" do
post "/admin/plugins/discourse-automation/automations.json",
post "/admin/plugins/automation/automations.json",
params: {
automation: {
name: "foobar",
@ -78,7 +78,7 @@ describe DiscourseAutomation::AdminAutomationsController do
before { sign_in(Fabricate(:user)) }
it "raises a 404" do
post "/admin/plugins/discourse-automation/automations.json",
post "/admin/plugins/automation/automations.json",
params: {
automation: {
name: "foobar",
@ -95,7 +95,7 @@ describe DiscourseAutomation::AdminAutomationsController do
before { sign_in(Fabricate(:admin)) }
it "updates the automation" do
put "/admin/plugins/discourse-automation/automations/#{automation.id}.json",
put "/admin/plugins/automation/automations/#{automation.id}.json",
params: {
automation: {
trigger: "another-trigger",
@ -106,7 +106,7 @@ describe DiscourseAutomation::AdminAutomationsController do
describe "invalid field’s component" do
it "errors" do
put "/admin/plugins/discourse-automation/automations/#{automation.id}.json",
put "/admin/plugins/automation/automations/#{automation.id}.json",
params: {
automation: {
script: automation.script,
@ -129,7 +129,7 @@ describe DiscourseAutomation::AdminAutomationsController do
end
it "errors" do
put "/admin/plugins/discourse-automation/automations/#{automation.id}.json",
put "/admin/plugins/automation/automations/#{automation.id}.json",
params: {
automation: {
script: automation.script,
@ -147,7 +147,7 @@ describe DiscourseAutomation::AdminAutomationsController do
it "forces the automation to be disabled" do
expect(automation.enabled).to eq(true)
put "/admin/plugins/discourse-automation/automations/#{automation.id}.json",
put "/admin/plugins/automation/automations/#{automation.id}.json",
params: {
automation: {
script: "bar",
@ -164,7 +164,7 @@ describe DiscourseAutomation::AdminAutomationsController do
it "forces the automation to be disabled" do
expect(automation.enabled).to eq(true)
put "/admin/plugins/discourse-automation/automations/#{automation.id}.json",
put "/admin/plugins/automation/automations/#{automation.id}.json",
params: {
automation: {
script: automation.script,
@ -181,7 +181,7 @@ describe DiscourseAutomation::AdminAutomationsController do
it "disables the automation" do
expect(automation.enabled).to eq(true)
put "/admin/plugins/discourse-automation/automations/#{automation.id}.json",
put "/admin/plugins/automation/automations/#{automation.id}.json",
params: {
automation: {
trigger: automation.trigger,
@ -196,7 +196,7 @@ describe DiscourseAutomation::AdminAutomationsController do
context "with invalid field’s metadata" do
it "errors" do
put "/admin/plugins/discourse-automation/automations/#{automation.id}.json",
put "/admin/plugins/automation/automations/#{automation.id}.json",
params: {
automation: {
script: automation.script,
@ -214,7 +214,7 @@ describe DiscourseAutomation::AdminAutomationsController do
before { sign_in(Fabricate(:user)) }
it "raises a 404" do
put "/admin/plugins/discourse-automation/automations/#{automation.id}.json",
put "/admin/plugins/automation/automations/#{automation.id}.json",
params: {
automation: {
trigger: "another-trigger",
@ -232,13 +232,13 @@ describe DiscourseAutomation::AdminAutomationsController do
before { sign_in(Fabricate(:admin)) }
it "destroys the automation" do
delete "/admin/plugins/discourse-automation/automations/#{automation.id}.json"
delete "/admin/plugins/automation/automations/#{automation.id}.json"
expect(DiscourseAutomation::Automation.find_by(id: automation.id)).to eq(nil)
end
context "when the automation is not found" do
it "raises a 404" do
delete "/admin/plugins/discourse-automation/automations/999.json"
delete "/admin/plugins/automation/automations/999.json"
expect(response.status).to eq(404)
end
end
@ -248,7 +248,7 @@ describe DiscourseAutomation::AdminAutomationsController do
before { sign_in(Fabricate(:user)) }
it "raises a 404" do
delete "/admin/plugins/discourse-automation/automations/#{automation.id}.json"
delete "/admin/plugins/automation/automations/#{automation.id}.json"
expect(response.status).to eq(404)
end
end