e9_crm 0.1.14 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/controllers/e9_crm/campaigns_controller.rb +1 -1
 - data/app/controllers/e9_crm/contacts_controller.rb +6 -1
 - data/app/controllers/e9_crm/dated_costs_controller.rb +0 -2
 - data/app/helpers/e9_crm/base_helper.rb +56 -79
 - data/app/helpers/e9_crm/contacts_helper.rb +1 -1
 - data/app/models/contact.rb +6 -16
 - data/app/views/e9_crm/contacts/show.html.haml +5 -0
 - data/app/views/e9_crm/offers/_offer.html.haml +2 -2
 - data/app/views/{e9_crm/record_attributes → record_attributes}/_user.html.haml +0 -0
 - data/config/routes.rb +0 -4
 - data/e9_crm.gemspec +3 -2
 - data/lib/e9_crm.rb +5 -6
 - data/lib/e9_crm/version.rb +1 -1
 - metadata +54 -28
 - data/app/controllers/e9_crm/menu_options_controller.rb +0 -28
 - data/app/models/address_attribute.rb +0 -7
 - data/app/models/instant_messaging_handle_attribute.rb +0 -4
 - data/app/models/menu_option.rb +0 -38
 - data/app/models/phone_number_attribute.rb +0 -4
 - data/app/models/record_attribute.rb +0 -41
 - data/app/models/website_attribute.rb +0 -4
 - data/app/views/e9_crm/menu_options/_form_inner.html.haml +0 -6
 - data/app/views/e9_crm/menu_options/_header.html.haml +0 -7
 - data/app/views/e9_crm/record_attributes/_address_attribute.html.haml +0 -5
 - data/app/views/e9_crm/record_attributes/_form_partial.html.haml +0 -4
 - data/app/views/e9_crm/record_attributes/_instant_messaging_handle_attribute.html.haml +0 -5
 - data/app/views/e9_crm/record_attributes/_phone_number_attribute.html.haml +0 -5
 - data/app/views/e9_crm/record_attributes/_record_attribute.html.haml +0 -10
 - data/app/views/e9_crm/record_attributes/_templates.js.erb +0 -12
 - data/app/views/e9_crm/record_attributes/_website_attribute.html.haml +0 -5
 
| 
         @@ -17,7 +17,7 @@ class E9Crm::CampaignsController < E9Crm::ResourcesController 
     | 
|
| 
       17 
17 
     | 
    
         
             
              protected
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                def collection_scope
         
     | 
| 
       20 
     | 
    
         
            -
                  end_of_association_chain.typed.includes(:campaign_group)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  #end_of_association_chain.typed.includes(:campaign_group)
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
                  # NOTE this is a pretty ugly join just to be able to sort on campaign group name
         
     | 
| 
       23 
23 
     | 
    
         
             
                  end_of_association_chain.typed
         
     | 
| 
         @@ -18,9 +18,14 @@ class E9Crm::ContactsController < E9Crm::ResourcesController 
     | 
|
| 
       18 
18 
     | 
    
         
             
              has_scope :by_company, :as => :company, :only => :index
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
              # record attributes templates js
         
     | 
| 
      
 21 
     | 
    
         
            +
              #caches_action :templates
         
     | 
| 
      
 22 
     | 
    
         
            +
              
         
     | 
| 
       21 
23 
     | 
    
         
             
              skip_before_filter :authenticate_user!, :filter_access_filter, :only => :templates
         
     | 
| 
       22 
24 
     | 
    
         
             
              before_filter :build_resource, :only => :templates
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              def templates
         
     | 
| 
      
 27 
     | 
    
         
            +
                render RecordAttribute::TEMPLATES
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
       24 
29 
     | 
    
         | 
| 
       25 
30 
     | 
    
         
             
              # NOTE for some reason create! { redirect } is trying to redirect on failure
         
     | 
| 
       26 
31 
     | 
    
         
             
              def create
         
     | 
| 
         @@ -1,33 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module E9Crm::BaseHelper
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
              def kramdown(string)
         
     | 
| 
       4 
     | 
    
         
            -
                Kramdown::Document.new(string).to_html.html_safe
         
     | 
| 
       5 
     | 
    
         
            -
              end
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              alias :k :kramdown
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
              def help_tooltip(string, data_title = nil)
         
     | 
| 
       10 
     | 
    
         
            -
                return <<-HTML.strip.html_safe
         
     | 
| 
       11 
     | 
    
         
            -
                  <span class="help" rel="tooltip" #{data_title ? %Q[data-title="#{data_title}"] : nil } title="#{CGI.escape_html(string)}">#{t(:inline_help_link)}</span>
         
     | 
| 
       12 
     | 
    
         
            -
                HTML
         
     | 
| 
       13 
     | 
    
         
            -
              end
         
     | 
| 
      
 3 
     | 
    
         
            +
              #def kramdown(string)
         
     | 
| 
      
 4 
     | 
    
         
            +
                #Kramdown::Document.new(string).to_html.html_safe
         
     | 
| 
      
 5 
     | 
    
         
            +
              #end
         
     | 
| 
       14 
6 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
               
     | 
| 
       16 
     | 
    
         
            -
                options[:key] ||= :"#{key}_help"
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                help_title = options.delete(:title) || resource_humanize(options.delete(:key))
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                str = ''.html_safe
         
     | 
| 
       21 
     | 
    
         
            -
                str.safe_concat resource_humanize(key)
         
     | 
| 
       22 
     | 
    
         
            -
                str.safe_concat ' '
         
     | 
| 
       23 
     | 
    
         
            -
                str.safe_concat help_tooltip(help_title, options.delete(:header))
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
                if form_or_id.respond_to?(:label)
         
     | 
| 
       26 
     | 
    
         
            -
                  form_or_id.label(key, str, options)
         
     | 
| 
       27 
     | 
    
         
            -
                else
         
     | 
| 
       28 
     | 
    
         
            -
                  label_tag(form_or_id, str, options)
         
     | 
| 
       29 
     | 
    
         
            -
                end
         
     | 
| 
       30 
     | 
    
         
            -
              end
         
     | 
| 
      
 7 
     | 
    
         
            +
              #alias :k :kramdown
         
     | 
