nippo_core 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/nippo_core/application_controller.rb +1 -1
  3. data/app/controllers/nippo_core/group_member_relations_controller.rb +13 -2
  4. data/app/controllers/nippo_core/groups/users_controller.rb +11 -0
  5. data/app/controllers/nippo_core/groups_controller.rb +9 -2
  6. data/app/controllers/nippo_core/users/registrations_controller.rb +1 -0
  7. data/app/controllers/nippo_core/users/sessions_controller.rb +1 -0
  8. data/app/models/nippo_core/group.rb +13 -7
  9. data/app/models/nippo_core/group_member_relation.rb +2 -0
  10. data/app/models/nippo_core/user.rb +24 -0
  11. data/app/views/layouts/nippo_core/application.slim +27 -17
  12. data/app/views/nippo_core/application/_link_to_join.slim +4 -0
  13. data/app/views/nippo_core/group_member_relations/accept.js.erb +2 -0
  14. data/app/views/nippo_core/group_member_relations/new.slim +4 -3
  15. data/app/views/nippo_core/group_member_relations/unaccepted.slim +6 -0
  16. data/app/views/nippo_core/groups/index.slim +3 -3
  17. data/app/views/nippo_core/groups/new.slim +6 -5
  18. data/app/views/nippo_core/groups/request_join.js.erb +2 -0
  19. data/app/views/nippo_core/groups/show.slim +29 -9
  20. data/app/views/nippo_core/reports/index.slim +2 -2
  21. data/app/views/nippo_core/reports/new.slim +5 -3
  22. data/app/views/nippo_core/reports/show.slim +6 -4
  23. data/app/views/nippo_core/users/registrations/new.slim +14 -13
  24. data/app/views/nippo_core/users/sessions/new.slim +7 -6
  25. data/app/views/nippo_core/users/show.slim +10 -8
  26. data/config/routes.rb +9 -1
  27. data/db/migrate/20170420155712_create_nippo_core_group_member_relations.rb +3 -1
  28. data/lib/nippo_core/version.rb +1 -1
  29. metadata +9 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8377e6389fa4c8f4a6bf7f2671cf80a46b78c0fb
4
- data.tar.gz: 6526438189d1fcd30e4dba596ad7c2ac336e9662
3
+ metadata.gz: 2bb048e8542f800f97507d2c5159631bcf63920a
4
+ data.tar.gz: dff7e64c3afa052e464fd48cb2b9933f758b2ba6
5
5
  SHA512:
6
- metadata.gz: 117027c5f86fd9e34266fd763fe96dc3afb435f1c1e917cc2765a1bec0ccd9eec9180c6f453fff6a0e04f30e836ecdd7724a776b770d32ef085b33e55693f95d
7
- data.tar.gz: 00f96001be8c7578d3377a552043b6c219988189672c8fd87686306a3278bc7aff06b695b59fb287f03b11cc3573ca14dc3e8f7b513d5954c8eb2dc14ea39df2
6
+ metadata.gz: a14ddbf89456e67c8d8837719e965bc7d0e15e893fbc4d921af9a982e5d583d6f200ce3f8e655ba4998f94f6970a83f2962863b1f496cc15e18fa76ae7babc3c
7
+ data.tar.gz: 3fa1aba815dca42db8a5e6f0bb0d041dd066cf9b6283bf0bc1ae00ccadcf8e5ea910abc5dc08a27be3ad8fdb69ac364482e554a31fa1977a8839a0a0aed1f105
@@ -5,7 +5,7 @@ module NippoCore
5
5
 
6
6
  private
7
7
  def find_group
8
- @group = NippoCore::Group.find(params[:group_id])
8
+ @group = NippoCore::Group.find(params[:group_id] || params[:id])
9
9
  end
10
10
  end
11
11
  end
@@ -1,6 +1,6 @@
1
1
  module NippoCore
2
2
  class GroupMemberRelationsController < ApplicationController
3
- before_action :find_group
3
+ before_action :find_group, except: :accept
4
4
 
