social_stream-documents 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -59,3 +59,9 @@ toggleDocumentEdit = function(){
59
59
  $("#document_edit_action").removeClass("selected");
60
60
  }
61
61
  }
62
+
63
+ $(document).ready(function(){
64
+ $("body").screw({
65
+ loadingHTML: '<%= image_tag('loading.gif') %>'
66
+ });
67
+ });
@@ -222,3 +222,8 @@
222
222
  .processing_text{
223
223
  padding: 10px 0px 10px 50px;
224
224
  }
225
+
226
+ .screw{
227
+ width: 100%;
228
+ text-align: center;
229
+ }
@@ -1,4 +1,5 @@
1
1
  class DocumentsController < InheritedResources::Base
2
+ include ActionView::Helpers::SanitizeHelper
2
3
  respond_to :html, :js
3
4
 
4
5
  belongs_to_subjects :optional => true
@@ -7,7 +8,19 @@ class DocumentsController < InheritedResources::Base
7
8
 
8
9
  load_and_authorize_resource :except => :index
9
10
 
11
+ PER_PAGE=20
10
12
  SEND_FILE_METHOD = :default
13
+
14
+ def index
15
+ super do |format|
16
+ if params[:no_layout].present?
17
+ format.html { render :action => :index, :layout => false }
18
+ else
19
+ format.html { render :action => :index }
20
+ end
21
+ end
22
+ end
23
+
11
24
  def create
12
25
  super do |format|
13
26
  format.all {redirect_to request.referer || home_path}
@@ -64,10 +77,12 @@ class DocumentsController < InheritedResources::Base
64
77
 
65
78
  def collection
66
79
  @activities = profile_subject.wall(:profile,
67
- :for => current_subject,
68
- :object_type => Array(self.class.index_object_type)).
69
- page(params[:page]).
70
- per(params[:per])
80
+ :for => current_subject,
81
+ :object_type => Array(self.class.index_object_type))
82
+ if params[:query].present?
83
+ @activities = @activities.joins(:activity_objects => :document).where('documents.title LIKE ?', get_search_query)
84
+ end
85
+ @activities.page(params[:page]).per(PER_PAGE)
71
86
  end
72
87
 
73
88
  class << self
@@ -75,4 +90,16 @@ class DocumentsController < InheritedResources::Base
75
90
  [ :Audio, :Video, :Picture, :Document ]
76
91
  end
77
92
  end
93
+
94
+ def get_search_query
95
+ search_query = ""
96
+ param = strip_tags(params[:query]) || ""
97
+ bare_query = param unless bare_query.html_safe?
98
+ search_query_words = bare_query.strip.split
99
+ search_query_words.each_index do |i|
100
+ search_query+= search_query_words[i] + " " if i < (search_query_words.size - 1)
101
+ search_query+= "%" + search_query_words[i] + "% " if i == (search_query_words.size - 1)
102
+ end
103
+ return search_query.strip
104
+ end
78
105
  end
@@ -0,0 +1,76 @@
1
+ <% content_for :title do %>
2
+ <%= profile_subject.name + ": " + t('repository.title') %>
3
+ <% end %>
4
+
5
+ <% content_for :sidebar do %>
6
+ <%= render :partial => 'home/sidebar' %>
7
+ <% end %>
8
+
9
+ <%if profile_subject_is_current?%>
10
+ <%= location(
11
+ link_to(t('repository.title'), polymorphic_path(controller.controller_name),:remote => true)
12
+ ) %>
13
+ <%else%>
14
+ <%= location(
15
+ link_to(profile_subject.name, polymorphic_path(profile_subject),:remote => true),
16
+ link_to(t('repository.title'), polymorphic_path([profile_subject, controller.controller_name]),:remote => true)
17
+ ) %>
18
+ <%end%>
19
+
20
+ <% toolbar :profile => profile_subject %>
21
+ <br class="clearfloat" />
22
+ <div class="space_center"></div>
23
+ <div id="repository_filter">
24
+ <form action="<%= search_path%>" method="get" id="repository_filter">
25
+ <%= text_field_tag :filter_query, nil,:autocomplete => :off, :id => :repository_filter_input %>
26
+ </form>
27
+ <div id="order_by"><%= t('repository.order.by') %>: <%= t('repository.order.last_modified') %> · <%= t('repository.order.most_popular') %> </div>
28
+ </div>
29
+ <div class="space_center"></div>
30
+
31
+ <%= javascript_tag do %>
32
+ $(document).ready(function() {
33
+ var last_search = "";
34
+
35
+
36
+ $("#repository_filter_input").Watermark("<%= escape_javascript(I18n.t('search.name')) %>");
37
+
38
+ $("#repository_filter_input").keyup(function() {
39
+ var searchstring = $(this).val();
40
+ if((searchstring=="")){
41
+ if (last_search!=searchstring){last_search=searchstring;}
42
+ $("#documents_grid").html("<center><%= escape_javascript(image_tag('loading.gif', :class => :loading)) %></center>");
43
+ $.ajax({
44
+ type : "GET",
45
+ url : "<%= polymorphic_url([current_subject, Document.new]) %>?no_layout=true",
46
+ success : function(html) {
47
+ if ($("#repository_filter_input").val()==searchstring){ //Only show if input value is still the same
48
+ $("#documents_grid").html(html);
49
+ }
50
+ },
51
+ error: function(){
52
+ $("#header_search_display").html("<center><%= escape_javascript(content_tag(:span,I18n.t('search.wrong'), :class => :warning)) %></center>");
53
+ }
54
+ });
55
+ } else {
56
+ if (last_search!=searchstring){
57
+ last_search=searchstring;
58
+ $("#documents_grid").html("<center><%= escape_javascript(image_tag('loading.gif', :class => :loading)) %></center>");
59
+ $.ajax({
60
+ type : "GET",
61
+ url : "<%= polymorphic_url([current_subject, Document.new]) %>?query=" + searchstring + "&no_layout=true",
62
+ success : function(html) {
63
+ if ($("#repository_filter_input").val()==searchstring){ //Only show if input value is still the same
64
+ $("#documents_grid").html(html);
65
+ }
66
+ },
67
+ error: function(){
68
+ $("#header_search_display").html("<center><%= escape_javascript(content_tag(:span,I18n.t('search.wrong'), :class => :warning)) %></center>");
69
+ }
70
+ });
71
+ }
72
+ }
73
+ return false;
74
+ });
75
+ })
76
+ <% end %>
@@ -1,32 +1,7 @@
1
- <% content_for :title do %>
2
- <%= profile_subject.name + ": " + t('repository.title') %>
3
- <% end %>
4
-
5
- <% content_for :sidebar do %>
6
- <%= render :partial => 'home/sidebar' %>
7
- <% end %>
8
-
9
- <%if profile_subject_is_current?%>
10
- <%= location(
11
- link_to(t('repository.title'), polymorphic_path(controller.controller_name),:remote => true)
12
- ) %>
13
- <%else%>
14
- <%= location(
15
- link_to(profile_subject.name, polymorphic_path(profile_subject),:remote => true),
16
- link_to(t('repository.title'), polymorphic_path([profile_subject, controller.controller_name]),:remote => true)
17
- ) %>
18
- <%end%>
19
-
20
- <% toolbar :profile => profile_subject %>
21
- <br class="clearfloat" />
22
- <div class="space_center"></div>
23
- <div id="repository_filter">
24
- <form action="<%= search_path%>" method="get" id="repository_filter">
25
- <%= text_field_tag :filter_query, nil,:autocomplete => :off, :id => :repository_filter_input %>
26
- </form>
27
- <div id="order_by"><%= t('repository.order.by') %>: <%= t('repository.order.last_modified') %> · <%= t('repository.order.most_popular') %> </div>
28
- </div>
29
- <div class="space_center"></div>
1
+ <% unless params[:no_layout].present? %>
2
+ <%= render :partial => "common/headers" %>
3
+ <div id="documents_grid">
4
+ <% end %>
30
5
 
