diff --git a/app/views/flags/.#_flaglink.html.erb b/app/views/flags/.#_flaglink.html.erb new file mode 120000 index 0000000..d96c12d --- /dev/null +++ b/app/views/flags/.#_flaglink.html.erb @@ -0,0 +1 @@ +andreas@andreas-ThinkPad-S430.11733:1434727463 \ No newline at end of file diff --git a/app/views/flags/_flaglink.html.erb b/app/views/flags/_flaglink.html.erb new file mode 100644 index 0000000..aef4ae1 --- /dev/null +++ b/app/views/flags/_flaglink.html.erb @@ -0,0 +1 @@ +<%= flag_link(@obj,flag, content_tag("i", "", class:"fa fa-flag").to_s) %> diff --git a/lib/flagable.rb b/lib/flagable.rb index 102cfc0..a08c9ae 100644 --- a/lib/flagable.rb +++ b/lib/flagable.rb @@ -12,16 +12,17 @@ module Flagable 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]) + @obj.save end end respond_to do |format| - format.html {render :text=>@obj.to_yaml} - format.js {render :text => "$(\"#{@obj.flaglinkid(params[:flag])}\").replaceWith("+ActionController::Base.helpers.escape_javascript(ActionController::Base.helpers.flag_link(@obj,params[:flag],ActionController::Base.helpers.content_tag("i", "", class:"fa fa-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]}} + 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)}');"} end end end @@ -54,7 +55,7 @@ module Flagable def flag_link(obj, flag, text) value=obj.get_flag(flag) color=(value) ? "red" :"grey" -link_to text, Rails.application.routes.url_helpers.flag_beispiel_path(obj,{flag: flag, value: !value, theme: nil, locale: nil}), remote: true, style:("color:" +color ), id: obj.flaglinkid(flag) + 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 end end