summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMrYummy <elemental428@gmail.com>2017-07-07 05:33:39 +0200
committerMrYummy <elemental428@gmail.com>2017-07-07 05:41:22 +0200
commit668c9a296021d37b0d1b0b2c040f2829e9213a59 (patch)
treebd8185486298b331e988c96101b23f08c541cc7f
parent2819989b72a38e30192cd57661bde89bc1ebfc7c (diff)
Added mastodon and mastodon_instance settings to user profiles
-rw-r--r--app/controllers/users_controller.rb4
-rw-r--r--app/models/user.rb2
-rw-r--r--app/views/users/edit.html.erb7
-rw-r--r--app/views/users/show.html.erb11
-rw-r--r--db/migrate/20170707012441_add_mastodon_to_users.rb6
-rw-r--r--db/schema.rb75
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