31
6
  <% @activities.each do |a| %>
32
7
  <% document = a.activity_objects.first.document %>
@@ -46,4 +21,15 @@
46
21
  :path => document_path(document) %>
47
22
  </div>
48
23
  </div>
49
- <% end %>
24
+ <% end %>
25
+
26
+ <% if @activities.size == DocumentsController::PER_PAGE %>
27
+ <% next_url = url_for(:no_layout => true,
28
+ :page => params[:page].present? ? params[:page].to_i + 1 : 2,
29
+ :query => params[:query].present? ? params[:query] : "") %>
30
+ <%= content_tag(:span, "", :class => "screw screw-after", :rel => next_url)%>
31
+ <% end %>
32
+
33
+ <% unless params[:no_layout].present? %>
34
+ </div>
35
+ <% end %>
data/config/routes.rb CHANGED
@@ -19,4 +19,4 @@ Rails.application.routes.draw do
19
19
  end
20
20
  end
21
21
  end
22
- end
22
+ end
@@ -1,5 +1,5 @@
1
1
  module SocialStream
2
2
  module Documents
3
- VERSION = "0.4.1".freeze
3
+ VERSION = "0.4.2".freeze
4
4
  end
5
5
  end
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
  s.files = `git ls-files`.split("\n")
13
13
 
14
14
  # Gem dependencies
15
- s.add_runtime_dependency('social_stream-base', '~> 0.9.24')
15
+ s.add_runtime_dependency('social_stream-base', '~> 0.9.25')
16
16
  s.add_runtime_dependency('paperclip-ffmpeg', '~> 0.7.0')
17
17
  s.add_runtime_dependency('paperclip','2.3.11')
18
18
  s.add_runtime_dependency('delayed_paperclip','>= 0.7.2')
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: social_stream-documents
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 1
10
- version: 0.4.1
9
+ - 2
10
+ version: 0.4.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - "V\xC3\xADctor S\xC3\xA1nchez Belmar"
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-10-31 00:00:00 +01:00
19
+ date: 2011-11-04 00:00:00 +01:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -27,12 +27,12 @@ dependencies:
27
27
  requirements:
28
28
  - - ~>
29
29
  - !ruby/object:Gem::Version
30
- hash: 11
30
+ hash: 9
31
31
  segments:
32
32
  - 0
33
33
  - 9
34
- - 24
35
- version: 0.9.24
34
+ - 25
35
+ version: 0.9.25
36
36
  type: :runtime
37
37
  version_requirements: *id001
38
38
  - !ruby/object:Gem::Dependency
@@ -258,6 +258,7 @@ files:
258
258
  - app/views/audios/show.html.erb
259
259
  - app/views/common/_document_info.html.erb
260
260
  - app/views/common/_edit_form.html.erb
261
+ - app/views/common/_headers.html.erb
261
262
  - app/views/common/_index.html.erb
262
263
  - app/views/common/_show.html.erb
263
264
  - app/views/documents/_document.html.erb