Commit 0712e78597e5954ea61def4c0a6836a3d5b5d275
1 parent
ca4e2ad1
Exists in
master
and in
4 other branches
Snippet restyle
Showing
4 changed files
with
67 additions
and
57 deletions
Show diff stats
app/models/snippet.rb
| ... | ... | @@ -28,6 +28,7 @@ class Snippet < ActiveRecord::Base |
| 28 | 28 | |
| 29 | 29 | scope :fresh, order("created_at DESC") |
| 30 | 30 | scope :non_expired, where(["expires_at IS NULL OR expires_at > ?", Time.current]) |
| 31 | + scope :expired, where(["expires_at IS NOT NULL AND expires_at < ?", Time.current]) | |
| 31 | 32 | |
| 32 | 33 | def self.content_types |
| 33 | 34 | [ | ... | ... |
app/views/snippets/_form.html.haml
| 1 | -%div | |
| 2 | - .ui-box.width-100p | |
| 3 | - %h3 | |
| 4 | - = @snippet.new_record? ? "New snippet" : "Edit snippet ##{@snippet.id}" | |
| 5 | - = form_for [@project, @snippet] do |f| | |
| 6 | - .data.no-padding | |
| 7 | - %table.no-borders | |
| 8 | - -if @snippet.errors.any? | |
| 9 | - %tr | |
| 10 | - %td Errors | |
| 11 | - %td | |
| 12 | - #error_explanation | |
| 13 | - - @snippet.errors.full_messages.each do |msg| | |
| 14 | - %span= msg | |
| 15 | - %br | |
| 1 | += form_for [@project, @snippet] do |f| | |
| 2 | + %div | |
| 3 | + %span.entity-info | |
| 4 | + - if @snippet.new_record? | |
| 5 | + = link_to project_snippets_path(@project) do | |
| 6 | + .entity-button | |
| 7 | + Back | |
| 8 | + %i | |
| 9 | + - else | |
| 10 | + = link_to project_snippet_path(@project, @snippet) do | |
| 11 | + .entity-button | |
| 12 | + Back | |
| 13 | + %i | |
| 14 | + %h2= @snippet.new_record? ? "New Snippet" : "Edit Snippet ##{@snippet.id}" | |
| 16 | 15 | |
| 17 | - %tr | |
| 18 | - %td= f.label :title | |
| 19 | - %td= f.text_field :title, :placeholder => "Example Snippet" | |
| 20 | - %tr | |
| 21 | - %td= f.label :file_name | |
| 22 | - %td= f.text_field :file_name, :placeholder => "example.rb" | |
| 23 | - %tr | |
| 24 | - %td= f.label "Lifetime" | |
| 25 | - %td= f.select :expires_at, lifetime_select_options | |
| 26 | - %tr | |
| 27 | - %td{:colspan => 2} | |
| 28 | - = f.label :content, "Code" | |
| 16 | + %hr | |
| 17 | + %table.no-borders | |
| 18 | + -if @snippet.errors.any? | |
| 19 | + %tr | |
| 20 | + %td{:colspan => 2} | |
| 21 | + #error_explanation | |
| 22 | + - @snippet.errors.full_messages.each do |msg| | |
| 23 | + %span= msg | |
| 29 | 24 | %br |
| 30 | - %br | |
| 31 | - = f.text_area :content | |
| 32 | 25 | |
| 33 | - .buttons | |
| 34 | - = f.submit 'Save', :class => "grey-button" | |
| 35 | - - if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user | |
| 36 | - .right= link_to 'Destroy', [@project, @snippet], :confirm => 'Are you sure?', :method => :delete, :class => "grey-button delete-snippet negative", :id => "destroy_snippet_#{@snippet.id}" | |
| 26 | + %tr | |
| 27 | + %td= f.label :title | |
| 28 | + %td= f.text_field :title, :placeholder => "Example Snippet" | |
| 29 | + %tr | |
| 30 | + %td= f.label :file_name | |
| 31 | + %td= f.text_field :file_name, :placeholder => "example.rb" | |
| 32 | + %tr | |
| 33 | + %td= f.label "Lifetime" | |
| 34 | + %td= f.select :expires_at, lifetime_select_options, {}, :style => "width:200px;" | |
| 35 | + %tr | |
| 36 | + %td{:colspan => 2} | |
| 37 | + = f.label :content, "Code" | |
| 38 | + %br | |
| 39 | + %br | |
| 40 | + = f.text_area :content | |
| 41 | + | |
| 42 | + .merge-tabs | |
| 43 | + = f.submit 'Save', :class => "grey-button" | |
| 44 | + - unless @snippet.new_record? | |
| 45 | + .right= link_to 'Destroy', [@project, @snippet], :confirm => 'Are you sure?', :method => :delete, :class => "red-button delete-snippet", :id => "destroy_snippet_#{@snippet.id}" | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | +:javascript | |
| 50 | + $(function(){ | |
| 51 | + $('select#snippet_expires_at').chosen(); | |
| 52 | + }); | |
| 53 | + | ... | ... |
app/views/snippets/_snippet.html.haml
| 1 | -- unless snippet.expired? | |
| 2 | - %tr{ :id => dom_id(snippet), :class => "snippet", :url => project_snippet_path(@project, snippet) } | |
| 3 | - %td | |
| 4 | - = image_tag gravatar_icon(snippet.author.email), :class => "left", :width => 40, :style => "padding:0 5px;" | |
| 5 | - %span | |
| 6 | - %strong= html_escape snippet.title | |
| 7 | - %br | |
| 8 | - %br | |
| 9 | - %div.author | |
| 10 | - %strong= truncate snippet.author.name, :lenght => 20 | |
| 11 | - %cite.cgray | |
| 12 | - = time_ago_in_words(snippet.updated_at) | |
| 13 | - ago | |
| 14 | - .right.action-links | |
| 15 | - - if can?(current_user, :admin_snippet, @project) || snippet.author == current_user | |
| 16 | - = link_to 'Edit', edit_project_snippet_path(@project, snippet), :class => "cgray" | |
| 17 | - - if can?(current_user, :admin_snippet, @project) || snippet.author == current_user | |
| 18 | - = link_to 'Destroy', [@project, snippet], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "cred delete-snippet negative", :id => "destroy_snippet_#{snippet.id}" | |
| 1 | +%a.update-item{:href => project_snippet_path(snippet.project, snippet)} | |
| 2 | + = image_tag gravatar_icon(snippet.author_email), :class => "left", :width => 40 | |
| 3 | + %span.update-title | |
| 4 | + = truncate(snippet.title, :length => 60) | |
| 5 | + %span.update-author | |
| 6 | + %strong= snippet.author_name | |
| 7 | + authored | |
| 8 | + = time_ago_in_words(snippet.created_at) | |
| 9 | + ago | |
| 10 | + .right | |
| 11 | + %span.tag.commit= snippet.file_name | |
| 12 | + | ... | ... |
app/views/snippets/index.html.haml
| ... | ... | @@ -4,9 +4,7 @@ |
| 4 | 4 | - if can? current_user, :write_snippet, @project |
| 5 | 5 | .right= link_to 'New Snippet', new_project_snippet_path(@project), :class => "grey-button append-bottom-10" |
| 6 | 6 | |
| 7 | -%table#snippets-table | |
| 8 | - = render @snippets.fresh | |
| 9 | - | |
| 10 | -:javascript | |
| 11 | - $('.delete-snippet').live('ajax:success', function() { | |
| 12 | - $(this).closest('tr').fadeOut(); }); | |
| 7 | +- unless @snippets.fresh.empty? | |
| 8 | + %div{ :class => "update-data ui-box ui-box-small ui-box-big" } | |
| 9 | + .data | |
| 10 | + = render @snippets.fresh | ... | ... |