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.
- checksums.yaml +4 -4
- data/app/controllers/nippo_core/application_controller.rb +1 -1
- data/app/controllers/nippo_core/group_member_relations_controller.rb +13 -2
- data/app/controllers/nippo_core/groups/users_controller.rb +11 -0
- data/app/controllers/nippo_core/groups_controller.rb +9 -2
- data/app/controllers/nippo_core/users/registrations_controller.rb +1 -0
- data/app/controllers/nippo_core/users/sessions_controller.rb +1 -0
- data/app/models/nippo_core/group.rb +13 -7
- data/app/models/nippo_core/group_member_relation.rb +2 -0
- data/app/models/nippo_core/user.rb +24 -0
- data/app/views/layouts/nippo_core/application.slim +27 -17
- data/app/views/nippo_core/application/_link_to_join.slim +4 -0
- data/app/views/nippo_core/group_member_relations/accept.js.erb +2 -0
- data/app/views/nippo_core/group_member_relations/new.slim +4 -3
- data/app/views/nippo_core/group_member_relations/unaccepted.slim +6 -0
- data/app/views/nippo_core/groups/index.slim +3 -3
- data/app/views/nippo_core/groups/new.slim +6 -5
- data/app/views/nippo_core/groups/request_join.js.erb +2 -0
- data/app/views/nippo_core/groups/show.slim +29 -9
- data/app/views/nippo_core/reports/index.slim +2 -2
- data/app/views/nippo_core/reports/new.slim +5 -3
- data/app/views/nippo_core/reports/show.slim +6 -4
- data/app/views/nippo_core/users/registrations/new.slim +14 -13
- data/app/views/nippo_core/users/sessions/new.slim +7 -6
- data/app/views/nippo_core/users/show.slim +10 -8
- data/config/routes.rb +9 -1
- data/db/migrate/20170420155712_create_nippo_core_group_member_relations.rb +3 -1
- data/lib/nippo_core/version.rb +1 -1
- metadata +9 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2bb048e8542f800f97507d2c5159631bcf63920a
|
4
|
+
data.tar.gz: dff7e64c3afa052e464fd48cb2b9933f758b2ba6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a14ddbf89456e67c8d8837719e965bc7d0e15e893fbc4d921af9a982e5d583d6f200ce3f8e655ba4998f94f6970a83f2962863b1f496cc15e18fa76ae7babc3c
|
7
|
+
data.tar.gz: 3fa1aba815dca42db8a5e6f0bb0d041dd066cf9b6283bf0bc1ae00ccadcf8e5ea910abc5dc08a27be3ad8fdb69ac364482e554a31fa1977a8839a0a0aed1f105
|
@@ -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
|
-
|
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
|
@@ -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
|
-
|
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
|
@@ -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 :
|
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
|
12
|
-
|
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
|
-
|
18
|
-
|
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.
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
-
|
20
|
-
=
|
21
|
-
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
@@ -1,4 +1,5 @@
|
|
1
1
|
= form_for [@group, @group_member_relations] do |f|
|
2
|
-
.
|
3
|
-
= f.collection_select :user_id, NippoCore::User.all, :id, :nickname
|
4
|
-
|
2
|
+
.form-group
|
3
|
+
= f.collection_select :user_id, NippoCore::User.all, :id, :nickname, {}, class: 'form-control'
|
4
|
+
button.btn.btn-default
|
5
|
+
| Invite
|
@@ -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
|
-
=
|
11
|
+
= render 'link_to_join', group: group
|
12
12
|
= paginate @groups
|
@@ -1,8 +1,9 @@
|
|
1
1
|
= form_for @group do |f|
|
2
|
-
.
|
2
|
+
.form-group
|
3
3
|
= f.label :name
|
4
|
-
= f.text_field :name, placeholder: 'グループ名 (必須)'
|
5
|
-
.
|
4
|
+
= f.text_field :name, placeholder: 'グループ名 (必須)', class: 'form-control'
|
5
|
+
.form-group
|
6
6
|
= f.label :description
|
7
|
-
= f.text_area :description,
|
8
|
-
|
7
|
+
= f.text_area :description, placeholder: '説明', class: 'form-control'
|
8
|
+
button.btn.btn-default
|
9
|
+
| Create Group
|
@@ -4,17 +4,37 @@ section
|
|
4
4
|
h2
|
5
5
|
| something
|
6
6
|
= simple_format @group.description
|
7
|
-
section
|
8
|
-
|
9
|
-
|
10
|
-
| recently activity
|
7
|
+
section
|
8
|
+
h3
|
9
|
+
| Member
|
11
10
|
ul
|
12
|
-
- @
|
11
|
+
- @members.each do |m|
|
13
12
|
li
|
14
|
-
=
|
15
|
-
|
16
|
-
|
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
|
-
|
40
|
+
= render 'link_to_join', group: @group
|
@@ -1,20 +1,20 @@
|
|
1
1
|
h2
|
2
2
|
| Sign up
|
3
|
-
= form_for
|
3
|
+
= form_for resource, as: resource_name, url: registration_path(resource_name) do |f|
|
4
4
|
= devise_error_messages!
|
5
|
-
.
|
5
|
+
.form-group
|
6
6
|
= f.label :email
|
7
7
|
br
|
8
|
-
= f.email_field :email, autofocus: true
|
9
|
-
.
|
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
|
-
.
|
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
|
-
.
|
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
|
-
.
|
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
|
-
|
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
|
-
.
|
4
|
+
.form-group
|
5
5
|
= f.label :email
|
6
6
|
br
|
7
|
-
= f.email_field :email, autofocus: true
|
8
|
-
.
|
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
|
-
.
|
13
|
+
.form-group
|
14
14
|
= f.check_box :remember_me
|
15
15
|
= f.label :remember_me
|
16
16
|
.actions
|
17
|
-
|
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
|
-
|
23
|
-
|
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
|
-
|
32
|
-
|
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 :
|
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.
|
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
|
data/lib/nippo_core/version.rb
CHANGED
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.
|
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-
|
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:
|
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
|