diff --git a/app/services/contact_details/country.rb b/app/services/contact_details/country.rb new file mode 100644 index 0000000000000000000000000000000000000000..29132d5a235451a978d56fb3a3ed5fcafcbac270 --- /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 0000000000000000000000000000000000000000..1de30890d871960277fcc3c8a2c8af63fe33e979 --- /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 0000000000000000000000000000000000000000..f3556062fd752d2f68b97ef48d1587cd18196abf --- /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 407d0f2c0538fa58bc22fa0fd8781f80f4a00573..3a9a6903813c52a8cbcf1a5b5527f5e90c09b004 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 0000000000000000000000000000000000000000..3ac9e3345a57259c95ff6d68e5831c3cc54f79d9 --- /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 9a0bf5aabf22ac1d062082a9123eb644a3077321..5f3c340a592ea110642faaf60ce098cbc858494f 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 07d8a5122e41d35cc21c9a8245a21aacaecdd9ac..9aea1854f6a71db5ac097f49d5cfad135878895f 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 %>