5
5
  def new
6
6
  @group_member_relations = @group.group_member_relations.new
@@ -10,9 +10,20 @@ module NippoCore
10
10
  def create
11
11
  redirect_to home_path and return unless @group.member?(current_user)
12
12
  user = NippoCore::User.find(params[:group_member_relation][:user_id])
13
- @group.add_member(user)
13
+ current_user.add_member(user, @group)
14
14
 
15
15
  redirect_to group_path(@group)
16
16
  end
17
+
18
+ def accept
19
+ @request = NippoCore::GroupMemberRelation.find(params[:group_member_relation_id])
20
+ current_user.accept_request(@request)
21
+
22
+ render layout: nil
23
+ end
24
+
25
+ def unaccepted
26
+ @requests = @group.unaccepted_requests.limit(5)
27
+ end
17
28
  end
18
29
  end
@@ -0,0 +1,11 @@
1
+ module NippoCore
2
+ module Groups
3
+ class UsersController < ApplicationController
4
+ before_action :find_group
5
+
6
+ def unaccepted
7
+ @requests = @group.unaccepted_requests.limit(5)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,6 +1,7 @@
1
1
  module NippoCore
2
2
  class GroupsController < ApplicationController
3
3
  before_action :initialize_group, only: [:new, :create]
4
+ before_action :find_group, only: [:show, :request_join]
4
5
 
5
6
  def index
6
7
  @groups = NippoCore::Group.order(created_at: :desc).page(params[:page]).per(10)
@@ -10,19 +11,25 @@ module NippoCore
10
11
  end
11
12
 
12
13
  def show
13
- @group = NippoCore::Group.find(params[:id])
14
14
  @reports = @group.reports.order(reported_at: :desc).limit(5)
15
+ @requests = @group.unaccepted_requests.limit(5)
16
+ @members = @group.members
15
17
  end
16
18
 
17
19
  def create
18
20
  if @group.save
19
- @group.add_member(current_user)
21
+ current_user.add_member(current_user, @group)
20
22
  redirect_to root_path
21
23
  else
22
24
  render 'new', status: 400
23
25
  end
24
26
  end
25
27
 
28
+ def request_join
29
+ result = current_user.send_request(@group)
30
+ render layout: nil
31
+ end
32
+
26
33
  private
27
34
  def initialize_group
28
35
  @group = NippoCore::Group.new(group_params.merge(creator: current_user))
@@ -1,5 +1,6 @@
1
1
  class NippoCore::Users::RegistrationsController < Devise::RegistrationsController
2
2
  before_action :configure_sign_up_params, only: [:create]
3
+ layout 'nippo_core/application'
3
4
  # before_action :configure_account_update_params, only: [:update]
4
5
 
5
6
  # GET /resource/sign_up
@@ -1,4 +1,5 @@
1
1
  class NippoCore::Users::SessionsController < Devise::SessionsController
2
+ layout 'nippo_core/application'
2
3
  # before_action :configure_sign_in_params, only: [:create]
3
4
 
4
5
  # GET /resource/sign_in
@@ -2,20 +2,26 @@ module NippoCore
2
2
  class Group < ApplicationRecord
3
3
  belongs_to :creator, class_name: 'NippoCore::User'
4
4
  has_many :reports, dependent: :destroy
5
- has_many :members, through: :group_member_relations, source: :user
5
+ has_many :users, through: :group_member_relations
6
6
  has_many :group_member_relations, dependent: :destroy
7
7
 
8
8
  validates :creator, presence: true
9
9
  validates :name, presence: true
10
10
 
11
- def add_member(user)
12
- relation = group_member_relations.find_or_initialize_by(user: user, status: false)
13
- relation.status = true
14
- relation.save
11
+ def member?(user)
12
+ group_member_relations.where.not(accepted_at: nil).exists?(user_id: user.id)
15
13
  end
16
14
 
