Added mastodon and mastodon_instance settings to user profiles

This commit is contained in:
MrYummy
2017-07-07 05:33:39 +02:00
parent 2819989b72
commit 668c9a2960
6 changed files with 65 additions and 40 deletions

View File

@@ -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])

View File

@@ -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

View File

@@ -54,6 +54,13 @@
<%= f.select :skype_public, [["Staff only", false], ["All users", true]], {}, { disabled: !can_edit? } %>
</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>

View File

@@ -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>

View File

@@ -0,0 +1,6 @@
class AddMastodonToUsers < ActiveRecord::Migration
def change
add_column :users, :mastodon, :string
add_column :users, :mastodon_instance, :string
end
end

View File

@@ -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