Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
f249d54f8f24
Commit
f249d54f
authored
Feb 12, 2015
by
Marin Jankovski
Browse files
All services can have templates.
parent
00851c09889a
Changes
4
Hide whitespace changes
Inline
Side-by-side
app/controllers/admin/services_controller.rb
View file @
f249d54f
...
...
@@ -26,11 +26,11 @@
def
services_templates
templates
=
[]
allowed_templat
es
.
each
do
|
service
|
service_template
=
service
.
constantize
Service
.
available_services_nam
es
.
each
do
|
service
|
service_template
=
service
.
concat
(
"_service"
).
camelize
.
constantize
templates
<<
service_template
.
where
(
template:
true
).
first_or_create
end
templates
end
...
...
@@ -31,13 +31,9 @@
templates
<<
service_template
.
where
(
template:
true
).
first_or_create
end
templates
end
def
allowed_templates
%w( JiraService RedmineService CustomIssueTrackerService )
end
def
service
@service
||=
Service
.
where
(
id:
params
[
:id
],
template:
true
).
first
end
...
...
@@ -45,7 +41,11 @@
def
application_services_params
params
.
permit
(
:id
,
service:
[
:title
,
:project_url
,
:description
,
:issues_url
,
:new_issue_url
:title
,
:token
,
:type
,
:active
,
:api_key
,
:subdomain
,
:room
,
:recipients
,
:project_url
,
:webhook
,
:user_key
,
:device
,
:priority
,
:sound
,
:bamboo_url
,
:username
,
:password
,
:build_key
,
:server
,
:teamcity_url
,
:build_type
,
:description
,
:issues_url
,
:new_issue_url
,
:restrict_to_branch
])
end
end
app/models/project.rb
View file @
f249d54f
...
...
@@ -355,7 +355,7 @@
def
build_missing_services
services_templates
=
Service
.
where
(
template:
true
)
available_services_names
.
each
do
|
service_name
|
Service
.
available_services_names
.
each
do
|
service_name
|
service
=
find_service
(
services
,
service_name
)
# If service is available but missing in db
...
...
@@ -377,11 +377,6 @@
list
.
find
{
|
service
|
service
.
to_param
==
name
}
end
def
available_services_names
%w(gitlab_ci campfire hipchat pivotaltracker flowdock assembla asana
emails_on_push gemnasium slack pushover buildbox bamboo teamcity jira redmine custom_issue_tracker)
end
def
gitlab_ci?
gitlab_ci_service
&&
gitlab_ci_service
.
active
end
...
...
app/models/service.rb
View file @
f249d54f
...
...
@@ -98,6 +98,11 @@
self
.
category
==
:issue_tracker
end
def
self
.
available_services_names
%w(gitlab_ci campfire hipchat pivotaltracker flowdock assembla asana
emails_on_push gemnasium slack pushover buildbox bamboo teamcity jira redmine custom_issue_tracker)
end
def
self
.
create_from_template
(
project_id
,
template
)
service
=
template
.
dup
service
.
template
=
false
...
...
app/views/admin/services/_form.html.haml
View file @
f249d54f
...
...
@@ -12,5 +12,6 @@
-
@service
.
fields
.
each
do
|
field
|
-
name
=
field
[
:name
]
-
value
=
@service
.
send
(
name
)
unless
field
[
:type
]
==
'password'
-
type
=
field
[
:type
]
-
placeholder
=
field
[
:placeholder
]
...
...
@@ -15,6 +16,8 @@
-
type
=
field
[
:type
]
-
placeholder
=
field
[
:placeholder
]
-
choices
=
field
[
:choices
]
-
default_choice
=
field
[
:default_choice
]
.form-group
=
f
.
label
name
,
class:
"control-label"
.col-sm-10
...
...
@@ -17,8 +20,17 @@
.form-group
=
f
.
label
name
,
class:
"control-label"
.col-sm-10
=
f
.
text_field
name
,
class:
"form-control"
,
placeholder:
placeholder
-
if
type
==
'text'
=
f
.
text_field
name
,
class:
"form-control"
,
placeholder:
placeholder
-
elsif
type
==
'textarea'
=
f
.
text_area
name
,
rows:
5
,
class:
"form-control"
,
placeholder:
placeholder
-
elsif
type
==
'checkbox'
=
f
.
check_box
name
-
elsif
type
==
'select'
=
f
.
select
name
,
options_for_select
(
choices
,
value
?
value
:
default_choice
),
{},
{
class:
"form-control"
}
-
elsif
type
==
'password'
=
f
.
password_field
name
,
class:
'form-control'
.form-actions
=
f
.
submit
'Save'
,
class:
'btn btn-save'
Write
Preview
Supports
Markdown
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