diff options
author | MrYummy <elemental428@gmail.com> | 2017-07-07 05:33:39 +0200 |
---|---|---|
committer | MrYummy <elemental428@gmail.com> | 2017-07-07 05:41:22 +0200 |
commit | 668c9a296021d37b0d1b0b2c040f2829e9213a59 (patch) | |
tree | bd8185486298b331e988c96101b23f08c541cc7f | |
parent | 2819989b72a38e30192cd57661bde89bc1ebfc7c (diff) |
Added mastodon and mastodon_instance settings to user profiles
-rw-r--r-- | app/controllers/users_controller.rb | 4 | ||||
-rw-r--r-- | app/models/user.rb | 2 | ||||
-rw-r--r-- | app/views/users/edit.html.erb | 7 | ||||
-rw-r--r-- | app/views/users/show.html.erb | 11 | ||||
-rw-r--r-- | db/migrate/20170707012441_add_mastodon_to_users.rb | 6 | ||||
-rw-r--r-- | db/schema.rb | 75 |
6 files changed, 65 insertions, 40 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 3d49591..3380482 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -137,9 +137,9 @@ class UsersController < ApplicationController def update if (mod? && current_user.role >= @user.role ) || (@user.is?(current_user) && confirmed?) if mod? - userdata = user_params([:name, :skype, :skype_public, :youtube, :twitter, :about, :role, :badge, :confirmed, :header_scroll, :utc_time, :dark]) + userdata = user_params([:name, :skype, :skype_public, :youtube, :twitter, :mastodon, :mastodon_instance, :about, :role, :badge, :confirmed, :header_scroll, :utc_time, :dark]) else - userdata = user_params([:name, :skype, :skype_public, :youtube, :twitter, :about, :header_scroll, :utc_time, :dark]) + userdata = user_params([:name, :skype, :skype_public, :youtube, :twitter, :mastodon, :mastodon_instance, :about, :header_scroll, :utc_time, :dark]) end if userdata[:role] role = Role.get(userdata[:role]) diff --git a/app/models/user.rb b/app/models/user.rb index b996978..a4539ac 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -167,6 +167,8 @@ class User < ActiveRecord::Base self.email.strip! if self.email self.about.strip! if self.about self.skype.strip! if self.skype + self.mastodon.strip! if self.mastodon + self.mastodon_instance.strip! if self.mastodon_instance self.youtube.strip! if self.youtube self.twitter.strip! if self.twitter end diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb index 133a69d..edcd33c 100644 --- a/app/views/users/edit.html.erb +++ b/app/views/users/edit.html.erb @@ -55,6 +55,13 @@ </td> </tr> <tr> + <td>Mastodon</td> + <td style="display:inline;padding:0px"> + <%= f.text_field :mastodon, placeholder: "Mastodon username", disabled: !(@user.is?(current_user) && confirmed? || (mod? && current_user.role >= @user.role)), style: "width:49%;float:left;margin-right:2%" %> + <%= f.text_field :mastodon_instance, placeholder: "Mastodon instance", disabled: !(@user.is?(current_user) && confirmed? || (mod? && current_user.role >= @user.role)), style: "width:49%" %> + </td> + </tr> + <tr> <td>YouTube Channel ID</td> <td> <%= f.text_field :youtube, placeholder: "YouTube Channel ID", disabled: !can_edit? %> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index e371a09..fbf848c 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -58,6 +58,17 @@ <td><%= link_to @user.skype, "skype:#{@user.skype}?chat", target: "_blank" %></a></td> </tr> <% end %> + <% if !@user.mastodon.blank? %> + <tr> + <td><b>Mastodon</b></td> + <td> + <% if @user.mastodon_instance %> + <%= link_to "@#{@user.mastodon}", "https://#{CGI.escape(@user.mastodon_instance)}/@#{CGI.escape(@user.mastodon)}", :target => "_blank" %></td> + <% else %> + <%= @user.mastodon %> + <% end %> + </tr> + <% end %> <% if !@user.youtube.blank? && !@user.youtube_channelname.blank? %> <tr> <td><b>YouTube</b></td> diff --git a/db/migrate/20170707012441_add_mastodon_to_users.rb b/db/migrate/20170707012441_add_mastodon_to_users.rb new file mode 100644 index 0000000..3401f1b --- /dev/null +++ b/db/migrate/20170707012441_add_mastodon_to_users.rb @@ -0,0 +1,6 @@ +class AddMastodonToUsers < ActiveRecord::Migration + def change + add_column :users, :mastodon, :string + add_column :users, :mastodon_instance, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 5849cf5..b32988a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,18 +11,17 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170703003647) do +ActiveRecord::Schema.define(version: 20170707012441) do create_table "badges", force: :cascade do |t| - t.string "name", limit: 191 - t.string "symbol", limit: 191 - t.string "color", limit: 191 - t.integer "value", limit: 4 + t.string "name", limit: 191 + t.string "symbol", limit: 191 + t.string "color", limit: 191 end create_table "blogposts", force: :cascade do |t| - t.string "title", limit: 255 - t.text "content", limit: 16777215 + t.string "title", limit: 191 + t.text "content", limit: 65535 t.integer "user_author_id", limit: 4 t.integer "user_editor_id", limit: 4 t.datetime "created_at" @@ -30,7 +29,7 @@ ActiveRecord::Schema.define(version: 20170703003647) do end create_table "comments", force: :cascade do |t| - t.text "content", limit: 16777215 + t.text "content", limit: 65535 t.integer "user_author_id", limit: 4 t.integer "user_editor_id", limit: 4 t.integer "blogpost_id", limit: 4 @@ -39,14 +38,14 @@ ActiveRecord::Schema.define(version: 20170703003647) do end create_table "forumgroups", force: :cascade do |t| - t.string "name", limit: 255 + t.string "name", limit: 191 t.integer "position", limit: 4 t.integer "role_read_id", limit: 4 t.integer "role_write_id", limit: 4 end create_table "forums", force: :cascade do |t| - t.string "name", limit: 255 + t.string "name", limit: 191 t.integer "position", limit: 4 t.integer "role_read_id", limit: 4 t.integer "role_write_id", limit: 4 @@ -60,10 +59,10 @@ ActiveRecord::Schema.define(version: 20170703003647) do end create_table "forumthreads", force: :cascade do |t| - t.string "title", limit: 255 - t.text "content", limit: 16777215 - t.boolean "sticky", default: false - t.boolean "locked", default: false + t.string "title", limit: 191 + t.text "content", limit: 65535 + t.boolean "sticky", default: false + t.boolean "locked", default: false t.integer "user_author_id", limit: 4 t.integer "user_editor_id", limit: 4 t.integer "forum_id", limit: 4 @@ -73,49 +72,47 @@ ActiveRecord::Schema.define(version: 20170703003647) do end add_index "forumthreads", ["content"], name: "index_forumthreads_on_content", type: :fulltext - add_index "forumthreads", ["title", "content"], name: "forumthreads_title_content", type: :fulltext add_index "forumthreads", ["title", "content"], name: "index_forumthreads_on_title_and_content", type: :fulltext add_index "forumthreads", ["title"], name: "index_forumthreads_on_title", type: :fulltext create_table "info", force: :cascade do |t| - t.string "title", limit: 255 - t.text "content", limit: 16777215 + t.string "title", limit: 191 + t.text "content", limit: 65535 t.datetime "created_at" t.datetime "updated_at" end create_table "labels", force: :cascade do |t| - t.string "name", limit: 255 - t.string "color", limit: 255 + t.string "name", limit: 191 + t.string "color", limit: 191 end create_table "register_tokens", force: :cascade do |t| t.string "uuid", limit: 32, null: false t.string "token", limit: 6, null: false - t.string "email", limit: 191 + t.string "email", limit: 191, null: false end - add_index "register_tokens", ["email"], name: "index_register_tokens_on_email", unique: true, using: :btree add_index "register_tokens", ["uuid"], name: "index_register_tokens_on_uuid", unique: true, using: :btree create_table "roles", force: :cascade do |t| - t.string "name", limit: 255 + t.string "name", limit: 191 t.integer "value", limit: 4 - t.string "color", limit: 255 + t.string "color", limit: 191 end create_table "sessions", force: :cascade do |t| - t.string "session_id", limit: 255, null: false - t.text "data", limit: 16777215 + t.string "session_id", limit: 191, null: false + t.text "data", limit: 65535 t.datetime "created_at" t.datetime "updated_at" end - add_index "sessions", ["session_id"], name: "index_sessions_on_session_id", length: {"session_id"=>191}, using: :btree + add_index "sessions", ["session_id"], name: "index_sessions_on_session_id", using: :btree add_index "sessions", ["updated_at"], name: "index_sessions_on_updated_at", using: :btree create_table "threadreplies", force: :cascade do |t| - t.text "content", limit: 16777215 + t.text "content", limit: 65535 t.integer "user_author_id", limit: 4 t.integer "user_editor_id", limit: 4 t.integer "forumthread_id", limit: 4 @@ -127,19 +124,19 @@ ActiveRecord::Schema.define(version: 20170703003647) do add_index "threadreplies", ["forumthread_id"], name: "index_threadreplies_on_forumthread_id", using: :btree create_table "users", force: :cascade do |t| - t.string "uuid", limit: 255, null: false + t.string "uuid", limit: 191, null: false t.string "name", limit: 191 - t.string "password_digest", limit: 255, null: false - t.string "ign", limit: 255, null: false - t.string "email", limit: 191 + t.string "password_digest", limit: 191, null: false + t.string "ign", limit: 191, null: false + t.string "email", limit: 191, null: false t.text "about", limit: 65535 - t.string "last_ip", limit: 255 - t.string "skype", limit: 255 + t.string "last_ip", limit: 191 + t.string "skype", limit: 191 t.boolean "skype_public", default: false - t.string "youtube", limit: 255 - t.string "youtube_channelname", limit: 255 - t.string "twitter", limit: 255 - t.string "email_token", limit: 255 + t.string "youtube", limit: 191 + t.string "youtube_channelname", limit: 191 + t.string "twitter", limit: 191 + t.string "email_token", limit: 191 t.boolean "confirmed", default: false t.datetime "last_seen" t.integer "role_id", limit: 4, null: false @@ -150,10 +147,12 @@ ActiveRecord::Schema.define(version: 20170703003647) do t.boolean "mail_own_blogpost_comment", default: true t.boolean "mail_other_blogpost_comment", default: true t.boolean "mail_mention", default: true - t.integer "badge_id", limit: 4, default: 0 + t.integer "badge_id", limit: 4, default: 1 t.boolean "utc_time", default: false t.boolean "header_scroll", default: false t.boolean "dark", default: false + t.string "mastodon", limit: 191 + t.string "mastodon_instance", limit: 191 end add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree |