From 5a45ddf948c33d46eb665c64642d7ed1af8432a4 Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Wed, 18 Jan 2023 09:53:47 +0100 Subject: [PATCH] better --- app/services/contact_details/country.rb | 10 ++++++++ app/services/contact_details/email.rb | 9 ++++++++ app/services/contact_details/phone.rb | 14 +++++++++++ app/services/contact_details/twitter.rb | 1 - .../static/_contact_detail.html.erb | 6 +++++ .../university/organizations/static.html.erb | 23 +++++++++---------- .../admin/university/people/static.html.erb | 19 ++++++++------- 7 files changed, 59 insertions(+), 23 deletions(-) create mode 100644 app/services/contact_details/country.rb create mode 100644 app/services/contact_details/email.rb create mode 100644 app/services/contact_details/phone.rb create mode 100644 app/views/admin/application/static/_contact_detail.html.erb diff --git a/app/services/contact_details/country.rb b/app/services/contact_details/country.rb new file mode 100644 index 000000000..29132d5a2 --- /dev/null +++ b/app/services/contact_details/country.rb @@ -0,0 +1,10 @@ +class ContactDetails::Country < ContactDetails::Base + + protected + + def prepare_label + super + # TODO country name + end + +end \ No newline at end of file diff --git a/app/services/contact_details/email.rb b/app/services/contact_details/email.rb new file mode 100644 index 000000000..1de30890d --- /dev/null +++ b/app/services/contact_details/email.rb @@ -0,0 +1,9 @@ +class ContactDetails::Email < ContactDetails::Base + + protected + + def prepare_url + @url = "mailto:#{@string}" + end + +end \ No newline at end of file diff --git a/app/services/contact_details/phone.rb b/app/services/contact_details/phone.rb new file mode 100644 index 000000000..f3556062f --- /dev/null +++ b/app/services/contact_details/phone.rb @@ -0,0 +1,14 @@ +class ContactDetails::Phone < ContactDetails::Base + + protected + + def prepare_url + @url = @string.dup + @url.remove! ' ' + @url.remove! '.' + end + + def prepare_label + @label = @string + end +end \ No newline at end of file diff --git a/app/services/contact_details/twitter.rb b/app/services/contact_details/twitter.rb index 407d0f2c0..3a9a69038 100644 --- a/app/services/contact_details/twitter.rb +++ b/app/services/contact_details/twitter.rb @@ -1,7 +1,6 @@ class ContactDetails::Twitter < ContactDetails::Base URL = 'https://twitter.com' DOMAIN = 'twitter.com' - protected diff --git a/app/views/admin/application/static/_contact_detail.html.erb b/app/views/admin/application/static/_contact_detail.html.erb new file mode 100644 index 000000000..3ac9e3345 --- /dev/null +++ b/app/views/admin/application/static/_contact_detail.html.erb @@ -0,0 +1,6 @@ +<% +detail = kind.new data +%> + <%= variable %>: + label: <%= detail.label %> + url: <%= detail.url %> \ No newline at end of file diff --git a/app/views/admin/university/organizations/static.html.erb b/app/views/admin/university/organizations/static.html.erb index 9a0bf5aab..5f3c340a5 100644 --- a/app/views/admin/university/organizations/static.html.erb +++ b/app/views/admin/university/organizations/static.html.erb @@ -24,21 +24,20 @@ kind: <%= key %>: > <%= prepare_text_for_static value %> <% end %> - -contact_details: - website: <% detail = ContactDetails::Website.new @about.url %> - label: <%= detail.label %> - url: <%= detail.url %> - linkedin: <% detail = ContactDetails::Linkedin.new @about.linkedin %> - label: <%= detail.label %> - url: <%= detail.url %> - twitter: <% detail = ContactDetails::Twitter.new @about.twitter %> - label: <%= detail.label %> - url: <%= detail.url %> - <% # url is a reserved keyword for Hugo %> website: > <%= prepare_text_for_static @about.url %> +contact_details: +<%= render 'admin/application/static/contact_detail', variable: :address, data: @about.address, kind: ContactDetails::Base %> +<%= render 'admin/application/static/contact_detail', variable: :zipcode, data: @about.zipcode, kind: ContactDetails::Base %> +<%= render 'admin/application/static/contact_detail', variable: :city, data: @about.city, kind: ContactDetails::Base %> +<%= render 'admin/application/static/contact_detail', variable: :country, data: @about.country, kind: ContactDetails::Country %> +<%= render 'admin/application/static/contact_detail', variable: :address, data: @about.address, kind: ContactDetails::Base %> +<%= render 'admin/application/static/contact_detail', variable: :website, data: @about.url, kind: ContactDetails::Website %> +<%= render 'admin/application/static/contact_detail', variable: :linkedin, data: @about.linkedin, kind: ContactDetails::Linkedin %> +<%= render 'admin/application/static/contact_detail', variable: :twitter, data: @about.twitter, kind: ContactDetails::Twitter %> +<%= render 'admin/application/static/contact_detail', variable: :phone, data: @about.phone, kind: ContactDetails::Phone %> +<%= render 'admin/application/static/contact_detail', variable: :email, data: @about.email, kind: ContactDetails::Email %> <% if @about.logo.attached? %> logo: "<%= @about.logo.blob.id %>" <% end %> diff --git a/app/views/admin/university/people/static.html.erb b/app/views/admin/university/people/static.html.erb index 07d8a5122..9aea1854f 100644 --- a/app/views/admin/university/people/static.html.erb +++ b/app/views/admin/university/people/static.html.erb @@ -20,16 +20,15 @@ linkedin: >- website: >- <%= @about.url %> contact_details: - website: <% detail = ContactDetails::Website.new @about.url %> - label: <%= detail.label %> - url: <%= detail.url %> - linkedin: <% detail = ContactDetails::Linkedin.new @about.linkedin %> - label: <%= detail.label %> - url: <%= detail.url %> - twitter: <% detail = ContactDetails::Twitter.new @about.twitter %> - label: <%= detail.label %> - url: <%= detail.url %> - +<%= render 'admin/application/static/contact_detail', variable: :address, data: @about.address, kind: ContactDetails::Base %> +<%= render 'admin/application/static/contact_detail', variable: :zipcode, data: @about.zipcode, kind: ContactDetails::Base %> +<%= render 'admin/application/static/contact_detail', variable: :city, data: @about.city, kind: ContactDetails::Base %> +<%= render 'admin/application/static/contact_detail', variable: :country, data: @about.country, kind: ContactDetails::Country %> +<%= render 'admin/application/static/contact_detail', variable: :website, data: @about.url, kind: ContactDetails::Website %> +<%= render 'admin/application/static/contact_detail', variable: :linkedin, data: @about.linkedin, kind: ContactDetails::Linkedin %> +<%= render 'admin/application/static/contact_detail', variable: :twitter, data: @about.twitter, kind: ContactDetails::Twitter %> +<%= render 'admin/application/static/contact_detail', variable: :phone, data: @about.phone_mobile, kind: ContactDetails::Phone %> +<%= render 'admin/application/static/contact_detail', variable: :email, data: @about.email, kind: ContactDetails::Email %> <% if @about.best_picture.attached? %> image: "<%= @about.best_picture.blob.id %>" <% end %> -- GitLab