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
1
Merge Requests
1
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
nexedi
gitlab-ce
Commits
ef05423f
Commit
ef05423f
authored
Mar 14, 2013
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Finish select2-ajax for users. Added Select2Helper for tests
parent
10f14136
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
234 additions
and
200 deletions
+234
-200
app/assets/javascripts/users_select.js.coffee
app/assets/javascripts/users_select.js.coffee
+5
-5
app/assets/stylesheets/application.scss
app/assets/stylesheets/application.scss
+1
-1
app/assets/stylesheets/common.scss
app/assets/stylesheets/common.scss
+0
-14
app/assets/stylesheets/selects.scss
app/assets/stylesheets/selects.scss
+20
-0
app/controllers/application_controller.rb
app/controllers/application_controller.rb
+3
-4
features/project/team_management.feature
features/project/team_management.feature
+1
-0
features/steps/project/project_team_management.rb
features/steps/project/project_team_management.rb
+3
-1
features/steps/userteams/userteams.rb
features/steps/userteams/userteams.rb
+174
-174
features/support/env.rb
features/support/env.rb
+1
-1
features/teams/team.feature
features/teams/team.feature
+1
-0
spec/support/select2_helper.rb
spec/support/select2_helper.rb
+25
-0
No files found.
app/assets/javascripts/users_select.js.coffee
View file @
ef05423f
...
@@ -19,7 +19,7 @@ $ ->
...
@@ -19,7 +19,7 @@ $ ->
multiple
:
$
(
'.ajax-users-select'
).
hasClass
(
'multiselect'
)
multiple
:
$
(
'.ajax-users-select'
).
hasClass
(
'multiselect'
)
minimumInputLength
:
0
minimumInputLength
:
0
ajax
:
# instead of writing the function to execute the request we use Select2's convenient helper
ajax
:
# instead of writing the function to execute the request we use Select2's convenient helper
url
:
"/api/
v3
/users.json"
url
:
"/api/
"
+
gon
.
api_version
+
"
/users.json"
dataType
:
"json"
dataType
:
"json"
data
:
(
term
,
page
)
->
data
:
(
term
,
page
)
->
search
:
term
# search term
search
:
term
# search term
...
@@ -33,11 +33,11 @@ $ ->
...
@@ -33,11 +33,11 @@ $ ->
initSelection
:
(
element
,
callback
)
->
initSelection
:
(
element
,
callback
)
->
id
=
$
(
element
).
val
()
id
=
$
(
element
).
val
()
if
id
isnt
""
if
id
isnt
""
$
.
ajax
(
"http://api.rottentomatoes.com/api/public/v1.0/users/"
+
id
+
".json"
,
$
.
ajax
(
"/api/"
+
gon
.
api_version
+
"/users/"
+
id
+
".json"
,
dataType
:
"json"
data
:
data
:
apikey
:
"ju6z9mjyajq2djue3gbvv26t"
private_token
:
gon
.
api_token
dataType
:
"jsonp"
).
done
(
data
)
->
).
done
(
data
)
->
callback
data
callback
data
...
...
app/assets/stylesheets/application.scss
View file @
ef05423f
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
@import
"gitlab_bootstrap.scss"
;
@import
"gitlab_bootstrap.scss"
;
@import
"common.scss"
;
@import
"common.scss"
;
@import
"
ref_select
.scss"
;
@import
"
selects
.scss"
;
@import
"sections/header.scss"
;
@import
"sections/header.scss"
;
@import
"sections/nav.scss"
;
@import
"sections/nav.scss"
;
...
...
app/assets/stylesheets/common.scss
View file @
ef05423f
...
@@ -555,17 +555,3 @@ img.emoji {
...
@@ -555,17 +555,3 @@ img.emoji {
display
:
none
;
display
:
none
;
}
}
.ajax-users-select
{
width
:
400px
;
}
.user-result
{
.user-image
{
float
:
left
;
}
.user-name
{
}
.user-username
{
color
:
#999
;
}
}
app/assets/stylesheets/
ref_select
.scss
→
app/assets/stylesheets/
selects
.scss
View file @
ef05423f
.ajax-users-select
{
width
:
400px
;
}
.user-result
{
.user-image
{
float
:
left
;
}
.user-name
{
}
.user-username
{
color
:
#999
;
}
}
.select2-no-results
{
padding
:
7px
;
color
:
#666
;
}
/** Branch/tag selector **/
/** Branch/tag selector **/
.project-refs-form
{
.project-refs-form
{
margin
:
0
;
margin
:
0
;
...
...
app/controllers/application_controller.rb
View file @
ef05423f
...
@@ -152,9 +152,8 @@ class ApplicationController < ActionController::Base
...
@@ -152,9 +152,8 @@ class ApplicationController < ActionController::Base
def
add_gon_variables
def
add_gon_variables
gon
.
default_issues_tracker
=
Project
.
issues_tracker
.
default_value
gon
.
default_issues_tracker
=
Project
.
issues_tracker
.
default_value
if
current_user
gon
.
api_version
=
Gitlab
::
API
.
version
gon
.
api_token
=
current_user
.
private_token
gon
.
api_token
=
current_user
.
private_token
if
current_user
gon
.
gravatar_url
=
request
.
ssl?
?
Gitlab
.
config
.
gravatar
.
ssl_url
:
Gitlab
.
config
.
gravatar
.
plain_url
gon
.
gravatar_url
=
request
.
ssl?
?
Gitlab
.
config
.
gravatar
.
ssl_url
:
Gitlab
.
config
.
gravatar
.
plain_url
end
end
end
end
end
features/project/team_management.feature
View file @
ef05423f
...
@@ -11,6 +11,7 @@ Feature: Project Team management
...
@@ -11,6 +11,7 @@ Feature: Project Team management
Then
I should be able to see myself in team
Then
I should be able to see myself in team
And
I should see
"Sam"
in team list
And
I should see
"Sam"
in team list
@javascript
Scenario
:
Add user to project
Scenario
:
Add user to project
Given
I click link
"New Team Member"
Given
I click link
"New Team Member"
And
I select
"Mike"
as
"Reporter"
And
I select
"Mike"
as
"Reporter"
...
...
features/steps/project/project_team_management.rb
View file @
ef05423f
...
@@ -2,6 +2,7 @@ class ProjectTeamManagement < Spinach::FeatureSteps
...
@@ -2,6 +2,7 @@ class ProjectTeamManagement < Spinach::FeatureSteps
include
SharedAuthentication
include
SharedAuthentication
include
SharedProject
include
SharedProject
include
SharedPaths
include
SharedPaths
include
Select2Helper
Then
'I should be able to see myself in team'
do
Then
'I should be able to see myself in team'
do
page
.
should
have_content
(
@user
.
name
)
page
.
should
have_content
(
@user
.
name
)
...
@@ -20,8 +21,9 @@ class ProjectTeamManagement < Spinach::FeatureSteps
...
@@ -20,8 +21,9 @@ class ProjectTeamManagement < Spinach::FeatureSteps
And
'I select "Mike" as "Reporter"'
do
And
'I select "Mike" as "Reporter"'
do
user
=
User
.
find_by_name
(
"Mike"
)
user
=
User
.
find_by_name
(
"Mike"
)
select2
(
user
.
id
,
from:
"#user_ids"
,
multiple:
true
)
within
"#new_team_member"
do
within
"#new_team_member"
do
select
"
#{
user
.
name
}
(
#{
user
.
username
}
)"
,
:from
=>
"user_ids"
select
"Reporter"
,
:from
=>
"project_access"
select
"Reporter"
,
:from
=>
"project_access"
end
end
click_button
"Add users"
click_button
"Add users"
...
...
features/steps/userteams/userteams.rb
View file @
ef05423f
...
@@ -2,238 +2,239 @@ class Userteams < Spinach::FeatureSteps
...
@@ -2,238 +2,239 @@ class Userteams < Spinach::FeatureSteps
include
SharedAuthentication
include
SharedAuthentication
include
SharedPaths
include
SharedPaths
include
SharedProject
include
SharedProject
include
Select2Helper
When
'I do not have teams with me'
do
When
'I do not have teams with me'
do
UserTeam
.
with_member
(
current_user
).
destroy_all
UserTeam
.
with_member
(
current_user
).
destroy_all
end
end
Then
'I should see dashboard page without teams info block'
do
Then
'I should see dashboard page without teams info block'
do
page
.
has_no_css?
(
".teams-box"
).
must_equal
true
page
.
has_no_css?
(
".teams-box"
).
must_equal
true
end
end
When
'I have teams with my membership'
do
When
'I have teams with my membership'
do
team
=
create
:user_team
,
owner:
current_user
team
=
create
:user_team
,
owner:
current_user
team
.
add_member
(
current_user
,
UserTeam
.
access_roles
[
"Master"
],
true
)
team
.
add_member
(
current_user
,
UserTeam
.
access_roles
[
"Master"
],
true
)
end
end
Then
'I should see dashboard page with teams information block'
do
Then
'I should see dashboard page with teams information block'
do
page
.
should
have_css
(
".teams-box"
)
page
.
should
have_css
(
".teams-box"
)
end
end
When
'exist user teams'
do
When
'exist user teams'
do
team
=
create
:user_team
team
=
create
:user_team
team
.
add_member
(
current_user
,
UserTeam
.
access_roles
[
"Master"
],
true
)
team
.
add_member
(
current_user
,
UserTeam
.
access_roles
[
"Master"
],
true
)
end
end
And
'I click on "All teams" link'
do
And
'I click on "All teams" link'
do
click_link
(
"All Teams"
)
click_link
(
"All Teams"
)
end
end
Then
'I should see "All teams" page'
do
Then
'I should see "All teams" page'
do
current_path
.
should
==
teams_path
current_path
.
should
==
teams_path
end
end
And
'I should see exist teams in teams list'
do
And
'I should see exist teams in teams list'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
find_in_list
(
".teams_list tr"
,
team
).
must_equal
true
find_in_list
(
".teams_list tr"
,
team
).
must_equal
true
end
end
When
'I click to "New team" link'
do
When
'I click to "New team" link'
do
click_link
(
"New Team"
)
click_link
(
"New Team"
)
end
end
And
'I submit form with new team info'
do
And
'I submit form with new team info'
do
fill_in
'name'
,
with:
'gitlab'
fill_in
'name'
,
with:
'gitlab'
fill_in
'user_team_description'
,
with:
'team description'
fill_in
'user_team_description'
,
with:
'team description'
click_button
'Create team'
click_button
'Create team'
end
end
And
'I should see newly created team'
do
And
'I should see newly created team'
do
page
.
should
have_content
"gitlab"
page
.
should
have_content
"gitlab"
page
.
should
have_content
"team description"
page
.
should
have_content
"team description"
end
end
Then
'I should be redirected to new team page'
do
Then
'I should be redirected to new team page'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
current_path
.
should
==
team_path
(
team
)
current_path
.
should
==
team_path
(
team
)
end
end
When
'I have teams with projects and members'
do
When
'I have teams with projects and members'
do
team
=
create
:user_team
,
owner:
current_user
team
=
create
:user_team
,
owner:
current_user
@project
=
create
:project
@project
=
create
:project
team
.
add_member
(
current_user
,
UserTeam
.
access_roles
[
"Master"
],
true
)
team
.
add_member
(
current_user
,
UserTeam
.
access_roles
[
"Master"
],
true
)
team
.
assign_to_project
(
@project
,
UserTeam
.
access_roles
[
"Master"
])
team
.
assign_to_project
(
@project
,
UserTeam
.
access_roles
[
"Master"
])
@event
=
create
(
:closed_issue_event
,
project:
@project
)
@event
=
create
(
:closed_issue_event
,
project:
@project
)
end
end
When
'I visit team page'
do
When
'I visit team page'
do
visit
team_path
(
UserTeam
.
last
)
visit
team_path
(
UserTeam
.
last
)
end
end
Then
'I should see projects list'
do
Then
'I should see projects list'
do
page
.
should
have_css
(
".projects_box"
)
page
.
should
have_css
(
".projects_box"
)
projects_box
=
find
(
".projects_box"
)
projects_box
=
find
(
".projects_box"
)
projects_box
.
should
have_content
(
@project
.
name
)
projects_box
.
should
have_content
(
@project
.
name
)
end
end
And
'project from team has issues assigned to me'
do
And
'project from team has issues assigned to me'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
team
.
projects
.
each
do
|
project
|
team
.
projects
.
each
do
|
project
|
project
.
issues
<<
create
(
:issue
,
assignee:
current_user
)
project
.
issues
<<
create
(
:issue
,
assignee:
current_user
)
end
end
end
end
When
'I visit team issues page'
do
When
'I visit team issues page'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
visit
issues_team_path
(
team
)
visit
issues_team_path
(
team
)
end
end
Then
'I should see issues from this team assigned to me'
do
Then
'I should see issues from this team assigned to me'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
team
.
projects
.
each
do
|
project
|
team
.
projects
.
each
do
|
project
|
project
.
issues
.
assigned
(
current_user
).
each
do
|
issue
|
project
.
issues
.
assigned
(
current_user
).
each
do
|
issue
|
page
.
should
have_content
issue
.
title
page
.
should
have_content
issue
.
title
end
end
end
end
end
end
Given
'I have team with projects and members'
do
Given
'I have team with projects and members'
do
team
=
create
:user_team
,
owner:
current_user
team
=
create
:user_team
,
owner:
current_user
project
=
create
:project
project
=
create
:project
user
=
create
:user
user
=
create
:user
team
.
add_member
(
current_user
,
UserTeam
.
access_roles
[
"Master"
],
true
)
team
.
add_member
(
current_user
,
UserTeam
.
access_roles
[
"Master"
],
true
)
team
.
add_member
(
user
,
UserTeam
.
access_roles
[
"Developer"
],
false
)
team
.
add_member
(
user
,
UserTeam
.
access_roles
[
"Developer"
],
false
)
team
.
assign_to_project
(
project
,
UserTeam
.
access_roles
[
"Master"
])
team
.
assign_to_project
(
project
,
UserTeam
.
access_roles
[
"Master"
])
end
end
Given
'project from team has issues assigned to teams members'
do
Given
'project from team has issues assigned to teams members'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
team
.
projects
.
each
do
|
project
|
team
.
projects
.
each
do
|
project
|
team
.
members
.
each
do
|
member
|
team
.
members
.
each
do
|
member
|
project
.
issues
<<
create
(
:issue
,
assignee:
member
)
project
.
issues
<<
create
(
:issue
,
assignee:
member
)
end
end
end
end
end
end
Then
'I should see issues from this team assigned to teams members'
do
Then
'I should see issues from this team assigned to teams members'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
team
.
projects
.
each
do
|
project
|
team
.
projects
.
each
do
|
project
|
team
.
members
.
each
do
|
member
|
team
.
members
.
each
do
|
member
|
project
.
issues
.
assigned
(
member
).
each
do
|
issue
|
project
.
issues
.
assigned
(
member
).
each
do
|
issue
|
page
.
should
have_content
issue
.
title
page
.
should
have_content
issue
.
title
end
end
end
end
end
end
end
end
Given
'project from team has merge requests assigned to me'
do
Given
'project from team has merge requests assigned to me'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
team
.
projects
.
each
do
|
project
|
team
.
projects
.
each
do
|
project
|
team
.
members
.
each
do
|
member
|
team
.
members
.
each
do
|
member
|
3
.
times
{
project
.
merge_requests
<<
create
(
:merge_request
,
assignee:
member
)
}
3
.
times
{
project
.
merge_requests
<<
create
(
:merge_request
,
assignee:
member
)
}
end
end
end
end
end
end
When
'I visit team merge requests page'
do
When
'I visit team merge requests page'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
visit
merge_requests_team_path
(
team
)
visit
merge_requests_team_path
(
team
)
end
end
Then
'I should see merge requests from this team assigned to me'
do
Then
'I should see merge requests from this team assigned to me'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
team
.
projects
.
each
do
|
project
|
team
.
projects
.
each
do
|
project
|
team
.
members
.
each
do
|
member
|
team
.
members
.
each
do
|
member
|
project
.
issues
.
assigned
(
member
).
each
do
|
merge_request
|
project
.
issues
.
assigned
(
member
).
each
do
|
merge_request
|
page
.
should
have_content
merge_request
.
title
page
.
should
have_content
merge_request
.
title
end
end
end
end
end
end
end
end
Given
'project from team has merge requests assigned to team members'
do
Given
'project from team has merge requests assigned to team members'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
team
.
projects
.
each
do
|
project
|
team
.
projects
.
each
do
|
project
|
team
.
members
.
each
do
|
member
|
team
.
members
.
each
do
|
member
|
3
.
times
{
project
.
merge_requests
<<
create
(
:merge_request
,
assignee:
member
)
}
3
.
times
{
project
.
merge_requests
<<
create
(
:merge_request
,
assignee:
member
)
}
end
end
end
end
end
end
Then
'I should see merge requests from this team assigned to me'
do
Then
'I should see merge requests from this team assigned to me'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
team
.
projects
.
each
do
|
project
|
team
.
projects
.
each
do
|
project
|
team
.
members
.
each
do
|
member
|
team
.
members
.
each
do
|
member
|
project
.
issues
.
assigned
(
member
).
each
do
|
merge_request
|
project
.
issues
.
assigned
(
member
).
each
do
|
merge_request
|
page
.
should
have_content
merge_request
.
title
page
.
should
have_content
merge_request
.
title
end
end
end
end
end
end
end
end
Given
'I have new user "John"'
do
Given
'I have new user "John"'
do
create
:user
,
name:
"John"
create
:user
,
name:
"John"
end
end
When
'I visit team people page'
do
When
'I visit team people page'
do
team
=
UserTeam
.
last
team
=
UserTeam
.
last
visit
team_members_path
(
team
)
visit
team_members_path
(
team
)
end
end
And
'I select user "John" from list with role "Reporter"'
do
And
'I select user "John" from list with role "Reporter"'
do
user
=
User
.
find_by_name
(
"John"
)
user
=
User
.
find_by_name
(
"John"
)
within
"#team_members"
do
select2
(
user
.
id
,
from:
"#user_ids"
,
multiple:
true
)
select
"
#{
user
.
name
}
(
#{
user
.
username
}
)"
,
from:
"user_ids"
within
"#team_members"
do
select
"Reporter"
,
from:
"default_project_access"
select
"Reporter"
,
from:
"default_project_access"
end
click_button
"Add"
end
end
click_button
"Add"
end
Then
'I should see user "John" in team list'
do
Then
'I should see user "John" in team list'
do
user
=
User
.
find_by_name
(
"John"
)
user
=
User
.
find_by_name
(
"John"
)
team_members_list
=
find
(
".team-table"
)
team_members_list
=
find
(
".team-table"
)
team_members_list
.
should
have_content
user
.
name
team_members_list
.
should
have_content
user
.
name
end
end
And
'I have my own project without teams'
do
And
'I have my own project without teams'
do
@project
=
create
:project
,
namespace:
current_user
.
namespace
@project
=
create
:project
,
namespace:
current_user
.
namespace
end
end
And
'I visit my team page'
do
And
'I visit my team page'
do
team
=
UserTeam
.
where
(
owner_id:
current_user
.
id
).
last
team
=
UserTeam
.
where
(
owner_id:
current_user
.
id
).
last
visit
team_path
(
team
)
visit
team_path
(
team
)
end
end
When
'I click on link "Projects"'
do
When
'I click on link "Projects"'
do
click_link
"Projects"
click_link
"Projects"
end
end
And
'I click link "Assign project to Team"'
do
And
'I click link "Assign project to Team"'
do
click_link
"Assign project to Team"
click_link
"Assign project to Team"
end
end
Then
'I should see form with my own project in avaliable projects list'
do
Then
'I should see form with my own project in avaliable projects list'
do
projects_select
=
find
(
"#project_ids"
)
projects_select
=
find
(
"#project_ids"
)
projects_select
.
should
have_content
(
@project
.
name
)
projects_select
.
should
have_content
(
@project
.
name
)
end
end
When
'I submit form with selected project and max access'
do
When
'I submit form with selected project and max access'
do
within
"#assign_projects"
do
within
"#assign_projects"
do
select
@project
.
name_with_namespace
,
from:
"project_ids"
select
@project
.
name_with_namespace
,
from:
"project_ids"
select
"Reporter"
,
from:
"greatest_project_access"
select
"Reporter"
,
from:
"greatest_project_access"
end
click_button
"Add"
end
end
click_button
"Add"
end
Then
'I should see my own project in team projects list'
do
Then
'I should see my own project in team projects list'
do
projects
=
find
(
".projects-table"
)
projects
=
find
(
".projects-table"
)
projects
.
should
have_content
(
@project
.
name
)
projects
.
should
have_content
(
@project
.
name
)
end
end
When
'I click link "New Team Member"'
do
When
'I click link "New Team Member"'
do
click_link
"New Team Member"
click_link
"New Team Member"
end
end
protected
protected
...
@@ -257,5 +258,4 @@ class Userteams < Spinach::FeatureSteps
...
@@ -257,5 +258,4 @@ class Userteams < Spinach::FeatureSteps
end
end
entered
entered
end
end
end
end
features/support/env.rb
View file @
ef05423f
...
@@ -14,7 +14,7 @@ require 'spinach/capybara'
...
@@ -14,7 +14,7 @@ require 'spinach/capybara'
require
'sidekiq/testing/inline'
require
'sidekiq/testing/inline'
%w(stubbed_repository valid_commit)
.
each
do
|
f
|
%w(stubbed_repository valid_commit
select2_helper
)
.
each
do
|
f
|
require
Rails
.
root
.
join
(
'spec'
,
'support'
,
f
)
require
Rails
.
root
.
join
(
'spec'
,
'support'
,
f
)
end
end
...
...
features/teams/team.feature
View file @
ef05423f
...
@@ -46,6 +46,7 @@ Feature: UserTeams
...
@@ -46,6 +46,7 @@ Feature: UserTeams
When
I visit team merge requests page
When
I visit team merge requests page
Then
I should see merge requests from this team assigned to me
Then
I should see merge requests from this team assigned to me
@javascript
Scenario
:
I
should add user to projects in Team
Scenario
:
I
should add user to projects in Team
Given
I have team with projects and members
Given
I have team with projects and members
Given
I have new user
"John"
Given
I have new user
"John"
...
...
spec/support/select2_helper.rb
0 → 100644
View file @
ef05423f
# Select2 ajax programatic helper
# It allows you to select value from select2
#
# Params
# value - real value of selected item
# opts - options containing css selector
#
# Usage:
#
# select2(2, from: '#user_ids')
#
module
Select2Helper
def
select2
(
value
,
options
=
{})
raise
"Must pass a hash containing 'from'"
if
not
options
.
is_a?
(
Hash
)
or
not
options
.
has_key?
(
:from
)
selector
=
options
[
:from
]
if
options
[
:multiple
]
page
.
execute_script
(
"$('
#{
selector
}
').select2('val', ['
#{
value
}
']);"
)
else
page
.
execute_script
(
"$('
#{
selector
}
').select2('val', '
#{
value
}
');"
)
end
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