diff --git a/lib/graphql/resolvers/config.ex b/lib/graphql/resolvers/config.ex index 0d9d36eb8..62acb57a2 100644 --- a/lib/graphql/resolvers/config.ex +++ b/lib/graphql/resolvers/config.ex @@ -88,7 +88,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Config do get_in(Application.get_env(:web_push_encryption, :vapid_details), [:public_key]) %{ - external_urls: Config.external_urls(), + external_links: Config.external_links(), name: Config.instance_name(), registrations_open: Config.instance_registrations_open?(), registrations_moderation: Config.instance_registrations_moderation?(), diff --git a/lib/graphql/schema/admin.ex b/lib/graphql/schema/admin.ex index 72a1af32c..702fd3003 100644 --- a/lib/graphql/schema/admin.ex +++ b/lib/graphql/schema/admin.ex @@ -160,19 +160,19 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do field(:instance_languages, list_of(:string), description: "The instance's languages") - field(:external_urls, list_of(:external_url), + field(:external_links, list_of(:external_link), description: "List of URL that will be shown to users" ) end - object :external_url do + object :external_link do meta(:authorize, :all) - field(:label, non_null(:string), description: "A human-readable label for the external URL") - field(:url, non_null(:string), description: "The actual external URL") - field(:enabled, non_null(:boolean), description: "Whether the external URL is enabled") + field(:label, non_null(:string), description: "A human-readable label for the external link") + field(:url, non_null(:string), description: "The external link URL") + field(:enabled, non_null(:boolean), description: "Whether the link URL is enabled") end - input_object :external_url_input do + input_object :external_link_input do meta(:authorize, :administrator) field(:label, non_null(:string)) field(:url, non_null(:string)) @@ -494,8 +494,8 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do arg(:instance_languages, list_of(:string), description: "The instance's languages") - arg(:external_urls, list_of(:external_url_input), - description: "Array of external URLs with label, status, and id" + arg(:external_links, list_of(:external_link_input), + description: "Array of external links with label, status, and id" ) middleware(Rajska.QueryAuthorization, permit: :administrator) diff --git a/lib/graphql/schema/config.ex b/lib/graphql/schema/config.ex index e244f76a7..7c99fa100 100644 --- a/lib/graphql/schema/config.ex +++ b/lib/graphql/schema/config.ex @@ -104,7 +104,7 @@ defmodule Mobilizon.GraphQL.Schema.ConfigType do field(:search, :search_settings, description: "The instance's search settings") - field(:external_urls, list_of(:external_url), + field(:external_links, list_of(:external_link), description: "List of URL that will be shown to users" ) end diff --git a/lib/mobilizon/config.ex b/lib/mobilizon/config.ex index d9159f7eb..27622b1f1 100644 --- a/lib/mobilizon/config.ex +++ b/lib/mobilizon/config.ex @@ -59,13 +59,13 @@ defmodule Mobilizon.Config do instance_config()[:name] ) - @spec external_urls :: String.t() - def external_urls do - config_cached_value("instance", "external_urls", []) - |> Enum.map(&transform_external_url/1) + @spec external_links :: String.t() + def external_links do + config_cached_value("instance", "external_links", []) + |> Enum.map(&transform_external_link/1) end - def transform_external_url(map) do + def transform_external_link(map) do %{ enabled: Map.fetch!(map, "enabled"), label: Map.fetch!(map, "label"), @@ -490,7 +490,7 @@ defmodule Mobilizon.Config do instance_privacy_policy_url: instance_privacy_url(), instance_rules: instance_rules(), instance_languages: instance_languages(), - external_urls: external_urls() + external_links: external_links() } end diff --git a/src/components/NavBar.vue b/src/components/NavBar.vue index b16c29ade..adaff0a41 100644 --- a/src/components/NavBar.vue +++ b/src/components/NavBar.vue @@ -68,7 +68,7 @@ >{{ t("Register") }} -
  • +
  • ; + config: Pick; }>(CONFIG); - const externalURLSConfig = computed( - () => configResult.value?.config?.externalUrls + const externalLinksConfig = computed( + () => configResult.value?.config?.externalLinks ); - return { externalURLSConfig, error, loading }; + return { externalLinksConfig, error, loading }; } export function useAnonymousReportsConfig() { diff --git a/src/graphql/admin.ts b/src/graphql/admin.ts index d20cf2d1b..b8c1c1d02 100644 --- a/src/graphql/admin.ts +++ b/src/graphql/admin.ts @@ -200,7 +200,7 @@ export const ADMIN_SETTINGS_FRAGMENT = gql` instanceLongDescription instanceSlogan contact - externalUrls { + externalLinks { label url enabled @@ -251,7 +251,7 @@ export const SAVE_ADMIN_SETTINGS = gql` $instanceLongDescription: String $instanceSlogan: String $contact: String - $externalUrls: [ExternalUrlInput] + $externalLinks: [ExternalLinkInput] $instanceLogo: MediaInput $instanceFavicon: MediaInput $defaultPicture: MediaInput @@ -274,7 +274,7 @@ export const SAVE_ADMIN_SETTINGS = gql` instanceLongDescription: $instanceLongDescription instanceSlogan: $instanceSlogan contact: $contact - externalUrls: $externalUrls + externalLinks: $externalLinks instanceLogo: $instanceLogo instanceFavicon: $instanceFavicon defaultPicture: $defaultPicture diff --git a/src/graphql/config.ts b/src/graphql/config.ts index 793ce6666..d6bb2d618 100644 --- a/src/graphql/config.ts +++ b/src/graphql/config.ts @@ -20,7 +20,7 @@ export const CONFIG = gql` languages primaryColor secondaryColor - externalUrls { + externalLinks { label url enabled diff --git a/src/types/admin.model.ts b/src/types/admin.model.ts index ce4f6d2e8..69fffe696 100644 --- a/src/types/admin.model.ts +++ b/src/types/admin.model.ts @@ -28,7 +28,7 @@ export interface IAdminSettings { contact: string; instanceLogo: IMedia | null; instanceFavicon: IMedia | null; - externalUrls: { url: string; label: string; enabled: boolean }[]; + externalLinks: { url: string; label: string; enabled: boolean }[]; defaultPicture: IMedia | null; primaryColor: string; secondaryColor: string; diff --git a/src/types/config.model.ts b/src/types/config.model.ts index 419aef047..f56874fa4 100644 --- a/src/types/config.model.ts +++ b/src/types/config.model.ts @@ -37,7 +37,7 @@ export interface IConfig { longDescription: string; contact: string; slogan: string; - externalUrls: { url: string; label: string; enabled: boolean }[]; + externalLinks: { url: string; label: string; enabled: boolean }[]; instanceLogo: { url: string }; defaultPicture: { url: string }; primaryColor: string; diff --git a/src/views/Admin/SettingsView.vue b/src/views/Admin/SettingsView.vue index faea41f37..49cd3a991 100644 --- a/src/views/Admin/SettingsView.vue +++ b/src/views/Admin/SettingsView.vue @@ -472,11 +472,11 @@
    (defaultAdminSettings); watch(adminSettings, () => { - // We need to use structuredClone to clone deep properties of adminSettings (like externalUrls) - // {... } only shadow clone, so externalUrls is not reactive doing this + // We need to use structuredClone to clone deep properties of adminSettings (like externalLinks) + // {... } only shadow clone, so externalLinks is not reactive doing this if (adminSettings.value) { settingsToWrite.value = structuredClone(toRaw(adminSettings.value)); } }); const addLink = () => { - settingsToWrite.value.externalUrls.push({ + settingsToWrite.value.externalLinks.push({ url: "", label: "", enabled: false, @@ -614,7 +614,7 @@ const addLink = () => { }; const deleteLink = (index: number) => { - settingsToWrite.value.externalUrls.splice(index, 1); + settingsToWrite.value.externalLinks.splice(index, 1); }; const filteredLanguages = ref([]);