17
- def member?(user)
18
- group_member_relations.exists?(user_id: user.id, status: true)
15
+ # TODO: implement test
16
+ def unaccepted_requests
17
+ group_member_relations.where(accepted_at: nil).includes(:user)
18
+ end
19
+
20
+ # TODO: implement test
21
+ def members
22
+ NippoCore::User.joins(:group_member_relations)
23
+ .where(nippo_core_group_member_relations: {group_id: self.id})
24
+ .where.not(nippo_core_group_member_relations: {accepted_at: nil})
19
25
  end
20
26
  end
21
27
  end
@@ -2,6 +2,8 @@ module NippoCore
2
2
  class GroupMemberRelation < ApplicationRecord
3
3
  belongs_to :user
4
4
  belongs_to :group
5
+ # TODO: reflect test to optional
6
+ belongs_to :accepter, class_name: 'NippoCore::User', optional: true
5
7
 
6
8
  validates :user, presence: true
7
9
  validates :group, presence: true
@@ -13,5 +13,29 @@ module NippoCore
13
13
  validates :last_name, presence: true
14
14
  validates :first_name, presence: true
15
15
  validates :nickname, presence: true
16
+
17
+ def send_request(group)
18
+ relation = group_member_relations.find_or_initialize_by(group: group)
19
+ relation.save
20
+ end
21
+
22
+ # TODO: had better check!
23
+ def add_member(user, group)
24
+ relation = group.group_member_relations.find_or_initialize_by(user: user, accepted_at: nil)
25
+ relation.accepted_at = Time.now
26
+ relation.accepter = self
27
+ relation.save
28
+ end
29
+
30
+ def accept_request(request)
31
+ return unless request.group.member?(self)
32
+ request.accepted_at = Time.now
33
+ request.accepter = self
34
+ request.save
35
+ end
36
+
37
+ def request_to?(group)
38
+ group_member_relations.exists?(group_id: group.id)
39
+ end
16
40
  end
17
41
  end
@@ -3,24 +3,34 @@ html
3
3
  head
4
4
  title
5
5
  | 日報
6
- = stylesheet_link_tag "nippo_core/application", media: "all"
6
+ / = stylesheet_link_tag "nippo_core/application", media: "all"
7
+ link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"
8
+ link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"
9
+ script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"
10
+ css:
11
+ body {
12
+ padding-top: 70px;
13
+ }
7
14
  = javascript_include_tag "nippo_core/application"
8
15
  = csrf_meta_tags
9
16
  body
10
- header.header
11
- div
12
- = t('daily report')
13
- nav
14
- - if user_signed_in?
15
- div
16
- = current_user.nickname
17
- ul
17
+ header.navbar.navbar-default.navbar-fixed-top
18
+ .container
19
+ .navbar-header
20
+ .navbar-brand
21
+ = t('daily report')
22
+ nav.nav.navbar-nav.navbar-right
18
23
  - if user_signed_in?
19
- li
20
- = link_to t('sign out'), destroy_user_session_path, method: :delete
21
- - else
22
- li
23
- = link_to t('sign in'), new_user_session_path
24
- li
25
- = link_to t('sign up'), new_user_registration_path
26
- = yield
24
+ .navbar-text
25
+ = current_user.nickname
26
+ ul.nav.navbar-nav
27
+ - if user_signed_in?
28
+ li
29
+ = link_to t('sign out'), destroy_user_session_path, method: :delete
30
+ - else
31
+ li
32
+ = link_to t('sign in'), new_user_session_path
33
+ li
34
+ = link_to t('sign up'), new_user_registration_path
35
+ .container
36
+ = yield
@@ -0,0 +1,4 @@
1
+ - if current_user.request_to?(group)
2
+ = link_to 'Requesting...', '#'
3
+ - else
4
+ = link_to 'Join us!', group_request_join_path(group), method: :post, remote: true, id: "link-to-join-group_#{group.id}"
@@ -0,0 +1,2 @@
1
+ $request = $("#request_<%= @request.id %>");
2
+ $request.remove();
@@ -1,4 +1,5 @@
1
1
  = form_for [@group, @group_member_relations] do |f|
