social_stream-documents 0.3.3 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -13
- data/app/assets/javascripts/documents.js.erb +21 -32
- data/app/assets/javascripts/social_stream-documents.js +2 -1
- data/app/assets/stylesheets/{documents.css → documents.css.scss} +32 -6
- data/app/assets/stylesheets/show.css.scss +75 -0
- data/app/assets/stylesheets/social_stream-documents.css +2 -1
- data/app/controllers/audios_controller.rb +0 -14
- data/app/controllers/common_documents_controller.rb +6 -3
- data/app/controllers/documents_controller.rb +9 -3
- data/app/controllers/pictures_controller.rb +0 -1
- data/app/controllers/videos_controller.rb +0 -15
- data/app/helpers/documents_helper.rb +11 -7
- data/app/models/audio.rb +1 -1
- data/app/models/document.rb +9 -5
- data/app/models/picture.rb +1 -1
- data/app/models/video.rb +8 -6
- data/app/views/audios/_audio.html.erb +2 -2
- data/app/views/audios/_audio_processed.html.erb +4 -4
- data/app/views/audios/_audio_show.html.erb +62 -0
- data/app/views/audios/index.html.erb +1 -1
- data/app/views/audios/show.html.erb +2 -2
- data/app/views/common_documents/_document_info.html.erb +34 -0
- data/app/views/common_documents/_index.html.erb +49 -0
- data/app/views/common_documents/_show.html.erb +36 -0
- data/app/views/documents/_document.html.erb +2 -6
- data/app/views/documents/_document_show.html.erb +7 -0
- data/app/views/documents/index.html.erb +1 -1
- data/app/views/documents/show.html.erb +2 -2
- data/app/views/pictures/_picture.html.erb +13 -12
- data/app/views/pictures/_picture_show.html.erb +26 -0
- data/app/views/pictures/index.html.erb +1 -1
- data/app/views/pictures/show.html.erb +2 -2
- data/app/views/videos/_video.html.erb +2 -2
- data/app/views/videos/_video_processed.html.erb +4 -3
- data/app/views/videos/_video_show.html.erb +64 -0
- data/app/views/videos/index.html.erb +1 -1
- data/app/views/videos/show.html.erb +2 -2
- data/config/locales/en.yml +19 -1
- data/config/locales/es.yml +18 -0
- data/lib/social_stream/documents/engine.rb +2 -0
- data/lib/social_stream/documents/version.rb +1 -1
- data/social_stream-documents.gemspec +1 -1
- data/spec/controllers/documents_controller_spec.rb +40 -2
- data/spec/controllers/pictures_controller_spec.rb +4 -4
- data/spec/dummy/config/environments/development.rb +0 -1
- data/spec/dummy/config/environments/test.rb +2 -0
- metadata +37 -31
- data/app/views/common-documents/_index.html.erb +0 -45
- data/app/views/toolbar/_uploads_menu.html.erb +0 -21
@@ -0,0 +1,36 @@
|
|
1
|
+
<% profile_subject ||= document.post_activity.receiver_subject %>
|
2
|
+
|
3
|
+
<% content_for :title do %>
|
4
|
+
<%= profile_subject.name + ": " + t('repository.title') %>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<% content_for :sidebar do %>
|
8
|
+
<%= render :partial => 'home/sidebar' %>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<%if profile_subject_is_current?%>
|
12
|
+
<%= location(
|
13
|
+
link_to(t('repository.title'), polymorphic_path(controller.controller_name),:remote => true)
|
14
|
+
) %>
|
15
|
+
<%else%>
|
16
|
+
<%= location(
|
17
|
+
link_to(profile_subject.name, polymorphic_path(profile_subject),:remote => true),
|
18
|
+
link_to(t('repository.title'), polymorphic_path([profile_subject, controller.controller_name]),:remote => true)
|
19
|
+
) %>
|
20
|
+
<%end%>
|
21
|
+
|
22
|
+
<% toolbar :profile => profile_subject %>
|
23
|
+
|
24
|
+
<br class="clearfloat" />
|
25
|
+
<div class="space_center"></div>
|
26
|
+
<h2><%= document.title.nil? ? document.file_file_name : document.title %></h2>
|
27
|
+
<div class="space_center"></div>
|
28
|
+
|
29
|
+
<%= show_view_for document %>
|
30
|
+
|
31
|
+
<%= render :partial => "document_info", :locals => {:document => document} %>
|
32
|
+
|
33
|
+
<div id="document_comments">
|
34
|
+
<%= render :partial => 'activities/comments', :locals => { :activity => document.post_activity } %>
|
35
|
+
<%= render :partial => 'comments/new', :locals => { :activity => document.post_activity } %>
|
36
|
+
</div>
|
@@ -1,18 +1,14 @@
|
|
1
|
-
<% content_for :headers do %>
|
2
|
-
<%= stylesheet_link_tag "documents" %>
|
3
|
-
<% end %>
|
4
|
-
|
5
1
|
<%= div_for document, :class => 'content_size' do %>
|
6
2
|
|
7
3
|
<div class="attachment_thumb">
|
8
4
|
<%= link_to thumb_for(document, 16),
|
9
|
-
|
5
|
+
document,
|
10
6
|
:class => "" %>
|
11
7
|
</div>
|
12
8
|
|
13
9
|
<div class="attachment_text">
|
14
10
|
<%= t('document.msg') %><%= link_to "\""+document.file_file_name+"\"",
|
15
|
-
|
11
|
+
document,
|
16
12
|
:class => "attachment_text_link" %>
|
17
13
|
</div>
|
18
14
|
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
2
|
-
:locals => { :
|
1
|
+
<%= render :partial => 'common_documents/show',
|
2
|
+
:locals => { :document => @document } %>
|
@@ -2,24 +2,25 @@
|
|
2
2
|
|
3
3
|
<div class="attachment_thumb picture_link">
|
4
4
|
<%= link_to thumb_for(picture, 16),
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
picture_path(picture),
|
6
|
+
:type => picture.type,
|
7
|
+
:title => picture.file_file_name,
|
8
|
+
:path => document_path(picture) %>
|
9
9
|
</div>
|
10
10
|
|
11
11
|
<div class="attachment_text picture_summary_class picture_link">
|
12
|
-
<%= t('picture.msg')
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
<%= t('picture.msg') %>
|
13
|
+
<%= link_to "\""+picture.file_file_name+"\"",
|
14
|
+
picture_path(picture),
|
15
|
+
:alt => picture.file_file_name,
|
16
|
+
:type => picture.type,
|
17
|
+
:path => document_path(picture),
|
18
|
+
:class => "attachment_text_link" %>
|
18
19
|
</div>
|
19
20
|
|
20
21
|
<div class="picture_link picture_thumbnail_show">
|
21
22
|
<%= link_to thumb_for(picture, 130),
|
22
|
-
|
23
|
+
download_document_path(picture),
|
23
24
|
:type => picture.type,
|
24
25
|
:title => picture.file_file_name,
|
25
26
|
:path => document_path(picture) %>
|
@@ -38,4 +39,4 @@
|
|
38
39
|
imageBtnNext: 'assets/lightbox-btn-next.gif',
|
39
40
|
imageBlank: 'assets/lightbox-blank.gif'});
|
40
41
|
})
|
41
|
-
<% end %>
|
42
|
+
<% end %>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%= div_for picture, :class => 'content_size' do %>
|
2
|
+
<div class="picture_show">
|
3
|
+
<%= link_to image_tag_for(picture),
|
4
|
+
download_document_path(picture),
|
5
|
+
:id => dom_id(picture) + "_a",
|
6
|
+
:type => picture.type,
|
7
|
+
:title => picture.file_file_name,
|
8
|
+
:path => document_path(picture) %>
|
9
|
+
</div>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
|
13
|
+
<%= javascript_tag do %>
|
14
|
+
$(document).ready(function() {
|
15
|
+
$("#<%= dom_id picture %> #<%= dom_id picture %>_img").aeImageResize({ height: 500, width: 500 });
|
16
|
+
$("#<%= dom_id picture %> #<%= dom_id picture %>_a").lightBox({
|
17
|
+
maxHeight: 920,
|
18
|
+
maxWidth: 920,
|
19
|
+
imageLoading: '../assets/lightbox-ico-loading.gif',
|
20
|
+
imageBtnClose: '../assets/lightbox-btn-close.gif',
|
21
|
+
imageBtnPrev: '../assets/lightbox-btn-prev.gif',
|
22
|
+
imageBtnNext: '../assets/lightbox-btn-next.gif',
|
23
|
+
imageBlank: '../assets/lightbox-blank.gif'});
|
24
|
+
|
25
|
+
})
|
26
|
+
<% end %>
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
2
|
-
:locals => { :
|
1
|
+
<%= render :partial => 'common_documents/show',
|
2
|
+
:locals => { :document => @picture } %>
|
@@ -3,8 +3,8 @@
|
|
3
3
|
$("#jpId<%=video.id%>").jPlayer( {
|
4
4
|
ready: function () {
|
5
5
|
$(this).jPlayer("setMedia", {
|
6
|
-
webmv: "<%=
|
7
|
-
|
6
|
+
webmv: "<%= video_url(video, :format => 'webm' ) %>", // Defines the webm url
|
7
|
+
flv: "<%= video_url(video, :format => 'flv') %>"
|
8
8
|
});
|
9
9
|
},
|
10
10
|
solution:"flash, html",
|
@@ -1,14 +1,15 @@
|
|
1
1
|
<div class="attachment_thumb">
|
2
2
|
<%= link_to thumb_for(video, 16),
|
3
|
-
|
3
|
+
video_path(video),
|
4
|
+
:id => video,
|
4
5
|
:class => "" %>
|
5
6
|
</div>
|
6
7
|
<div class="attachment_text">
|
7
8
|
<%= t('video.msg') %><%= link_to "\""+video.file_file_name+"\"",
|
8
|
-
|
9
|
+
video,
|
9
10
|
:class => "attachment_text_link" %>
|
10
11
|
<div id="video_thumbnail_<%= video.id%>" class="video_thumbnail_class">
|
11
|
-
<%= image_tag(video_path(video)
|
12
|
+
<%= image_tag(video_path(video, :format => :png, :style => 'thumb0'), :class => "video_thumbnail_image", :alt => "")%> <div id="<%= video.id%>" class="video_thumbnail_play_over"></div>
|
12
13
|
</div>
|
13
14
|
<div id="full_video_<%= video.id%>" class="jp-video jp-video-270p">
|
14
15
|
<div class="jp-type-single">
|
@@ -0,0 +1,64 @@
|
|
1
|
+
<% content_for :javascript do %>
|
2
|
+
|
3
|
+
$("#jpId<%=video.id%>").jPlayer( {
|
4
|
+
ready: function () {
|
5
|
+
$(this).jPlayer("setMedia", {
|
6
|
+
webmv: "<%= video_url(video, :format => 'webm' ) %>", // Defines the webm url
|
7
|
+
flv: "<%= video_url(video, :format => 'flv') %>"
|
8
|
+
});
|
9
|
+
},
|
10
|
+
solution:"flash, html",
|
11
|
+
preload: "none",
|
12
|
+
supplied: "webmv, flv",
|
13
|
+
swfPath: "assets",
|
14
|
+
cssSelectorAncestor: "#jp_interface_<%=video.id%>"
|
15
|
+
});
|
16
|
+
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<%= div_for video, :class => 'content_size' do %>
|
20
|
+
<div class="video_show">
|
21
|
+
<% if video.file_processing %>
|
22
|
+
<div class="processing_text">
|
23
|
+
<%= t('video.processing')%>
|
24
|
+
</div>
|
25
|
+
<% else %>
|
26
|
+
<div id="full_video_<%= video.id%>" class="jp-video jp-video-270p">
|
27
|
+
<div class="jp-type-single">
|
28
|
+
<div id="jpId<%= video.id%>" class="jp-jplayer"></div>
|
29
|
+
<div id="jp_interface_<%= video.id%>" class="jp-interface">
|
30
|
+
<div class="jp-video-play"></div>
|
31
|
+
<ul class="jp-controls">
|
32
|
+
<li>
|
33
|
+
<a href="#" class="jp-play" tabindex="1">play</a>
|
34
|
+
</li>
|
35
|
+
<li>
|
36
|
+
<a href="#" class="jp-pause" tabindex="1">pause</a>
|
37
|
+
</li>
|
38
|
+
<li>
|
39
|
+
<a href="#" class="jp-stop" tabindex="1">stop</a>
|
40
|
+
</li>
|
41
|
+
<li>
|
42
|
+
<a href="#" class="jp-mute" tabindex="1">mute</a>
|
43
|
+
</li>
|
44
|
+
<li>
|
45
|
+
<a href="#" class="jp-unmute" tabindex="1">unmute</a>
|
46
|
+
</li>
|
47
|
+
</ul>
|
48
|
+
<div class="jp-progress">
|
49
|
+
<div class="jp-seek-bar">
|
50
|
+
<div class="jp-play-bar"></div>
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
<div class="jp-volume-bar">
|
54
|
+
<div class="jp-volume-bar-value"></div>
|
55
|
+
</div>
|
56
|
+
<div class="jp-current-time"></div>
|
57
|
+
<div class="jp-duration"></div>
|
58
|
+
</div>
|
59
|
+
<div id="jp_playlist_<%= video.id%>" class="jp-playlist"></div>
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
<% end %>
|
63
|
+
</div>
|
64
|
+
<% end %>
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
2
|
-
:locals => { :
|
1
|
+
<%= render :partial => 'common_documents/show',
|
2
|
+
:locals => { :document => @video } %>
|
data/config/locales/en.yml
CHANGED
@@ -7,10 +7,22 @@ en:
|
|
7
7
|
not_mine: "Audios"
|
8
8
|
processing: "Processing audio clip"
|
9
9
|
document:
|
10
|
-
|
10
|
+
actions:
|
11
|
+
delete: "Delete"
|
12
|
+
download: "Download"
|
13
|
+
edit: "Edit"
|
14
|
+
all: "All documents"
|
11
15
|
confirm_delete: "Delete document?"
|
12
16
|
form:
|
13
17
|
title: "File"
|
18
|
+
info:
|
19
|
+
date:
|
20
|
+
created_at: "Created at"
|
21
|
+
updated_at: "Updated at"
|
22
|
+
description:
|
23
|
+
title: "Description"
|
24
|
+
title:
|
25
|
+
title: "Title"
|
14
26
|
mine: "My documents"
|
15
27
|
msg: "Uploaded a document:"
|
16
28
|
not_mine: "Documents"
|
@@ -22,6 +34,12 @@ en:
|
|
22
34
|
mine: "My pictures"
|
23
35
|
msg: "Uploaded a picture:"
|
24
36
|
not_mine: "Pictures"
|
37
|
+
repository:
|
38
|
+
title: "Repository"
|
39
|
+
order:
|
40
|
+
by: "Order by"
|
41
|
+
last_modified: "Last modified"
|
42
|
+
most_popular: "Most popular"
|
25
43
|
resource:
|
26
44
|
all: "All Resources"
|
27
45
|
confirm_delete: "Delete resource?"
|
data/config/locales/es.yml
CHANGED
@@ -7,10 +7,22 @@ es:
|
|
7
7
|
not_mine: "Audios"
|
8
8
|
processing: "Procesando fichero de audio..."
|
9
9
|
document:
|
10
|
+
actions:
|
11
|
+
delete: "Borrar"
|
12
|
+
download: "Descargar"
|
13
|
+
edit: "Editar"
|
10
14
|
all: "Todos los documentos"
|
11
15
|
confirm_delete: "¿Borrar documento?"
|
12
16
|
form:
|
13
17
|
title: "Fichero"
|
18
|
+
info:
|
19
|
+
date:
|
20
|
+
created_at: "Creado"
|
21
|
+
updated_at: "Última modificación"
|
22
|
+
description:
|
23
|
+
title: "Descripción"
|
24
|
+
title:
|
25
|
+
title: "Título"
|
14
26
|
mine: "Mis documentos"
|
15
27
|
msg: "Subió un documento:"
|
16
28
|
not_mine: "Documentos"
|
@@ -22,6 +34,12 @@ es:
|
|
22
34
|
mine: "Mis imágenes"
|
23
35
|
msg: "Subió una imagen:"
|
24
36
|
not_mine: "Imágenes"
|
37
|
+
repository:
|
38
|
+
title: "Repositorio"
|
39
|
+
order:
|
40
|
+
by: "Ordenar por"
|
41
|
+
last_modified: "Última modificación"
|
42
|
+
most_popular: "Popularidad"
|
25
43
|
resource:
|
26
44
|
all: "Todos los recursos"
|
27
45
|
confirm_delete: "¿Borrar recursos?"
|
@@ -29,9 +29,11 @@ module SocialStream
|
|
29
29
|
Mime::Type.register "audio/x-wav", :wav, [ "audio/wav" ]
|
30
30
|
Mime::Type.register "audio/mpeg", :mpeg
|
31
31
|
Mime::Type.register "audio/x-vorbis+ogg", :ogg, [ "application/ogg" ]
|
32
|
+
Mime::Type.register "audio/webm", :webma
|
32
33
|
|
33
34
|
# Video
|
34
35
|
Mime::Type.register "video/x-flv", :flv
|
36
|
+
Mime::Type.register "video/webm", :webm
|
35
37
|
end
|
36
38
|
|
37
39
|
initializer "social_stream-documents.toolbar_config" do
|
@@ -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.
|
15
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.9.23')
|
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')
|
@@ -21,9 +21,15 @@ describe DocumentsController do
|
|
21
21
|
response.body.should =~ /small.pdf/
|
22
22
|
end
|
23
23
|
|
24
|
-
it "should render receiver's show" do
|
24
|
+
it "should render receiver's html show" do
|
25
25
|
get :show, :id => @public_document.to_param
|
26
26
|
response.should be_success
|
27
|
+
response.headers["Content-Type"].should include('text/html')
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should render receiver's format pdf download" do
|
31
|
+
get :download, :id => @public_document.to_param
|
32
|
+
response.should be_success
|
27
33
|
response.headers["Content-Type"].should include('application/pdf')
|
28
34
|
end
|
29
35
|
end
|
@@ -40,9 +46,15 @@ describe DocumentsController do
|
|
40
46
|
response.body.should =~ /small.pdf/
|
41
47
|
end
|
42
48
|
|
43
|
-
it "should render show" do
|
49
|
+
it "should render html show" do
|
44
50
|
get :show, :id => @public_document.to_param
|
45
51
|
response.should be_success
|
52
|
+
response.headers["Content-Type"].should include('text/html')
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should render format pdf download" do
|
56
|
+
get :download, :id => @public_document.to_param, :format => :pdf
|
57
|
+
response.should be_success
|
46
58
|
response.headers["Content-Type"].should include('application/pdf')
|
47
59
|
end
|
48
60
|
end
|
@@ -77,4 +89,30 @@ describe DocumentsController do
|
|
77
89
|
end
|
78
90
|
end
|
79
91
|
end
|
92
|
+
|
93
|
+
context "with public picture" do
|
94
|
+
before do
|
95
|
+
@public_picture = Factory(:public_picture)
|
96
|
+
end
|
97
|
+
|
98
|
+
describe "when not authenticated" do
|
99
|
+
it "should render receiver's format png download" do
|
100
|
+
get :download, :id => @public_picture.to_param
|
101
|
+
response.should be_success
|
102
|
+
response.headers["Content-Type"].should include('image/png')
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "when authenticated" do
|
107
|
+
before do
|
108
|
+
sign_in Factory(:user)
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should render format png download" do
|
112
|
+
get :download, :id => @public_picture.to_param
|
113
|
+
response.should be_success
|
114
|
+
response.headers["Content-Type"].should include('image/png')
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
80
118
|
end
|
@@ -21,10 +21,10 @@ describe PicturesController do
|
|
21
21
|
response.body.should =~ /rails.png/
|
22
22
|
end
|
23
23
|
|
24
|
-
it "should render receiver's show" do
|
24
|
+
it "should render receiver's html show" do
|
25
25
|
get :show, :id => @public_picture.to_param
|
26
26
|
response.should be_success
|
27
|
-
response.headers["Content-Type"].should include('
|
27
|
+
response.headers["Content-Type"].should include('text/html')
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -40,10 +40,10 @@ describe PicturesController do
|
|
40
40
|
response.body.should =~ /rails.png/
|
41
41
|
end
|
42
42
|
|
43
|
-
it "should render show" do
|
43
|
+
it "should render html show" do
|
44
44
|
get :show, :id => @public_picture.to_param
|
45
45
|
response.should be_success
|
46
|
-
response.headers["Content-Type"].should include('
|
46
|
+
response.headers["Content-Type"].should include('text/html')
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end #end of the context
|
@@ -11,7 +11,6 @@ Dummy::Application.configure do
|
|
11
11
|
|
12
12
|
# Show full error reports and disable caching
|
13
13
|
config.consider_all_requests_local = true
|
14
|
-
config.action_view.debug_rjs = true
|
15
14
|
config.action_controller.perform_caching = false
|
16
15
|
|
17
16
|
# Don't care if the mailer can't send
|