This commit is contained in:
2014-07-21 23:41:44 +05:30
parent e8252fbf16
commit 44a0dc2f98
13 changed files with 119 additions and 24 deletions

View File

@@ -99,3 +99,5 @@ gem "seed_dump", "~> 0.5.3"
gem 'themes_for_rails'
gem 'rubyzip'
gem 'acts_as_votable'

View File

@@ -33,9 +33,9 @@ a.linkbox, div.contentbox
border-radius:$box-border-radius;
border: $box-border;
background: $box-background;
}
a.linkbox:hover
{
box-shadow: 1px 1px 2px 2px lightgray;
@@ -164,3 +164,12 @@ ul.linklist li a i{
vertical-align:middle;
margin-right:6px;
font-size:2em;}
span.linklist a {
padding:5px;
border-radius:$box-border-radius;
border: $box-border;
background: $box-background;
display:block;
float:left;
}

View File

@@ -1,7 +1,8 @@
class BeispieleController < ApplicationController
# GET /beispiele
# GET /beispiele.json
load_and_authorize_resource
include LikeVoteable
def index
@beispiele = Beispiel.all
@@ -47,8 +48,8 @@ class BeispieleController < ApplicationController
logger.info "New Beispiel: #{params.inspect}"
# @backlink = @beispiel.lva.nil? ? root_url : lva_path(@beispiel.lva)
@beispiel.name=@beispiel.beispieldatei.filename
logger.info "New Beispiel: #{@beispiel.attributes.inspect}"
@beispiel.name=@beispiel.beispieldatei.filename
logger.info "New Beispiel: #{@beispiel.attributes.inspect}"
@beispiel.datum=Time.now
respond_to do |format|
@@ -91,7 +92,7 @@ class BeispieleController < ApplicationController
# DELETE /beispiele/1.json
def destroy
@beispiel = Beispiel.find(params[:id])
@backlink = @beispiel.lva.nil? ? root_url : lva_path(@beispiel.lva)
@backlink = @beispiel.lva.nil? ? root_url : lva_path(@beispiel.lva)
@beispiel.destroy
respond_to do |format|
@@ -99,4 +100,4 @@ class BeispieleController < ApplicationController
format.json { head :no_content }
end
end
end
end

View File

@@ -117,7 +117,7 @@ private
@toolbar_elements =[]
@toolbar_elements<<{:hicon=>'icon-pencil', :icon=>:pencil,:text =>I18n.t('common.edit'),:path => edit_lva_path(@lva)} if can? :edit, @lva
@toolbar_elements << {:hicon=>'icon-remove-circle', :text=>"Tissvergleichladen", :path=> compare_tiss_lva_path(@lva)} if can? :compare_tiss, @lva
@toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t('common.delete'), :path=> lva_path(@lva), :method=>:delete, :confirm=>'Sure?' } if can? :delete, @lva
@toolbar_elements << {:hicon=>'icon-remove-circle', :text=>I18n.t('lva.delete'), :path=> lva_path(@lva), :method=>:delete, :confirm=>t('lva.deletesure') } if can? :delete, @lva

View File

@@ -14,7 +14,9 @@
class Beispiel < ActiveRecord::Base
has_paper_trail
attr_accessible :desc, :name, :lva_id, :beispieldatei, :beispieldatei_cache, :datum
acts_as_votable
belongs_to :lva
mount_uploader :beispieldatei, AttachmentUploader
validates :beispieldatei, :presence => true
validates :name, :presence => true

View File

@@ -1,13 +1,32 @@
<div class="row-fluid contentbox">
<div class="span5">
<b><%=link_to beispiel.name, beispiel.beispieldatei.url%></b>
<%= link_to "edit", edit_beispiel_path(beispiel)%>
<%= link_to "delete", beispiel_path(beispiel), :method=>:delete, :data=>{:confirm=>I18n.t('beispiel.sure')}%></br>
<div class="span8">
<%= I18n.t("file.size") + ": " + (beispiel.beispieldatei.size/1024.0).round(2).to_s %>KiB
<b><%=link_to ffi1_icon("note20")+" " + beispiel.name, beispiel.beispieldatei.url, title: beispiel.desc %></b>
<%= I18n.t("file.size") + ": " + (beispiel.beispieldatei.size/1024.0).round(2).to_s %>KiB <br>
<span class="linklist"><%=
if can?(:like, beispiel)
link_to ffi1_icon("like3")+" like" + "("+beispiel.get_likes.size.to_s+")", like_beispiel_path(beispiel),title: "liked by " + ((current_user.liked?(beispiel)) ? ("you and " + ((beispiel.get_likes.size - 1).to_s + " others")) : beispiel.get_likes.size.to_s)
else
"liked by " + beispiel.get_likes.size.to_s
end
%>
<%=
if can?(:dislike, beispiel)
link_to ffi1_icon("dislike")+" dislike" + "("+beispiel.get_dislikes.size.to_s+")", dislike_beispiel_path(beispiel),title:"disliked by " + ((current_user.disliked?(beispiel)) ? ("you and " + ((beispiel.get_dislikes.size - 1).to_s + " others")) : beispiel.get_dislikes.size.to_s)
else
"disliked by " + beispiel.get_dislikes.size.to_s
end
%>
<%= link_to ff_icon("icon-pencil")+" edit", edit_beispiel_path(beispiel) if can? :edit, beispiel%>
<%= link_to ff_icon("icon-remove")+" delete", beispiel_path(beispiel), :method=>:delete, :data=>{:confirm=>I18n.t('beispiel.sure')} if can? :delete, beispiel %></br>
</span>
</div>
<div class="span7">
<div class="span4">
<%= beispiel.desc %>
</div>
</div>

View File

@@ -22,11 +22,6 @@
<%= @lva.desc.to_s.html_safe %>
</div>
<h2>Beispiele</h2>
<%= link_to t("beispiel.zip") , beispiel_sammlung_lva_path(@lva), class: :linkbox %>
<% @lva.beispiele.each do |b| %>
<%= render b%>
<% end %>
</div>
@@ -61,6 +56,17 @@
</div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<h2>Beispiele</h2>
<%= link_to t("beispiel.zip") , beispiel_sammlung_lva_path(@lva), class: :linkbox %>
<% @lva.beispiele.each do |b| %>
<%= render b%>
<% end %>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<% unless @lva.nlinks.empty? %>

View File

@@ -1,7 +1,7 @@
require File.expand_path('../boot', __FILE__)
require 'rails/all'
require File.expand_path('lib/like_voteable.rb')
if defined?(Bundler)
# If you precompile assets before deploying to production, use this line
Bundler.require(*Rails.groups(:assets => %w(development test)))

View File

@@ -3,3 +3,4 @@ require File.expand_path('../application', __FILE__)
# Initialize the rails application
Fetsite::Application.initialize!

View File

@@ -20,6 +20,8 @@ de:
addrem: "Lva hinzufügen/entfernen"
editlvas: "Lvas bearbeiten"
list: "Alle Lvas"
delete: "LVA löschen"
deletesure: "Willst du sicher die ganze LVA löschen?"
modulgruppe:
typ: "Typ"
edit: "Modulgruppe bearbeiten"

View File

@@ -62,7 +62,12 @@ Fetsite::Application.routes.draw do
end
end
resources :beispiele#, :only=>[:show,:index,:create]
resources :beispiele do #, :only=>[:show,:index,:create]
member do
get 'like'
get 'dislike'
end
end
resources :lvas do
member do
get 'beispiel_sammlung'

View File

@@ -0,0 +1,27 @@
class ActsAsVotableMigration < ActiveRecord::Migration
def self.up
create_table :votes do |t|
t.references :votable, :polymorphic => true
t.references :voter, :polymorphic => true
t.boolean :vote_flag
t.string :vote_scope
t.integer :vote_weight
t.timestamps
end
if ActiveRecord::VERSION::MAJOR < 4
add_index :votes, [:votable_id, :votable_type]
add_index :votes, [:voter_id, :voter_type]
end
add_index :votes, [:voter_id, :voter_type, :vote_scope]
add_index :votes, [:votable_id, :votable_type, :vote_scope]
end
def self.down
drop_table :votes
end
end

21
lib/like_voteable.rb Normal file
View File

@@ -0,0 +1,21 @@
module LikeVoteable
def self.included(base)
base.class_eval do
include InstanceMethods
#base.hidden_actions.delete 'like'
end
end
module InstanceMethods
def like
@obj=controller_name.classify.constantize.find(params[:id])
@obj.liked_by current_user
redirect_to @obj
end
def dislike
@obj=controller_name.classify.constantize.find(params[:id])
@obj.disliked_by current_user
redirect_to @obj
end
end
end