Skip to content

Commit

Permalink
Move site tracking code into admin settings
Browse files Browse the repository at this point in the history
  • Loading branch information
janosrusiczki committed Apr 21, 2024
1 parent 2faa6a7 commit 5ab8823
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 7 deletions.
3 changes: 2 additions & 1 deletion app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ def set_settings
sentry_dsn: ENV.fetch('PHOTONIA_FE_SENTRY_DSN', ''),
sentry_sample_rate: ENV.fetch('PHOTONIA_FE_SENTRY_SAMPLE_RATE', 0.1).to_f,
site_name: Setting.site_name,
site_description: Setting.site_description
site_description: Setting.site_description,
site_tracking_code: Setting.site_tracking_code
}.to_json
end

Expand Down
1 change: 1 addition & 0 deletions app/graphql/types/admin_settings_type.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ class AdminSettingsType < Types::BaseObject
description 'Admin Settings'
field :site_name, String, null: false
field :site_description, String, null: false
field :site_tracking_code, String, null: false
end
end
4 changes: 3 additions & 1 deletion app/graphql/types/mutation_type.rb
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ class MutationType < GraphQL::Schema::Object
description 'Update admin settings'
argument :site_name, String, 'Site name', required: true
argument :site_description, String, 'Site description', required: true
argument :site_tracking_code, String, 'Site tracking code', required: true
end

def add_photos_to_album(album_id:, photo_ids:)
Expand Down Expand Up @@ -166,10 +167,11 @@ def update_user_settings(email:, timezone:)
user
end

def update_admin_settings(site_name:, site_description:)
def update_admin_settings(site_name:, site_description:, site_tracking_code:)
context[:authorize].call(Setting, :update?)
Setting.site_name = site_name
Setting.site_description = site_description
Setting.site_tracking_code = site_tracking_code

Check warning on line 174 in app/graphql/types/mutation_type.rb

View check run for this annotation

Codecov / codecov/patch

app/graphql/types/mutation_type.rb#L174

Added line #L174 was not covered by tests
Setting
end
end
Expand Down
35 changes: 33 additions & 2 deletions app/javascript/users/admin-settings.vue
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,22 @@
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label is-normal">
<label class="label">Site Tracking Code</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<textarea
class="textarea"
placeholder="Site Tracking Code"
v-model="siteTrackingCode"
></textarea>
</div>
</div>
</div>
</div>
<hr />
<div class="field is-horizontal">
<div class="field-label">
Expand Down Expand Up @@ -85,13 +101,15 @@ useTitle("Admin Settings");
const newSiteName = ref(null);
const newSiteDescription = ref(null);
const newSiteTrackingCode = ref("");
const showReloadButton = ref(false);
const ADMIN_SETTINGS_QUERY = gql`
query AdminSettingsQuery {
adminSettings {
siteName
siteDescription
siteTrackingCode
}
}
`;
Expand All @@ -110,27 +128,40 @@ const siteDescription = computed({
newSiteDescription.value = value;
},
});
const siteTrackingCode = computed({
get: () => result.value?.adminSettings.siteTrackingCode,
set: (value) => {
newSiteTrackingCode.value = value;
},
});
const {
mutate: submit,
onDone,
onError,
} = useMutation(
gql`
mutation ($siteName: String!, $siteDescription: String!) {
mutation (
$siteName: String!
$siteDescription: String!
$siteTrackingCode: String!
) {
updateAdminSettings(
siteName: $siteName
siteDescription: $siteDescription
siteTrackingCode: $siteTrackingCode
) {
siteName
siteDescription
siteTrackingCode
}
}
`,
() => ({
variables: {
siteName: newSiteName.value || siteName.value,
siteDescription: newSiteDescription.value || siteDescription.value,
siteTrackingCode: newSiteTrackingCode.value,
},
update: (cache, { data }) => {
cache.writeQuery({
Expand All @@ -140,7 +171,7 @@ const {
},
});
},
})
}),
);
onDone(({ data }) => {
Expand Down
3 changes: 1 addition & 2 deletions app/models/setting.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,5 @@ class Setting < RailsSettings::Base

field :site_name, default: "Photonia", type: :string
field :site_description, default: "Photonia is a photo sharing site.", type: :string

field :tracking_code, default: ENV['PHOTONIA_TRACKING_CODE'], type: :string
field :site_tracking_code, default: ENV['PHOTONIA_TRACKING_CODE'] || "", type: :string
end
2 changes: 1 addition & 1 deletion app/views/layouts/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">

<script defer src="https://use.fontawesome.com/releases/v5.15.4/js/all.js"></script>
<%= ENV['PHOTONIA_TRACKING_CODE']&.html_safe %>
<%= Setting.site_tracking_code.html_safe %>

<%= yield(:autodiscovery_link) %>

Expand Down

0 comments on commit 5ab8823

Please sign in to comment.