module PairwisePlugin::Helpers::ViewerHelper def choose_link(direction, pairwise_content, question, prompt, embeded = false, source = nil, appearance_id = nil) link_target = { :controller => 'pairwise_plugin_profile', :profile => pairwise_content.profile.identifier, :action => 'choose', :id => pairwise_content.id, :question_id => question.id , :prompt_id => prompt.id, :choice_id => prompt.send("#{direction}_choice_id"), :direction => direction, :appearance_id => appearance_id} link_target.merge!(:embeded => 1) if embeded link_target.merge!(:source => source) if source loading_javascript = pairwise_spinner_show_function_call(pairwise_content) + pairwise_hide_skip_call(pairwise_content) content_tag(:div, prompt.send("#{direction}_choice_text"), :class => 'choice-text') + link_to_remote(_('Vote'), :loading => loading_javascript, :url => link_target, :html => {:class => 'vote-link'}) end def choose_right_link(pairwise_content, question, prompt, embeded = false, source = nil, appearance_id = nil) choose_link('right', pairwise_content, question, prompt, embeded, source, appearance_id) end def choose_left_link(pairwise_content, question, prompt, embeded = false, source = nil, appearance_id = nil) choose_link('left', pairwise_content, question, prompt, embeded, source, appearance_id) end def skip_vote_open_function(pairwise_content) link_to_function _('Skip vote'), "jQuery('#skip_vote_reasons_#{pairwise_content.id}').slideToggle()" end def skip_vote_link(pairwise_content, question, prompt, embeded = false, source = nil, appearance_id = nil, reason = nil) link_target = {:controller => 'pairwise_plugin_profile', :profile => pairwise_content.profile.identifier, :action => 'skip_prompt', :id => pairwise_content.id,:question_id => question.id , :prompt_id => prompt.id, :appearance_id => appearance_id} link_target.merge!(:embeded => 1) if embeded link_target.merge!(:source => source) if source link_target.merge!(:appearance_id => appearance_id) if appearance_id link_target.merge!(:reason => reason) if reason link_text = reason ? reason : _('Skip vote') if reason loading_javascript = pairwise_spinner_show_function_call(pairwise_content) + pairwise_hide_skip_call(pairwise_content) "
  • " + link_to_remote(link_text, :loading => loading_javascript, :url => link_target) + "
  • " else link_to_remote(link_text, link_target) end end def pairwise_spinner_id(pairwise_content) return "pairwise_spinner#{pairwise_content.id}" end def pairwise_spinner(pairwise_content) text = content_tag :h5, _('Processing... please wait.') content_tag :div, text, :class => "spinner", :id => pairwise_spinner_id(pairwise_content) end def pairwise_spinner_show_function_call(pairwise_content) pairwise_spinner_show_function_name(pairwise_content) + "();" end def pairwise_hide_skip_call(pairwise_content) "jQuery('#skip_vote_reasons_#{pairwise_content.id}').hide();" end def pairwise_spinner_show_function_name(pairwise_content) "jQuery('##{pairwise_spinner_id(pairwise_content)}').fadeIn" end def pairwise_spinner_hide_function_call(pairwise_content) pairwise_spinner_hide_function_name(pairwise_content) + "();" end def pairwise_spinner_hide_function_name(pairwise_content) "jQuery('##{pairwise_spinner_id(pairwise_content)}').fadeOut" end def pairwise_user_identifier(user) if user.nil? is_external_vote ? "#{params[:source]}-#{request.session_options[:id]}" : "participa-#{request.session_options[:id]}" else user.identifier end end def pairwise_embeded_code(pairwise_content) embeded_url = url_for({:controller => "pairwise_plugin_profile", :profile => pairwise_content.profile.identifier, :action => "prompt", :id => pairwise_content.id, :question_id => pairwise_content.question.id, :embeded => 1, :source => "SOURCE_NAME", :only_path => false}) embeded_code = "" label = "
    " label += content_tag :h5, _('Pairwise Embeded') textarea = text_area_tag 'embeded_code', embeded_code, {:style => "width: 100%; background-color: #ccc; font-weight:bold", :rows => 7} hint = content_tag :quote, _("You can put this iframe in your site. Replace source param with your site address and make any needed adjusts in width and height.") label + textarea + hint + "
    " end def pairwise_edit_link(label, pairwise_content) link_target = myprofile_path(:controller => :cms, :profile => pairwise_content.profile.identifier, :action => :edit, :id => pairwise_content.id) link_to label, link_target end def pairwise_result_link(label, pairwise_content, embeded = false, options = {}) link_target = pairwise_content.result_url link_target.merge!(:embeded => 1) if embeded link_to label, link_target, options end def pairwise_tab_remote_link(label, link_target, pairwise_content, embeded = false, options = {}) link_target.merge!(:embeded => 1) if embeded loading_javascript = pairwise_spinner_show_function_call(pairwise_content) + pairwise_hide_skip_call(pairwise_content) link_to_remote label, :loading => loading_javascript, :url => link_target, :html => options end def pairwise_suggestion_url(question, embeded = false, source = nil) target = { :controller => :pairwise_plugin_profile, :profile => question.profile.identifier,:action => 'suggest_idea', :id => question.id } target.merge!({ :embeded => 1 }) if embeded target.merge!({ :source => source }) if source target end def is_external_vote params.has_key?("source") && !params[:source].empty? end def ideas_management_link(label, pairwise_content, user) return "" unless user return "" unless pairwise_content.allow_edit?(user) link_to label, :controller => :pairwise_plugin_suggestions, :profile => pairwise_content.profile.identifier, :action => :index, :id => pairwise_content.id end def has_param_pending_choices? params.has_key?("pending") && "1".eql?(params[:pending]) end def has_param_reproved_choices? params.has_key?("reproved") && "1".eql?(params[:reproved]) end def choices_showing_text ideas_or_suggestions_text = has_param_pending_choices? ? "Suggestions" : "Ideas" _("Showing") + " " + ideas_or_suggestions_text end def pairwise_span_arrow(index) content_tag :span, '', :class => (index == 0 ? 'active' : '') end def pairwise_group_row_classes(index) index == 0 ? 'row' : 'row secondary' end def pairwise_group_content_body(index, pairwise_content, prompt_id = nil) style = (index > 0) ? 'display:none' : '' content_tag :div, :class => "pairwise_inner_body", :id => "pairwise_inner_body_#{pairwise_content.id}", :style => style do render :partial => 'content_viewer/prompt_body', :locals => { :embeded => params[:embeded], :source => params[:source], :pairwise_content => pairwise_content, :question => nil } end end end