| 
       31 
8 
     | 
    
         | 
| 
       32 
9 
     | 
    
         
             
              ##
         
     | 
| 
       33 
10 
     | 
    
         
             
              # Field maps
         
     | 
| 
         @@ -56,58 +33,58 @@ module E9Crm::BaseHelper 
     | 
|
| 
       56 
33 
     | 
    
         
             
              # Misc
         
     | 
| 
       57 
34 
     | 
    
         
             
              #
         
     | 
| 
       58 
35 
     | 
    
         | 
| 
       59 
     | 
    
         
            -
              def link_to_add_record_attribute(association_name)
         
     | 
| 
       60 
     | 
    
         
            -
                link_to(
         
     | 
| 
       61 
     | 
    
         
            -
                  t(:add_record_attribute, :scope => :e9_crm), 
         
     | 
| 
       62 
     | 
    
         
            -
                  'javascript:;', 
         
     | 
| 
       63 
     | 
    
         
            -
                   
     | 
| 
       64 
     | 
    
         
            -
                  'data-association' => association_name
         
     | 
| 
       65 
     | 
    
         
            -
                )
         
     | 
| 
       66 
     | 
    
         
            -
              end
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
              def link_to_destroy_record_attribute
         
     | 
| 
       69 
     | 
    
         
            -
                link_to(
         
     | 
| 
       70 
     | 
    
         
            -
                  t(:destroy_record_attribute, :scope => :e9_crm), 
         
     | 
| 
       71 
     | 
    
         
            -
                  'javascript:;', 
         
     | 
| 
       72 
     | 
    
         
            -
                   
     | 
| 
       73 
     | 
    
         
            -
                )
         
     | 
| 
       74 
     | 
    
         
            -
              end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
              def render_record_attribute_form(association_name, form)
         
     | 
| 
       77 
     | 
    
         
            -
                render('e9_crm/record_attributes/form_partial', {
         
     | 
| 
       78 
     | 
    
         
            -
                   
     | 
| 
       79 
     | 
    
         
            -
                   
     | 
| 
       80 
     | 
    
         
            -
                })
         
     | 
| 
       81 
     | 
    
         
            -
              end
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
              def render_record_attribute_association(association_name, form, options = {})
         
     | 
| 
       84 
     | 
    
         
            -
                options.symbolize_keys!
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
                association = resource.send(association_name)
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
                unless association.empty?
         
     | 
| 
       89 
     | 
    
         
            -
                  form.fields_for(association_name) do |f|
         
     | 
| 
       90 
     | 
    
         
            -
                    concat record_attribute_template(association_name, f, options)
         
     | 
| 
       91 
     | 
    
         
            -
                  end
         
     | 
| 
       92 
     | 
    
         
            -
                end
         
     | 
| 
       93 
     | 
    
         
            -
              end
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
              def record_attribute_template(association_name, builder, options = {})
         
     | 
| 
       96 
     | 
    
         
            -
                options.symbolize_keys!
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
                render(
         
     | 
| 
       99 
     | 
    
         
            -
                   
     | 
| 
       100 
     | 
    
         
            -
                   
     | 
| 
       101 
     | 
    
         
            -
                )
         
     | 
| 
       102 
     | 
    
         
            -
              end
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
               
     | 
| 
       105 
     | 
    
         
            -
               
     | 
| 
       106 
     | 
    
         
            -
              def build_associated_resource(association_name)
         
     | 
| 
       107 
     | 
    
         
            -
                params_method = "#{association_name}_build_parameters"
         
     | 
| 
       108 
     | 
    
         
            -
                build_params = resource_class.send(params_method) if resource_class.respond_to?(params_method)
         
     | 
| 
       109 
     | 
    
         
            -
                resource.send(association_name).build(build_params || {})
         
     | 
| 
       110 
     | 
    
         
            -
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
              #def link_to_add_record_attribute(association_name)
         
     | 
| 
      
 37 
     | 
    
         
            +
                #link_to(
         
     | 
| 
      
 38 
     | 
    
         
            +
                  #t(:add_record_attribute, :scope => :e9_crm), 
         
     | 
| 
      
 39 
     | 
    
         
            +
                  #'javascript:;', 
         
     | 
| 
      
 40 
     | 
    
         
            +
                  #:class => 'add-nested-association', 
         
     | 
| 
      
 41 
     | 
    
         
            +
                  #'data-association' => association_name
         
     | 
| 
      
 42 
     | 
    
         
            +
                #)
         
     | 
| 
      
 43 
     | 
    
         
            +
              #end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              #def link_to_destroy_record_attribute
         
     | 
| 
      
 46 
     | 
    
         
            +
                #link_to(
         
     | 
| 
      
 47 
     | 
    
         
            +
                  #t(:destroy_record_attribute, :scope => :e9_crm), 
         
     | 
| 
      
 48 
     | 
    
         
            +
                  #'javascript:;', 
         
     | 
| 
      
 49 
     | 
    
         
            +
                  #:class => 'destroy-nested-association'
         
     | 
| 
      
 50 
     | 
    
         
            +
                #)
         
     | 
| 
      
 51 
     | 
    
         
            +
              #end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
              #def render_record_attribute_form(association_name, form)
         
     | 
| 
      
 54 
     | 
    
         
            +
                #render('e9_crm/record_attributes/form_partial', {
         
     | 
| 
      
 55 
     | 
    
         
            +
                  #:form             => form,
         
     | 
| 
      
 56 
     | 
    
         
            +
                  #:association_name => association_name
         
     | 
| 
      
 57 
     | 
    
         
            +
                #})
         
     | 
| 
      
 58 
     | 
    
         
            +
              #end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
              #def render_record_attribute_association(association_name, form, options = {})
         
     | 
| 
      
 61 
     | 
    
         
            +
                #options.symbolize_keys!
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                #association = resource.send(association_name)
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                #unless association.empty?
         
     | 
| 
      
 66 
     | 
    
         
            +
                  #form.fields_for(association_name) do |f|
         
     | 
| 
      
 67 
     | 
    
         
            +
                    #concat record_attribute_template(association_name, f, options)
         
     | 
| 
      
 68 
     | 
    
         
            +
                  #end
         
     | 
| 
      
 69 
     | 
    
         
            +
                #end
         
     | 
| 
      
 70 
     | 
    
         
            +
              #end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
              #def record_attribute_template(association_name, builder, options = {})
         
     | 
| 
      
 73 
     | 
    
         
            +
                #options.symbolize_keys!
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                #render(
         
     | 
| 
      
 76 
     | 
    
         
            +
                  #:partial => options[:partial] || "e9_crm/record_attributes/#{association_name.to_s.singularize}",
         
     | 
| 
      
 77 
     | 
    
         
            +
                  #:locals => { :f => builder }
         
     | 
| 
      
 78 
     | 
    
         
            +
                #)
         
     | 
| 
      
 79 
     | 
    
         
            +
              #end
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
              ## tries to build an associated resource, looking to the assocatiaon's model for a method
         
     | 
| 
      
 82 
     | 
    
         
            +
              ## named "%{association_name}_build_parameters}" first for any default params
         
     | 
| 
      
 83 
     | 
    
         
            +
              #def build_associated_resource(association_name)
         
     | 
| 
      
 84 
     | 
    
         
            +
                #params_method = "#{association_name}_build_parameters"
         
     | 
| 
      
 85 
     | 
    
         
            +
                #build_params = resource_class.send(params_method) if resource_class.respond_to?(params_method)
         
     | 
| 
      
 86 
     | 
    
         
            +
                #resource.send(association_name).build(build_params || {})
         
     | 
| 
      
 87 
     | 
    
         
            +
              #end
         
     | 
| 
       111 
88 
     | 
    
         | 
| 
       112 
89 
     | 
    
         
             
              def sortable_controller?
         
     | 
| 
       113 
90 
     | 
    
         
             
                @_sortable_controller ||= controller.class.ancestors.member?(E9Rails::Controllers::Sortable)
         
     | 
| 
         @@ -10,7 +10,7 @@ module E9Crm::ContactsHelper 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def company_select_options
         
     | 
