Merge branch 'ui-ux-improvements' into 'master'
UI/UX improvements
This commit is contained in:
commit
68e4df7065
21 changed files with 101 additions and 121 deletions
|
@ -20,7 +20,7 @@
|
|||
|
||||
.options {
|
||||
float: right;
|
||||
margin-top: -5px;
|
||||
margin-top: -3px;
|
||||
}
|
||||
|
||||
.left-options {
|
||||
|
|
|
@ -3,3 +3,6 @@
|
|||
padding-top: 0;
|
||||
}
|
||||
|
||||
.snippet-form-holder .file-holder .file-title {
|
||||
padding: 2px;
|
||||
}
|
||||
|
|
|
@ -117,15 +117,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
.tree-btn-group {
|
||||
top: 2px;
|
||||
|
||||
.btn {
|
||||
margin-right: 0px;
|
||||
padding: 2px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.tree-download-holder .btn {
|
||||
padding: 4px 12px;
|
||||
}
|
||||
|
|
|
@ -236,7 +236,11 @@ class Ability
|
|||
:"modify_#{name}",
|
||||
]
|
||||
else
|
||||
subject.respond_to?(:project) ? project_abilities(user, subject.project) : []
|
||||
if subject.respond_to?(:project)
|
||||
project_abilities(user, subject.project)
|
||||
else
|
||||
[]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
.file-holder
|
||||
.file-title
|
||||
%i.icon-file
|
||||
%strong= @snippet.file_name
|
||||
%span.options
|
||||
.btn-group.tree-btn-group.pull-right
|
||||
- if can?(current_user, :admin_project_snippet, @project) || @snippet.author == current_user
|
||||
= link_to "Edit", edit_project_snippet_path(@project, @snippet), class: "btn btn-tiny", title: 'Edit Snippet'
|
||||
= link_to "Raw", raw_project_snippet_path(@project, @snippet), class: "btn btn-tiny", target: "_blank"
|
||||
= render 'snippets/blob_content'
|
|
@ -1 +1,4 @@
|
|||
= render "projects/snippets/form", url: project_snippet_path(@project, @snippet)
|
||||
%h3.page-title
|
||||
Edit snippet
|
||||
%hr
|
||||
= render "shared/snippets/form", url: project_snippet_path(@project, @snippet)
|
||||
|
|
|
@ -1 +1,4 @@
|
|||
= render "projects/snippets/form", url: project_snippets_path(@project, @snippet)
|
||||
%h3.page-title
|
||||
New snippet
|
||||
%hr
|
||||
= render "shared/snippets/form", url: project_snippets_path(@project, @snippet)
|
||||
|
|
|
@ -1,11 +1,37 @@
|
|||
%h3.page-title
|
||||
= @snippet.title
|
||||
|
||||
%small.pull-right
|
||||
.pull-right
|
||||
= link_to new_project_snippet_path(@project), class: "btn btn-new", title: "New Snippet" do
|
||||
Add new snippet
|
||||
|
||||
%hr
|
||||
|
||||
.append-bottom-20
|
||||
.pull-right
|
||||
= "##{@snippet.id}"
|
||||
%span.light
|
||||
by
|
||||
= link_to user_path(@snippet.author) do
|
||||
= image_tag avatar_icon(@snippet.author_email), class: "avatar avatar-inline s16"
|
||||
= @snippet.author_name
|
||||
%div= render 'projects/snippets/blob'
|
||||
|
||||
.back-link
|
||||
= link_to project_snippets_path(@project) do
|
||||
← project snippets
|
||||
|
||||
.file-holder
|
||||
.file-title
|
||||
%i.icon-file
|
||||
%span.file_name
|
||||
= @snippet.file_name
|
||||
.options
|
||||
.btn-group
|
||||
- if can?(current_user, :modify_project_snippet, @snippet)
|
||||
= link_to "edit", edit_project_snippet_path(@project, @snippet), class: "btn btn-small", title: 'Edit Snippet'
|
||||
= link_to "raw", raw_project_snippet_path(@project, @snippet), class: "btn btn-small", target: "_blank"
|
||||
- if can?(current_user, :admin_project_snippet, @snippet)
|
||||
= link_to "remove", project_snippet_path(@project, @snippet), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-small btn-remove", title: 'Delete Snippet'
|
||||
= render 'shared/snippets/blob'
|
||||
|
||||
%div#notes= render "projects/notes/notes_with_form"
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
%h3.page-title
|
||||
= @snippet.new_record? ? "New Snippet" : "Edit Snippet ##{@snippet.id}"
|
||||
%hr
|
||||
.snippet-form-holder
|
||||
= form_for [@project, @snippet], as: :project_snippet, url: url, html: {class: "form-horizontal snippet-form"} do |f|
|
||||
= form_for @snippet, url: url, html: { class: "form-horizontal snippet-form" } do |f|
|
||||
- if @snippet.errors.any?
|
||||
.alert.alert-danger
|
||||
%ul
|
||||
|
@ -12,6 +9,23 @@
|
|||
.form-group
|
||||
= f.label :title, class: 'control-label'
|
||||
.col-sm-10= f.text_field :title, placeholder: "Example Snippet", class: 'form-control', required: true
|
||||
|
||||
- unless @snippet.respond_to?(:project)
|
||||
.form-group
|
||||
= f.label "Access", class: 'control-label'
|
||||
.col-sm-10
|
||||
= f.label :private_true, class: 'radio-label' do
|
||||
= f.radio_button :private, true
|
||||
%span
|
||||
%strong Private
|
||||
(only you can see this snippet)
|
||||
%br
|
||||
= f.label :private_false, class: 'radio-label' do
|
||||
= f.radio_button :private, false
|
||||
%span
|
||||
%strong Public
|
||||
(GitLab users can see this snippet)
|
||||
|
||||
.form-group
|
||||
.file-editor
|
||||
= f.label :file_name, "File", class: 'control-label'
|
||||
|
@ -29,14 +43,13 @@
|
|||
- else
|
||||
= f.submit 'Save', class: "btn-save btn"
|
||||
|
||||
- unless @snippet.new_record?
|
||||
.pull-right.prepend-left-20
|
||||
= link_to 'Remove snippet', project_snippet_path(@project, @snippet), data: { confirm: 'Are you sure?' }, method: :delete, class: "btn pull-right btn-remove delete-snippet prepend-left-10", id: "destroy_snippet_#{@snippet.id}"
|
||||
- if @snippet.respond_to?(:project)
|
||||
= link_to "Cancel", project_snippets_path(@project), class: "btn btn-cancel"
|
||||
- else
|
||||
= link_to "Cancel", snippets_path(@project), class: "btn btn-cancel"
|
||||
|
||||
:javascript
|
||||
var editor = ace.edit("editor");
|
||||
$(".snippet-form-holder form").submit(function(){
|
||||
$(".snippet-file-content").val(editor.getValue());
|
||||
});
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
.file-holder
|
||||
.file-title
|
||||
%i.icon-file
|
||||
%strong= @snippet.file_name
|
||||
%span.options
|
||||
.btn-group.tree-btn-group.pull-right
|
||||
- if @snippet.author == current_user
|
||||
= link_to "Edit", edit_snippet_path(@snippet), class: "btn btn-tiny", title: 'Edit Snippet'
|
||||
= link_to "Delete", snippet_path(@snippet), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-tiny", title: 'Delete Snippet'
|
||||
= link_to "Raw", raw_snippet_path(@snippet), class: "btn btn-tiny", target: "_blank"
|
||||
= render 'snippets/blob_content'
|
|
@ -1,58 +0,0 @@
|
|||
%h3.page-title
|
||||
= @snippet.new_record? ? "New Snippet" : "Edit Snippet ##{@snippet.id}"
|
||||
%hr
|
||||
.snippet-form-holder
|
||||
= form_for @snippet, as: :personal_snippet, url: url, html: { class: "form-horizontal snippet-form" } do |f|
|
||||
-if @snippet.errors.any?
|
||||
.alert.alert-danger
|
||||
%ul
|
||||
- @snippet.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.form-group
|
||||
= f.label :title, class: 'control-label'
|
||||
.col-sm-10= f.text_field :title, placeholder: "Example Snippet", class: 'form-control', required: true
|
||||
.form-group
|
||||
= f.label "Access", class: 'control-label'
|
||||
.col-sm-10
|
||||
= f.label :private_true, class: 'radio-label' do
|
||||
= f.radio_button :private, true
|
||||
%span
|
||||
%strong Private
|
||||
(only you can see this snippet)
|
||||
%br
|
||||
= f.label :private_false, class: 'radio-label' do
|
||||
= f.radio_button :private, false
|
||||
%span
|
||||
%strong Public
|
||||
(GitLab users can see this snippet)
|
||||
|
||||
.form-group
|
||||
.file-editor
|
||||
= f.label :file_name, "File", class: 'control-label'
|
||||
.col-sm-10
|
||||
.file-holder.snippet
|
||||
.file-title
|
||||
= f.text_field :file_name, placeholder: "example.rb", class: 'form-control snippet-file-name', required: true
|
||||
.file-content.code
|
||||
%pre#editor= @snippet.content
|
||||
= f.hidden_field :content, class: 'snippet-file-content'
|
||||
|
||||
.form-actions
|
||||
- if @snippet.new_record?
|
||||
= f.submit 'Create snippet', class: "btn-create btn"
|
||||
- else
|
||||
= f.submit 'Save', class: "btn-save btn"
|
||||
|
||||
- unless @snippet.new_record?
|
||||
.pull-right.prepend-left-20
|
||||
= link_to 'Remove', snippet_path(@snippet), data: { confirm: 'Removed snippet cannot be restored! Are you sure?'}, method: :delete, class: "btn btn-remove delete-snippet", id: "destroy_snippet_#{@snippet.id}"
|
||||
= link_to "Cancel", snippets_path(@project), class: "btn btn-cancel"
|
||||
|
||||
|
||||
:javascript
|
||||
var editor = ace.edit("editor");
|
||||
$(".snippet-form-holder form").submit(function(){
|
||||
$(".snippet-file-content").val(editor.getValue());
|
||||
});
|
||||
|
|
@ -1 +1,4 @@
|
|||
= render "snippets/form", url: snippet_path(@snippet)
|
||||
%h3.page-title
|
||||
Edit snippet
|
||||
%hr
|
||||
= render "shared/snippets/form", url: snippet_path(@snippet)
|
||||
|
|
|
@ -1 +1,4 @@
|
|||
= render "snippets/form", url: snippets_path(@snippet)
|
||||
%h3.page-title
|
||||
New snippet
|
||||
%hr
|
||||
= render "shared/snippets/form", url: snippets_path(@snippet)
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
private
|
||||
|
||||
.pull-right
|
||||
= link_to new_snippet_path, class: "btn btn-new btn-small", title: "New Snippet" do
|
||||
= link_to new_snippet_path, class: "btn btn-new", title: "New Snippet" do
|
||||
Add new snippet
|
||||
|
||||
%hr
|
||||
|
||||
.append-bottom-20
|
||||
.pull-right
|
||||
|
@ -28,4 +28,16 @@
|
|||
= link_to snippets_path do
|
||||
← discover snippets
|
||||
|
||||
%div= render 'blob'
|
||||
.file-holder
|
||||
.file-title
|
||||
%i.icon-file
|
||||
%span.file_name
|
||||
= @snippet.file_name
|
||||
.options
|
||||
.btn-group
|
||||
- if can?(current_user, :modify_personal_snippet, @snippet)
|
||||
= link_to "edit", edit_snippet_path(@snippet), class: "btn btn-small", title: 'Edit Snippet'
|
||||
= link_to "raw", raw_snippet_path(@snippet), class: "btn btn-small", target: "_blank"
|
||||
- if can?(current_user, :admin_personal_snippet, @snippet)
|
||||
= link_to "remove", snippet_path(@snippet), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-small btn-remove", title: 'Delete Snippet'
|
||||
= render 'shared/snippets/blob'
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
Gitlab::Seeder.quiet do
|
||||
contents = [
|
||||
`curl https://gist.github.com/randx/4275756/raw/da2f262920c96d1a970d48bf2e99147954b1f4bd/glus1204.sh`,
|
||||
`curl https://gist.github.com/randx/3754594/raw/11026a295e6ef3a151c635707a3e1e8e15fc4725/gitlab_setup.sh `,
|
||||
`curl https://gist.github.com/randx/3065552/raw/29fbd09f4605a5ea22a5a9095e35fd1938dea4d6/gistfile1.sh`,
|
||||
`curl https://gist.githubusercontent.com/randx/4275756/raw/da2f262920c96d1a970d48bf2e99147954b1f4bd/glus1204.sh`,
|
||||
`curl https://gist.githubusercontent.com/randx/3754594/raw/11026a295e6ef3a151c635707a3e1e8e15fc4725/gitlab_setup.sh`,
|
||||
`curl https://gist.githubusercontent.com/randx/3065552/raw/29fbd09f4605a5ea22a5a9095e35fd1938dea4d6/gistfile1.sh`,
|
||||
]
|
||||
|
||||
(1..50).each do |i|
|
||||
|
|
|
@ -30,6 +30,5 @@ Feature: Project Snippets
|
|||
|
||||
Scenario: I destroy "Snippet one"
|
||||
Given I visit snippet page "Snippet one"
|
||||
And I click link "Edit"
|
||||
And I click link "Remove Snippet"
|
||||
Then I should not see "Snippet one" in snippets
|
||||
|
|
|
@ -24,6 +24,5 @@ Feature: Snippets Feature
|
|||
|
||||
Scenario: I destroy "Personal snippet one"
|
||||
Given I visit snippet page "Personal snippet one"
|
||||
And I click link "Edit"
|
||||
And I click link "Destroy"
|
||||
Then I should not see "Personal snippet one" in snippets
|
||||
|
|
|
@ -48,7 +48,7 @@ class ProjectSnippets < Spinach::FeatureSteps
|
|||
end
|
||||
|
||||
And 'I click link "Remove Snippet"' do
|
||||
click_link "Remove snippet"
|
||||
click_link "remove"
|
||||
end
|
||||
|
||||
And 'I submit new snippet "Snippet three"' do
|
||||
|
|
|
@ -19,7 +19,7 @@ class SnippetsFeature < Spinach::FeatureSteps
|
|||
end
|
||||
|
||||
And 'I click link "Destroy"' do
|
||||
click_link "Remove"
|
||||
click_link "remove"
|
||||
end
|
||||
|
||||
And 'I submit new snippet "Personal snippet three"' do
|
||||
|
|
Loading…
Reference in a new issue