2
- .field
3
- = f.collection_select :user_id, NippoCore::User.all, :id, :nickname
4
- = f.submit
2
+ .form-group
3
+ = f.collection_select :user_id, NippoCore::User.all, :id, :nickname, {}, class: 'form-control'
4
+ button.btn.btn-default
5
+ | Invite
@@ -0,0 +1,6 @@
1
+ ul
2
+ - @requests.each do |request|
3
+ li id="request_#{request.id}"
4
+ = request.user.nickname
5
+ |
6
+ = link_to 'accept', group_member_relation_accept_path(group_member_relation_id: request.id), method: :post, remote: true
@@ -1,12 +1,12 @@
1
1
  h1
2
2
  | Group index
3
- ul
3
+ ul.list-group
4
4
  - @groups.each do |group|
5
- li
5
+ li.list-group-item
6
6
  = link_to group.name, group
7
7
  p
8
8
  - if group.member?(current_user)
9
9
  | Member
10
10
  - else
11
- = link_to 'Join us!', '#'
11
+ = render 'link_to_join', group: group
12
12
  = paginate @groups
@@ -1,8 +1,9 @@
1
1
  = form_for @group do |f|
2
- .field
2
+ .form-group
3
3
  = f.label :name
4
- = f.text_field :name, placeholder: 'グループ名 (必須)'
5
- .field
4
+ = f.text_field :name, placeholder: 'グループ名 (必須)', class: 'form-control'
5
+ .form-group
6
6
  = f.label :description
7
- = f.text_area :description, placeholoder: '説明'
8
- = f.submit
7
+ = f.text_area :description, placeholder: '説明', class: 'form-control'
8
+ button.btn.btn-default
9
+ | Create Group
@@ -0,0 +1,2 @@
1
+ let $link = $("#link-to-join-group_<%= @group.id %>");
2
+ $link.attr("href", "#").text("Requesting...");
@@ -4,17 +4,37 @@ section
4
4
  h2
5
5
  | something
6
6
  = simple_format @group.description
7
- section
8
- - if @group.member?(current_user)
9
- h2
10
- | recently activity
7
+ section
8
+ h3
9
+ | Member
11
10
  ul
12
- - @reports.each do |report|
11
+ - @members.each do |m|
13
12
  li
14
- = link_to report.title, [@group, report]
15
- = link_to 'more', group_reports_path(group_id: @group.id)
16
- = link_to 'new report', new_group_report_path(group_id: @group.id)
13
+ = m.nickname
14
+ section
15
+ - if @group.member?(current_user)
16
+ section
17
+ h2
18
+ | recently activity
19
+ ul
20
+ - @reports.each do |report|
21
+ li
22
+ = link_to report.title, [@group, report]
23
+ .btn-group
24
+ = link_to 'more', group_reports_path(group_id: @group.id), class: 'btn btn-link'
25
+ = link_to 'new report', new_group_report_path(group_id: @group.id), class: 'btn btn-link'
26
+ section
27
+ h2
28
+ | requests
29
+ ul
30
+ - @requests.each do |request|
31
+ li id="request_#{request.id}"
32
+ = request.user.nickname
33
+ |
34
+ = link_to 'accept', group_member_relation_accept_path(group_member_relation_id: request.id), method: :post, remote: true, id: "link-to-accept-request_#{request.id}"
35
+ = link_to 'more', unaccepted_group_group_member_relations_path(group_id: @group.id), class: 'btn btn-link'
36
+ = link_to 'invite_member', new_group_group_member_relation_path(group_id: @group.id), class: 'btn btn-link'
17
37
  - else
18
38
  h2
19
39
  | Join us?
20
- | please click here!
40
+ = render 'link_to_join', group: @group
@@ -1,5 +1,5 @@
1
- ul
1
+ ul.list-group
2
2
  - @reports.each do |report|
3
- li
3
+ li.list-group-item
4
4
  = link_to report.title, group_report_path(report, group_id: @group.id)
5
5
  = paginate @reports
