List available frontends also when no static/frontends folder is present yet
* To see what front ends are installed, it ls static/frontends. When this folder doesn't exists yet, it will return an empty array. * Installing still works since the folder is created during installation already Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3510
This commit is contained in:
parent
09c42ce13e
commit
53b0dd4ecc
3 changed files with 22 additions and 1 deletions
|
@ -27,6 +27,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
- AdminAPI: Fix rendering reports containing a `nil` object
|
- AdminAPI: Fix rendering reports containing a `nil` object
|
||||||
- Mastodon API: Activity Search fallbacks on status fetching after a DB Timeout/Error
|
- Mastodon API: Activity Search fallbacks on status fetching after a DB Timeout/Error
|
||||||
- Mastodon API: Fix crash in Streamer related to reblogging
|
- Mastodon API: Fix crash in Streamer related to reblogging
|
||||||
|
- AdminAPI: List available frontends when `static/frontends` folder is missing
|
||||||
|
|
||||||
## 2.4.0 - 2021-08-08
|
## 2.4.0 - 2021-08-08
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,12 @@ def install(%{body_params: params} = conn, _params) do
|
||||||
end
|
end
|
||||||
|
|
||||||
defp installed do
|
defp installed do
|
||||||
File.ls!(Pleroma.Frontend.dir())
|
frontend_directory = Pleroma.Frontend.dir()
|
||||||
|
|
||||||
|
if File.exists?(frontend_directory) do
|
||||||
|
File.ls!(frontend_directory)
|
||||||
|
else
|
||||||
|
[]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -42,6 +42,20 @@ test "it lists available frontends", %{conn: conn} do
|
||||||
|
|
||||||
refute Enum.any?(response, fn frontend -> frontend["installed"] == true end)
|
refute Enum.any?(response, fn frontend -> frontend["installed"] == true end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "it lists available frontends when no frontend folder was created yet", %{conn: conn} do
|
||||||
|
File.rm_rf(@dir)
|
||||||
|
|
||||||
|
response =
|
||||||
|
conn
|
||||||
|
|> get("/api/pleroma/admin/frontends")
|
||||||
|
|> json_response_and_validate_schema(:ok)
|
||||||
|
|
||||||
|
assert Enum.map(response, & &1["name"]) ==
|
||||||
|
Enum.map(Config.get([:frontends, :available]), fn {_, map} -> map["name"] end)
|
||||||
|
|
||||||
|
refute Enum.any?(response, fn frontend -> frontend["installed"] == true end)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "POST /api/pleroma/admin/frontends/install" do
|
describe "POST /api/pleroma/admin/frontends/install" do
|
||||||
|
|
Loading…
Reference in a new issue