Commit 4648199ea878a0fdb79046a74a770524f7e6b04a

Authored by Victor Costa
1 parent 01ac8954

site_tour: parse profile fields in tooltip description

plugins/site_tour/lib/site_tour_plugin/site_tour_helper.rb 0 → 100644
... ... @@ -0,0 +1,14 @@
  1 +module SiteTourPlugin::SiteTourHelper
  2 +
  3 + def parse_tour_description(description)
  4 + p = profile rescue nil
  5 + if !p.nil? && description.present?
  6 + description.gsub('{profile.identifier}', p.identifier).
  7 + gsub('{profile.name}', p.name).
  8 + gsub('{profile.url}', url_for(p.url))
  9 + else
  10 + description
  11 + end
  12 + end
  13 +
  14 +end
... ...
plugins/site_tour/lib/site_tour_plugin/tour_block.rb
... ... @@ -8,7 +8,7 @@ class SiteTourPlugin::TourBlock < Block
8 8  
9 9 before_save do |block|
10 10 block.actions.reject! {|i| i[:group_name].blank? && i[:selector].blank? && i[:description].blank?}
11   - block.group_triggers.reject! {|i| i[:group_name].blank? && i[:selector].blank? && i[:event].blank?}
  11 + block.group_triggers.reject! {|i| i[:group_name].blank? && i[:selector].blank?}
12 12 end
13 13  
14 14 def self.description
... ...
plugins/site_tour/public/edit_tour_block.css
  1 +#edit-tour-block #tooltip-actions h3 {
  2 + margin-bottom: 5px;
  3 +}
  4 +
  5 +#edit-tour-block .special-attributes {
  6 + color: rgb(157, 157, 157);
  7 +}
  8 +
1 9 #edit-tour-block .list-items {
2 10 margin-bottom: 25px;
3 11 }
... ...
plugins/site_tour/test/unit/site_tour_helper_test.rb 0 → 100644
... ... @@ -0,0 +1,17 @@
  1 +require File.dirname(__FILE__) + '/../test_helper'
  2 +
  3 +class SiteTourHelperTest < ActionView::TestCase
  4 +
  5 + include SiteTourPlugin::SiteTourHelper
  6 +
  7 + should 'parse tooltip description' do
  8 + assert_equal 'test', parse_tour_description("test")
  9 + end
  10 +
  11 + should 'replace profile attributes in tooltip description' do
  12 + profile = fast_create(Profile)
  13 + expects(:profile).returns(profile).at_least_once
  14 + assert_equal "name #{profile.name}, identifier #{profile.identifier}, url #{url_for profile.url}", parse_tour_description("name {profile.name}, identifier {profile.identifier}, url {profile.url}")
  15 + end
  16 +
  17 +end
... ...
plugins/site_tour/views/box_organizer/site_tour_plugin/_tour_block.html.erb
... ... @@ -6,6 +6,7 @@
6 6 <div id='edit-tour-block'>
7 7 <div id="tooltip-actions" class="list-items">
8 8 <h3><%= _('Tooltip Actions') %></h3>
  9 + <div class="special-attributes"><%= _('Special fields for description: {profile.name}, {profile.identifier}, {profile.url}.') %></div>
9 10 <ul class='list-header'>
10 11 <li class='list-name'><%= _('Group Name') %></li>
11 12 <li class='list-selector'><%= _('Selector') %></li>
... ...
plugins/site_tour/views/box_organizer/site_tour_plugin/_tour_block_group_item.html.erb
... ... @@ -7,7 +7,9 @@
7 7 <%= text_field_tag 'block[group_triggers][][selector]', group[:selector], :class => 'selector' %>
8 8 </li>
9 9 <li>
10   - <%= text_field_tag 'block[group_triggers][][event]', group[:event], :class => 'description' %>
  10 + <%= select_tag 'block[group_triggers][][event]',
  11 + options_for_select(['mouseenter', 'mouseleave', 'mouseover', 'mouseout', 'click', 'change', 'select', 'keydown', 'keyup', 'keypress', 'focus', 'blur', 'submit', 'drag', 'drop'], group[:event]),
  12 + :class => 'description' %>
11 13 </li>
12 14 <li>
13 15 <%= button_without_text(:delete, _('Delete'), "#" , :class=>"delete-tour-block-item") %>
... ...
plugins/site_tour/views/tour_actions.html.erb
  1 +<% extend SiteTourPlugin::SiteTourHelper %>
1 2 <% js_file = defined?(:js_file) ? js_file : nil %>
2 3 <%= javascript_include_tag(js_file) if js_file.present? %>
3 4  
... ... @@ -6,7 +7,7 @@
6 7 jQuery( document ).ready(function( $ ) {
7 8 <% actions.group_by {|h| h[:group_name]}.each do |group, group_actions| %>
8 9 <% group_actions.each_with_index do |action, index| %>
9   - <%= "siteTourPlugin.add('#{j action[:group_name]}', '#{j action[:selector]}', '#{j action[:description]}', #{index + 1});" %>
  10 + <%= "siteTourPlugin.add('#{j action[:group_name]}', '#{j action[:selector]}', '#{j parse_tour_description(action[:description])}', #{index + 1});" %>
10 11 <% end %>
11 12 <% end %>
12 13  
... ...