Commit b49cfbc1d54b6cfa674ba803b3a90fb81c609c8b

Authored by Andrew8xx8
1 parent cc869d5d

Project snippets moved to /projects

app/controllers/projects/snippets_controller.rb
1 -class SnippetsController < ProjectResourceController 1 +class Projects::SnippetsController < Projects::ApplicationController
2 before_filter :module_enabled 2 before_filter :module_enabled
3 before_filter :snippet, only: [:show, :edit, :destroy, :update, :raw] 3 before_filter :snippet, only: [:show, :edit, :destroy, :update, :raw]
4 4
app/views/projects/snippets/_blob.html.haml 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +.file_holder
  2 + .file_title
  3 + %i.icon-file
  4 + %strong= @snippet.file_name
  5 + %span.options
  6 + = link_to "raw", raw_project_snippet_path(@project, @snippet), class: "btn btn-tiny", target: "_blank"
  7 + .file_content.code
  8 + - unless @snippet.content.empty?
  9 + %div{class: user_color_scheme_class}
  10 + = raw @snippet.colorize(formatter: :gitlab)
  11 + - else
  12 + %p.nothing_here_message Empty file
app/views/projects/snippets/_form.html.haml 0 → 100644
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
  1 +%h3.page_title
  2 + = @snippet.new_record? ? "New Snippet" : "Edit Snippet ##{@snippet.id}"
  3 +%hr
  4 +.snippet-form-holder
  5 + = form_for [@project, @snippet] do |f|
  6 + -if @snippet.errors.any?
  7 + .alert.alert-error
  8 + %ul
  9 + - @snippet.errors.full_messages.each do |msg|
  10 + %li= msg
  11 +
  12 + .clearfix
  13 + = f.label :title
  14 + .input= f.text_field :title, placeholder: "Example Snippet", class: 'input-xlarge', required: true
  15 + .clearfix
  16 + = f.label "Lifetime"
  17 + .input= f.select :expires_at, lifetime_select_options, {}, {class: 'chosen span2'}
  18 + .clearfix
  19 + .file-editor
  20 + = f.label :file_name, "File"
  21 + .input
  22 + .file_holder.snippet
  23 + .file_title
  24 + = f.text_field :file_name, placeholder: "example.rb", class: 'snippet-file-name', required: true
  25 + .file_content.code
  26 + %pre#editor= @snippet.content
  27 + = f.hidden_field :content, class: 'snippet-file-content'
  28 +
  29 + .form-actions
  30 + = f.submit 'Save', class: "btn-save btn"
  31 + = link_to "Cancel", project_snippets_path(@project), class: " btn"
  32 + - unless @snippet.new_record?
  33 + .pull-right= link_to 'Destroy', [@project, @snippet], confirm: 'Are you sure?', method: :delete, class: "btn pull-right danger delete-snippet", id: "destroy_snippet_#{@snippet.id}"
  34 +
  35 +
  36 +:javascript
  37 + var editor = ace.edit("editor");
  38 + $(".snippet-form-holder form").submit(function(){
  39 + $(".snippet-file-content").val(editor.getValue());
  40 + });
  41 +
app/views/projects/snippets/_snippet.html.haml 0 → 100644
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
  1 +%tr
  2 + %td
  3 + = image_tag gravatar_icon(snippet.author_email), class: "avatar s24"
  4 + %a{href: project_snippet_path(snippet.project, snippet)}
  5 + %strong= truncate(snippet.title, length: 60)
  6 + %td
  7 + = snippet.file_name
  8 + %td
  9 + %span.cgray
  10 + - if snippet.expires_at
  11 + = snippet.expires_at.to_date.to_s(:short)
  12 + - else
  13 + Never
