diff --git a/js/src/graphql/admin.ts b/js/src/graphql/admin.ts index cb181f493..4c6bfaecc 100644 --- a/js/src/graphql/admin.ts +++ b/js/src/graphql/admin.ts @@ -184,7 +184,7 @@ export const ADMIN_SETTINGS_FRAGMENT = gql` instanceLongDescription instanceSlogan contact - instanceHomepageSorting + InstanceHomepageSorting instanceTerms instanceTermsType instanceTermsUrl @@ -213,7 +213,7 @@ export const SAVE_ADMIN_SETTINGS = gql` $instanceLongDescription: String $instanceSlogan: String $contact: String - $instanceHomepageSorting: InstanceHomepageSorting + $InstanceHomepageSorting: InstanceHomepageSorting $instanceTerms: String $instanceTermsType: InstanceTermsType $instanceTermsUrl: String @@ -230,7 +230,7 @@ export const SAVE_ADMIN_SETTINGS = gql` instanceLongDescription: $instanceLongDescription instanceSlogan: $instanceSlogan contact: $contact - instanceHomepageSorting: $instanceHomepageSorting + InstanceHomepageSorting: $InstanceHomepageSorting instanceTerms: $instanceTerms instanceTermsType: $instanceTermsType instanceTermsUrl: $instanceTermsUrl diff --git a/js/src/graphql/config.ts b/js/src/graphql/config.ts index f3bf1e7d7..490346061 100644 --- a/js/src/graphql/config.ts +++ b/js/src/graphql/config.ts @@ -8,7 +8,6 @@ export const CONFIG = gql` slogan registrationsOpen registrationsAllowlist - instanceHomepageSorting demoMode countryCode languages diff --git a/js/src/types/admin.model.ts b/js/src/types/admin.model.ts index 3c4079e09..ed74b1062 100644 --- a/js/src/types/admin.model.ts +++ b/js/src/types/admin.model.ts @@ -25,7 +25,7 @@ export interface IAdminSettings { instanceSlogan: string; instanceLongDescription: string; contact: string; - instanceHomepageSorting: InstanceHomepageSorting; + InstanceHomepageSorting: InstanceHomepageSorting; instanceTerms: string; instanceTermsType: InstanceTermsType; instanceTermsUrl: string | null; diff --git a/js/src/views/Admin/Settings.vue b/js/src/views/Admin/Settings.vue index 578a3142d..d938c89db 100644 --- a/js/src/views/Admin/Settings.vue +++ b/js/src/views/Admin/Settings.vue @@ -64,26 +64,24 @@ <p class="content" v-else>{{ $t("Registration is closed.") }}</p> </b-switch> </b-field> - <div class="field"> - <b-field :label="$t('Home Page Sorting')"> - <b-field> - <b-radio - v-model="adminSettings.instanceHomepageSorting" - name="instanceHomepageSorting" - :native-value="InstanceHomepageSorting.DEFAULT" - >{{ $t("Recently Created") }}</b-radio - > - </b-field> - <b-field> - <b-radio - v-model="adminSettings.instanceHomepageSorting" - name="instanceHomepageSorting" - :native-value="InstanceHomepageSorting.UPCOMING" - >{{ $t("Upcoming") }}</b-radio - > - </b-field> + <b-field :label="$t('Home Page Sorting')"> + <b-field> + <b-radio + v-model="adminSettings.InstanceHomepageSorting" + name="InstanceHomepageSorting" + :native-value="InstanceHomepageSorting.DEFAULT" + >{{ $t("Recently Created") }}</b-radio + > </b-field> - </div> + <b-field> + <b-radio + v-model="adminSettings.InstanceHomepageSorting" + name="InstanceHomepageSorting" + :native-value="InstanceHomepageSorting.UPCOMING" + >{{ $t("Upcoming") }}</b-radio + > + </b-field> + </b-field> <div class="field"> <label class="label has-help" for="instance-languages">{{ $t("Instance languages") diff --git a/js/src/views/Home.vue b/js/src/views/Home.vue index ace64eff7..b36be5d72 100644 --- a/js/src/views/Home.vue +++ b/js/src/views/Home.vue @@ -43,15 +43,7 @@ > <section class="events-recent"> <h2 class="title"> - {{ - $t( - config && - config.instanceHomepageSorting === - InstanceHomepageSorting.UPCOMING - ? "Upcoming Events" - : "Last published events" - ) - }} + {{ $t("Last published events") }} </h2> <p> <i18n tag="span" path="On {instance} and other federated instances"> @@ -235,13 +227,10 @@ <section class="events-recent"> <h2 class="title"> {{ - $t( - config && - config.instanceHomepageSorting === - InstanceHomepageSorting.UPCOMING - ? "Upcoming Events" - : "Last published events" - ) + adminSettings.instanceHomepageSorting === + InstanceHomepageSorting.DEFAULT + ? $t("Last published events") + : $t("Upcoming Events") }} </h2> <p> @@ -295,6 +284,7 @@ import { } from "../types/current-user.model"; import { CURRENT_USER_CLIENT } from "../graphql/user"; import { CLOSE_CONTENT, HOME_USER_QUERIES } from "../graphql/home"; +import { ADMIN_SETTINGS } from "../graphql/admin"; import RouteName from "../router/name"; import { IEvent } from "../types/event.model"; import DateComponent from "../components/Event/DateCalendarIcon.vue"; @@ -305,10 +295,11 @@ import Subtitle from "../components/Utils/Subtitle.vue"; @Component({ apollo: { + adminSettings: ADMIN_SETTINGS, events: { query: FETCH_EVENTS, variables() { - return this.config?.instanceHomepageSorting === + return this.adminSettings?.InstanceHomepageSorting === InstanceHomepageSorting.UPCOMING ? { orderBy: EventSortField.BEGINS_ON, @@ -399,8 +390,6 @@ export default class Home extends Vue { config!: IConfig; - InstanceHomepageSorting = InstanceHomepageSorting; - RouteName = RouteName; currentUserParticipations: IParticipant[] = []; diff --git a/lib/graphql/resolvers/config.ex b/lib/graphql/resolvers/config.ex index 13ba16a40..af9bded83 100644 --- a/lib/graphql/resolvers/config.ex +++ b/lib/graphql/resolvers/config.ex @@ -89,7 +89,6 @@ defmodule Mobilizon.GraphQL.Resolvers.Config do name: Config.instance_name(), registrations_open: Config.instance_registrations_open?(), registrations_allowlist: Config.instance_registrations_allowlist?(), - instance_homepage_sorting: Config.instance_homepage_sorting(), contact: Config.contact(), demo_mode: Config.instance_demo_mode?(), description: Config.instance_description(), diff --git a/lib/graphql/schema/admin.ex b/lib/graphql/schema/admin.ex index 4db30413e..ad3332dc2 100644 --- a/lib/graphql/schema/admin.ex +++ b/lib/graphql/schema/admin.ex @@ -393,10 +393,10 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do arg(:instance_long_description, :string, description: "The instance's long description") arg(:instance_slogan, :string, description: "The instance's slogan") arg(:contact, :string, description: "The instance's contact details") - arg(:instance_homepage_sorting, :instance_homepage_sorting, description: "The instance's homepage sorting") arg(:instance_terms, :string, description: "The instance's terms body text") arg(:instance_terms_type, :instance_terms_type, description: "The instance's terms type") arg(:instance_terms_url, :string, description: "The instance's terms URL") + arg(:instance_homepage_sorting, :instance_homepage_sorting, description: "The instance's homepage sorting") arg(:instance_privacy_policy, :string, description: "The instance's privacy policy body text" diff --git a/lib/graphql/schema/config.ex b/lib/graphql/schema/config.ex index 5c2f5d3ba..3d690bb92 100644 --- a/lib/graphql/schema/config.ex +++ b/lib/graphql/schema/config.ex @@ -48,8 +48,6 @@ defmodule Mobilizon.GraphQL.Schema.ConfigType do field(:version, :string, description: "The instance's version") field(:federating, :boolean, description: "Whether this instance is federation") - field(:instance_homepage_sorting, :instance_homepage_sorting, description: "The instance's homepage sorting") - field(:terms, :terms, description: "The instance's terms") do arg(:locale, :string, default_value: "en", @@ -60,6 +58,8 @@ defmodule Mobilizon.GraphQL.Schema.ConfigType do resolve(&Config.terms/3) end + field(:instance_homepage_sorting, :instance_homepage_sorting, description: "The instance's homepage sorting") + field(:privacy, :privacy, description: "The instance's privacy policy") do arg(:locale, :string, default_value: "en", diff --git a/lib/mobilizon/config.ex b/lib/mobilizon/config.ex index 1611adf98..196fdb968 100644 --- a/lib/mobilizon/config.ex +++ b/lib/mobilizon/config.ex @@ -411,10 +411,10 @@ defmodule Mobilizon.Config do instance_slogan: instance_slogan(), registrations_open: instance_registrations_open?(), contact: contact(), - instance_homepage_sorting: instance_homepage_sorting(), instance_terms: instance_terms(), instance_terms_type: instance_terms_type(), instance_terms_url: instance_terms_url(), + instance_homepage_sorting: instance_homepage_sorting(), instance_privacy_policy: instance_privacy(), instance_privacy_policy_type: instance_privacy_type(), instance_privacy_policy_url: instance_privacy_url(), diff --git a/schema.graphql b/schema.graphql index 14e0ffe55..c3fc01259 100644 --- a/schema.graphql +++ b/schema.graphql @@ -223,15 +223,15 @@ type Config { "Whether this instance is federation" federating: Boolean - "The instance's homepage sorting" - instanceHomepageSorting: InstanceHomepageSorting - "The instance's terms" terms( "The user's locale. The terms will be translated in their language, if available." locale: String ): Terms + "The instance's homepage sorting" + instanceHomepageSorting: InstanceHomepageSorting + "The instance's privacy policy" privacy( "The user's locale. The privacy policy will be translated in their language, if available." @@ -1953,9 +1953,6 @@ type RootMutationType { "The instance's contact details" contact: String - "The instance's homepage sorting" - instanceHomepageSorting: InstanceHomepageSorting - "The instance's terms body text" instanceTerms: String @@ -1965,6 +1962,9 @@ type RootMutationType { "The instance's terms URL" instanceTermsUrl: String + "The instance's homepage sorting" + instanceHomepageSorting: InstanceHomepageSorting + "The instance's privacy policy body text" instancePrivacyPolicy: String diff --git a/test/graphql/resolvers/admin_test.exs b/test/graphql/resolvers/admin_test.exs index 62cf40965..56c0db5d1 100644 --- a/test/graphql/resolvers/admin_test.exs +++ b/test/graphql/resolvers/admin_test.exs @@ -337,7 +337,7 @@ defmodule Mobilizon.GraphQL.Resolvers.AdminTest do instanceDescription instanceLongDescription contact - instanceHomepageSorting + InstanceHomepageSorting instanceTerms instanceTermsType instanceTermsUrl @@ -420,7 +420,7 @@ defmodule Mobilizon.GraphQL.Resolvers.AdminTest do $instanceDescription: String $instanceLongDescription: String $contact: String - $instanceHomepageSorting: InstanceHomepageSorting + $InstanceHomepageSorting: InstanceHomepageSorting $instanceTerms: String $instanceTermsType: InstanceTermsType $instanceTermsUrl: String @@ -435,7 +435,7 @@ defmodule Mobilizon.GraphQL.Resolvers.AdminTest do instanceDescription: $instanceDescription instanceLongDescription: $instanceLongDescription contact: $contact - instanceHomepageSorting: $instanceHomepageSorting + InstanceHomepageSorting: $InstanceHomepageSorting instanceTerms: $instanceTerms instanceTermsType: $instanceTermsType instanceTermsUrl: $instanceTermsUrl