OSDN Git Service

implement snippets lifetime
authorNihad Abbasov <narkoz.2008@gmail.com>
Thu, 27 Oct 2011 06:46:21 +0000 (11:46 +0500)
committerNihad Abbasov <narkoz.2008@gmail.com>
Thu, 27 Oct 2011 06:46:21 +0000 (11:46 +0500)
app/helpers/snippets_helper.rb
app/models/snippet.rb
app/views/snippets/_form.html.haml
app/views/snippets/_snippet.html.haml
app/views/snippets/show.html.haml

index 236b6c8..cd7b035 100644 (file)
@@ -1,2 +1,11 @@
 module SnippetsHelper
+  def snippet_lifetime_select_options
+    options = [
+        ['forever', nil],
+        ['1 day',   Date.strptime("#{Date.current.day}.#{Date.current.month}.#{Date.current.year}", "%d.%m.%Y") + 1.day],
+        ['1 week',  Date.strptime("#{Date.current.day}.#{Date.current.month}.#{Date.current.year}", "%d.%m.%Y") + 1.week],
+        ['1 month', Date.strptime("#{Date.current.day}.#{Date.current.month}.#{Date.current.year}", "%d.%m.%Y") + 1.month]
+    ]
+    options_for_select(options)
+  end
 end
index 0f488a8..acffc76 100644 (file)
@@ -33,6 +33,10 @@ class Snippet < ActiveRecord::Base
   def colorize
     system_colorize(content, file_name)
   end
+
+  def expired?
+    expires_at && expires_at < Time.current
+  end
 end
 # == Schema Information
 #
index 7a34ae8..2c9680c 100644 (file)
@@ -13,6 +13,9 @@
         %td= f.label :file_name
         %td= f.text_field :file_name, :placeholder => "example.rb"
       %tr
+        %td= f.label "Lifetime"
+        %td= f.select :expires_at, snippet_lifetime_select_options
+      %tr
         %td{:colspan => 2}
           = f.label :content, "Code"
           %br
index 483ff42..ddfba6b 100644 (file)
@@ -1,11 +1,12 @@
-%tr{ :id => dom_id(snippet), :class => "snippet", :url => project_snippet_path(@project, snippet) }
-  %td
-    = image_tag gravatar_icon(snippet.author.email), :class => "left", :width => 40, :style => "padding:0 5px;"
-    = truncate snippet.author.name, :lenght => 20
-  %td= html_escape snippet.title
-  %td= html_escape snippet.file_name
-  %td
-    - if can?(current_user, :admin_snippet, @project) || snippet.author == current_user
-      = link_to 'Edit', edit_project_snippet_path(@project, snippet), :class => "lbutton positive"
-    - if can?(current_user, :admin_snippet, @project) || snippet.author == current_user
-      = link_to 'Destroy', [@project, snippet], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "lbutton delete-snippet negative", :id => "destroy_snippet_#{snippet.id}"
+- unless snippet.expired?
+  %tr{ :id => dom_id(snippet), :class => "snippet", :url => project_snippet_path(@project, snippet) }
+    %td
+      = image_tag gravatar_icon(snippet.author.email), :class => "left", :width => 40, :style => "padding:0 5px;"
+      = truncate snippet.author.name, :lenght => 20
+    %td= html_escape snippet.title
+    %td= html_escape snippet.file_name
+    %td
+      - if can?(current_user, :admin_snippet, @project) || snippet.author == current_user
+        = link_to 'Edit', edit_project_snippet_path(@project, snippet), :class => "lbutton positive"
+      - if can?(current_user, :admin_snippet, @project) || snippet.author == current_user
+        = link_to 'Destroy', [@project, snippet], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "lbutton delete-snippet negative", :id => "destroy_snippet_#{snippet.id}"
index 899950b..bfa1bf4 100644 (file)
@@ -1,22 +1,26 @@
-%h2
-  = "Snippet ##{@snippet.id} - #{@snippet.title}"
+- if !@snippet.expired?
+  %h2
+    = "Snippet ##{@snippet.id} - #{@snippet.title}"
 
-.view_file
-  .view_file_header
-    %strong
-      = @snippet.file_name
-      %br/
-  .view_file_content
-    :erb
-      <%= raw @snippet.colorize %>
+  .view_file
+    .view_file_header
+      %strong
+        = @snippet.file_name
+        %br/
+    .view_file_content
+      :erb
+        <%= raw @snippet.colorize %>
 
-- if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
-  = link_to 'Edit', edit_project_snippet_path(@project, @snippet), :class => "lbutton positive"
-- if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
-  = link_to 'Destroy', [@project, @snippet], :confirm => 'Are you sure?', :method => :delete, :class => "lbutton delete-snippet negative", :id => "destroy_snippet_#{@snippet.id}"
-.clear
-%br
-.snippet_notes= render "notes/notes"
+  - if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
+    = link_to 'Edit', edit_project_snippet_path(@project, @snippet), :class => "lbutton positive"
+  - if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
+    = link_to 'Destroy', [@project, @snippet], :confirm => 'Are you sure?', :method => :delete, :class => "lbutton delete-snippet negative", :id => "destroy_snippet_#{@snippet.id}"
+  .clear
+  %br
+  .snippet_notes= render "notes/notes"
 
-.clear
+  .clear
 
+- else
+  %h2
+    Sorry, this snipped is no longer exists