@@ -3,6 +3,8 @@ h2
3
3
  | &nbsp;
4
4
  = current_user.nickname
5
5
  = form_for [@group, @report] do |f|
6
- = f.label :body
7
- = f.text_area :body
8
- = f.submit
6
+ .form-group
7
+ = f.label :body
8
+ = f.text_area :body, class: 'form-control'
9
+ button.btn.btn-default
10
+ | Create Report
@@ -1,4 +1,6 @@
1
- h2
2
- = @report.title
3
- div
4
- == @report.markdowned_body
1
+ .panel.panel-default
2
+ .panel-heading
3
+ h2.panel-title
4
+ = @report.title
5
+ div.panel-body
6
+ == @report.markdowned_body
@@ -1,20 +1,20 @@
1
1
  h2
2
2
  | Sign up
3
- = form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
3
+ = form_for resource, as: resource_name, url: registration_path(resource_name) do |f|
4
4
  = devise_error_messages!
5
- .field
5
+ .form-group
6
6
  = f.label :email
7
7
  br
8
- = f.email_field :email, autofocus: true
9
- .field
8
+ = f.email_field :email, autofocus: true, class: 'form-control'
9
+ .form-group
10
10
  = f.label :last_name
11
- = f.text_field :last_name, placeholder: '苗字 (必須)'
11
+ = f.text_field :last_name, placeholder: '苗字 (必須)', class: 'form-control'
12
12
  = f.label :first_name
13
- = f.text_field :first_name, placeholder: '名前 (必須)'
14
- .field
13
+ = f.text_field :first_name, placeholder: '名前 (必須)', class: 'form-control'
14
+ .form-group
15
15
  = f.label :nickname
16
- = f.text_field :nickname, placeholder: 'ニックネーム (必須)'
17
- .field
16
+ = f.text_field :nickname, placeholder: 'ニックネーム (必須)', class: 'form-control'
17
+ .form-group
18
18
  = f.label :password
19
19
  - if @minimum_password_length
20
20
  em
@@ -22,11 +22,12 @@ h2
22
22
  = @minimum_password_length
23
23
  | characters minimum)
24
24
  br
25
- = f.password_field :password, autocomplete: "off"
26
- .field
25
+ = f.password_field :password, autocomplete: "off", class: 'form-control'
26
+ .form-group
27
27
  = f.label :password_confirmation
28
28
  br
29
- = f.password_field :password_confirmation, autocomplete: "off"
29
+ = f.password_field :password_confirmation, autocomplete: "off", class: 'form-control'
30
30
  .actions
31
- = f.submit "Sign up"
31
+ button.btn.btn-default
32
+ | Sign UP
32
33
  = render "nippo_core/users/shared/links"
@@ -1,18 +1,19 @@
1
1
  h2
2
2
  | Log in
3
3
  = form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
4
- .field
4
+ .form-group
5
5
  = f.label :email
6
6
  br
7
- = f.email_field :email, autofocus: true
8
- .field
7
+ = f.email_field :email, autofocus: true, class: 'form-control'
8
+ .form-group
9
9
  = f.label :password
10
10
  br
11
- = f.password_field :password, autocomplete: "off"
11
+ = f.password_field :password, autocomplete: "off", class: 'form-control'
12
12
  - if devise_mapping.rememberable?
13
- .field
13
+ .form-group
14
14
  = f.check_box :remember_me
15
15
  = f.label :remember_me
16
16
  .actions
17
- = f.submit "Log in"
17
+ button.btn.btn-default
18
+ | Log in
18
19
  = render "nippo_core/users/shared/links"
@@ -15,18 +15,20 @@ section
15
15
  section
16
16
  h2
17
17
  | Groups you created
18
- ul
18
+ ul.list-group
19
19
  - @created_groups.each do |group|
20
- li
20
+ li.list-group-item
21
21
  = link_to group.name, group
22
- = link_to 'more', '#'
23
- = link_to 'create more', new_group_path
22
+ .btn-group
23
+ = link_to 'more', '#', class: 'btn btn-link'
24
+ = link_to 'create more', new_group_path, class: 'btn btn-link'
24
25
  section