| 
       13 
     | 
    
         
            -
                options = Company.select( 
     | 
| 
      
 13 
     | 
    
         
            +
                options = Company.select("companies.name, companies.id").ordered.all.map {|c| [c.name, c.id] }
         
     | 
| 
       14 
14 
     | 
    
         
             
                options.unshift(['Any Company', nil])
         
     | 
| 
       15 
15 
     | 
    
         
             
                options_for_select(options, params[:company])
         
     | 
| 
       16 
16 
     | 
    
         
             
              end
         
     | 
    
        data/app/models/contact.rb
    CHANGED
    
    | 
         @@ -94,22 +94,12 @@ class Contact < ActiveRecord::Base 
     | 
|
| 
       94 
94 
     | 
    
         
             
                PageView.by_user(users)
         
     | 
| 
       95 
95 
     | 
    
         
             
              end
         
     | 
| 
       96 
96 
     | 
    
         | 
| 
       97 
     | 
    
         
            -
               
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
                accepts_nested_attributes_for association_name.to_sym, :allow_destroy => true, :reject_if => :reject_record_attribute?
         
     | 
| 
       104 
     | 
    
         
            -
              end
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
              def build_all_record_attributes
         
     | 
| 
       107 
     | 
    
         
            -
                RECORD_ATTRIBUTES.each do |attr|
         
     | 
| 
       108 
     | 
    
         
            -
                  params_method = "#{attr}_build_parameters"
         
     | 
| 
       109 
     | 
    
         
            -
                  build_params = self.class.send(params_method) if self.class.respond_to?(params_method)
         
     | 
| 
       110 
     | 
    
         
            -
                  send(attr).send(:build, build_params || {})
         
     | 
| 
       111 
     | 
    
         
            -
                end
         
     | 
| 
       112 
     | 
    
         
            -
              end
         
     | 
| 
      
 97 
     | 
    
         
            +
              has_record_attributes :users, 
         
     | 
| 
      
 98 
     | 
    
         
            +
                                    :phone_number_attributes, 
         
     | 
| 
      
 99 
     | 
    
         
            +
                                    :instant_messaging_handle_attributes, 
         
     | 
| 
      
 100 
     | 
    
         
            +
                                    :website_attributes, 
         
     | 
| 
      
 101 
     | 
    
         
            +
                                    :address_attributes,
         
     | 
| 
      
 102 
     | 
    
         
            +
                                    :skip_name_format => true
         
     | 
| 
       113 
103 
     | 
    
         | 
| 
       114 
104 
     | 
    
         
             
              ##
         
     | 
| 
       115 
105 
     | 
    
         
             
              # Validations
         
     | 
| 
         @@ -1,16 +1,21 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            .contact-body
         
     | 
| 
       2 
2 
     | 
    
         
             
              = title resource.name
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
       3 
4 
     | 
    
         
             
              .contact-photo
         
     | 
| 
       4 
5 
     | 
    
         
             
                %img{:src => resource.avatar_url, :alt => "Avatar for #{resource.name}"}
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
       5 
7 
     | 
    
         
             
              = render 'who', :record => resource, :hide_name => true
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       6 
9 
     | 
    
         
             
              .contact-links.actions
         
     | 
| 
       7 
10 
     | 
    
         
             
                = link_to_edit_resource(resource)
         
     | 
| 
       8 
11 
     | 
    
         
             
                = google_search_link(resource.name)
         
     | 
| 
       9 
12 
     | 
    
         
             
                = google_news_link(resource.name)
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       10 
14 
     | 
    
         
             
              - if (tags = resource.tags(:show_all => true)).present?
         
     | 
| 
       11 
15 
     | 
    
         
             
                .contact-tags
         
     | 
| 
       12 
16 
     | 
    
         
             
                  %label #{Tag.model_name.human.pluralize}:
         
     | 
| 
       13 
17 
     | 
    
         
             
                  = contact_tag_list(tags)
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
       14 
19 
     | 
    
         
             
              .contact-info
         
     | 
| 
       15 
20 
     | 
    
         
             
                %label #{Contact.human_attribute_name(:info)}:
         
     | 
| 
       16 
21 
     | 
    
         
             
                = contact_simple_format(resource.info.presence || t(:none))
         
     | 
| 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            %div{:id => "offer_#{ 
     | 
| 
      
 1 
     | 
    
         
            +
            %div{:id => "offer_#{offer.id}_body"}
         
     | 
| 
       2 
2 
     | 
    
         
             
            - content_for :bottom_javascripts do
         
     | 
| 
       3 
3 
     | 
    
         
             
              :javascript
         
     | 
| 
       4 
     | 
    
         
            -
                $(function(){ $("#offer_#{ 
     | 
| 
      
 4 
     | 
    
         
            +
                $(function(){ $("#offer_#{offer.id}_body").load("#{new_public_offer_deal_path(offer)}") });
         
     | 
| 
         
            File without changes
         
     | 
    
        data/config/routes.rb
    CHANGED
    
    | 
         @@ -35,10 +35,6 @@ Rails.application.routes.draw do 
     | 
|
| 
       35 
35 
     | 
    
         
             
                  collection { get :select }
         
     | 
| 
       36 
36 
     | 
    
         
             
                end
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
                resources :menu_options, :except => [:show] do
         
     | 
| 
       39 
     | 
    
         
            -
                  collection { post :update_order }
         
     | 
| 
       40 
     | 
    
         
            -
                end
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
38 
     | 
    
         
             
                resources :dated_costs, :path => 'advertising_costs', :only => [:index] do
         
     | 
| 
       43 
39 
     | 
    
         
             
                  collection do
         
     | 
| 
       44 
40 
     | 
    
         
             
                    post :bulk_create
         
     | 
    
        data/e9_crm.gemspec
    CHANGED
    
    | 
         @@ -23,8 +23,9 @@ Gem::Specification.new do |s| 
     | 
|
| 
       23 
23 
     | 
    
         
             
              s.add_dependency("inherited_resources", "~> 1.1.2")
         
     | 
| 
       24 
24 
     | 
    
         
             
              s.add_dependency("has_scope")
         
     | 
| 
       25 
25 
     | 
    
         
             
              s.add_dependency("money")
         
     | 
| 
       26 
     | 
    
         
            -
              s.add_dependency("e9_rails" 
     | 
| 
       27 
     | 
    
         
            -
              s.add_dependency("e9_tags" 
     | 
| 
      
 26 
     | 
    
         
            +
              s.add_dependency("e9_rails")
         
     | 
| 
      
 27 
     | 
    
         
            +
              s.add_dependency("e9_tags")
         
     | 
| 
      
 28 
     | 
    
         
            +
              s.add_dependency("e9_attributes")
         
     | 
| 
       28 
29 
     | 
    
         
             
              s.add_dependency("will_paginate")
         
     | 
| 
       29 
30 
     | 
    
         
             
              s.add_dependency("kramdown", "~> 0.13")
         
     | 
| 
       30 
31 
     | 
    
         
             
            end
         
     | 
    
        data/lib/e9_crm.rb
    CHANGED
    
    | 
         @@ -1,12 +1,9 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require ' 
     | 
| 
      
 1 
     | 
    
         
            +
            require 'e9_base'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'e9_rails'
         
     | 
| 
       3 
3 
     | 
    
         
             
            require 'e9_tags'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'e9_attributes'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
       4 
6 
     | 
    
         
             
            require 'money'
         
     | 
| 
       5 
     | 
    
         
            -
            require 'inherited_resources'
         
     | 
| 
       6 
     | 
    
         
            -
            require 'will_paginate'
         
     | 
| 
       7 
     | 
    
         
            -
            require 'has_scope'
         
     | 
| 
       8 
     | 
    
         
            -
            require 'kramdown'
         
     | 
| 
       9 
     | 
    
         
            -
            require 'e9_base'
         
     | 
| 
       10 
7 
     | 
    
         | 
| 
       11 
8 
     | 
    
         
             
            require 'e9_crm/rails_extensions'
         
     | 
| 
       12 
9 
     | 
    
         | 
| 
         @@ -65,6 +62,8 @@ module E9Crm 
     | 
|
| 
       65 
62 
     | 
    
         
             
                E9Crm.tracking_controllers.each do |controller|
         
     | 
| 
       66 
63 
     | 
    
         
             
                  controller.send(:include, E9Crm::TrackingController)
         
     | 
| 
       67 
64 
     | 
    
         
             
                end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                MenuOption.keys |= %w(Deal\ Category)
         
     | 
| 
       68 
67 
     | 
    
         
             
              end
         
     | 
| 
       69 
68 
     | 
    
         | 
| 
       70 
69 
     | 
    
         
             
              class Engine < ::Rails::Engine
         
     | 
    
        data/lib/e9_crm/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,8 +1,12 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: e9_crm
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              prerelease: 
         
     | 
| 
       5 
     | 
    
         
            -
               
     | 
| 
      
 4 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 5 
     | 
    
         
            +
              segments: 
         
     | 
| 
      
 6 
     | 
    
         
            +
              - 0
         
     | 
| 
      
 7 
     | 
    
         
            +
              - 1
         
     | 
| 
      
 8 
     | 
    
         
            +
              - 16
         
     | 
| 
      
 9 
     | 
    
         
            +
              version: 0.1.16
         
     | 
| 
       6 
10 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
11 
     | 
    
         
             
            authors: 
         
     | 
| 
       8 
12 
     | 
    
         
             
            - Travis Cox
         
     | 
| 
         @@ -10,7 +14,7 @@ autorequire: 
     | 
|
| 
       10 
14 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
15 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
16 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            date: 2011- 
     | 
| 
      
 17 
     | 
    
         
            +
            date: 2011-09-07 00:00:00 -04:00
         
     | 
| 
       14 
18 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       15 
19 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       16 
20 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -21,6 +25,10 @@ dependencies: 
     | 
|
| 
       21 
25 
     | 
    
         
             
                requirements: 
         
     | 
| 
       22 
26 
     | 
    
         
             
                - - ~>
         
     | 
| 
       23 
27 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 28 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 29 
     | 
    
         
            +
                    - 3
         
     | 
| 
      
 30 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 31 
     | 
    
         
            +
                    - 0
         
     | 
| 
       24 
32 
     | 
    
         
             
                    version: 3.0.0
         
     | 
| 
       25 
33 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       26 
34 
     | 
    
         
             
              version_requirements: *id001
         
     | 
| 
         @@ -32,6 +40,10 @@ dependencies: 
     | 
|
| 
       32 
40 
     | 
    
         
             
                requirements: 
         
     | 
| 
       33 
41 
     | 
    
         
             
                - - ~>
         
     | 
| 
       34 
42 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 43 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 44 
     | 
    
         
            +
                    - 1
         
     | 
| 
      
 45 
     | 
    
         
            +
                    - 1
         
     | 
| 
      
 46 
     | 
    
         
            +
                    - 2
         
     | 
| 
       35 
47 
     | 
    
         
             
                    version: 1.1.2
         
     | 
| 
       36 
48 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       37 
49 
     | 
    
         
             
              version_requirements: *id002
         
     | 
| 
         @@ -43,6 +55,8 @@ dependencies: 
     | 
|
| 
       43 
55 
     | 
    
         
             
                requirements: 
         
     | 
| 
       44 
56 
     | 
    
         
             
                - - ">="
         
     | 
| 
       45 
57 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 58 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 59 
     | 
    
         
            +
                    - 0
         
     | 
| 
       46 
60 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       47 
61 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       48 
62 
     | 
    
         
             
              version_requirements: *id003
         
     | 
| 
         @@ -54,6 +68,8 @@ dependencies: 
     | 
|
| 
       54 
68 
     | 
    
         
             
                requirements: 
         
     | 
| 
       55 
69 
     | 
    
         
             
                - - ">="
         
     | 
| 
       56 
70 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 71 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 72 
     | 
    
         
            +
                    - 0
         
     | 
| 
       57 
73 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       58 
74 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       59 
75 
     | 
    
         
             
              version_requirements: *id004
         
     | 
| 
         @@ -63,9 +79,11 @@ dependencies: 
     | 
|
| 
       63 
79 
     | 
    
         
             
              requirement: &id005 !ruby/object:Gem::Requirement 
         
     | 
| 
       64 
80 
     | 
    
         
             
                none: false
         
     | 
| 
       65 
81 
     | 
    
         
             
                requirements: 
         
     | 
| 
       66 
     | 
    
         
            -
                - -  
     | 
| 
      
 82 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       67 
83 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       68 
     | 
    
         
            -
                     
     | 
| 
      
 84 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 85 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 86 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
       69 
87 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       70 
88 
     | 
    
         
             
              version_requirements: *id005
         
     | 
| 
       71 
89 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -74,33 +92,53 @@ dependencies: 
     | 
|
| 
       74 
92 
     | 
    
         
             
              requirement: &id006 !ruby/object:Gem::Requirement 
         
     | 
| 
       75 
93 
     | 
    
         
             
                none: false
         
     | 
| 
       76 
94 
     | 
    
         
             
                requirements: 
         
     | 
| 
       77 
     | 
    
         
            -
                - -  
     | 
| 
      
 95 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       78 
96 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       79 
     | 
    
         
            -
                     
     | 
| 
      
 97 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 98 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 99 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
       80 
100 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       81 
101 
     | 
    
         
             
              version_requirements: *id006
         
     | 
| 
       82 
102 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       83 
     | 
    
         
            -
              name:  
     | 
| 
      
 103 
     | 
    
         
            +
              name: e9_attributes
         
     | 
| 
       84 
104 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       85 
105 
     | 
    
         
             
              requirement: &id007 !ruby/object:Gem::Requirement 
         
     | 
| 
       86 
106 
     | 
    
         
             
                none: false
         
     | 
| 
       87 
107 
     | 
    
         
             
                requirements: 
         
     | 
| 
       88 
108 
     | 
    
         
             
                - - ">="
         
     | 
| 
       89 
109 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 110 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 111 
     | 
    
         
            +
                    - 0
         
     | 
| 
       90 
112 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       91 
113 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       92 
114 
     | 
    
         
             
              version_requirements: *id007
         
     | 
| 
       93 
115 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       94 
     | 
    
         
            -
              name:  
     | 
| 
      
 116 
     | 
    
         
            +
              name: will_paginate
         
     | 
| 
       95 
117 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       96 
118 
     | 
    
         
             
              requirement: &id008 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 119 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 120 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 121 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 122 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 123 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 124 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 125 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 126 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 127 
     | 
    
         
            +
              version_requirements: *id008
         
     | 
| 
      
 128 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 129 
     | 
    
         
            +
              name: kramdown
         
     | 
| 
      
 130 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 131 
     | 
    
         
            +
              requirement: &id009 !ruby/object:Gem::Requirement 
         
     | 
| 
       97 
132 
     | 
    
         
             
                none: false
         
     | 
| 
       98 
133 
     | 
    
         
             
                requirements: 
         
     | 
| 
       99 
134 
     | 
    
         
             
                - - ~>
         
     | 
| 
       100 
135 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 136 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 137 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 138 
     | 
    
         
            +
                    - 13
         
     | 
| 
       101 
139 
     | 
    
         
             
                    version: "0.13"
         
     | 
| 
       102 
140 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       103 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 141 
     | 
    
         
            +
              version_requirements: *id009
         
     | 
| 
       104 
142 
     | 
    
         
             
            description: |
         
     | 
| 
       105 
143 
     | 
    
         
             
              *NOTE his plugin requires the private e9_base CMS gem and WILL NOT WORK without it.*
         
     | 
| 
       106 
144 
     | 
    
         | 
| 
         @@ -162,7 +200,6 @@ files: 
     | 
|
| 
       162 
200 
     | 
    
         
             
            - app/controllers/e9_crm/email_templates.controller.rb
         
     | 
| 
       163 
201 
     | 
    
         
             
            - app/controllers/e9_crm/file_download_offers_controller.rb
         
     | 
| 
       164 
202 
     | 
    
         
             
            - app/controllers/e9_crm/leads_controller.rb
         
     | 
| 
       165 
     | 
    
         
            -
            - app/controllers/e9_crm/menu_options_controller.rb
         
     | 
| 
       166 
203 
     | 
    
         
             
            - app/controllers/e9_crm/new_content_subscription_offers_controller.rb
         
     | 
| 
       167 
204 
     | 
    
         
             
            - app/controllers/e9_crm/newsletter_subscription_offers_controller.rb
         
     | 
| 
       168 
205 
     | 
    
         
             
            - app/controllers/e9_crm/offer_subclass_controller.rb
         
     | 
| 
         @@ -184,7 +221,6 @@ files: 
     | 
|
| 
       184 
221 
     | 
    
         
             
            - app/helpers/e9_crm/menu_options_helper.rb
         
     | 
| 
       185 
222 
     | 
    
         
             
            - app/helpers/e9_crm/offers_helper.rb
         
     | 
| 
       186 
223 
     | 
    
         
             
            - app/helpers/e9_crm/page_views_helper.rb
         
     | 
| 
       187 
     | 
    
         
            -
            - app/models/address_attribute.rb
         
     | 
| 
       188 
224 
     | 
    
         
             
            - app/models/advertising_campaign.rb
         
     | 
| 
       189 
225 
     | 
    
         
             
            - app/models/affiliate_campaign.rb
         
     | 
| 
       190 
226 
     | 
    
         
             
            - app/models/campaign.rb
         
     | 
| 
         @@ -198,20 +234,15 @@ files: 
     | 
|
| 
       198 
234 
     | 
    
         
             
            - app/models/email_campaign.rb
         
     | 
| 
       199 
235 
     | 
    
         
             
            - app/models/email_template.rb
         
     | 
| 
       200 
236 
     | 
    
         
             
            - app/models/file_download_offer.rb
         
     | 
| 
       201 
     | 
    
         
            -
            - app/models/instant_messaging_handle_attribute.rb
         
     | 
| 
       202 
     | 
    
         
            -
            - app/models/menu_option.rb
         
     | 
| 
       203 
237 
     | 
    
         
             
            - app/models/new_content_subscription_offer.rb
         
     | 
| 
       204 
238 
     | 
    
         
             
            - app/models/newsletter_subscription_offer.rb
         
     | 
| 
       205 
239 
     | 
    
         
             
            - app/models/no_campaign.rb
         
     | 
| 
       206 
240 
     | 
    
         
             
            - app/models/offer.rb
         
     | 
| 
       207 
241 
     | 
    
         
             
            - app/models/page_view.rb
         
     | 
| 
       208 
     | 
    
         
            -
            - app/models/phone_number_attribute.rb
         
     | 
| 
       209 
     | 
    
         
            -
            - app/models/record_attribute.rb
         
     | 
| 
       210 
242 
     | 
    
         
             
            - app/models/sales_campaign.rb
         
     | 
| 
       211 
243 
     | 
    
         
             
            - app/models/subscription_offer.rb
         
     | 
| 
       212 
244 
     | 
    
         
             
            - app/models/tracking_cookie.rb
         
     | 
| 
       213 
245 
     | 
    
         
             
            - app/models/video_offer.rb
         
     | 
| 
       214 
     | 
    
         
            -
            - app/models/website_attribute.rb
         
     | 
| 
       215 
246 
     | 
    
         
             
            - app/observers/deal_observer.rb
         
     | 
| 
       216 
247 
     | 
    
         
             
            - app/uploaders/file_uploader.rb
         
     | 
| 
       217 
248 
     | 
    
         
             
            - app/views/e9_crm/advertising_campaigns/_form_inner.html.haml
         
     | 
| 
         @@ -277,8 +308,6 @@ files: 
     | 
|
| 
       277 
308 
     | 
    
         
             
            - app/views/e9_crm/leads/_form.html.haml
         
     | 
| 
       278 
309 
     | 
    
         
             
            - app/views/e9_crm/leads/create.js.erb
         
     | 
| 
       279 
310 
     | 
    
         
             
            - app/views/e9_crm/leads/new.html.haml
         
     | 
| 
       280 
     | 
    
         
            -
            - app/views/e9_crm/menu_options/_form_inner.html.haml
         
     | 
| 
       281 
     | 
    
         
            -
            - app/views/e9_crm/menu_options/_header.html.haml
         
     | 
| 
       282 
311 
     | 
    
         
             
            - app/views/e9_crm/new_content_subscription_offers/_form_inner.html.haml
         
     | 
| 
       283 
312 
     | 
    
         
             
            - app/views/e9_crm/newsletter_subscription_offers/_form_inner.html.haml
         
     | 
| 
       284 
313 
     | 
    
         
             
            - app/views/e9_crm/offers/_form_inner.html.haml
         
     | 
| 
         @@ -287,14 +316,6 @@ files: 
     | 
|
| 
       287 
316 
     | 
    
         
             
            - app/views/e9_crm/offers/_public_offer.html.haml
         
     | 
| 
       288 
317 
     | 
    
         
             
            - app/views/e9_crm/offers/show.html.haml
         
     | 
| 
       289 
318 
     | 
    
         
             
            - app/views/e9_crm/page_views/_table.html.haml
         
     | 
| 
       290 
     | 
    
         
            -
            - app/views/e9_crm/record_attributes/_address_attribute.html.haml
         
     | 
| 
       291 
     | 
    
         
            -
            - app/views/e9_crm/record_attributes/_form_partial.html.haml
         
     | 
| 
       292 
     | 
    
         
            -
            - app/views/e9_crm/record_attributes/_instant_messaging_handle_attribute.html.haml
         
     | 
| 
       293 
     | 
    
         
            -
            - app/views/e9_crm/record_attributes/_phone_number_attribute.html.haml
         
     | 
| 
       294 
     | 
    
         
            -
            - app/views/e9_crm/record_attributes/_record_attribute.html.haml
         
     | 
| 
       295 
     | 
    
         
            -
            - app/views/e9_crm/record_attributes/_templates.js.erb
         
     | 
| 
       296 
     | 
    
         
            -
            - app/views/e9_crm/record_attributes/_user.html.haml
         
     | 
| 
       297 
     | 
    
         
            -
            - app/views/e9_crm/record_attributes/_website_attribute.html.haml
         
     | 
| 
       298 
319 
     | 
    
         
             
            - app/views/e9_crm/resources/_form.html.haml
         
     | 
| 
       299 
320 
     | 
    
         
             
            - app/views/e9_crm/resources/_form_inner.html.haml
         
     | 
| 
       300 
321 
     | 
    
         
             
            - app/views/e9_crm/resources/_header.html.haml
         
     | 
| 
         @@ -310,6 +331,7 @@ files: 
     | 
|
| 
       310 
331 
     | 
    
         
             
            - app/views/e9_crm/sales_campaigns/_form_inner.html.haml
         
     | 
| 
       311 
332 
     | 
    
         
             
            - app/views/e9_crm/subscription_offers/_form_inner.html.haml
         
     | 
| 
       312 
333 
     | 
    
         
             
            - app/views/e9_crm/video_offers/_form_inner.html.haml
         
     | 
| 
      
 334 
     | 
    
         
            +
            - app/views/record_attributes/_user.html.haml
         
     | 
| 
       313 
335 
     | 
    
         
             
            - config/initializers/inflections.rb
         
     | 
| 
       314 
336 
     | 
    
         
             
            - config/locales/e9.en.yml
         
     | 
| 
       315 
337 
     | 
    
         
             
            - config/locales/en.yml
         
     | 
| 
         @@ -345,17 +367,21 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       345 
367 
     | 
    
         
             
              requirements: 
         
     | 
| 
       346 
368 
     | 
    
         
             
              - - ">="
         
     | 
| 
       347 
369 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 370 
     | 
    
         
            +
                  segments: 
         
     | 
| 
      
 371 
     | 
    
         
            +
                  - 0
         
     | 
| 
       348 
372 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       349 
373 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
       350 
374 
     | 
    
         
             
              none: false
         
     | 
| 
       351 
375 
     | 
    
         
             
              requirements: 
         
     | 
| 
       352 
376 
     | 
    
         
             
              - - ">="
         
     | 
| 
       353 
377 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 378 
     | 
    
         
            +
                  segments: 
         
     | 
| 
      
 379 
     | 
    
         
            +
                  - 0
         
     | 
| 
       354 
380 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       355 
381 
     | 
    
         
             
            requirements: []
         
     | 
| 
       356 
382 
     | 
    
         | 
| 
       357 
383 
     | 
    
         
             
            rubyforge_project: e9_crm
         
     | 
| 
       358 
     | 
    
         
            -
            rubygems_version: 1. 
     | 
| 
      
 384 
     | 
    
         
            +
            rubygems_version: 1.3.7
         
     | 
| 
       359 
385 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       360 
386 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       361 
387 
     | 
    
         
             
            summary: CRM engine plugin for the e9 CMS
         
     | 
| 
         @@ -1,28 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            class E9Crm::MenuOptionsController < E9Crm::ResourcesController
         
     | 
| 
       2 
     | 
    
         
            -
              defaults :resource_class => MenuOption
         
     | 
| 
       3 
     | 
    
         
            -
              include E9Rails::Controllers::Sortable
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              self.should_paginate_index = false
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              has_scope :options_for, :as => :key, :only => :index
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
              # NOTE The reason this is set in a filter instead of just a default scope value 
         
     | 
| 
       10 
     | 
    
         
            -
              #      is that it is used in the index view to add the key param to the new 
         
     | 
| 
       11 
     | 
    
         
            -
              #      resource link
         
     | 
| 
       12 
     | 
    
         
            -
              #
         
     | 
| 
       13 
     | 
    
         
            -
              before_filter :ensure_default_fetch_key, :only => :index
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
              def create
         
     | 
| 
       16 
     | 
    
         
            -
                create! { collection_path(:key => resource.key) }
         
     | 
| 
       17 
     | 
    
         
            -
              end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
              def update
         
     | 
| 
       20 
     | 
    
         
            -
                update! { collection_path(:key => resource.key) }
         
     | 
| 
       21 
     | 
    
         
            -
              end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
              protected
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
              def ensure_default_fetch_key
         
     | 
| 
       26 
     | 
    
         
            -
                params[:key] ||= MenuOption::KEYS.sort.first
         
     | 
| 
       27 
     | 
    
         
            -
              end
         
     | 
| 
       28 
     | 
    
         
            -
            end
         
     | 
    
        data/app/models/menu_option.rb
    DELETED
    
    | 
         @@ -1,38 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # A simple class to manage menu options, usable by other classes to build their menus.
         
     | 
| 
       2 
     | 
    
         
            -
            #
         
     | 
| 
       3 
     | 
    
         
            -
            class MenuOption < ActiveRecord::Base
         
     | 
| 
       4 
     | 
    
         
            -
              KEYS = [
         
     | 
| 
       5 
     | 
    
         
            -
                #'Task Category',
         
     | 
| 
       6 
     | 
    
         
            -
                #'Task Status',
         
     | 
| 
       7 
     | 
    
         
            -
                'Address',
         
     | 
| 
       8 
     | 
    
         
            -
                'Deal Category',
         
     | 
| 
       9 
     | 
    
         
            -
                'Email',
         
     | 
| 
       10 
     | 
    
         
            -
                'Instant Messaging Handle',
         
     | 
| 
       11 
     | 
    
         
            -
                'Phone Number',
         
     | 
| 
       12 
     | 
    
         
            -
                'Website'
         
     | 
| 
       13 
     | 
    
         
            -
              ].freeze
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
              validates :value, :presence  => true
         
     | 
| 
       16 
     | 
    
         
            -
              validates :key,   :presence  => true, :inclusion => { :in => KEYS, :allow_blank => true }
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              acts_as_list :scope => 'menu_options.key = \"#{key}\"'
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
              scope :options_for, lambda {|key| where(:key => key).order('menu_options.position ASC') }
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
              ##
         
     | 
| 
       23 
     | 
    
         
            -
              # A direct SQL selection of values for a given key
         
     | 
| 
       24 
     | 
    
         
            -
              #
         
     | 
| 
       25 
     | 
    
         
            -
              #   MenuOption.fetch('Email') #=> ['Personal','Work']
         
     | 
| 
       26 
     | 
    
         
            -
              #
         
     | 
| 
       27 
     | 
    
         
            -
              # === Parameters
         
     | 
| 
       28 
     | 
    
         
            -
              #
         
     | 
| 
       29 
     | 
    
         
            -
              # [key (String)] The key for the assocated menu options.
         
     | 
| 
       30 
     | 
    
         
            -
              #
         
     | 
| 
       31 
     | 
    
         
            -
              def self.fetch_values(key)
         
     | 
| 
       32 
     | 
    
         
            -
                connection.send(:select_values, options_for(key).order(:position).project('value').to_sql, 'Menu Option Select')
         
     | 
| 
       33 
     | 
    
         
            -
              end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
              def to_s
         
     | 
| 
       36 
     | 
    
         
            -
                value
         
     | 
| 
       37 
     | 
    
         
            -
              end
         
     | 
| 
       38 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,41 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # An arbitrary 'attribute' attachable to records.  
         
     | 
| 
       2 
     | 
    
         
            -
            #
         
     | 
| 
       3 
     | 
    
         
            -
            # Gets support for arbitrary options via InheritableOptions.  By default it 
         
     | 
| 
       4 
     | 
    
         
            -
            # has one option, +type+, but subclasses could extend for further options by
         
     | 
| 
       5 
     | 
    
         
            -
            # overwriting +options_parameters+.
         
     | 
| 
       6 
     | 
    
         
            -
            #
         
     | 
| 
       7 
     | 
    
         
            -
            # By default, the +type+ options are managed via the +MenuOption+ class.
         
     | 
| 
       8 
     | 
    
         
            -
            #
         
     | 
| 
       9 
     | 
    
         
            -
            class RecordAttribute < ActiveRecord::Base
         
     | 
| 
       10 
     | 
    
         
            -
              include E9Rails::ActiveRecord::STI
         
     | 
| 
       11 
     | 
    
         
            -
              include E9Rails::ActiveRecord::AttributeSearchable
         
     | 
| 
       12 
     | 
    
         
            -
              include E9Rails::ActiveRecord::InheritableOptions
         
     | 
| 
       13 
     | 
    
         
            -
              
         
     | 
| 
       14 
     | 
    
         
            -
              self.options_parameters = [:type]
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              belongs_to :record, :polymorphic => true
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              ##
         
     | 
| 
       19 
     | 
    
         
            -
              # Looks up the available +types+ for this attribute by fetching a 
         
     | 
| 
       20 
     | 
    
         
            -
              # titleized version of the class name from +MenuOption+.
         
     | 
| 
       21 
     | 
    
         
            -
              #
         
     | 
| 
       22 
     | 
    
         
            -
              # e.g.
         
     | 
| 
       23 
     | 
    
         
            -
              #   
         
     | 
| 
       24 
     | 
    
         
            -
              #   PhoneNumberAttribute.types
         
     | 
| 
       25 
     | 
    
         
            -
              #
         
     | 
| 
       26 
     | 
    
         
            -
              # is equivalent to:
         
     | 
| 
       27 
     | 
    
         
            -
              #
         
     | 
| 
       28 
     | 
    
         
            -
              #   MenuOption.fetch_values('Phone Number')
         
     | 
| 
       29 
     | 
    
         
            -
              #
         
     | 
| 
       30 
     | 
    
         
            -
              def self.types
         
     | 
| 
       31 
     | 
    
         
            -
                if name =~ /^(\w+)Attribute$/ 
         
     | 
| 
       32 
     | 
    
         
            -
                  MenuOption.fetch_values($1.titleize)
         
     | 
| 
       33 
     | 
    
         
            -
                else 
         
     | 
| 
       34 
     | 
    
         
            -
                  []
         
     | 
| 
       35 
     | 
    
         
            -
                end
         
     | 
| 
       36 
     | 
    
         
            -
              end
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
              def to_s
         
     | 
| 
       39 
     | 
    
         
            -
                options.type ? "#{value} (#{options.type})" : value
         
     | 
| 
       40 
     | 
    
         
            -
              end
         
     | 
| 
       41 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,7 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            .toolbar
         
     | 
| 
       2 
     | 
    
         
            -
              .toolbar-left
         
     | 
| 
       3 
     | 
    
         
            -
                %form{:action => menu_options_path, :method => :get, :class => 'scope-selects'}
         
     | 
| 
       4 
     | 
    
         
            -
                  = label_tag 'menu_option_key_select', t(:view)
         
     | 
| 
       5 
     | 
    
         
            -
                  = select_tag 'key', options_for_select(MenuOption::KEYS.sort, params[:key])
         
     | 
| 
       6 
     | 
    
         
            -
              .toolbar-right
         
     | 
| 
       7 
     | 
    
         
            -
                = link_to_new_resource(MenuOption, :menu_option => {:key => params[:key]}, :class => 'new-menu-option')
         
     | 
| 
         @@ -1,12 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            E9CRM = window.E9CRM || {};
         
     | 
| 
       2 
     | 
    
         
            -
            E9CRM.js_templates = {};
         
     | 
| 
       3 
     | 
    
         
            -
            E9CRM.js_templates.start_child_index = 
         
     | 
| 
       4 
     | 
    
         
            -
            E9CRM.js_templates.current_child_index = <%= child_index = 100000 %>;
         
     | 
| 
       5 
     | 
    
         
            -
            <%= fields_for(resource) do |f| %>
         
     | 
| 
       6 
     | 
    
         
            -
              <% resource_class::RECORD_ATTRIBUTES.each do |association_name| %>
         
     | 
| 
       7 
     | 
    
         
            -
                <% build_associated_resource(association_name) %>
         
     | 
| 
       8 
     | 
    
         
            -
                <%= f.fields_for(association_name, :child_index => child_index) do |association_form_builder| %>
         
     | 
| 
       9 
     | 
    
         
            -
            E9CRM.js_templates.<%= association_name %> = "<%= escape_javascript(record_attribute_template(association_name, association_form_builder)) %>";
         
     | 
| 
       10 
     | 
    
         
            -
                <% end %>
         
     | 
| 
       11 
     | 
    
         
            -
              <% end %>
         
     | 
| 
       12 
     | 
    
         
            -
            <% end %>
         
     |