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
77daadc9
Commit
77daadc9
authored
Dec 23, 2015
by
Jacob Schatz
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into new-project-header-redesign
parents
52293ccd
c75ac821
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
93 additions
and
44 deletions
+93
-44
CHANGELOG
CHANGELOG
+1
-0
app/assets/stylesheets/framework/common.scss
app/assets/stylesheets/framework/common.scss
+6
-1
app/assets/stylesheets/framework/issue_box.scss
app/assets/stylesheets/framework/issue_box.scss
+2
-2
app/assets/stylesheets/framework/mobile.scss
app/assets/stylesheets/framework/mobile.scss
+1
-1
app/assets/stylesheets/pages/detail_page.scss
app/assets/stylesheets/pages/detail_page.scss
+1
-1
app/assets/stylesheets/pages/projects.scss
app/assets/stylesheets/pages/projects.scss
+40
-3
app/views/dashboard/_projects_head.html.haml
app/views/dashboard/_projects_head.html.haml
+17
-10
app/views/dashboard/projects/_projects.html.haml
app/views/dashboard/projects/_projects.html.haml
+0
-8
app/views/projects/issues/_discussion.html.haml
app/views/projects/issues/_discussion.html.haml
+2
-2
app/views/projects/issues/show.html.haml
app/views/projects/issues/show.html.haml
+4
-4
app/views/projects/merge_requests/_discussion.html.haml
app/views/projects/merge_requests/_discussion.html.haml
+2
-2
app/views/projects/merge_requests/show/_mr_title.html.haml
app/views/projects/merge_requests/show/_mr_title.html.haml
+3
-3
app/views/projects/notes/_form.html.haml
app/views/projects/notes/_form.html.haml
+1
-1
app/views/search/results/_issue.html.haml
app/views/search/results/_issue.html.haml
+1
-1
db/migrate/20151203162134_add_build_events_to_services.rb
db/migrate/20151203162134_add_build_events_to_services.rb
+1
-1
db/migrate/20151209144329_migrate_ci_web_hooks.rb
db/migrate/20151209144329_migrate_ci_web_hooks.rb
+3
-0
db/migrate/20151210125928_add_ci_to_project.rb
db/migrate/20151210125928_add_ci_to_project.rb
+1
-1
db/migrate/20151210125929_add_project_id_to_ci.rb
db/migrate/20151210125929_add_project_id_to_ci.rb
+1
-1
db/migrate/20151210125930_migrate_ci_to_project.rb
db/migrate/20151210125930_migrate_ci_to_project.rb
+4
-0
db/migrate/20151210125931_add_index_to_ci_tables.rb
db/migrate/20151210125931_add_index_to_ci_tables.rb
+1
-1
db/migrate/20151210125932_drop_null_for_ci_tables.rb
db/migrate/20151210125932_drop_null_for_ci_tables.rb
+1
-1
No files found.
CHANGELOG
View file @
77daadc9
Please view this file on the master branch, on stable branches it's out of date.
Please view this file on the master branch, on stable branches it's out of date.
v 8.4.0 (unreleased)
v 8.4.0 (unreleased)
- Fix Error 500 when doing a search in dashboard before visiting any project (Stan Hu)
- Implement new UI for group page
- Implement new UI for group page
- Add project permissions to all project API endpoints (Stan Hu)
- Add project permissions to all project API endpoints (Stan Hu)
...
...
app/assets/stylesheets/framework/common.scss
View file @
77daadc9
...
@@ -374,7 +374,7 @@ table {
...
@@ -374,7 +374,7 @@ table {
}
}
}
}
.center-top-menu
{
.center-top-menu
,
.left-top-menu
{
@include
nav-menu
;
@include
nav-menu
;
text-align
:
center
;
text-align
:
center
;
margin-top
:
5px
;
margin-top
:
5px
;
...
@@ -408,6 +408,11 @@ table {
...
@@ -408,6 +408,11 @@ table {
}
}
}
}
.left-top-menu
{
text-align
:
left
;
border-bottom
:
1px
solid
#EEE
;
}
.center-middle-menu
{
.center-middle-menu
{
@include
nav-menu
;
@include
nav-menu
;
padding
:
0
;
padding
:
0
;
...
...
app/assets/stylesheets/framework/issue_box.scss
View file @
77daadc9
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
*/
*/
.status-box
{
.status-box
{
@include
border-radius
(
2
px
);
@include
border-radius
(
3
px
);
display
:
block
;
display
:
block
;
float
:
left
;
float
:
left
;
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
}
}
&
.status-box-open
{
&
.status-box-open
{
background-color
:
#019875
;
background-color
:
$green-light
;
color
:
#FFF
;
color
:
#FFF
;
}
}
...
...
app/assets/stylesheets/framework/mobile.scss
View file @
77daadc9
...
@@ -81,7 +81,7 @@
...
@@ -81,7 +81,7 @@
display
:
none
;
display
:
none
;
}
}
.center-top-menu
{
.center-top-menu
,
.left-top-menu
{
li
a
{
li
a
{
font-size
:
14px
;
font-size
:
14px
;
padding
:
19px
10px
;
padding
:
19px
10px
;
...
...
app/assets/stylesheets/pages/detail_page.scss
View file @
77daadc9
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
border-bottom
:
1px
solid
$border-color
;
border-bottom
:
1px
solid
$border-color
;
color
:
#5c5d5e
;
color
:
#5c5d5e
;
font-size
:
16px
;
font-size
:
16px
;
line-height
:
42
px
;
line-height
:
34
px
;
.author
{
.author
{
color
:
#5c5d5e
;
color
:
#5c5d5e
;
...
...
app/assets/stylesheets/pages/projects.scss
View file @
77daadc9
...
@@ -404,6 +404,36 @@ ul.nav.nav-projects-tabs {
...
@@ -404,6 +404,36 @@ ul.nav.nav-projects-tabs {
}
}
}
}
.top-area
{
border-bottom
:
1px
solid
#EEE
;
ul
.left-top-menu
{
display
:
inline-block
;
width
:
50%
;
margin-bottom
:
0px
;
border-bottom
:
none
;
}
.projects-search-form
{
width
:
50%
;
display
:
inline-block
;
float
:
right
;
padding-top
:
7px
;
text-align
:
right
;
.btn-green
{
margin-top
:
-2px
;
margin-left
:
10px
;
}
}
@media
(
max-width
:
$screen-xs-max
)
{
.projects-search-form
{
padding-top
:
15px
;
}
}
}
.fork-namespaces
{
.fork-namespaces
{
.fork-thumbnail
{
.fork-thumbnail
{
text-align
:
center
;
text-align
:
center
;
...
@@ -481,11 +511,18 @@ pre.light-well {
...
@@ -481,11 +511,18 @@ pre.light-well {
.projects-search-form
{
.projects-search-form
{
margin
:
-
$gl-padding
;
margin
:
-
$gl-padding
;
background-color
:
#f8fafc
;
padding
:
$gl-padding
;
padding
:
$gl-padding
;
margin-bottom
:
0px
;
margin-bottom
:
0px
;
border-top
:
1px
solid
#e7e9ed
;
border-bottom
:
1px
solid
#e7e9ed
;
input
{
display
:
inline-block
;
width
:
calc
(
100%
-
151px
);
}
.btn
{
display
:
inline-block
;
width
:
135px
;
}
}
}
.git-empty
{
.git-empty
{
...
...
app/views/dashboard/_projects_head.html.haml
View file @
77daadc9
=
content_for
:flash_message
do
=
content_for
:flash_message
do
=
render
'shared/project_limit'
=
render
'shared/project_limit'
.top-area
%ul
.left-top-menu
=
nav_link
(
page:
[
dashboard_projects_path
,
root_path
])
do
=
link_to
dashboard_projects_path
,
title:
'Home'
,
class:
'shortcuts-activity'
,
data:
{
placement:
'right'
}
do
Your Projects
=
nav_link
(
page:
starred_dashboard_projects_path
)
do
=
link_to
starred_dashboard_projects_path
,
title:
'Starred Projects'
,
data:
{
placement:
'right'
}
do
Starred Projects
=
nav_link
(
page:
[
explore_root_path
,
trending_explore_projects_path
,
starred_explore_projects_path
,
explore_projects_path
],
html_options:
{
class:
'hidden-xs'
})
do
=
link_to
explore_root_path
,
title:
'Explore'
,
data:
{
placement:
'right'
}
do
Explore Projects
%ul
.center-top-menu
.projects-search-form
=
nav_link
(
page:
[
dashboard_projects_path
,
root_path
])
do
=
search_field_tag
:filter_projects
,
nil
,
placeholder:
'Filter by name...'
,
class:
'projects-list-filter form-control hidden-xs'
,
spellcheck:
false
=
link_to
dashboard_projects_path
,
title:
'Home'
,
class:
'shortcuts-activity'
,
data:
{
placement:
'right'
}
do
-
if
current_user
.
can_create_project?
Your Projects
=
link_to
new_project_path
,
class:
'btn btn-green'
do
=
nav_link
(
page:
starred_dashboard_projects_path
)
do
%i
.fa.fa-plus
=
link_to
starred_dashboard_projects_path
,
title:
'Starred Projects'
,
data:
{
placement:
'right'
}
do
New Project
Starred Projects
=
nav_link
(
page:
[
explore_root_path
,
trending_explore_projects_path
,
starred_explore_projects_path
,
explore_projects_path
],
html_options:
{
class:
'hidden-xs'
})
do
=
link_to
explore_root_path
,
title:
'Explore'
,
data:
{
placement:
'right'
}
do
Explore Projects
app/views/dashboard/projects/_projects.html.haml
View file @
77daadc9
.projects-list-holder
.projects-list-holder
.projects-search-form
.input-group
=
search_field_tag
:filter_projects
,
nil
,
placeholder:
'Filter by name'
,
class:
'projects-list-filter form-control'
,
spellcheck:
false
-
if
current_user
.
can_create_project?
%span
.input-group-btn
=
link_to
new_project_path
,
class:
'btn btn-green'
do
%i
.fa.fa-plus
New Project
=
render
'shared/projects/list'
,
projects:
@projects
,
ci:
true
=
render
'shared/projects/list'
,
projects:
@projects
,
ci:
true
app/views/projects/issues/_discussion.html.haml
View file @
77daadc9
-
content_for
:note_actions
do
-
content_for
:note_actions
do
-
if
can?
(
current_user
,
:update_issue
,
@issue
)
-
if
can?
(
current_user
,
:update_issue
,
@issue
)
-
if
@issue
.
closed?
-
if
@issue
.
closed?
=
link_to
'Reopen Issue'
,
issue_path
(
@issue
,
issue:
{
state_event: :reopen
},
status_only:
true
),
method: :put
,
class:
'btn btn-grouped btn-reopen js-note-target-reopen'
,
title:
'Reopen Issue'
=
link_to
'Reopen Issue'
,
issue_path
(
@issue
,
issue:
{
state_event: :reopen
},
status_only:
true
),
method: :put
,
class:
'btn btn-
nr btn-
grouped btn-reopen js-note-target-reopen'
,
title:
'Reopen Issue'
-
else
-
else
=
link_to
'Close Issue'
,
issue_path
(
@issue
,
issue:
{
state_event: :close
},
status_only:
true
),
method: :put
,
class:
'btn btn-grouped btn-close js-note-target-close'
,
title:
'Close Issue'
=
link_to
'Close Issue'
,
issue_path
(
@issue
,
issue:
{
state_event: :close
},
status_only:
true
),
method: :put
,
class:
'btn btn-
nr btn-
grouped btn-close js-note-target-close'
,
title:
'Close Issue'
#notes
#notes
=
render
'projects/notes/notes_with_form'
=
render
'projects/notes/notes_with_form'
app/views/projects/issues/show.html.haml
View file @
77daadc9
...
@@ -23,16 +23,16 @@
...
@@ -23,16 +23,16 @@
.pull-right
.pull-right
-
if
can?
(
current_user
,
:create_issue
,
@project
)
-
if
can?
(
current_user
,
:create_issue
,
@project
)
=
link_to
new_namespace_project_issue_path
(
@project
.
namespace
,
@project
),
class:
'btn btn-grouped new-issue-link btn-success'
,
title:
'New Issue'
,
id:
'new_issue_link'
do
=
link_to
new_namespace_project_issue_path
(
@project
.
namespace
,
@project
),
class:
'btn btn-
nr btn-
grouped new-issue-link btn-success'
,
title:
'New Issue'
,
id:
'new_issue_link'
do
=
icon
(
'plus'
)
=
icon
(
'plus'
)
New Issue
New Issue
-
if
can?
(
current_user
,
:update_issue
,
@issue
)
-
if
can?
(
current_user
,
:update_issue
,
@issue
)
-
if
@issue
.
closed?
-
if
@issue
.
closed?
=
link_to
'Reopen'
,
issue_path
(
@issue
,
issue:
{
state_event: :reopen
},
status_only:
true
),
method: :put
,
class:
'btn btn-grouped btn-reopen'
=
link_to
'Reopen'
,
issue_path
(
@issue
,
issue:
{
state_event: :reopen
},
status_only:
true
),
method: :put
,
class:
'btn btn-
nr btn-
grouped btn-reopen'
-
else
-
else
=
link_to
'Close'
,
issue_path
(
@issue
,
issue:
{
state_event: :close
},
status_only:
true
),
method: :put
,
class:
'btn btn-grouped btn-close'
,
title:
'Close Issue'
=
link_to
'Close'
,
issue_path
(
@issue
,
issue:
{
state_event: :close
},
status_only:
true
),
method: :put
,
class:
'btn btn-
nr btn-
grouped btn-close'
,
title:
'Close Issue'
=
link_to
edit_namespace_project_issue_path
(
@project
.
namespace
,
@project
,
@issue
),
class:
'btn btn-grouped issuable-edit'
do
=
link_to
edit_namespace_project_issue_path
(
@project
.
namespace
,
@project
,
@issue
),
class:
'btn btn-
nr btn-
grouped issuable-edit'
do
=
icon
(
'pencil-square-o'
)
=
icon
(
'pencil-square-o'
)
Edit
Edit
...
...
app/views/projects/merge_requests/_discussion.html.haml
View file @
77daadc9
-
content_for
:note_actions
do
-
content_for
:note_actions
do
-
if
can?
(
current_user
,
:update_merge_request
,
@merge_request
)
-
if
can?
(
current_user
,
:update_merge_request
,
@merge_request
)
-
if
@merge_request
.
open?
-
if
@merge_request
.
open?
=
link_to
'Close'
,
merge_request_path
(
@merge_request
,
merge_request:
{
state_event: :close
}),
method: :put
,
class:
"btn btn-grouped btn-close close-mr-link js-note-target-close"
,
title:
"Close merge request"
=
link_to
'Close'
,
merge_request_path
(
@merge_request
,
merge_request:
{
state_event: :close
}),
method: :put
,
class:
"btn btn-
nr btn-
grouped btn-close close-mr-link js-note-target-close"
,
title:
"Close merge request"
-
if
@merge_request
.
closed?
-
if
@merge_request
.
closed?
=
link_to
'Reopen'
,
merge_request_path
(
@merge_request
,
merge_request:
{
state_event: :reopen
}),
method: :put
,
class:
"btn btn-grouped btn-reopen reopen-mr-link js-note-target-reopen"
,
title:
"Reopen merge request"
=
link_to
'Reopen'
,
merge_request_path
(
@merge_request
,
merge_request:
{
state_event: :reopen
}),
method: :put
,
class:
"btn btn-
nr btn-
grouped btn-reopen reopen-mr-link js-note-target-reopen"
,
title:
"Reopen merge request"
#notes
=
render
"projects/notes/notes_with_form"
#notes
=
render
"projects/notes/notes_with_form"
app/views/projects/merge_requests/show/_mr_title.html.haml
View file @
77daadc9
...
@@ -17,9 +17,9 @@
...
@@ -17,9 +17,9 @@
.issue-btn-group.pull-right
.issue-btn-group.pull-right
-
if
can?
(
current_user
,
:update_merge_request
,
@merge_request
)
-
if
can?
(
current_user
,
:update_merge_request
,
@merge_request
)
-
if
@merge_request
.
open?
-
if
@merge_request
.
open?
=
link_to
'Close'
,
merge_request_path
(
@merge_request
,
merge_request:
{
state_event: :close
}),
method: :put
,
class:
'btn btn-grouped btn-close'
,
title:
'Close merge request'
=
link_to
'Close'
,
merge_request_path
(
@merge_request
,
merge_request:
{
state_event: :close
}),
method: :put
,
class:
'btn btn-
nr btn-
grouped btn-close'
,
title:
'Close merge request'
=
link_to
edit_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
),
class:
'btn btn-grouped issuable-edit'
,
id:
'edit_merge_request'
do
=
link_to
edit_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
),
class:
'btn btn-
nr btn-
grouped issuable-edit'
,
id:
'edit_merge_request'
do
%i
.fa.fa-pencil-square-o
%i
.fa.fa-pencil-square-o
Edit
Edit
-
if
@merge_request
.
closed?
-
if
@merge_request
.
closed?
=
link_to
'Reopen'
,
merge_request_path
(
@merge_request
,
merge_request:
{
state_event: :reopen
}),
method: :put
,
class:
'btn btn-grouped btn-reopen reopen-mr-link'
,
title:
'Reopen merge request'
=
link_to
'Reopen'
,
merge_request_path
(
@merge_request
,
merge_request:
{
state_event: :reopen
}),
method: :put
,
class:
'btn btn-
nr btn-
grouped btn-reopen reopen-mr-link'
,
title:
'Reopen merge request'
app/views/projects/notes/_form.html.haml
View file @
77daadc9
...
@@ -13,6 +13,6 @@
...
@@ -13,6 +13,6 @@
.error-alert
.error-alert
.note-form-actions.clearfix
.note-form-actions.clearfix
=
f
.
submit
'Add Comment'
,
class:
"btn btn-create comment-btn btn-grouped js-comment-button"
=
f
.
submit
'Add Comment'
,
class:
"btn btn-
nr btn-
create comment-btn btn-grouped js-comment-button"
=
yield
(
:note_actions
)
=
yield
(
:note_actions
)
%a
.btn.btn-cancel.js-close-discussion-note-form
Cancel
%a
.btn.btn-cancel.js-close-discussion-note-form
Cancel
app/views/search/results/_issue.html.haml
View file @
77daadc9
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
-
if
issue
.
description
.
present?
-
if
issue
.
description
.
present?
.description.term
.description.term
=
preserve
do
=
preserve
do
=
search_md_sanitize
(
markdown
(
issue
.
description
))
=
search_md_sanitize
(
markdown
(
issue
.
description
,
{
project:
issue
.
project
}
))
%span
.light
%span
.light
#{
issue
.
project
.
name_with_namespace
}
#{
issue
.
project
.
name_with_namespace
}
-
if
issue
.
closed?
-
if
issue
.
closed?
...
...
db/migrate/20151203162134_add_build_events_to_services.rb
View file @
77daadc9
class
AddBuildEventsToServices
<
ActiveRecord
::
Migration
class
AddBuildEventsToServices
<
ActiveRecord
::
Migration
def
up
def
change
add_column
:services
,
:build_events
,
:boolean
,
default:
false
,
null:
false
add_column
:services
,
:build_events
,
:boolean
,
default:
false
,
null:
false
add_column
:web_hooks
,
:build_events
,
:boolean
,
default:
false
,
null:
false
add_column
:web_hooks
,
:build_events
,
:boolean
,
default:
false
,
null:
false
end
end
...
...
db/migrate/20151209144329_migrate_ci_web_hooks.rb
View file @
77daadc9
...
@@ -10,4 +10,7 @@ class MigrateCiWebHooks < ActiveRecord::Migration
...
@@ -10,4 +10,7 @@ class MigrateCiWebHooks < ActiveRecord::Migration
'JOIN projects ON ci_projects.gitlab_id = projects.id'
'JOIN projects ON ci_projects.gitlab_id = projects.id'
)
)
end
end
def
down
end
end
end
db/migrate/20151210125928_add_ci_to_project.rb
View file @
77daadc9
class
AddCiToProject
<
ActiveRecord
::
Migration
class
AddCiToProject
<
ActiveRecord
::
Migration
def
up
def
change
add_column
:projects
,
:ci_id
,
:integer
add_column
:projects
,
:ci_id
,
:integer
add_column
:projects
,
:builds_enabled
,
:boolean
,
default:
true
,
null:
false
add_column
:projects
,
:builds_enabled
,
:boolean
,
default:
true
,
null:
false
add_column
:projects
,
:shared_runners_enabled
,
:boolean
,
default:
true
,
null:
false
add_column
:projects
,
:shared_runners_enabled
,
:boolean
,
default:
true
,
null:
false
...
...
db/migrate/20151210125929_add_project_id_to_ci.rb
View file @
77daadc9
class
AddProjectIdToCi
<
ActiveRecord
::
Migration
class
AddProjectIdToCi
<
ActiveRecord
::
Migration
def
up
def
change
add_column
:ci_builds
,
:gl_project_id
,
:integer
add_column
:ci_builds
,
:gl_project_id
,
:integer
add_column
:ci_runner_projects
,
:gl_project_id
,
:integer
add_column
:ci_runner_projects
,
:gl_project_id
,
:integer
add_column
:ci_triggers
,
:gl_project_id
,
:integer
add_column
:ci_triggers
,
:gl_project_id
,
:integer
...
...
db/migrate/20151210125930_migrate_ci_to_project.rb
View file @
77daadc9
...
@@ -14,6 +14,10 @@ class MigrateCiToProject < ActiveRecord::Migration
...
@@ -14,6 +14,10 @@ class MigrateCiToProject < ActiveRecord::Migration
migrate_ci_service
migrate_ci_service
end
end
def
down
# We can't reverse the data
end
def
migrate_project_id_for_table
(
table
)
def
migrate_project_id_for_table
(
table
)
subquery
=
"SELECT gitlab_id FROM ci_projects WHERE ci_projects.id =
#{
table
}
.project_id"
subquery
=
"SELECT gitlab_id FROM ci_projects WHERE ci_projects.id =
#{
table
}
.project_id"
execute
(
"UPDATE
#{
table
}
SET gl_project_id=(
#{
subquery
}
) WHERE gl_project_id IS NULL"
)
execute
(
"UPDATE
#{
table
}
SET gl_project_id=(
#{
subquery
}
) WHERE gl_project_id IS NULL"
)
...
...
db/migrate/20151210125931_add_index_to_ci_tables.rb
View file @
77daadc9
class
AddIndexToCiTables
<
ActiveRecord
::
Migration
class
AddIndexToCiTables
<
ActiveRecord
::
Migration
def
up
def
change
add_index
:ci_builds
,
:gl_project_id
add_index
:ci_builds
,
:gl_project_id
add_index
:ci_runner_projects
,
:gl_project_id
add_index
:ci_runner_projects
,
:gl_project_id
add_index
:ci_triggers
,
:gl_project_id
add_index
:ci_triggers
,
:gl_project_id
...
...
db/migrate/20151210125932_drop_null_for_ci_tables.rb
View file @
77daadc9
class
DropNullForCiTables
<
ActiveRecord
::
Migration
class
DropNullForCiTables
<
ActiveRecord
::
Migration
def
up
def
change
remove_index
:ci_variables
,
:project_id
remove_index
:ci_variables
,
:project_id
remove_index
:ci_runner_projects
,
:project_id
remove_index
:ci_runner_projects
,
:project_id
change_column_null
:ci_triggers
,
:project_id
,
true
change_column_null
:ci_triggers
,
:project_id
,
true
...
...
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