diff --git a/app/assets/fonts/mastodon.eot b/app/assets/fonts/mastodon.eot new file mode 100755 index 00000000..59cd79ab Binary files /dev/null and b/app/assets/fonts/mastodon.eot differ diff --git a/app/assets/fonts/mastodon.otf b/app/assets/fonts/mastodon.otf new file mode 100755 index 00000000..2d415249 Binary files /dev/null and b/app/assets/fonts/mastodon.otf differ diff --git a/app/assets/fonts/mastodon.svg b/app/assets/fonts/mastodon.svg new file mode 100755 index 00000000..8ea5bf6e --- /dev/null +++ b/app/assets/fonts/mastodon.svg @@ -0,0 +1,14 @@ + + + +Copyright (C) 2017 by original authors @ fontello.com + + + + + + + + + + \ No newline at end of file diff --git a/app/assets/fonts/mastodon.ttf b/app/assets/fonts/mastodon.ttf new file mode 100755 index 00000000..60c8ad30 Binary files /dev/null and b/app/assets/fonts/mastodon.ttf differ diff --git a/app/assets/fonts/mastodon.woff b/app/assets/fonts/mastodon.woff new file mode 100755 index 00000000..73365373 Binary files /dev/null and b/app/assets/fonts/mastodon.woff differ diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index c95bbb87..0767d15d 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -18,4 +18,5 @@ *= require osem-navbar *= require selectize *= require selectize.bootstrap3 + *= require mastodon */ diff --git a/app/assets/stylesheets/mastodon.css.scss b/app/assets/stylesheets/mastodon.css.scss new file mode 100755 index 00000000..ddb481d1 --- /dev/null +++ b/app/assets/stylesheets/mastodon.css.scss @@ -0,0 +1,45 @@ +@font-face { + font-family: 'mastodon'; + src: font-url('mastodon.eot'); + src: local('☺'), + font-url('mastodon.otf') format('opentype'), + font-url('mastodon.woff') format('woff'), + font-url('mastodon.ttf') format('truetype'), + font-url('mastodon.svg') format('svg'); + font-weight: normal; + font-style: normal; +} + + [class^="icon-"]:before, [class*=" icon-"]:before { + font-family: "mastodon"; + font-style: normal; + font-weight: normal; + speak: none; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} + +.icon-mastodon:before { content: '\e800'; } /* '' */ +.icon-mastodon_alt:before { content: '\e801'; } /* '' */ diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index 72ac0d42..1003e098 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -22,7 +22,7 @@ module Admin # Only allow a trusted parameter "white list" through. def contact_params - params.require(:contact).permit(:social_tag, :email, :facebook, :googleplus, :twitter, :instagram, :public, :sponsor_email) + params.require(:contact).permit(:social_tag, :email, :facebook, :googleplus, :twitter, :instagram, :mastodon, :public, :sponsor_email) end end end diff --git a/app/models/contact.rb b/app/models/contact.rb index 799c8748..dd7196dd 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -5,11 +5,11 @@ class Contact < ApplicationRecord validates :conference, presence: true # Conferences only have one contact - validates :facebook, :twitter, :googleplus, :instagram, + validates :facebook, :twitter, :googleplus, :instagram, :mastodon, format: URI::regexp(%w(http https)), allow_blank: true def has_social_media? - return true if facebook.present? || twitter.present? || googleplus.present? || instagram.present? || email.present? + return true if facebook.present? || twitter.present? || googleplus.present? || instagram.present? || mastodon.present? || email.present? false end end diff --git a/app/views/admin/contacts/edit.html.haml b/app/views/admin/contacts/edit.html.haml index db06dd7e..1c48e48a 100644 --- a/app/views/admin/contacts/edit.html.haml +++ b/app/views/admin/contacts/edit.html.haml @@ -16,4 +16,5 @@ = f.input :googleplus, label: 'Google+ Url', hint: 'This will appear in the social media section as the link to the Google+ Page of your Conference' = f.input :twitter, hint: 'This will appear in the social media section as the link to the Twitter Page of your Conference' = f.input :instagram, hint: 'This will appear in the social media section as the link to the Instagram Page of your Conference' + = f.input :mastodon, hint: 'This will appear in the social media section as the link to the Mastodon Page of your Conference' = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' } diff --git a/app/views/conferences/_social_media.html.haml b/app/views/conferences/_social_media.html.haml new file mode 100644 index 00000000..49216b6c --- /dev/null +++ b/app/views/conferences/_social_media.html.haml @@ -0,0 +1,21 @@ +.container + .row + .col-md-12.text-center + - unless @conference.contact.facebook.blank? + = link_to "#{ @conference.contact.facebook }" do + %i.fa.fa-facebook-square.fa-4x + - unless @conference.contact.twitter.blank? + = link_to "#{ @conference.contact.twitter }" do + %i.fa.fa-twitter.fa-4x + - unless @conference.contact.instagram.blank? + = link_to "#{ @conference.contact.instagram }" do + %i.fa.fa-instagram.fa-4x + - unless @conference.contact.googleplus.blank? + = link_to "#{ @conference.contact.googleplus }" do + %i.fa.fa-google-plus-square.fa-4x + - unless @conference.contact.mastodon.blank? + = link_to "#{ @conference.contact.mastodon }" do + %i.fa.icon-mastodon.fa-4x + - unless @conference.contact.email.blank? + = mail_to "#{ @conference.contact.email }" do + %i.fa.fa-envelope-o.fa-4x diff --git a/db/migrate/20171201163628_add_mastodon_to_contact.rb b/db/migrate/20171201163628_add_mastodon_to_contact.rb new file mode 100644 index 00000000..9b022019 --- /dev/null +++ b/db/migrate/20171201163628_add_mastodon_to_contact.rb @@ -0,0 +1,5 @@ +class AddMastodonToContact < ActiveRecord::Migration + def change + add_column :contacts, :mastodon, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 43602f9b..ed33d5a3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20171130172334) do +ActiveRecord::Schema.define(version: 20171201163628) do create_table "ahoy_events", force: :cascade do |t| t.integer "visit_id" @@ -145,6 +145,7 @@ ActiveRecord::Schema.define(version: 20171130172334) do t.datetime "created_at" t.datetime "updated_at" t.string "sponsor_email" + t.string "mastodon" end create_table "delayed_jobs", force: :cascade do |t|