social_stream-documents 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/assets/javascripts/documents.js.erb +11 -0
- data/app/assets/stylesheets/show.css.scss +30 -1
- data/app/controllers/audios_controller.rb +1 -1
- data/app/controllers/documents_controller.rb +48 -7
- data/app/controllers/pictures_controller.rb +1 -1
- data/app/controllers/videos_controller.rb +1 -1
- data/app/models/document.rb +4 -1
- data/app/views/audios/index.html.erb +1 -1
- data/app/views/audios/show.html.erb +1 -1
- data/app/views/{common_documents → common}/_document_info.html.erb +4 -3
- data/app/views/common/_edit_form.html.erb +49 -0
- data/app/views/{common_documents → common}/_index.html.erb +0 -0
- data/app/views/{common_documents → common}/_show.html.erb +1 -1
- data/app/views/documents/index.html.erb +1 -1
- data/app/views/documents/show.html.erb +1 -1
- data/app/views/pictures/index.html.erb +1 -1
- data/app/views/pictures/show.html.erb +1 -1
- data/app/views/videos/index.html.erb +1 -1
- data/app/views/videos/show.html.erb +1 -1
- data/config/locales/en.yml +3 -1
- data/config/locales/es.yml +3 -1
- data/lib/social_stream/documents/version.rb +1 -1
- data/lib/social_stream/toolbar_config/documents.rb +14 -9
- data/social_stream-documents.gemspec +1 -1
- metadata +11 -11
- data/app/controllers/common_documents_controller.rb +0 -45
@@ -48,3 +48,14 @@ showAllDocumentComments = function(id){
|
|
48
48
|
//and hide the hide_show_comments
|
49
49
|
$("#"+id).children(".hide_show_comments").hide();
|
50
50
|
};
|
51
|
+
|
52
|
+
toggleDocumentEdit = function(){
|
53
|
+
if($("#document_edit").css("display")=="none"){
|
54
|
+
$("#document_edit").show("slow");
|
55
|
+
$("#document_edit_action").addClass("selected");
|
56
|
+
|
57
|
+
}else{
|
58
|
+
$("#document_edit").hide("slow");
|
59
|
+
$("#document_edit_action").removeClass("selected");
|
60
|
+
}
|
61
|
+
}
|
@@ -45,13 +45,42 @@
|
|
45
45
|
margin-left: 30px;
|
46
46
|
}
|
47
47
|
#document_info #actions .action{
|
48
|
-
margin-right: 10px;
|
48
|
+
margin-right: 10px;
|
49
|
+
padding: 5px;
|
50
|
+
}
|
51
|
+
#document_info #actions .action.selected{
|
52
|
+
border: thin solid $separation-color;
|
53
|
+
background: $secondary-color;
|
49
54
|
}
|
50
55
|
#document_info #actions .action img{
|
51
56
|
width: 16px;
|
52
57
|
height: 16px;
|
53
58
|
}
|
54
59
|
|
60
|
+
#document_edit {
|
61
|
+
margin: 5px 5px 0px 5px;
|
62
|
+
border: thin solid $separation-color;
|
63
|
+
background: $secondary-color;
|
64
|
+
|
65
|
+
}
|
66
|
+
#document_edit textarea{
|
67
|
+
resize: none;
|
68
|
+
height: 75px;
|
69
|
+
}
|
70
|
+
#document_edit .form_row {
|
71
|
+
padding: 5px 10px;
|
72
|
+
}
|
73
|
+
#document_edit .form_label {
|
74
|
+
width: 100px;
|
75
|
+
}
|
76
|
+
#document_edit .form_field {
|
77
|
+
width: 415px;
|
78
|
+
padding: 0;
|
79
|
+
}
|
80
|
+
#document_edit .form_tag {
|
81
|
+
width: 100%;
|
82
|
+
}
|
83
|
+
|
55
84
|
#document_comments {
|
56
85
|
margin-top: 20px;
|
57
86
|
padding-top: 10px;
|
@@ -1,2 +1,2 @@
|
|
1
|
-
class AudiosController <
|
1
|
+
class AudiosController < DocumentsController
|
2
2
|
end
|
@@ -1,19 +1,44 @@
|
|
1
|
-
class DocumentsController <
|
1
|
+
class DocumentsController < InheritedResources::Base
|
2
2
|
respond_to :html, :js
|
3
|
-
|
4
|
-
SEND_FILE_METHOD = :default
|
5
3
|
|
4
|
+
belongs_to_subjects :optional => true
|
5
|
+
|
6
|
+
before_filter :profile_subject!, :only => :index
|
7
|
+
|
8
|
+
load_and_authorize_resource :except => :index
|
9
|
+
|
10
|
+
SEND_FILE_METHOD = :default
|
6
11
|
def create
|
7
12
|
super do |format|
|
8
13
|
format.all {redirect_to request.referer || home_path}
|
9
14
|
end
|
10
15
|
end
|
11
|
-
|
16
|
+
|
17
|
+
def update
|
18
|
+
update! do |success, failure|
|
19
|
+
failure.html { render :action => :show }
|
20
|
+
success.html { render :action => :show }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def show
|
25
|
+
respond_to do |format|
|
26
|
+
format.html {render :action => :show}
|
27
|
+
format.all {
|
28
|
+
path = resource.file.path(params[:style] || params[:format])
|
29
|
+
|
30
|
+
send_file path,
|
31
|
+
:filename => resource.file_file_name,
|
32
|
+
:disposition => "inline"
|
33
|
+
}
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
12
37
|
#TODO: we have to add the mimetype as in videos_controller
|
13
38
|
def download
|
14
39
|
path = @document.file.path(params[:style])
|
15
40
|
|
16
|
-
head(:bad_request) and return unless File.exist?(path)
|
41
|
+
head(:bad_request) and return unless File.exist?(path)
|
17
42
|
|
18
43
|
send_file_options = {
|
19
44
|
:filename => @document.file_file_name,
|
@@ -22,13 +47,29 @@ class DocumentsController < CommonDocumentsController
|
|
22
47
|
|
23
48
|
# Ask Victor about the rationale of this:
|
24
49
|
case SEND_FILE_METHOD
|
25
|
-
|
26
|
-
|
50
|
+
when :apache then send_file_options[:x_sendfile] = true
|
51
|
+
when :nginx then head(:x_accel_redirect => path.gsub(Rails.root, ''))
|
27
52
|
end
|
28
53
|
|
29
54
|
send_file(path, send_file_options)
|
30
55
|
end
|
31
56
|
|
57
|
+
def destroy
|
58
|
+
@post_activity = resource.post_activity
|
59
|
+
|
60
|
+
destroy!
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def collection
|
66
|
+
@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])
|
71
|
+
end
|
72
|
+
|
32
73
|
class << self
|
33
74
|
def index_object_type
|
34
75
|
[ :Audio, :Video, :Picture, :Document ]
|
@@ -1,2 +1,2 @@
|
|
1
|
-
class PicturesController <
|
1
|
+
class PicturesController < DocumentsController
|
2
2
|
end
|
@@ -1,2 +1,2 @@
|
|
1
|
-
class VideosController <
|
1
|
+
class VideosController < DocumentsController
|
2
2
|
end
|
data/app/models/document.rb
CHANGED
@@ -8,8 +8,11 @@ class Document < ActiveRecord::Base
|
|
8
8
|
:path => ':rails_root/documents/:class/:id_partition/:style/:filename.:extension'
|
9
9
|
|
10
10
|
validates_attachment_presence :file
|
11
|
+
validates_presence_of :title
|
11
12
|
|
12
|
-
|
13
|
+
before_validation(:on => :create) do
|
14
|
+
set_title_and_description
|
15
|
+
end
|
13
16
|
|
14
17
|
define_index do
|
15
18
|
indexes title
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
1
|
+
<%= render :partial => 'common/show',
|
2
2
|
:locals => { :document => @audio } %>
|
@@ -24,11 +24,12 @@
|
|
24
24
|
</div>
|
25
25
|
<br class="clearfloat" />
|
26
26
|
<div id="actions">
|
27
|
-
<%= link_to image_tag("btn/download.png") + t('document.actions.download'),
|
28
|
-
<%= link_to image_tag("btn/edit.png") + t('document.actions.edit'),
|
27
|
+
<%= link_to content_tag(:span,image_tag("btn/download.png") + t('document.actions.download'), :class => :action), download_document_path(document) %>
|
28
|
+
<%= link_to content_tag(:span,image_tag("btn/edit.png") + t('document.actions.edit'), :class => :action, :id => :document_edit_action), "javascript:toggleDocumentEdit();" %>
|
29
29
|
<% if document.post_activity.delete_object_by?(current_subject) %>
|
30
|
-
<%= link_to image_tag("btn/error.png") + t('document.actions.delete'), document.post_activity.direct_object , :confirm => t('confirm_delete',
|
30
|
+
<%= link_to content_tag(:span,image_tag("btn/error.png") + t('document.actions.delete'), :class => :action), document.post_activity.direct_object , :confirm => t('confirm_delete',
|
31
31
|
:scope => document.post_activity.direct_object.class.to_s.underscore), :method => :delete %>
|
32
32
|
<% end %>
|
33
33
|
</div>
|
34
34
|
</div>
|
35
|
+
<%= render :partial => "common/edit_form", :locals => {:document => document} %>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<div class="block" id="document_edit" style="display:none;">
|
2
|
+
<%= form_for(document, :html => { :method => :put }) do |f| %>
|
3
|
+
<% if document and document.errors.any? %>
|
4
|
+
<%= javascript_tag do %>
|
5
|
+
$(document).ready(function(){
|
6
|
+
toggleDocumentEdit();
|
7
|
+
});
|
8
|
+
<% end %>
|
9
|
+
<div class="error">
|
10
|
+
<ul>
|
11
|
+
<% document.errors.full_messages.each do |msg| %>
|
12
|
+
<li>
|
13
|
+
<%= msg %>
|
14
|
+
</li>
|
15
|
+
<% end %>
|
16
|
+
</ul>
|
17
|
+
</div>
|
18
|
+
<% end %>
|
19
|
+
<div class="form_row">
|
20
|
+
<div class="form_label">
|
21
|
+
<%= f.label t('document.info.title.title') %>
|
22
|
+
</div>
|
23
|
+
<div class="form_field">
|
24
|
+
<%= f.text_field :title, :class => "form_tag" %>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
<div class="form_row">
|
28
|
+
<div class="form_label">
|
29
|
+
<%= f.label t('document.info.description.title') %>
|
30
|
+
</div>
|
31
|
+
<div class="form_field">
|
32
|
+
<%= f.text_area :description, :class => "form_tag" %>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
<!--
|
36
|
+
<div class="form_row">
|
37
|
+
<div class="form_label">
|
38
|
+
<%#= f.label t('document.info.file.title') %>
|
39
|
+
</div>
|
40
|
+
<div class="form_field">
|
41
|
+
<%#= f.file_field :file, :class => "form_tag" %>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
-->
|
45
|
+
<div class="actions center">
|
46
|
+
<%= f.submit t('document.actions.edit'), :class => "button" %>
|
47
|
+
</div>
|
48
|
+
<% end %>
|
49
|
+
</div>
|
File without changes
|
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
<%= show_view_for document %>
|
30
30
|
|
31
|
-
<%= render :partial => "document_info", :locals => {:document => document} %>
|
31
|
+
<%= render :partial => "common/document_info", :locals => {:document => document} %>
|
32
32
|
|
33
33
|
<div id="document_comments">
|
34
34
|
<%= render :partial => 'activities/comments', :locals => { :activity => document.post_activity } %>
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
1
|
+
<%= render :partial => 'common/show',
|
2
2
|
:locals => { :document => @document } %>
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
1
|
+
<%= render :partial => 'common/show',
|
2
2
|
:locals => { :document => @picture } %>
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
1
|
+
<%= render :partial => 'common/show',
|
2
2
|
:locals => { :document => @video } %>
|
data/config/locales/en.yml
CHANGED
@@ -21,6 +21,8 @@ en:
|
|
21
21
|
updated_at: "Updated at"
|
22
22
|
description:
|
23
23
|
title: "Description"
|
24
|
+
file:
|
25
|
+
title: "Upload"
|
24
26
|
title:
|
25
27
|
title: "Title"
|
26
28
|
mine: "My documents"
|
@@ -43,7 +45,7 @@ en:
|
|
43
45
|
resource:
|
44
46
|
all: "All Resources"
|
45
47
|
confirm_delete: "Delete resource?"
|
46
|
-
title: "
|
48
|
+
title: "Repository"
|
47
49
|
mine: "My resources"
|
48
50
|
msg: "Uploaded a resource:"
|
49
51
|
not_mine: "Resources"
|
data/config/locales/es.yml
CHANGED
@@ -21,6 +21,8 @@ es:
|
|
21
21
|
updated_at: "Última modificación"
|
22
22
|
description:
|
23
23
|
title: "Descripción"
|
24
|
+
file:
|
25
|
+
title: "Subir"
|
24
26
|
title:
|
25
27
|
title: "Título"
|
26
28
|
mine: "Mis documentos"
|
@@ -43,7 +45,7 @@ es:
|
|
43
45
|
resource:
|
44
46
|
all: "Todos los recursos"
|
45
47
|
confirm_delete: "¿Borrar recursos?"
|
46
|
-
title: "
|
48
|
+
title: "Repositorio"
|
47
49
|
mine: "Mis recursos"
|
48
50
|
msg: "Subió un recurso:"
|
49
51
|
not_mine: "Recursos"
|
@@ -6,17 +6,22 @@ module SocialStream
|
|
6
6
|
|
7
7
|
items << {
|
8
8
|
:key => :resources,
|
9
|
-
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("resource
|
10
|
-
:url =>
|
11
|
-
:options => {:link => {:id => "resources_menu"}}
|
12
|
-
:items => [
|
13
|
-
{:key => :resources_documents,:name => image_tag("btn/btn_document.png")+t('document.title'),:url => polymorphic_path([subject, Document.new])},
|
14
|
-
{:key => :resources_pictures,:name => image_tag("btn/btn_gallery.png")+t('picture.title'),:url => polymorphic_path([subject, Picture.new])},
|
15
|
-
{:key => :resources_videos,:name => image_tag("btn/btn_video.png")+t('video.title'),:url => polymorphic_path([subject, Video.new])},
|
16
|
-
{:key => :resources_audios,:name => image_tag("btn/btn_audio.png")+t('audio.title'),:url => polymorphic_path([subject, Audio.new])}
|
17
|
-
]
|
9
|
+
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("resource.title"),
|
10
|
+
:url => polymorphic_path([subject, Document.new]),
|
11
|
+
:options => {:link => {:id => "resources_menu"}}
|
18
12
|
}
|
19
13
|
end
|
14
|
+
|
15
|
+
def home_toolbar_items
|
16
|
+
items = super
|
17
|
+
|
18
|
+
items << {
|
19
|
+
:key => :resources,
|
20
|
+
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("resource.title"),
|
21
|
+
:url => polymorphic_path([current_subject, Document.new]),
|
22
|
+
:options => {:link => {:id => "resources_menu"}}
|
23
|
+
}
|
24
|
+
end
|
20
25
|
end
|
21
26
|
end
|
22
27
|
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.
|
15
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.9.24')
|
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:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 1
|
10
|
+
version: 0.4.1
|
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-
|
19
|
+
date: 2011-10-31 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:
|
30
|
+
hash: 11
|
31
31
|
segments:
|
32
32
|
- 0
|
33
33
|
- 9
|
34
|
-
-
|
35
|
-
version: 0.9.
|
34
|
+
- 24
|
35
|
+
version: 0.9.24
|
36
36
|
type: :runtime
|
37
37
|
version_requirements: *id001
|
38
38
|
- !ruby/object:Gem::Dependency
|
@@ -235,7 +235,6 @@ files:
|
|
235
235
|
- app/assets/stylesheets/show.css.scss
|
236
236
|
- app/assets/stylesheets/social_stream-documents.css
|
237
237
|
- app/controllers/audios_controller.rb
|
238
|
-
- app/controllers/common_documents_controller.rb
|
239
238
|
- app/controllers/documents_controller.rb
|
240
239
|
- app/controllers/pictures_controller.rb
|
241
240
|
- app/controllers/videos_controller.rb
|
@@ -257,9 +256,10 @@ files:
|
|
257
256
|
- app/views/audios/index.html.erb
|
258
257
|
- app/views/audios/index.js.erb
|
259
258
|
- app/views/audios/show.html.erb
|
260
|
-
- app/views/
|
261
|
-
- app/views/
|
262
|
-
- app/views/
|
259
|
+
- app/views/common/_document_info.html.erb
|
260
|
+
- app/views/common/_edit_form.html.erb
|
261
|
+
- app/views/common/_index.html.erb
|
262
|
+
- app/views/common/_show.html.erb
|
263
263
|
- app/views/documents/_document.html.erb
|
264
264
|
- app/views/documents/_document_focus_search.html.erb
|
265
265
|
- app/views/documents/_document_global_search.html.erb
|
@@ -1,45 +0,0 @@
|
|
1
|
-
class CommonDocumentsController < InheritedResources::Base
|
2
|
-
respond_to :html, :js
|
3
|
-
|
4
|
-
belongs_to_subjects :optional => true
|
5
|
-
|
6
|
-
before_filter :profile_subject!, :only => :index
|
7
|
-
|
8
|
-
load_and_authorize_resource :except => :index
|
9
|
-
|
10
|
-
|
11
|
-
def show
|
12
|
-
respond_to do |format|
|
13
|
-
format.html {render :action => :show}
|
14
|
-
format.all {
|
15
|
-
path = resource.file.path(params[:style] || params[:format])
|
16
|
-
|
17
|
-
send_file path,
|
18
|
-
:filename => resource.file_file_name,
|
19
|
-
:disposition => "inline"
|
20
|
-
}
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def destroy
|
25
|
-
@post_activity = resource.post_activity
|
26
|
-
|
27
|
-
destroy!
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def collection
|
33
|
-
@activities = profile_subject.wall(:profile,
|
34
|
-
:for => current_subject,
|
35
|
-
:object_type => Array(self.class.index_object_type)).
|
36
|
-
page(params[:page]).
|
37
|
-
per(params[:per])
|
38
|
-
end
|
39
|
-
|
40
|
-
class << self
|
41
|
-
def index_object_type
|
42
|
-
controller_name.classify
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|