Commit 68e4df70 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'ui-ux-improvements' into 'master'

UI/UX improvements
parents 054d68a3 9be5425a
......@@ -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
......
......@@ -14,6 +14,6 @@
= link_to "blame", project_blame_path(@project, @id), class: "btn btn-small" unless @blob.empty?
= link_to "history", project_commits_path(@project, @id), class: "btn btn-small"
- if allowed_tree_edit?
- if allowed_tree_edit?
= link_to '#modal-remove-blob', class: "remove-blob btn btn-small btn-remove", "data-toggle" => "modal" do
remove
.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'
= 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)
= 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)
%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"
%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|
-if @snippet.errors.any?
= form_for @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|
......@@ -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());
});
.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'
%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());
});
= render "snippets/form", url: snippet_path(@snippet)
%h3.page-title
Edit snippet
%hr
= render "shared/snippets/form", url: snippet_path(@snippet)
= 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'
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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment