diff --git a/app/models/beispiel.rb b/app/models/beispiel.rb
index 2fbf52f..2e42daf 100755
--- a/app/models/beispiel.rb
+++ b/app/models/beispiel.rb
@@ -15,6 +15,7 @@ class Beispiel < ActiveRecord::Base
has_paper_trail
attr_accessible :desc, :name, :lva_id, :beispieldatei, :beispieldatei_cache, :datum
acts_as_votable
+ acts_as_flagable
belongs_to :lva
mount_uploader :beispieldatei, AttachmentUploader
diff --git a/app/views/themes/blue2/beispiele/_beispiel.html.erb b/app/views/themes/blue2/beispiele/_beispiel.html.erb
new file mode 100644
index 0000000..bbb9148
--- /dev/null
+++ b/app/views/themes/blue2/beispiele/_beispiel.html.erb
@@ -0,0 +1,41 @@
+
+
+
+ <%=link_to ffi1_icon("note20")+" " + beispiel.name + " " + I18n.l(beispiel.datum), beispiel.beispieldatei.url, title: beispiel.desc %>
+
+
+ <%= (beispiel.beispieldatei.size/1024.0).round(2).to_s %>KiB
+
+
+ <%= flag_link(beispiel, :badquality)%>
+ <%=
+ 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), remote: true
+ 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) , remote: true
+ 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 fa_icon("trash")+"delete", beispiel_path(beispiel), :method=>:delete, :data=>{:confirm=>I18n.t('beispiel.sure')} if can? :delete, beispiel %>
+ <% link_to "Refresh", beispiel_path(beispiel,show_comments: true), remote: true %>
+
+
+ <% unless beispiel.desc.nil? || beispiel.desc.empty? %>
+
+
+
+ <%= beispiel.desc %>
+
+
+ <% end %>
+
diff --git a/config/initializers/init_flagable.rb b/config/initializers/init_flagable.rb
index a2702e6..48ef1d2 100644
--- a/config/initializers/init_flagable.rb
+++ b/config/initializers/init_flagable.rb
@@ -1,2 +1,4 @@
require 'flagable'
-ActionController::Base.send :include, Flagable::ActsAsFlagable
+ActionController::Base.send :include, Flagable::ActsAsFlagableController
+ActiveRecord::Base.send :include, Flagable::ActsAsFlagableRecord
+ActionView::Base.send :include, Flagable::FlagableHelper
diff --git a/lib/.#flagable.rb b/lib/.#flagable.rb
new file mode 120000
index 0000000..d96c12d
--- /dev/null
+++ b/lib/.#flagable.rb
@@ -0,0 +1 @@
+andreas@andreas-ThinkPad-S430.11733:1434727463
\ No newline at end of file
diff --git a/lib/flagable.rb b/lib/flagable.rb
index a1db136..5827b82 100644
--- a/lib/flagable.rb
+++ b/lib/flagable.rb
@@ -1,12 +1,12 @@
module Flagable
- module ActsAsFlagable
+ module ActsAsFlagableController
extend ActiveSupport::Concern
included do
end
module ClassMethods
def acts_as_flagable(options={})
- include Flagable::ActsAsFlagable::LocalInstanceMethods
+ include Flagable::ActsAsFlagableController::LocalInstanceMethods
#extend class methods
end
end
@@ -15,16 +15,45 @@ module Flagable
@obj=controller_name.classify.constantize.find(params[:id])
lflag=("flag_"+params[:flag]).to_sym
unless params[:flag].nil? || params[:flag].empty? || params[:value].nil?
- @obj.try(lflag)#=params[:value]
+ if @obj.respond_to?(lflag.to_s+"=")
@obj.send(lflag.to_s+"=",params[:value])
+ end
end
respond_to do |format|
format.html {render :text=>@obj.to_yaml}
- format.js {render :text => "alert(#{lflag.to_s} #{@obj.to_yaml})"}
+ format.js {render :text => "alert('#{lflag.to_s} #{ ActionController::Base.helpers.escape_javascript(@obj.to_yaml.to_s)}')"}
end
end
end
end
+
+ module ActsAsFlagableRecord
+ extend ActiveSupport::Concern
+ included do
+
+ end
+ module ClassMethods
+ def acts_as_flagable(options={})
+ include Flagable::ActsAsFlagableRecord::LocalInstanceMethods
+ #extend class methods
+ end
+ end
+ module LocalInstanceMethods
+ def get_flag(flag)
+ v= @obj.send("flag_"+flag.to_s) if @obj.respond_to?("flag_"+flag.to_s)
+ v= false if v.nil?
+ v
+ end
+ def flagtagid(flag)
+ return self.class.to_s + "_" + self.id.to_s + "_flag_"+flag.to_s
+ end
+ end
+ end
+ module FlagableHelper
+ def flag_link(obj, flag, value=false)
+ value=obj.get_flag(flag)
+ color=(value) ? "red" :"grey"
+link_to fa_icon("flag"), flag_beispiel_path(obj,{flag: flag, value: !value}), remote: true, style:("color:" +color )
+ end
+ end
end
-
-