|
@@ -1,9 +1,10 @@
|
1
|
1
|
class GroupsController < ApplicationController
|
2
|
2
|
include GroupsHelper
|
3
|
|
- before_action :set_group, only: [:show, :edit, :update, :destroy]
|
|
3
|
+ before_action :set_group, only: [:show, :edit, :update, :destroy, :create_default_subgroup, :update_default_subgroup, :destroy_default_subgroup]
|
|
4
|
+ before_action :set_default_subgroup, only: [:update_default_subgroup, :destroy_default_subgroup]
|
4
|
5
|
before_action :require_admin!, only: [:index, :process_mass_add_members, :mass_add_members]
|
5
|
6
|
before_action :require_membership!, only: [:show]
|
6
|
|
- before_action :require_leader!, only: [:edit, :update, :destroy]
|
|
7
|
+ before_action :require_leader!, only: [:edit, :update, :destroy, :create_default_subgroup, :update_default_subgroup, :destroy_default_subgroup]
|
7
|
8
|
|
8
|
9
|
# GET /groups
|
9
|
10
|
# GET /groups.json
|
|
@@ -45,6 +46,7 @@ class GroupsController < ApplicationController
|
45
|
46
|
|
46
|
47
|
# GET /groups/1/edit
|
47
|
48
|
def edit
|
|
49
|
+ @defaultsubgroup = DefaultSubgroup.new
|
48
|
50
|
end
|
49
|
51
|
|
50
|
52
|
# POST /groups
|
|
@@ -77,6 +79,7 @@ class GroupsController < ApplicationController
|
77
|
79
|
}
|
78
|
80
|
format.json { render :show, status: :ok, location: @group }
|
79
|
81
|
else
|
|
82
|
+ @defaultsubgroup = DefaultSubgroup.new
|
80
|
83
|
format.html { render :edit }
|
81
|
84
|
format.json { render json: @group.errors, status: :unprocessable_entity }
|
82
|
85
|
end
|
|
@@ -117,14 +120,55 @@ class GroupsController < ApplicationController
|
117
|
120
|
redirect_to group_members_path(@group)
|
118
|
121
|
end
|
119
|
122
|
|
|
123
|
+ # POST /groups/:id/default_subgroups
|
|
124
|
+ def create_default_subgroup
|
|
125
|
+ @defaultsubgroup = DefaultSubgroup.new(default_subgroup_params)
|
|
126
|
+ @defaultsubgroup.group = @group
|
|
127
|
+
|
|
128
|
+ if @defaultsubgroup.save
|
|
129
|
+ flash_message(:success, I18n.t('defaultsubgroups.created'))
|
|
130
|
+ redirect_to edit_group_path(@group)
|
|
131
|
+ else
|
|
132
|
+ flash_message(:danger, I18n.t('defaultsubgroups.create_failed'))
|
|
133
|
+ render :edit
|
|
134
|
+ end
|
|
135
|
+ end
|
|
136
|
+
|
|
137
|
+ # PATCH /groups/:id/default_subgroups/:default_subgroup_id
|
|
138
|
+ def update_default_subgroup
|
|
139
|
+ if @defaultsubgroup.update(default_subgroup_params)
|
|
140
|
+ flash_message(:success, I18n.t('defaultsubgroups.updated'))
|
|
141
|
+ redirect_to edit_group_path(@group)
|
|
142
|
+ else
|
|
143
|
+ flash_message(:danger, I18n.t('defaultsubgroups.update_failed'))
|
|
144
|
+ render :edit
|
|
145
|
+ end
|
|
146
|
+ end
|
|
147
|
+
|
|
148
|
+ # DELETE /groups/:id/default_subgroups/:default_subgroup_id
|
|
149
|
+ def destroy_default_subgroup
|
|
150
|
+ @defaultsubgroup.destroy
|
|
151
|
+ flash_message(:info, I18n.t('defaultsubgroups.destroyed'))
|
|
152
|
+ redirect_to edit_group_path(@group)
|
|
153
|
+ end
|
|
154
|
+
|
120
|
155
|
private
|
121
|
156
|
# Use callbacks to share common setup or constraints between actions.
|
122
|
157
|
def set_group
|
123
|
|
- @group = Group.find(params[:id])
|
|
158
|
+ @group = Group.find(params[:group_id] || params[:id])
|
|
159
|
+ end
|
|
160
|
+
|
|
161
|
+ # Retrieve DefaultSubgroup to update or delete
|
|
162
|
+ def set_default_subgroup
|
|
163
|
+ @defaultsubgroup = DefaultSubgroup.find(params[:default_subgroup_id])
|
124
|
164
|
end
|
125
|
165
|
|
126
|
166
|
# Never trust parameters from the scary internet, only allow the white list through.
|
127
|
167
|
def group_params
|
128
|
168
|
params.require(:group).permit(:name)
|
129
|
169
|
end
|
|
170
|
+
|
|
171
|
+ def default_subgroup_params
|
|
172
|
+ params.require(:default_subgroup).permit(:name, :is_assignable)
|
|
173
|
+ end
|
130
|
174
|
end
|