app/views/projects/snippets/edit.html.haml 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 += render "snippets/form"
app/views/projects/snippets/index.html.haml 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +%h3.page_title
  2 + Snippets
  3 + %small share code pastes with others out of git repository
  4 +
  5 + - if can? current_user, :write_snippet, @project
  6 + = link_to new_project_snippet_path(@project), class: "btn btn-small add_new pull-right", title: "New Snippet" do
  7 + Add new snippet
  8 +%br
  9 +%table
  10 + %thead
  11 + %tr
  12 + %th Title
  13 + %th File Name
  14 + %th Expires At
  15 + = render @snippets
  16 + - if @snippets.empty?
  17 + %tr
  18 + %td{colspan: 3}
  19 + %h3.nothing_here_message Nothing here.
app/views/projects/snippets/new.html.haml 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 += render "snippets/form"
app/views/projects/snippets/show.html.haml 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +%h3.page_title
  2 + = @snippet.title
  3 + %small= @snippet.file_name
  4 + - if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
  5 + = link_to "Edit", edit_project_snippet_path(@project, @snippet), class: "btn btn-small pull-right", title: 'Edit Snippet'
  6 +
  7 +%br
  8 +%div= render 'blob'
  9 +%div#notes= render "notes/notes_with_form"
config/routes.rb
@@ -244,9 +244,11 @@ Gitlab::Application.routes.draw do @@ -244,9 +244,11 @@ Gitlab::Application.routes.draw do
244 end 244 end
245 end 245 end
246 246
247 - resources :snippets do  
248 - member do  
249 - get "raw" 247 + scope module: :projects do
  248 + resources :snippets do
  249 + member do
  250 + get "raw"
  251 + end
250 end 252 end
251 end 253 end
252 254
spec/routing/project_routing_spec.rb
@@ -249,13 +249,37 @@ end @@ -249,13 +249,37 @@ end
249 # project_snippet GET /:project_id/snippets/:id(.:format) snippets#show 249 # project_snippet GET /:project_id/snippets/:id(.:format) snippets#show
250 # PUT /:project_id/snippets/:id(.:format) snippets#update 250 # PUT /:project_id/snippets/:id(.:format) snippets#update
251 # DELETE /:project_id/snippets/:id(.:format) snippets#destroy 251 # DELETE /:project_id/snippets/:id(.:format) snippets#destroy
252 -describe SnippetsController, "routing" do 252 +describe Project::SnippetsController, "routing" do
253 it "to #raw" do 253 it "to #raw" do
254 - get("/gitlabhq/snippets/1/raw").should route_to('snippets#raw', project_id: 'gitlabhq', id: '1') 254 + get("/gitlabhq/snippets/1/raw").should route_to('projects/snippets#raw', project_id: 'gitlabhq', id: '1')
255 end 255 end
256 256
257 - it_behaves_like "RESTful project resources" do  
258 - let(:controller) { 'snippets' } 257 + it "to #index" do
  258 + get("/gitlabhq/snippets").should route_to("projects/snippets#index", project_id: 'gitlabhq')
  259 + end
  260 +
  261 + it "to #create" do
  262 + post("/gitlabhq/snippets").should route_to("projects/snippets#create", project_id: 'gitlabhq')
  263 + end
  264 +
  265 + it "to #new" do
  266 + get("/gitlabhq/snippets/new").should route_to("projects/snippets#new", project_id: 'gitlabhq')
  267 + end
  268 +
  269 + it "to #edit" do
  270 + get("/gitlabhq/snippets/1/edit").should route_to("projects/snippets#edit", project_id: 'gitlabhq', id: '1')
  271 + end
  272 +
  273 + it "to #show" do
  274 + get("/gitlabhq/snippets/1").should route_to("projects/snippets#show", project_id: 'gitlabhq', id: '1')
  275 + end
  276 +
  277 + it "to #update" do
  278 + put("/gitlabhq/snippets/1").should route_to("projects/snippets#update", project_id: 'gitlabhq', id: '1')
  279 + end
  280 +
  281 + it "to #destroy" do
  282 + delete("/gitlabhq/snippets/1").should route_to("projects/snippets#destroy", project_id: 'gitlabhq', id: '1')
259 end 283 end
260 end 284 end
261 285