25
26
  h2
26
27
  | Groups you join
27
- ul
28
+ ul.list-group
28
29
  - @joined_groups.each do |group|
29
- li
30
+ li.list-group-item
30
31
  = link_to group.name, group
31
- = link_to 'more', '#'
32
- = link_to 'join more', '#'
32
+ .btn-group
33
+ = link_to 'more', '#', class: 'btn btn-link'
34
+ = link_to 'join more', groups_path, class: 'btn btn-link'
data/config/routes.rb CHANGED
@@ -2,8 +2,16 @@ NippoCore::Engine.routes.draw do
2
2
  devise_for :users, class_name: "NippoCore::User", module: :'nippo_core/users'
3
3
  resource :users, path: :user, only: :show
4
4
  resources :groups, except: [:edit, :update] do
5
- resources :group_member_relations, path: :group_members, only: [:new, :create]
5
+ # resources :users, module: :groups, only: [] do
6
+ # end
7
+ resources :group_member_relations, path: :group_members, only: [:new, :create] do
8
+ get :unaccepted, on: :collection
9
+ end
6
10
  resources :reports, except: [:edit, :update]
11
+ post :request_join
12
+ end
13
+ resources :group_member_relations, path: :group_members, only: [] do
14
+ post :accept
7
15
  end
8
16
 
9
17
  root 'home#index'
@@ -6,7 +6,9 @@ class CreateNippoCoreGroupMemberRelations < ActiveRecord::Migration[5.0]
6
6
  t.integer :group_id, null: false, index: true
7
7
  t.foreign_key :nippo_core_groups, column: :group_id
8
8
  t.integer :authentication, null: false, default: 0
9
- t.boolean :status, null: false, default: false
9
+ t.integer :accepter_id
10
+ t.foreign_key :nippo_core_users, column: :accepter_id
11
+ t.datetime :accepted_at
10
12
 
11
13
  t.timestamps
12
14
  end
@@ -1,3 +1,3 @@
1
1
  module NippoCore
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nippo_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takumu Uyama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-22 00:00:00.000000000 Z
11
+ date: 2017-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -164,8 +164,8 @@ dependencies:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
- description: When you install this gem, you can report and share a daily report among
168
- your company group, club, teammate etc.
167
+ description: This is a web application you can share and stock a daily report. You
168
+ can report and share a daily report among your company group, club, teammate etc.
169
169
  email:
170
170
  - sasurai.usagi3@gmail.com
171
171
  executables: []
@@ -182,6 +182,7 @@ files:
182
182
  - app/assets/stylesheets/nippo_core/style.sass
183
183
  - app/controllers/nippo_core/application_controller.rb
184
184
  - app/controllers/nippo_core/group_member_relations_controller.rb
185
+ - app/controllers/nippo_core/groups/users_controller.rb
185
186
  - app/controllers/nippo_core/groups_controller.rb
186
187
  - app/controllers/nippo_core/home_controller.rb
187
188
  - app/controllers/nippo_core/reports_controller.rb
@@ -205,9 +206,13 @@ files:
205
206
  - app/policies/application_policy.rb
206
207
  - app/policies/nippo_core/report_policy.rb
207
208
  - app/views/layouts/nippo_core/application.slim
209
+ - app/views/nippo_core/application/_link_to_join.slim
210
+ - app/views/nippo_core/group_member_relations/accept.js.erb
208
211
  - app/views/nippo_core/group_member_relations/new.slim
212
+ - app/views/nippo_core/group_member_relations/unaccepted.slim
209
213
  - app/views/nippo_core/groups/index.slim
210
214
  - app/views/nippo_core/groups/new.slim
215
+ - app/views/nippo_core/groups/request_join.js.erb
211
216
  - app/views/nippo_core/groups/show.slim
212
217
  - app/views/nippo_core/home/index.slim
213
218
  - app/views/nippo_core/reports/index.slim