diff --git a/app/models/beispiel.rb b/app/models/beispiel.rb index 2e42daf..5811ac8 100755 --- a/app/models/beispiel.rb +++ b/app/models/beispiel.rb @@ -17,6 +17,7 @@ class Beispiel < ActiveRecord::Base acts_as_votable acts_as_flagable belongs_to :lva + FLAG_ICONS = {"badquality"=>"fa fa-flag", "delete"=>"icon-trash"} mount_uploader :beispieldatei, AttachmentUploader validates :beispieldatei, :presence => true diff --git a/app/views/flags/_flag.js.erb b/app/views/flags/_flag.js.erb new file mode 100644 index 0000000..fe82719 --- /dev/null +++ b/app/views/flags/_flag.js.erb @@ -0,0 +1 @@ +$('#<%=@obj.flaglinkid(params[:flag]) %>').replaceWith("<%= escape_javascript( render(partial: "flags/flaglink", format: "html", locals: {flag: params[:flag]}) )%>"); diff --git a/app/views/flags/_flaglink.html.erb b/app/views/flags/_flaglink.html.erb index aef4ae1..1c72811 100644 --- a/app/views/flags/_flaglink.html.erb +++ b/app/views/flags/_flaglink.html.erb @@ -1 +1 @@ -<%= flag_link(@obj,flag, content_tag("i", "", class:"fa fa-flag").to_s) %> +<%= flag_link(@obj,flag, content_tag("i", "", class: icon")) %> diff --git a/app/views/themes/blue2/beispiele/_beispiel.html.erb b/app/views/themes/blue2/beispiele/_beispiel.html.erb index abb083c..25b7bb9 100644 --- a/app/views/themes/blue2/beispiele/_beispiel.html.erb +++ b/app/views/themes/blue2/beispiele/_beispiel.html.erb @@ -7,7 +7,9 @@ <%= (beispiel.beispieldatei.size/1024.0).round(2).to_s %>KiB
- <%= flag_link(beispiel, :badquality, fa_icon("flag"))%> + <%= flag_link(beispiel, "badquality", ff_icon(Beispiel.FLAG_ICONS["badquality"]))%> + <%= flag_link(beispiel, "delete", fa_icon("flag"))%> + <%= 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 diff --git a/lib/flagable.rb b/lib/flagable.rb index a08c9ae..7193c2c 100644 --- a/lib/flagable.rb +++ b/lib/flagable.rb @@ -7,22 +7,28 @@ module Flagable module ClassMethods def acts_as_flagable(options={}) include Flagable::ActsAsFlagableController::LocalInstanceMethods - #extend class methods + extend Flagable::ActsAsFlagableController::LocalClassMethods end end + module LocalClassMethods + FLAG_ICONS = {"badquality"=>"fa fa-flag", "delete"=>"icon-trash"} + + end module LocalInstanceMethods + def flag - @obj=controller_name.classify.constantize.find(params[:id]) + + @obj=controller_name.classify.constantize.find(params[:id]) lflag=("flag_"+params[:flag]).to_sym unless params[:flag].nil? || params[:flag].empty? || params[:value].nil? if @obj.respond_to?(lflag.to_s+"=") - @obj.send(lflag.to_s+"=",params[:value]) + @obj.send(lflag.to_s+"=",params[:value]=="true") @obj.save end end respond_to do |format| - format.html {render partial: "flags/flaglink", locals: {flag: params[:flag]}} - format.js {render :text => "$(\"\##{@obj.flaglinkid(params[:flag])}\").replaceWith("+ActionController::Base.helpers.escape_javascript(render partial: "flags/flaglink", locals: {flag: params[:flag]})+ "); alert('#{lflag.to_s} #{ ActionController::Base.helpers.escape_javascript(@obj.to_yaml.to_s)}');"} + format.html {render partial: "flags/flaglink", locals: {flag: params[:flag],icon: controller_name.classify.constantize.FLAG_ICONS[params[:flag]]}} + format.js {render partial: "flags/flag", locals: {flag: params[:flag],icon: controller_name.classify.constantize.FLAG_ICONS[params[:flag]]}} end end end @@ -53,7 +59,8 @@ module Flagable module FlagableHelper def flag_link(obj, flag, text) - value=obj.get_flag(flag) + flag=flag.to_s + value=obj.send("flag_"+flag) color=(value) ? "red" :"grey" link_to text, flag_beispiel_path(obj,{flag: flag, value: !value, theme: nil, locale: nil}), remote: true, style:("color:" +color ), id: obj.flaglinkid(flag) end