Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
8ddbc435
Commit
8ddbc435
authored
Feb 07, 2017
by
Z.J. van de Weg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve DRYness of views
parent
b4244efa
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
39 additions
and
43 deletions
+39
-43
app/controllers/groups_controller.rb
app/controllers/groups_controller.rb
+4
-1
app/services/groups/create_service.rb
app/services/groups/create_service.rb
+3
-1
app/services/groups/update_service.rb
app/services/groups/update_service.rb
+5
-0
app/views/groups/_create_chat_team.html.haml
app/views/groups/_create_chat_team.html.haml
+18
-0
app/views/groups/edit.html.haml
app/views/groups/edit.html.haml
+1
-19
app/views/groups/new.html.haml
app/views/groups/new.html.haml
+1
-16
app/workers/mattermost/create_team_worker.rb
app/workers/mattermost/create_team_worker.rb
+5
-4
db/migrate/20170120131253_create_chat_teams.rb
db/migrate/20170120131253_create_chat_teams.rb
+2
-2
No files found.
app/controllers/groups_controller.rb
View file @
8ddbc435
...
...
@@ -29,6 +29,7 @@ class GroupsController < Groups::ApplicationController
end
def
create
byebug
@group
=
Groups
::
CreateService
.
new
(
current_user
,
group_params
).
execute
if
@group
.
persisted?
...
...
@@ -81,6 +82,7 @@ class GroupsController < Groups::ApplicationController
end
def
update
byebug
if
Groups
::
UpdateService
.
new
(
@group
,
current_user
,
group_params
).
execute
redirect_to
edit_group_path
(
@group
),
notice:
"Group '
#{
@group
.
name
}
' was successfully updated."
else
...
...
@@ -143,7 +145,8 @@ class GroupsController < Groups::ApplicationController
:share_with_group_lock
,
:visibility_level
,
:parent_id
:create_chat_team
:create_chat_team
,
:chat_team_name
]
end
...
...
app/services/groups/create_service.rb
View file @
8ddbc435
...
...
@@ -6,6 +6,7 @@ module Groups
def
execute
create_chat_team
=
params
.
delete
(
:create_chat_team
)
team_name
=
params
.
delete
(
:chat_team_name
)
@group
=
Group
.
new
(
params
)
...
...
@@ -26,7 +27,8 @@ module Groups
@group
.
add_owner
(
current_user
)
if
create_chat_team
&&
Gitlab
.
config
.
mattermost
.
enabled
Mattermost
::
CreateTeamWorker
.
perform_async
(
@group
.
id
,
current_user
.
id
)
options
=
team_name
?
{
name:
team_name
}
:
{}
Mattermost
::
CreateTeamWorker
.
perform_async
(
@group
.
id
,
current_user
.
id
,
options
)
end
@group
...
...
app/services/groups/update_service.rb
View file @
8ddbc435
module
Groups
class
UpdateService
<
Groups
::
BaseService
def
execute
if
params
.
delete
(
:create_chat_team
)
==
'1'
chat_name
=
params
[
:chat_team_name
]
options
=
chat_name
?
{
name:
chat_name
}
:
{}
end
# check that user is allowed to set specified visibility_level
new_visibility
=
params
[
:visibility_level
]
if
new_visibility
&&
new_visibility
.
to_i
!=
group
.
visibility_level
...
...
app/views/groups/_create_chat_team.html.haml
0 → 100644
View file @
8ddbc435
.form-group
=
f
.
label
:name
,
class:
'control-label'
do
%span
.mattermost-icon
=
custom_icon
(
'icon_mattermost'
)
Mattermost
.col-sm-10
.checkbox
=
f
.
label
:name
do
=
f
.
check_box
:create_chat_team
,
checked:
true
Link the group to a new Mattermost team
.form-group
=
f
.
label
:chat_team
,
class:
'control-label'
do
Chat Team name
.col-sm-10
=
f
.
text_field
:chat_team
,
placeholder:
@group
.
name
,
class:
'form-control mattermost-team-name'
Leave blank to match your group name
app/views/groups/edit.html.haml
View file @
8ddbc435
...
...
@@ -22,25 +22,7 @@
=
render
'shared/visibility_level'
,
f:
f
,
visibility_level:
@group
.
visibility_level
,
can_change_visibility_level:
can_change_group_visibility_level?
(
@group
),
form_model:
@group
.form-group
=
f
.
label
:name
,
class:
'control-label'
do
%span
.mattermost-icon
=
custom_icon
(
'icon_mattermost'
)
Mattermost
.col-sm-10
.checkbox
=
f
.
label
:name
do
=
f
.
check_box
:name
,
checked:
true
Link the group to a new or existing Mattermost team
-
enabled
=
Gitlab
.
config
.
mattermost
.
enabled
-
if
enabled
.form-group
.col-sm-offset-2.col-sm-10
=
f
.
text_field
:name
,
placeholder:
"FILL WITH TEAM NAME"
,
class:
'form-control mattermost-team-name'
%span
.mattermost-info
Team URL: INSERT TEAM URL
=
render
'create_chat_team'
,
f:
f
if
Gitlab
.
config
.
mattermost
.
enabled
.form-group
.col-sm-offset-2.col-sm-10
...
...
app/views/groups/new.html.haml
View file @
8ddbc435
...
...
@@ -16,22 +16,7 @@
=
render
'shared/visibility_level'
,
f:
f
,
visibility_level:
default_group_visibility
,
can_change_visibility_level:
true
,
form_model:
@group
.form-group
=
f
.
label
:create_chat_team
,
class:
'control-label'
do
%span
.mattermost-icon
=
custom_icon
(
'icon_mattermost'
)
Mattermost
.col-sm-10
.checkbox
=
f
.
label
:chat_team
do
=
f
.
check_box
:chat_team
Link the group to a new or existing Mattermost team
-
enabled
=
Gitlab
.
config
.
mattermost
.
enabled
-
if
enabled
.form-group
.col-sm-offset-2.col-sm-10
=
f
.
text_field
:name
,
placeholder:
'Mattermost team name'
,
class:
'form-control mattermost-team-name'
=
render
'create_chat_team'
,
f:
f
if
Gitlab
.
config
.
mattermost
.
enabled
.form-group
.col-sm-offset-2.col-sm-10
...
...
app/workers/mattermost/create_team_worker.rb
View file @
8ddbc435
...
...
@@ -7,17 +7,18 @@ module Mattermost
# Add 5 seconds so the first retry isn't 1 second later
sidekiq_retry_in
do
|
count
|
5
+
5
**
n
5
+
5
**
n
end
def
perform
(
group_id
,
current_user_id
,
options
=
{})
group
=
Group
.
find
(
group_id
)
current_user
=
User
.
find
(
current_user_id
)
group
=
Group
.
find_by
(
id:
group_id
)
current_user
=
User
.
find_by
(
id:
current_user_id
)
return
unless
group
&&
current_user
# The user that creates the team will be Team Admin
response
=
Mattermost
::
Team
.
new
(
current_user
).
create
(
group
,
options
)
ChatTeam
.
create
(
namespace:
group
,
name:
response
[
'name'
],
team_id:
response
[
'id'
])
group
.
create_chat_team
(
name:
response
[
'name'
],
team_id:
response
[
'id'
])
end
end
end
db/migrate/20170120131253_create_chat_teams.rb
View file @
8ddbc435
...
...
@@ -5,13 +5,13 @@ class CreateChatTeams < ActiveRecord::Migration
def
change
create_table
:chat_teams
do
|
t
|
t
.
integer
:
namespace
_id
,
index:
true
t
.
integer
:
group
_id
,
index:
true
t
.
string
:team_id
t
.
string
:name
t
.
timestamps
null:
false
end
add_foreign_key
:chat_teams
,
:
namespace
s
,
on_delete: :cascade
add_foreign_key
:chat_teams
,
:
group
s
,
on_delete: :cascade
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment