vkhater-social_stream-linkser 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +14 -0
- data/.rspec +1 -0
- data/Gemfile +5 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +6 -0
- data/Rakefile +26 -0
- data/app/assets/javascripts/linkser.js.erb +63 -0
- data/app/assets/javascripts/social_stream-linkser.js +2 -0
- data/app/assets/stylesheets/linkser.css.scss +68 -0
- data/app/assets/stylesheets/social_stream-linkser.css +3 -0
- data/app/controllers/links_controller.rb +3 -0
- data/app/controllers/linkser_controller.rb +20 -0
- data/app/models/link.rb +47 -0
- data/app/views/links/_error.html.erb +4 -0
- data/app/views/links/_link.html.erb +37 -0
- data/app/views/links/_link_preview.html.erb +34 -0
- data/app/views/links/create.js.erb +15 -0
- data/app/views/links/destroy.js.erb +1 -0
- data/app/views/links/show.html.erb +10 -0
- data/config/locales/en.yml +14 -0
- data/config/locales/es.yml +14 -0
- data/config/routes.rb +3 -0
- data/db/migrate/20111129100618_create_social_stream_linkser.rb +21 -0
- data/db/migrate/20111219122952_add_width_height_to_link.rb +15 -0
- data/lib/generators/social_stream/linkser/install_generator.rb +24 -0
- data/lib/social_stream-linkser.rb +16 -0
- data/lib/social_stream/linkser/engine.rb +7 -0
- data/lib/social_stream/linkser/version.rb +5 -0
- data/lib/social_stream/migrations/linkser.rb +9 -0
- data/social_stream-linkser.gemspec +26 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +45 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +22 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +25 -0
- data/spec/dummy/config/environments/production.rb +49 -0
- data/spec/dummy/config/environments/test.rb +37 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/devise.rb +176 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/navigation.rb +0 -0
- data/spec/dummy/config/relations.yml +39 -0
- data/spec/dummy/config/routes.rb +60 -0
- data/spec/dummy/db/.gitkeep +0 -0
- data/spec/dummy/documents/documents/000/000/001/original.pdf +157 -0
- data/spec/dummy/documents/documents/000/000/002/original.pdf +157 -0
- data/spec/dummy/documents/documents/000/000/003/original.pdf +157 -0
- data/spec/dummy/documents/documents/000/000/004/original.pdf +157 -0
- data/spec/dummy/documents/documents/000/000/005/original.pdf +157 -0
- data/spec/dummy/documents/documents/000/000/006/original.pdf +157 -0
- data/spec/dummy/documents/documents/000/000/007/original.pdf +157 -0
- data/spec/dummy/documents/documents/000/000/008/original.pdf +157 -0
- data/spec/dummy/documents/documents/000/000/009/original.pdf +157 -0
- data/spec/dummy/documents/documents/000/000/010/original.pdf +157 -0
- data/spec/dummy/documents/pictures/000/000/011/original.png +0 -0
- data/spec/dummy/documents/pictures/000/000/011/thumb.png +0 -0
- data/spec/dummy/documents/pictures/000/000/011/thumb0.png +0 -0
- data/spec/dummy/documents/pictures/000/000/012/original.png +0 -0
- data/spec/dummy/documents/pictures/000/000/012/thumb.png +0 -0
- data/spec/dummy/documents/pictures/000/000/012/thumb0.png +0 -0
- data/spec/dummy/documents/pictures/000/000/013/original.png +0 -0
- data/spec/dummy/documents/pictures/000/000/013/thumb.png +0 -0
- data/spec/dummy/documents/pictures/000/000/013/thumb0.png +0 -0
- data/spec/dummy/documents/pictures/000/000/014/original.png +0 -0
- data/spec/dummy/documents/pictures/000/000/014/thumb.png +0 -0
- data/spec/dummy/documents/pictures/000/000/014/thumb0.png +0 -0
- data/spec/dummy/documents/pictures/000/000/015/original.png +0 -0
- data/spec/dummy/documents/pictures/000/000/015/thumb.png +0 -0
- data/spec/dummy/documents/pictures/000/000/015/thumb0.png +0 -0
- data/spec/dummy/documents/pictures/000/000/016/original.png +0 -0
- data/spec/dummy/documents/pictures/000/000/016/thumb.png +0 -0
- data/spec/dummy/documents/pictures/000/000/016/thumb0.png +0 -0
- data/spec/dummy/documents/pictures/000/000/017/original.png +0 -0
- data/spec/dummy/documents/pictures/000/000/017/thumb.png +0 -0
- data/spec/dummy/documents/pictures/000/000/017/thumb0.png +0 -0
- data/spec/dummy/documents/pictures/000/000/018/original.png +0 -0
- data/spec/dummy/documents/pictures/000/000/018/thumb.png +0 -0
- data/spec/dummy/documents/pictures/000/000/018/thumb0.png +0 -0
- data/spec/dummy/documents/pictures/000/000/019/original.png +0 -0
- data/spec/dummy/documents/pictures/000/000/019/thumb.png +0 -0
- data/spec/dummy/documents/pictures/000/000/019/thumb0.png +0 -0
- data/spec/dummy/documents/pictures/000/000/020/original.png +0 -0
- data/spec/dummy/documents/pictures/000/000/020/thumb.png +0 -0
- data/spec/dummy/documents/pictures/000/000/020/thumb0.png +0 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/javascripts/application.js +2 -0
- data/spec/dummy/public/javascripts/controls.js +965 -0
- data/spec/dummy/public/javascripts/dragdrop.js +974 -0
- data/spec/dummy/public/javascripts/effects.js +1123 -0
- data/spec/dummy/public/javascripts/prototype.js +6001 -0
- data/spec/dummy/public/javascripts/rails.js +191 -0
- data/spec/dummy/public/stylesheets/.gitkeep +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/integration/navigation_spec.rb +9 -0
- data/spec/socialstream_linkser_spec.rb +7 -0
- data/spec/spec_helper.rb +48 -0
- data/spec/support/cancan.rb +1 -0
- data/spec/support/db.rb +8 -0
- data/spec/support/devise.rb +4 -0
- data/spec/support/mock.rb +4 -0
- data/vendor/assets/javascripts/jquery.jplayer.js +78 -0
- data/vendor/assets/stylesheets/jplayer.blue.monday.css +448 -0
- data/vendor/assets/stylesheets/jplayer.blue.monday.jpg +0 -0
- data/vendor/assets/stylesheets/jplayer.blue.monday.video.play.hover.png +0 -0
- data/vendor/assets/stylesheets/jplayer.blue.monday.video.play.png +0 -0
- data/vendor/assets/stylesheets/jquery.lightbox.css +101 -0
- data/vendor/assets/stylesheets/pbar-ani.gif +0 -0
- metadata +242 -0
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2011 Universidad Politécnica de Madrid
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'bundler/gem_tasks'
|
3
|
+
|
4
|
+
require 'rdoc/task'
|
5
|
+
|
6
|
+
require 'rspec/core'
|
7
|
+
require 'rspec/core/rake_task'
|
8
|
+
|
9
|
+
RSpec::Core::RakeTask.new(:spec)
|
10
|
+
|
11
|
+
task :default => :spec
|
12
|
+
|
13
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
14
|
+
rdoc.rdoc_dir = 'rdoc'
|
15
|
+
rdoc.title = 'SocialStream Linkser'
|
16
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
17
|
+
rdoc.rdoc_files.include('README.rdoc')
|
18
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
19
|
+
end
|
20
|
+
|
21
|
+
# Modify this gem's tags
|
22
|
+
class Bundler::GemHelper
|
23
|
+
def version_tag
|
24
|
+
"linkser#{version}"
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
var SocialStream = SocialStream || {};
|
2
|
+
SocialStream.Linkser = SocialStream.Linkser || {};
|
3
|
+
SocialStream.Linkser.initiate = function() {
|
4
|
+
$.preloadImages("assets/loading.gif");
|
5
|
+
var urlDetect = function() {
|
6
|
+
this.currentValue = $("#input_activities").val();
|
7
|
+
if(this.lastValue == null)
|
8
|
+
this.lastValue = "";
|
9
|
+
|
10
|
+
var regexp = /(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/
|
11
|
+
if(regexp.test($("#input_activities").val())) {
|
12
|
+
$("#link_url").val($("#input_activities").val());
|
13
|
+
$("#link_loaded").val(false);
|
14
|
+
$("#new_post").attr("action", "/links");
|
15
|
+
if(this.currentValue != this.lastValue) {
|
16
|
+
$("#link_preview").html($('<img>').attr('src', 'assets/loading.gif').addClass('loading'));
|
17
|
+
this.lastValue = this.currentValue;
|
18
|
+
var url = this.currentValue;
|
19
|
+
var urlDetect = this;
|
20
|
+
$.ajax({
|
21
|
+
type : "GET",
|
22
|
+
url : "/linkser_parse?url=" + url,
|
23
|
+
success : function(html) {
|
24
|
+
if($("#input_activities").val() == url) {//Only show if input value is still the same
|
25
|
+
$("#link_preview").html(html);
|
26
|
+
$("#link_loaded").val(true);
|
27
|
+
}
|
28
|
+
},
|
29
|
+
error : function(xhr, ajaxOptions, thrownError) {
|
30
|
+
if($("#input_activities").val() == url) {//Only show if input value is still the same
|
31
|
+
$("#link_preview").html($('<div>').addClass('loading').html("<%= I18n.t('link.errors.loading') %> " + url));
|
32
|
+
}
|
33
|
+
}
|
34
|
+
});
|
35
|
+
}
|
36
|
+
$("#link_preview").show();
|
37
|
+
} else {
|
38
|
+
$("#new_post").attr("action", "/posts");
|
39
|
+
$("#link_preview").hide();
|
40
|
+
$("#link_preview").html("");
|
41
|
+
$("#link_url").val("");
|
42
|
+
}
|
43
|
+
}
|
44
|
+
if($("#new_post").length) {
|
45
|
+
$("#input_activities").change(urlDetect).keyup(urlDetect);
|
46
|
+
$("#new_post").append($('<input>').attr('type', 'hidden').attr('name', 'link[owner_id]').attr('id', 'link_owner_id').val($("#post_owner_id").val()));
|
47
|
+
$("#new_post").append($('<input>').attr('type', 'hidden').attr('name', 'link[url]').attr('id', 'link_url'));
|
48
|
+
$("#new_post").append($('<input>').attr('type', 'hidden').attr('name', 'link[loaded]').attr('id', 'link_loaded').val(false));
|
49
|
+
$("#new_post").append($('<div>').attr('id', 'link_preview').css('display', 'none'));
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
SocialStream.Linkser.openCallback = function(id,url,w,h){
|
54
|
+
var height='353';
|
55
|
+
if(w>0 && h>0) {
|
56
|
+
height=470*h/w;
|
57
|
+
}
|
58
|
+
$("#" + id).html($('<iframe>').attr('src',url).attr('width','470').attr('height',height));
|
59
|
+
}
|
60
|
+
|
61
|
+
$(function(){
|
62
|
+
SocialStream.Linkser.initiate();
|
63
|
+
});
|
@@ -0,0 +1,68 @@
|
|
1
|
+
@import "colors";
|
2
|
+
|
3
|
+
#link_preview {
|
4
|
+
width: 510px;
|
5
|
+
height: 120px;
|
6
|
+
border: 1px solid $auxiliar-color;
|
7
|
+
margin: 5px auto;
|
8
|
+
}
|
9
|
+
|
10
|
+
#link_preview img.loading{
|
11
|
+
margin: auto;
|
12
|
+
margin-top: 40px;
|
13
|
+
}
|
14
|
+
#link_preview div.loading{
|
15
|
+
margin: auto;
|
16
|
+
margin-top: 50px;
|
17
|
+
}
|
18
|
+
#link_preview img.link_error{
|
19
|
+
margin: auto;
|
20
|
+
margin-top: 40px;
|
21
|
+
}
|
22
|
+
#link_preview div.link_error{
|
23
|
+
margin: auto;
|
24
|
+
margin-top: 5px;
|
25
|
+
}
|
26
|
+
.link {
|
27
|
+
position: relative;
|
28
|
+
padding: 10px;
|
29
|
+
}
|
30
|
+
.link .thumbnail, .link .thumbnail img{
|
31
|
+
position: relative;
|
32
|
+
float: left;
|
33
|
+
max-height: 100px;
|
34
|
+
max-width: 120px;
|
35
|
+
margin-right:10px;
|
36
|
+
}
|
37
|
+
.link .thumbnail img.play_button{
|
38
|
+
position: absolute;
|
39
|
+
bottom: 2px;
|
40
|
+
left: 2px;
|
41
|
+
opacity:0.6;
|
42
|
+
filter:alpha(opacity=60); /* For IE8 and earlier */
|
43
|
+
}
|
44
|
+
.link .thumbnail img.play_button:hover{
|
45
|
+
opacity:0.8;
|
46
|
+
filter:alpha(opacity=80); /* For IE8 and earlier */
|
47
|
+
}
|
48
|
+
.link .info{
|
49
|
+
float: left;
|
50
|
+
width: 360px;
|
51
|
+
text-align: left;
|
52
|
+
}
|
53
|
+
.activity_objects .link .info{
|
54
|
+
width: 320px;
|
55
|
+
}
|
56
|
+
.link .info .title{
|
57
|
+
font-weight: bold;
|
58
|
+
margin-bottom: 3px;
|
59
|
+
}
|
60
|
+
.link .info .url{
|
61
|
+
text-decoration: underline;
|
62
|
+
margin-bottom: 5px;
|
63
|
+
}
|
64
|
+
.link .info .description{
|
65
|
+
}
|
66
|
+
.link iframe{
|
67
|
+
border: 0;
|
68
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class LinkserController < ApplicationController
|
2
|
+
def index
|
3
|
+
if params[:url].present?
|
4
|
+
url = params[:url]
|
5
|
+
begin
|
6
|
+
o = Linkser.parse url, {:max_images => 1}
|
7
|
+
if o.is_a? Linkser::Objects::HTML
|
8
|
+
link = Link.new
|
9
|
+
link.fill o
|
10
|
+
render :partial => "links/link_preview", :locals => {:link => link}
|
11
|
+
return
|
12
|
+
end
|
13
|
+
rescue
|
14
|
+
render :partial => "links/error", :locals => {:message => I18n.t("link.errors.loading") + " " + url.to_s}
|
15
|
+
return
|
16
|
+
end
|
17
|
+
end
|
18
|
+
render :partial => "links/error", :locals => {:message => I18n.t("link.errors.only_webs")}
|
19
|
+
end
|
20
|
+
end
|
data/app/models/link.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
class Link < ActiveRecord::Base
|
2
|
+
include SocialStream::Models::Object
|
3
|
+
|
4
|
+
validates_presence_of :url
|
5
|
+
|
6
|
+
attr_accessor :loaded
|
7
|
+
|
8
|
+
before_create :check_loaded
|
9
|
+
|
10
|
+
define_index do
|
11
|
+
indexes title
|
12
|
+
indexes description
|
13
|
+
indexes url
|
14
|
+
|
15
|
+
has created_at
|
16
|
+
end
|
17
|
+
|
18
|
+
def fill linkser_object
|
19
|
+
self.title = linkser_object.title if linkser_object.title
|
20
|
+
self.description = linkser_object.description if linkser_object.description
|
21
|
+
self.url = linkser_object.last_url
|
22
|
+
r = linkser_object.resource
|
23
|
+
if r and r.type and r.url
|
24
|
+
self.callback_url = r.url
|
25
|
+
end
|
26
|
+
self.width = r.width if r and r.width
|
27
|
+
self.height = r.height if r and r.height
|
28
|
+
if linkser_object.ogp and linkser_object.ogp.image
|
29
|
+
self.image = linkser_object.ogp.image
|
30
|
+
elsif linkser_object.images and linkser_object.images.first
|
31
|
+
self.image = linkser_object.images.first.url
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def check_loaded
|
36
|
+
if !self.loaded.eql? "true" and self.title.nil? and self.description.nil? and self.image.nil?
|
37
|
+
begin
|
38
|
+
o = Linkser.parse self.url, {:max_images => 1}
|
39
|
+
if o.is_a? Linkser::Objects::HTML
|
40
|
+
self.fill o
|
41
|
+
end
|
42
|
+
rescue
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<%= div_for link, :class => 'content_size' do %>
|
2
|
+
<% if link.image %>
|
3
|
+
<div class="thumbnail">
|
4
|
+
<% if link.callback_url %>
|
5
|
+
<%= link_to image_tag(link.image),"javascript:void(0)" %>
|
6
|
+
<%= link_to image_tag("btn/btn_play.png", :class => "play_button"),"javascript:void(0)" %>
|
7
|
+
<%= javascript_tag do %>
|
8
|
+
$("#link_<%= link.id.to_s %> img").each(function(){
|
9
|
+
$(this).click(function(){
|
10
|
+
SocialStream.Linkser.openCallback("link_<%= link.id.to_s %>", "<%= link.callback_url %>", "<%= link.width %>", "<%= link.height %>");
|
11
|
+
});
|
12
|
+
});
|
13
|
+
|
14
|
+
<% end %>
|
15
|
+
<% else %>
|
16
|
+
<%= link_to image_tag(link.image),link.url, :target => "_blank" %>
|
17
|
+
<% end %>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
20
|
+
<div class="info">
|
21
|
+
<% if link.title %>
|
22
|
+
<div class="title">
|
23
|
+
<%= link.title %>
|
24
|
+
</div>
|
25
|
+
<% end %>
|
26
|
+
<div class="url">
|
27
|
+
<%= link_to link.url, link.url, :target => "_blank" %>
|
28
|
+
</div>
|
29
|
+
<% if link.description %>
|
30
|
+
<div class="description">
|
31
|
+
<%= auto_link(link.description) %>
|
32
|
+
</div>
|
33
|
+
<% end %>
|
34
|
+
</div>
|
35
|
+
<% end %>
|
36
|
+
|
37
|
+
<br class="clearfloat">
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<%= div_for link, :class => 'content_size' do %>
|
2
|
+
<% if link.image %>
|
3
|
+
<div class="thumbnail">
|
4
|
+
<%= image_tag(link.image)%>
|
5
|
+
<%= hidden_field_tag "link[image]", link.image %>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
8
|
+
<div class="info">
|
9
|
+
<% if link.title %>
|
10
|
+
<div class="title">
|
11
|
+
<%= link.title %>
|
12
|
+
<%= hidden_field_tag "link[title]", link.title %>
|
13
|
+
</div>
|
14
|
+
<% end %>
|
15
|
+
<div class="url">
|
16
|
+
<%= auto_link(link.url) %>
|
17
|
+
</div>
|
18
|
+
<% if link.description %>
|
19
|
+
<div class="description">
|
20
|
+
<%= auto_link(link.description) %>
|
21
|
+
<%= hidden_field_tag "link[description]", link.description %>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
24
|
+
<% if link.callback_url %>
|
25
|
+
<%= hidden_field_tag "link[callback_url]", link.callback_url %>
|
26
|
+
<% end %>
|
27
|
+
<% if link.width %>
|
28
|
+
<%= hidden_field_tag "link[width]", link.width %>
|
29
|
+
<% end %>
|
30
|
+
<% if link.height %>
|
31
|
+
<%= hidden_field_tag "link[height]", link.height %>
|
32
|
+
<% end %>
|
33
|
+
</div>
|
34
|
+
<% end %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
//Display the new post
|
2
|
+
$("#wall").prepend("<%= escape_javascript(render @link.post_activity) %>");
|
3
|
+
|
4
|
+
setActivityPrivacyTooltips("<%= escape_javascript dom_id(@link.post_activity) %>");
|
5
|
+
|
6
|
+
unblock_all_forms();
|
7
|
+
|
8
|
+
$("#link_preview").hide();
|
9
|
+
$("#link_preview").html("");
|
10
|
+
$("#link_loaded").val(false);
|
11
|
+
$("#link_preview").html("");
|
12
|
+
$("#link_url").val("");
|
13
|
+
|
14
|
+
|
15
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
<%=render(:partial => 'objects/destroy') %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<% content_for :javascript do %>
|
2
|
+
var message_hash = window.location.hash.match(/^.*activity_(\d+).*$/);
|
3
|
+
if (message_hash && message_hash > 0){
|
4
|
+
$.scrollTo('#activity_' + message_hash[1] ,1500,{axis:'y'});
|
5
|
+
}
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
<%= render :partial => 'objects/show',
|
9
|
+
:locals => { :object => @link } %>
|
10
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
en:
|
2
|
+
linkser:
|
3
|
+
title: "Linkser"
|
4
|
+
link:
|
5
|
+
confirm_delete: "Delete link?"
|
6
|
+
errors:
|
7
|
+
loading: "Error loading"
|
8
|
+
only_webs: "Only webpages are supported"
|
9
|
+
form:
|
10
|
+
title: "Link"
|
11
|
+
input: "Write the web address"
|
12
|
+
name: "link"
|
13
|
+
one: "a link"
|
14
|
+
title: "Links"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
es:
|
2
|
+
linkser:
|
3
|
+
title: "Linkser"
|
4
|
+
link:
|
5
|
+
confirm_delete: "¿Borrar enlace?"
|
6
|
+
errors:
|
7
|
+
loading: "Error cargando"
|
8
|
+
only_webs: "Solo puedes compartir págnas web"
|
9
|
+
form:
|
10
|
+
title: "Enlace"
|
11
|
+
input: "Escribe una dirección"
|
12
|
+
name: "enlace"
|
13
|
+
one: "una enlace"
|
14
|
+
title: "Enlaces"
|
data/config/routes.rb
ADDED