hobo 1.3.0.pre29 → 1.3.0.pre31
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/VERSION +1 -1
 - data/app/controllers/dev_controller.rb +1 -1
 - data/lib/generators/hobo/i18n/templates/hobo.de.yml +1 -1
 - data/lib/generators/hobo/i18n/templates/hobo.en.yml +4 -4
 - data/lib/generators/hobo/i18n/templates/hobo.es.yml +1 -1
 - data/lib/generators/hobo/i18n/templates/hobo.it.yml +1 -1
 - data/lib/generators/hobo/i18n/templates/hobo.pt-PT.yml +2 -2
 - data/lib/generators/hobo/i18n/templates/hobo.ru.yml +1 -1
 - data/lib/generators/hobo/rapid/templates/themes/clean-sidemenu/views/clean-sidemenu.dryml +1 -1
 - data/lib/generators/hobo/setup_wizard/setup_wizard_generator.rb +1 -1
 - data/lib/generators/hobo/user_controller/templates/controller.rb.erb +4 -2
 - data/lib/hobo.rb +9 -4
 - data/lib/hobo/controller.rb +6 -0
 - data/lib/hobo/controller/authentication_support.rb +1 -1
 - data/lib/hobo/controller/model.rb +12 -7
 - data/lib/hobo/extensions/active_record/hobo_methods.rb +1 -1
 - data/lib/hobo/extensions/i18n.rb +1 -0
 - data/lib/hobo/helper.rb +4 -3
 - data/lib/hobo/model.rb +2 -2
 - data/lib/hobo/model/permissions.rb +1 -3
 - data/lib/hobo/model/scopes/apply_scopes.rb +1 -1
 - data/lib/hobo/model/{user.rb → user_base.rb} +1 -1
 - data/lib/hobo/rapid/generators/rapid/pages.dryml.erb +4 -4
 - data/lib/hobo/rapid/helper.rb +4 -1
 - data/lib/hobo/rapid/taglibs/rapid_core.dryml +6 -6
 - data/lib/hobo/rapid/taglibs/rapid_forms.dryml +3 -3
 - data/lib/hobo/rapid/taglibs/rapid_i18n.dryml +2 -2
 - data/lib/hobo/rapid/taglibs/rapid_pages.dryml +3 -2
 - data/lib/hobo/rapid/taglibs/rapid_plus.dryml +25 -6
 - metadata +6 -6
 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            1.3.0. 
     | 
| 
      
 1 
     | 
    
         
            +
            1.3.0.pre31
         
     | 
| 
         @@ -5,7 +5,7 @@ class DevController < ActionController::Base 
     | 
|
| 
       5 
5 
     | 
    
         
             
              before_filter :developer_modes_only
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              def set_current_user
         
     | 
| 
       8 
     | 
    
         
            -
                model = params[:model] || Hobo::Model:: 
     | 
| 
      
 8 
     | 
    
         
            +
                model = params[:model] || Hobo::Model::UserBase.default_user_model
         
     | 
| 
       9 
9 
     | 
    
         
             
                self.current_user = if params[:login]
         
     | 
| 
       10 
10 
     | 
    
         
             
                                      model.where(model.login_attribute => params[:login]).first
         
     | 
| 
       11 
11 
     | 
    
         
             
                                    else
         
     | 
| 
         @@ -140,7 +140,7 @@ de: 
     | 
|
| 
       140 
140 
     | 
    
         
             
                  current_password_is_not_correct: "ist nicht korrekt"
         
     | 
| 
       141 
141 
     | 
    
         
             
                  you_are_site_admin: "Sie sind jetzt der Administrator"
         
     | 
| 
       142 
142 
     | 
    
         
             
                  you_signed_up: "Sie haben sich angemeldet"
         
     | 
| 
       143 
     | 
    
         
            -
                   
     | 
| 
      
 143 
     | 
    
         
            +
                  none: "Kein %{model}-Objekt gefunden."
         
     | 
| 
       144 
144 
     | 
    
         
             
                  confirm: "Sind Sie sich sicher?"
         
     | 
| 
       145 
145 
     | 
    
         | 
| 
       146 
146 
     | 
    
         
             
                # default hobo collection translation
         
     | 
| 
         @@ -63,7 +63,7 @@ en: 
     | 
|
| 
       63 
63 
     | 
    
         
             
                forgot_password_sent:
         
     | 
| 
       64 
64 
     | 
    
         
             
                  title: "Forgotten password - E-mail sent"
         
     | 
| 
       65 
65 
     | 
    
         
             
                  heading: "Forgotten password - E-mail sent"
         
     | 
| 
       66 
     | 
    
         
            -
                  text: "An e-mail with instructions on how  
     | 
| 
      
 66 
     | 
    
         
            +
                  text: "An e-mail with instructions on how to generate a new password has been sent to %{email_address}. If you don't receive this e-mail please check your spam folder."
         
     | 
| 
       67 
67 
     | 
    
         | 
| 
       68 
68 
     | 
    
         
             
                account_disabled_page:
         
     | 
| 
       69 
69 
     | 
    
         
             
                  title: "Account disabled"
         
     | 
| 
         @@ -131,15 +131,15 @@ en: 
     | 
|
| 
       131 
131 
     | 
    
         
             
                  current_password_is_not_correct: "is not correct"
         
     | 
| 
       132 
132 
     | 
    
         
             
                  you_are_site_admin: "You are now the site administrator"
         
     | 
| 
       133 
133 
     | 
    
         
             
                  you_signed_up: "You have signed up"
         
     | 
| 
       134 
     | 
    
         
            -
                   
     | 
| 
      
 134 
     | 
    
         
            +
                  none: "No %{model} available."
         
     | 
| 
       135 
135 
     | 
    
         
             
                  confirm: "Are you sure?"
         
     | 
| 
       136 
136 
     | 
    
         | 
| 
       137 
137 
     | 
    
         
             
                # default hobo collection translation
         
     | 
| 
       138 
138 
     | 
    
         
             
                collection:
         
     | 
| 
       139 
139 
     | 
    
         
             
                  count: &collection_count
         
     | 
| 
       140 
140 
     | 
    
         
             
                    zero: &no_model "No %{model}"
         
     | 
| 
       141 
     | 
    
         
            -
                    one: "There is  
     | 
| 
       142 
     | 
    
         
            -
                    other: "There are  
     | 
| 
      
 141 
     | 
    
         
            +
                    one: "There is one %{model}."
         
     | 
| 
      
 142 
     | 
    
         
            +
                    other: "There are %{count} %{model}."
         
     | 
| 
       143 
143 
     | 
    
         
             
                  # you can use the following to completely override the collection heading
         
     | 
| 
       144 
144 
     | 
    
         
             
                  # be aware that you will loose the automatic Your <collection> / Jom's <collection>
         
     | 
| 
       145 
145 
     | 
    
         
             
                  # default output for User models
         
     | 
| 
         @@ -138,7 +138,7 @@ es: 
     | 
|
| 
       138 
138 
     | 
    
         
             
                  current_password_is_not_correct: "no está correcta"
         
     | 
| 
       139 
139 
     | 
    
         
             
                  you_are_site_admin: "Ahora usted es el administrador del sitio."
         
     | 
| 
       140 
140 
     | 
    
         
             
                  you_signed_up: "Usted se inscribió."
         
     | 
| 
       141 
     | 
    
         
            -
                   
     | 
| 
      
 141 
     | 
    
         
            +
                  none: "No hay %{model} disponibles."
         
     | 
| 
       142 
142 
     | 
    
         
             
                  confirm: "¿Está seguro?"
         
     | 
| 
       143 
143 
     | 
    
         | 
| 
       144 
144 
     | 
    
         
             
                # default hobo collection translation
         
     | 
| 
         @@ -137,7 +137,7 @@ it: 
     | 
|
| 
       137 
137 
     | 
    
         
             
                  current_password_is_not_correct: "non è esatta"
         
     | 
| 
       138 
138 
     | 
    
         
             
                  you_are_site_admin: "Adesso sei amministratore del sito."
         
     | 
| 
       139 
139 
     | 
    
         
             
                  you_signed_up: "Ti sei iscritto."
         
     | 
| 
       140 
     | 
    
         
            -
                   
     | 
| 
      
 140 
     | 
    
         
            +
                  none: "Nessun record %{model} disponibile."
         
     | 
| 
       141 
141 
     | 
    
         
             
                  confirm: "Sei sicuro?"
         
     | 
| 
       142 
142 
     | 
    
         | 
| 
       143 
143 
     | 
    
         
             
                # default hobo collection translation
         
     | 
| 
         @@ -121,7 +121,7 @@ 
     | 
|
| 
       121 
121 
     | 
    
         
             
                    success: "Obrigado por efectuar o registo!"
         
     | 
| 
       122 
122 
     | 
    
         
             
                    must_activate: "Deve ativar o seu registo antes de se identificar. Por favor, verifique na sua caixa de correio electrônico."
         
     | 
| 
       123 
123 
     | 
    
         
             
                  login:
         
     | 
| 
       124 
     | 
    
         
            -
                    success: "Está  
     | 
| 
      
 124 
     | 
    
         
            +
                    success: "Está identificado no sistema."
         
     | 
| 
       125 
125 
     | 
    
         
             
                    error: "Não especificou um utilizador válido ({{login}}) e respectiva palavra-chave!"
         
     | 
| 
       126 
126 
     | 
    
         
             
                  logout: "Saiu do sistema."
         
     | 
| 
       127 
127 
     | 
    
         
             
                  reset_password: "A sua palavra-chave foi apagada."
         
     | 
| 
         @@ -132,7 +132,7 @@ 
     | 
|
| 
       132 
132 
     | 
    
         
             
                  current_password_is_not_correct: "não está correta."
         
     | 
| 
       133 
133 
     | 
    
         
             
                  you_are_site_admin: "Agora é o administrador do site"
         
     | 
| 
       134 
134 
     | 
    
         
             
                  you_signed_up: "Acabou de se registar"
         
     | 
| 
       135 
     | 
    
         
            -
                   
     | 
| 
      
 135 
     | 
    
         
            +
                  none: "Nenhum #{model} disponível."
         
     | 
| 
       136 
136 
     | 
    
         
             
                  confirm: "Tem a certeza?"
         
     | 
| 
       137 
137 
     | 
    
         | 
| 
       138 
138 
     | 
    
         
             
                # default hobo collection translation
         
     | 
| 
         @@ -136,7 +136,7 @@ ru: 
     | 
|
| 
       136 
136 
     | 
    
         
             
                  current_password_is_not_correct: "неправильно"
         
     | 
| 
       137 
137 
     | 
    
         
             
                  you_are_site_admin: "Вы получили права администратора сайта."
         
     | 
| 
       138 
138 
     | 
    
         
             
                  you_signed_up: "Вы зарегестрировались."
         
     | 
| 
       139 
     | 
    
         
            -
                   
     | 
| 
      
 139 
     | 
    
         
            +
                  none: "Нет доступных %{model}ей."
         
     | 
| 
       140 
140 
     | 
    
         
             
                  confirm: "Вы уверены?"
         
     | 
| 
       141 
141 
     | 
    
         | 
| 
       142 
142 
     | 
    
         
             
                # default hobo collection translation
         
     | 
| 
         @@ -9,7 +9,7 @@ 
     | 
|
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                <header: class="sidemenu" param>
         
     | 
| 
       11 
11 
     | 
    
         
             
                  <live-search param if="&defined_route? :site_search"/>
         
     | 
| 
       12 
     | 
    
         
            -
                  <account-nav if="&login_url(Hobo::Model:: 
     | 
| 
      
 12 
     | 
    
         
            +
                  <account-nav if="&login_url(Hobo::Model::UserBase.default_user_model)" param/>
         
     | 
| 
       13 
13 
     | 
    
         
             
                  <h1 param="app-name"><a href="#{base_url}/"><app-name/></a></h1>
         
     | 
| 
       14 
14 
     | 
    
         
             
                </header:>
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
         @@ -113,7 +113,7 @@ NOTE: You might want to sign up as the administrator before adding this! 
     | 
|
| 
       113 
113 
     | 
    
         
             
                  end
         
     | 
| 
       114 
114 
     | 
    
         
             
                  inject_into_file 'app/controllers/application_controller.rb', <<EOI, :after => "protect_from_forgery\n" if private_site
         
     | 
| 
       115 
115 
     | 
    
         
             
              include Hobo::Controller::AuthenticationSupport
         
     | 
| 
       116 
     | 
    
         
            -
              before_filter :except => [:login, :forgot_password, :accept_invitation, :do_accept_invitation] do
         
     | 
| 
      
 116 
     | 
    
         
            +
              before_filter :except => [:login, :forgot_password, :accept_invitation, :do_accept_invitation, :reset_password] do
         
     | 
| 
       117 
117 
     | 
    
         
             
                 login_required unless #{@user_resource_name.camelize}.count == 0
         
     | 
| 
       118 
118 
     | 
    
         
             
              end
         
     | 
| 
       119 
119 
     | 
    
         
             
            EOI
         
     | 
| 
         @@ -17,8 +17,10 @@ class <%= class_name %>Controller < ApplicationController 
     | 
|
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
              def do_accept_invitation
         
     | 
| 
       19 
19 
     | 
    
         
             
                do_transition_action :accept_invitation do
         
     | 
| 
       20 
     | 
    
         
            -
                   
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                  if this.valid?
         
     | 
| 
      
 21 
     | 
    
         
            +
                    self.current_user = this
         
     | 
| 
      
 22 
     | 
    
         
            +
                    flash[:notice] = t("hobo.messages.you_signed_up", :default=>"You have signed up")
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
       22 
24 
     | 
    
         
             
                end
         
     | 
| 
       23 
25 
     | 
    
         
             
              end
         
     | 
| 
       24 
26 
     | 
    
         
             
            <% end -%>
         
     | 
    
        data/lib/hobo.rb
    CHANGED
    
    | 
         @@ -25,7 +25,7 @@ module Hobo 
     | 
|
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
              class << self
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                attr_accessor :current_theme
         
     | 
| 
      
 28 
     | 
    
         
            +
                attr_accessor :current_theme, :engines
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                def raw_js(s)
         
     | 
| 
       31 
31 
     | 
    
         
             
                  RawJs.new(s)
         
     | 
| 
         @@ -64,13 +64,18 @@ module Hobo 
     | 
|
| 
       64 
64 
     | 
    
         | 
| 
       65 
65 
     | 
    
         
             
                def subsites
         
     | 
| 
       66 
66 
     | 
    
         
             
                  # Any directory inside app/controllers defines a subsite
         
     | 
| 
       67 
     | 
    
         
            -
                   
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
      
 67 
     | 
    
         
            +
                  app_dirs = ["#{Rails.root}/app"] + Hobo.engines.map { |e| "#{e}/app" }
         
     | 
| 
      
 68 
     | 
    
         
            +
                  @subsites ||= app_dirs.map do |app|
         
     | 
| 
      
 69 
     | 
    
         
            +
                                  Dir["#{app}/controllers/*"].map do |f|
         
     | 
| 
      
 70 
     | 
    
         
            +
                                    File.basename(f) if File.directory?(f)
         
     | 
| 
      
 71 
     | 
    
         
            +
                                  end.compact
         
     | 
| 
      
 72 
     | 
    
         
            +
                                end.flatten
         
     | 
| 
       70 
73 
     | 
    
         
             
                end
         
     | 
| 
       71 
74 
     | 
    
         | 
| 
       72 
75 
     | 
    
         
             
              end
         
     | 
| 
       73 
76 
     | 
    
         | 
| 
      
 77 
     | 
    
         
            +
              self.engines = []
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
       74 
79 
     | 
    
         
             
            end
         
     | 
| 
       75 
80 
     | 
    
         | 
| 
       76 
81 
     | 
    
         
             
            require 'hobo/engine'
         
     | 
    
        data/lib/hobo/controller.rb
    CHANGED
    
    
| 
         @@ -38,7 +38,7 @@ module Hobo 
     | 
|
| 
       38 
38 
     | 
    
         
             
                  #   skip_before_filter :login_required
         
     | 
| 
       39 
39 
     | 
    
         
             
                  #
         
     | 
| 
       40 
40 
     | 
    
         
             
                  def login_required(user_model=nil)
         
     | 
| 
       41 
     | 
    
         
            -
                    auth_model = user_model || Hobo::Model:: 
     | 
| 
      
 41 
     | 
    
         
            +
                    auth_model = user_model || Hobo::Model::UserBase.default_user_model
         
     | 
| 
       42 
42 
     | 
    
         
             
                    if current_user.guest?
         
     | 
| 
       43 
43 
     | 
    
         
             
                      username, passwd = get_auth_data
         
     | 
| 
       44 
44 
     | 
    
         
             
                      self.current_user = auth_model.authenticate(username, passwd) || nil if username && passwd && auth_model
         
     | 
| 
         @@ -50,15 +50,21 @@ module Hobo 
     | 
|
| 
       50 
50 
     | 
    
         | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
52 
     | 
    
         
             
                def self.all_controllers(subsite=nil, force=false)
         
     | 
| 
      
 53 
     | 
    
         
            +
                  controller_dirs = ["#{Rails.root}/app/controllers"] + Hobo.engines.map { |e| "#{e}/app/controllers" }
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
       53 
55 
     | 
    
         
             
                  # Load every controller in app/controllers/<subsite>...
         
     | 
| 
       54 
56 
     | 
    
         
             
                  @controllers_loaded ||= {}
         
     | 
| 
       55 
57 
     | 
    
         
             
                  if force || !@controllers_loaded[subsite]
         
     | 
| 
       56 
     | 
    
         
            -
                     
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
                      if  
     | 
| 
       59 
     | 
    
         
            -
                         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
      
 58 
     | 
    
         
            +
                    controller_dirs.each do |controller_dir|
         
     | 
| 
      
 59 
     | 
    
         
            +
                      dir = "#{controller_dir}#{'/' + subsite if subsite}"
         
     | 
| 
      
 60 
     | 
    
         
            +
                      if File.directory?(dir)
         
     | 
| 
      
 61 
     | 
    
         
            +
                        Dir.entries(dir).each do |f|
         
     | 
| 
      
 62 
     | 
    
         
            +
                          if f =~ /^[a-zA-Z_][a-zA-Z0-9_]*_controller\.rb$/
         
     | 
| 
      
 63 
     | 
    
         
            +
                            name = f.remove(/.rb$/).camelize
         
     | 
| 
      
 64 
     | 
    
         
            +
                            name = "#{subsite.camelize}::#{name}" if subsite
         
     | 
| 
      
 65 
     | 
    
         
            +
                            name.constantize
         
     | 
| 
      
 66 
     | 
    
         
            +
                          end
         
     | 
| 
      
 67 
     | 
    
         
            +
                        end
         
     | 
| 
       62 
68 
     | 
    
         
             
                      end
         
     | 
| 
       63 
69 
     | 
    
         
             
                    end
         
     | 
| 
       64 
70 
     | 
    
         
             
                    @controllers_loaded[subsite] = true
         
     | 
| 
         @@ -73,7 +79,6 @@ module Hobo 
     | 
|
| 
       73 
79 
     | 
    
         
             
                end
         
     | 
| 
       74 
80 
     | 
    
         | 
| 
       75 
81 
     | 
    
         | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
82 
     | 
    
         
             
                module ClassMethods
         
     | 
| 
       78 
83 
     | 
    
         | 
| 
       79 
84 
     | 
    
         
             
                  attr_writer :model
         
     | 
    
        data/lib/hobo/extensions/i18n.rb
    CHANGED
    
    | 
         @@ -3,6 +3,7 @@ I18n.module_eval do 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
                def translate_with_show_keys(key, options = {})
         
     | 
| 
       5 
5 
     | 
    
         
             
                  translation = translate_without_show_keys(key, options)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  return translation unless translation.is_a?(String)
         
     | 
| 
       6 
7 
     | 
    
         
             
                  keys = normalize_keys(locale, key, options[:scope]).join('.')
         
     | 
| 
       7 
8 
     | 
    
         
             
                  "[#{keys}]" + translation
         
     | 
| 
       8 
9 
     | 
    
         
             
                end
         
     | 
    
        data/lib/hobo/helper.rb
    CHANGED
    
    | 
         @@ -343,19 +343,19 @@ module Hobo 
     | 
|
| 
       343 
343 
     | 
    
         | 
| 
       344 
344 
     | 
    
         | 
| 
       345 
345 
     | 
    
         
             
                # Login url for a given user record or user class
         
     | 
| 
       346 
     | 
    
         
            -
                def forgot_password_url(user_class=Hobo::Model:: 
     | 
| 
      
 346 
     | 
    
         
            +
                def forgot_password_url(user_class=Hobo::Model::UserBase.default_user_model)
         
     | 
| 
       347 
347 
     | 
    
         
             
                  send("#{user_class.name.underscore}_forgot_password_url") rescue nil
         
     | 
| 
       348 
348 
     | 
    
         
             
                end
         
     | 
| 
       349 
349 
     | 
    
         | 
| 
       350 
350 
     | 
    
         | 
| 
       351 
351 
     | 
    
         
             
                # Login url for a given user record or user class
         
     | 
| 
       352 
     | 
    
         
            -
                def login_url(user_class=Hobo::Model:: 
     | 
| 
      
 352 
     | 
    
         
            +
                def login_url(user_class=Hobo::Model::UserBase.default_user_model)
         
     | 
| 
       353 
353 
     | 
    
         
             
                  send("#{user_class.name.underscore}_login_url") rescue nil
         
     | 
| 
       354 
354 
     | 
    
         
             
                end
         
     | 
| 
       355 
355 
     | 
    
         | 
| 
       356 
356 
     | 
    
         | 
| 
       357 
357 
     | 
    
         
             
                # Sign-up url for a given user record or user class
         
     | 
| 
       358 
     | 
    
         
            -
                def signup_url(user_class=Hobo::Model:: 
     | 
| 
      
 358 
     | 
    
         
            +
                def signup_url(user_class=Hobo::Model::UserBase.default_user_model)
         
     | 
| 
       359 
359 
     | 
    
         
             
                  send("#{user_class.name.underscore}_signup_url") rescue nil
         
     | 
| 
       360 
360 
     | 
    
         
             
                end
         
     | 
| 
       361 
361 
     | 
    
         | 
| 
         @@ -395,6 +395,7 @@ module Hobo 
     | 
|
| 
       395 
395 
     | 
    
         
             
                  options = args.extract_options!
         
     | 
| 
       396 
396 
     | 
    
         
             
                  target = args.empty? || args.first.is_a?(Symbol) ? this : args.shift
         
     | 
| 
       397 
397 
     | 
    
         
             
                  action = args.first
         
     | 
| 
      
 398 
     | 
    
         
            +
                  return false if action.nil? && target.try.new_record?
         
     | 
| 
       398 
399 
     | 
    
         | 
| 
       399 
400 
     | 
    
         
             
                  if target.respond_to?(:member_class) && (origin = target.try.origin)
         
     | 
| 
       400 
401 
     | 
    
         
             
                    klass = origin.class
         
     | 
    
        data/lib/hobo/model.rb
    CHANGED
    
    | 
         @@ -142,7 +142,7 @@ module Hobo 
     | 
|
| 
       142 
142 
     | 
    
         
             
                    self.creator_attribute         = name.to_sym if options.delete(:creator)
         
     | 
| 
       143 
143 
     | 
    
         
             
                    validate = options.delete(:validate) {true}
         
     | 
| 
       144 
144 
     | 
    
         | 
| 
       145 
     | 
    
         
            -
                    #FIXME - this should be in Hobo::Model:: 
     | 
| 
      
 145 
     | 
    
         
            +
                    #FIXME - this should be in Hobo::Model::UserBase
         
     | 
| 
       146 
146 
     | 
    
         
             
                    send(:login_attribute=, name.to_sym, validate) if options.delete(:login) && respond_to?(:login_attribute=)
         
     | 
| 
       147 
147 
     | 
    
         
             
                  end
         
     | 
| 
       148 
148 
     | 
    
         | 
| 
         @@ -357,7 +357,7 @@ module Hobo 
     | 
|
| 
       357 
357 
     | 
    
         | 
| 
       358 
358 
     | 
    
         | 
| 
       359 
359 
     | 
    
         
             
                def to_url_path
         
     | 
| 
       360 
     | 
    
         
            -
                  "#{self.class.to_url_path}/#{to_param}" 
     | 
| 
      
 360 
     | 
    
         
            +
                  "#{self.class.to_url_path}/#{to_param}"
         
     | 
| 
       361 
361 
     | 
    
         
             
                end
         
     | 
| 
       362 
362 
     | 
    
         | 
| 
       363 
363 
     | 
    
         | 
| 
         @@ -19,8 +19,6 @@ module Hobo 
     | 
|
| 
       19 
19 
     | 
    
         
             
                      attr_accessor :acting_user, :origin, :origin_attribute
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                      bool_attr_accessor :exempt_from_edit_checks
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                      define_callbacks :after_user_new
         
     | 
| 
       24 
22 
     | 
    
         
             
                    end
         
     | 
| 
       25 
23 
     | 
    
         
             
                  end
         
     | 
| 
       26 
24 
     | 
    
         | 
| 
         @@ -48,7 +46,7 @@ module Hobo 
     | 
|
| 
       48 
46 
     | 
    
         
             
                        r.set_creator user
         
     | 
| 
       49 
47 
     | 
    
         
             
                        yield r if block_given?
         
     | 
| 
       50 
48 
     | 
    
         
             
                        r.user_view(user)
         
     | 
| 
       51 
     | 
    
         
            -
                        r.with_acting_user(user) { r. 
     | 
| 
      
 49 
     | 
    
         
            +
                        r.with_acting_user(user) { r.try.after_user_new }
         
     | 
| 
       52 
50 
     | 
    
         
             
                      end
         
     | 
| 
       53 
51 
     | 
    
         
             
                    end
         
     | 
| 
       54 
52 
     | 
    
         | 
| 
         @@ -33,7 +33,7 @@ model_key = model.to_s.underscore 
     | 
|
| 
       33 
33 
     | 
    
         
             
                    </h2>
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
                    <p param="count" if>
         
     | 
| 
       36 
     | 
    
         
            -
                      <ht key="<%= model_key %>.collection.count" count="& 
     | 
| 
      
 36 
     | 
    
         
            +
                      <ht key="<%= model_key %>.collection.count" count="&collection_count">
         
     | 
| 
       37 
37 
     | 
    
         
             
                        <count summary/>
         
     | 
| 
       38 
38 
     | 
    
         
             
                      </ht>
         
     | 
| 
       39 
39 
     | 
    
         
             
                    </p>
         
     | 
| 
         @@ -110,7 +110,7 @@ edit_link      = linkable?(:edit) 
     | 
|
| 
       110 
110 
     | 
    
         
             
            main_content   = model.primary_content_attribute
         
     | 
| 
       111 
111 
     | 
    
         
             
            show_fields    = standard_fields(:belongs_to).*.to_s - [model.name_attribute, main_content, creator, back_link, *boolean_fields].*.to_s
         
     | 
| 
       112 
112 
     | 
    
         | 
| 
       113 
     | 
    
         
            -
            is_user_model = model < Hobo::Model:: 
     | 
| 
      
 113 
     | 
    
         
            +
            is_user_model = model < Hobo::Model::UserBase
         
     | 
| 
       114 
114 
     | 
    
         | 
| 
       115 
115 
     | 
    
         
             
            collection     = model.view_hints.primary_children
         
     | 
| 
       116 
116 
     | 
    
         
             
            if collection
         
     | 
| 
         @@ -273,7 +273,7 @@ owner_model     = model.reflections[owner].klass 
     | 
|
| 
       273 
273 
     | 
    
         
             
            linkable_owner  = linkable?(owner_model, :show)
         
     | 
| 
       274 
274 
     | 
    
         
             
            owner_tag       = linkable_owner ? "a" : "name"
         
     | 
| 
       275 
275 
     | 
    
         | 
| 
       276 
     | 
    
         
            -
            owner_is_user = owner_model < Hobo::Model:: 
     | 
| 
      
 276 
     | 
    
         
            +
            owner_is_user = owner_model < Hobo::Model::UserBase
         
     | 
| 
       277 
277 
     | 
    
         | 
| 
       278 
278 
     | 
    
         
             
            owner = model.reflections[owner].macro == :has_many ? owner.to_s.singularize : owner.to_s
         
     | 
| 
       279 
279 
     | 
    
         
             
            -%>
         
     | 
| 
         @@ -306,7 +306,7 @@ new_link = :new.in?(actions) 
     | 
|
| 
       306 
306 
     | 
    
         
             
                    </h3>
         
     | 
| 
       307 
307 
     | 
    
         
             
            <% end -%>
         
     | 
| 
       308 
308 
     | 
    
         
             
                    <p param="count" if>
         
     | 
| 
       309 
     | 
    
         
            -
                      <ht key="<%= model_key %>.collection.count" count="& 
     | 
| 
      
 309 
     | 
    
         
            +
                      <ht key="<%= model_key %>.collection.count" count="&collection_count">
         
     | 
| 
       310 
310 
     | 
    
         
             
                        <count summary/>
         
     | 
| 
       311 
311 
     | 
    
         
             
                      </ht>
         
     | 
| 
       312 
312 
     | 
    
         
             
                    </p>
         
     | 
    
        data/lib/hobo/rapid/helper.rb
    CHANGED
    
    | 
         @@ -102,7 +102,10 @@ module Hobo 
     | 
|
| 
       102 
102 
     | 
    
         
             
                    s.gsub(' ', ' ')
         
     | 
| 
       103 
103 
     | 
    
         
             
                  end
         
     | 
| 
       104 
104 
     | 
    
         | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
      
 105 
     | 
    
         
            +
                  # returns the number of items in the collection.  See LH #889
         
     | 
| 
      
 106 
     | 
    
         
            +
                  def collection_count
         
     | 
| 
      
 107 
     | 
    
         
            +
                    this.try.to_int || this.try.total_entries || (this.try.loaded? && this.try.length) || this.try.count || this.try.length
         
     | 
| 
      
 108 
     | 
    
         
            +
                  end
         
     | 
| 
       106 
109 
     | 
    
         | 
| 
       107 
110 
     | 
    
         | 
| 
       108 
111 
     | 
    
         
             
                  def in_place_editor(attributes, this=nil)
         
     | 
| 
         @@ -368,7 +368,7 @@ Or a new page if the context is a class: 
     | 
|
| 
       368 
368 
     | 
    
         | 
| 
       369 
369 
     | 
    
         
             
                  content = name if content.blank?
         
     | 
| 
       370 
370 
     | 
    
         | 
| 
       371 
     | 
    
         
            -
                  href = object_url(target, action, (params || {}).merge(:subsite => subsite))
         
     | 
| 
      
 371 
     | 
    
         
            +
                  href = object_url(target, action, (params || {}).merge(:subsite => subsite)) unless (action.nil? && target.try.new_record?)
         
     | 
| 
       372 
372 
     | 
    
         
             
                  if href.nil?
         
     | 
| 
       373 
373 
     | 
    
         
             
                    # This target is registered with Hobo::Routes as not linkable
         
     | 
| 
       374 
374 
     | 
    
         
             
                    content
         
     | 
| 
         @@ -472,13 +472,13 @@ Assuming the context is a blog post... 
     | 
|
| 
       472 
472 
     | 
    
         
             
            <def tag="links-for-collection"><%= this.empty? ? "(none)" : context_map { a }.safe_join(", ") %></def>
         
     | 
| 
       473 
473 
     | 
    
         | 
| 
       474 
474 
     | 
    
         
             
            <!-- Renders `this` in localized :default format. `format` can be a symbol representing a locale key or a standard format string (see strftime) -->
         
     | 
| 
       475 
     | 
    
         
            -
            <def tag="view" for=" 
     | 
| 
      
 475 
     | 
    
         
            +
            <def tag="view" for="date" attrs="format"><%= this && (format||= :default) && I18n.backend.localize(I18n.locale, this, format) %></def>
         
     | 
| 
       476 
476 
     | 
    
         | 
| 
       477 
477 
     | 
    
         
             
            <!-- Renders `this` in localized :default format. `format` can be a symbol representing a Time::DATE_FORMATS or a standard format string (see strftime) -->
         
     | 
| 
       478 
     | 
    
         
            -
              <def tag="view" for=" 
     | 
| 
      
 478 
     | 
    
         
            +
              <def tag="view" for="time" attrs="format"><%= this && (format||= :time) && (format.is_a?(Symbol) ? this.to_s(format) : this.strftime(format) ) %></def>
         
     | 
| 
       479 
479 
     | 
    
         | 
| 
       480 
480 
     | 
    
         
             
            <!-- Renders `this` in localized :default format. `format` can be a symbol representing a locale key or a standard format string (see strftime) -->
         
     | 
| 
       481 
     | 
    
         
            -
            <def tag="view" for=" 
     | 
| 
      
 481 
     | 
    
         
            +
            <def tag="view" for="datetime" attrs="format"><%= this && (format||= :default) && I18n.backend.localize(I18n.locale, this, format) %></def>
         
     | 
| 
       482 
482 
     | 
    
         | 
| 
       483 
483 
     | 
    
         
             
            <!-- Renders localized `number_with_delimiter this`, or `format % this` if the `format` attribute is given -->
         
     | 
| 
       484 
484 
     | 
    
         
             
            <def tag="view" for="Numeric" attrs="format"><%= format ? format % this : number_with_delimiter(this) %></def>
         
     | 
| 
         @@ -564,7 +564,7 @@ You can pass a summary attribute, which will generate a complete localized sente 
     | 
|
| 
       564 
564 
     | 
    
         
             
              raise Exception.new("asked for count of a string") if this.is_a?(String)
         
     | 
| 
       565 
565 
     | 
    
         
             
              Rails.logger.warn('The "prefix" attribute is deprecated: please, use a locale string') unless prefix.blank?
         
     | 
| 
       566 
566 
     | 
    
         | 
| 
       567 
     | 
    
         
            -
              c =  
     | 
| 
      
 567 
     | 
    
         
            +
              c = collection_count
         
     | 
| 
       568 
568 
     | 
    
         | 
| 
       569 
569 
     | 
    
         
             
              # generated label will be pluralized
         
     | 
| 
       570 
570 
     | 
    
         
             
              label ||= case
         
     | 
| 
         @@ -772,7 +772,7 @@ Notes 
     | 
|
| 
       772 
772 
     | 
    
         | 
| 
       773 
773 
     | 
    
         
             
            <!-- Development mode only - a menu to change the `current_user` -->
         
     | 
| 
       774 
774 
     | 
    
         
             
            <def tag="dev-user-changer">
         
     | 
| 
       775 
     | 
    
         
            -
              <set user="&Hobo::Model:: 
     | 
| 
      
 775 
     | 
    
         
            +
              <set user="&Hobo::Model::UserBase.default_user_model"/>
         
     | 
| 
       776 
776 
     | 
    
         
             
              <select-menu if="&user && Rails.env.development?"
         
     | 
| 
       777 
777 
     | 
    
         
             
                           first-option="#{t('hobo.dev_user_changer.guest', {:default=>'Guest'})}" options="&user.all(:limit => 30).*.login"
         
     | 
| 
       778 
778 
     | 
    
         
             
                           onchange="location.href = '#{dev_support_path :action=>:set_current_user}?login=' + encodeURIComponent(this.options[this.selectedIndex].value)"
         
     | 
| 
         @@ -573,7 +573,7 @@ All the standard ajax attributes *except the callbacks* are supported (see the m 
     | 
|
| 
       573 
573 
     | 
    
         | 
| 
       574 
574 
     | 
    
         
             
              -->
         
     | 
| 
       575 
575 
     | 
    
         
             
            <def tag="delete-button" attrs="label, update, in-place, image, confirm, fade, subsite"><%=
         
     | 
| 
       576 
     | 
    
         
            -
              in_place = false if in_place.nil? && this == @this && request.method ==  
     | 
| 
      
 576 
     | 
    
         
            +
              in_place = false if in_place.nil? && this == @this && request.method.downcase == "get"
         
     | 
| 
       577 
577 
     | 
    
         
             
              url = object_url(this, :method => :delete, :subsite => subsite)
         
     | 
| 
       578 
578 
     | 
    
         
             
              if (Dryml.last_if = url && can_delete?)
         
     | 
| 
       579 
579 
     | 
    
         
             
                attributes = attributes.merge(if image
         
     | 
| 
         @@ -659,7 +659,7 @@ For situations where there are too many target records to practically include in 
     | 
|
| 
       659 
659 
     | 
    
         
             
              -->
         
     | 
| 
       660 
660 
     | 
    
         
             
            <def tag="select-one" attrs="include-none, blank-message, options, sort, limit, text-method"><%
         
     | 
| 
       661 
661 
     | 
    
         
             
              raise Hobo::PermissionDeniedError.new("Not allowed to edit #{this_field}") if !attributes[:disabled] && !can_edit?
         
     | 
| 
       662 
     | 
    
         
            -
              blank_message ||= ht("#{this_type.name.underscore}. 
     | 
| 
      
 662 
     | 
    
         
            +
              blank_message ||= ht("#{this_type.name.underscore}.messages.none", :default=>"No #{this_type.model_name.human} available.")
         
     | 
| 
       663 
663 
     | 
    
         
             
              limit ||= 100
         
     | 
| 
       664 
664 
     | 
    
         | 
| 
       665 
665 
     | 
    
         
             
              options ||= begin
         
     | 
| 
         @@ -785,7 +785,7 @@ If you wish to set `min-chars` to 0, you will require this [patch to controls.js 
     | 
|
| 
       785 
785 
     | 
    
         
             
            <!-- Renders a localized list of error messages following a form submission. Expects the errors to be in `this.errors`. Renders nothing if there are no errors.
         
     | 
| 
       786 
786 
     | 
    
         
             
              -->
         
     | 
| 
       787 
787 
     | 
    
         
             
            <def tag="error-messages">
         
     | 
| 
       788 
     | 
    
         
            -
              <section class="error-messages" merge-attrs if="&this.errors. 
     | 
| 
      
 788 
     | 
    
         
            +
              <section class="error-messages" merge-attrs if="&this.errors.size > 0">
         
     | 
| 
       789 
789 
     | 
    
         
             
                <h2 param="heading">
         
     | 
| 
       790 
790 
     | 
    
         
             
                  <t key="activerecord.errors.template.header" model="&this.class.model_name.human" count="&this.errors.size">
         
     | 
| 
       791 
791 
     | 
    
         
             
                    <%= model = this.class.model_name.human
         
     | 
| 
         @@ -42,7 +42,7 @@ 
     | 
|
| 
       42 
42 
     | 
    
         
             
            <!-- Used to localize and pluralize collection names.
         
     | 
| 
       43 
43 
     | 
    
         
             
            A collection name is a special case of an attribute name, (indeed you should store the collection names as attribute names in the locale files), so this tag internally uses human_attribute_name to return them.
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
     | 
    
         
            -
            With the `your` attribute and in the special case the context is a Hobo::Model:: 
     | 
| 
      
 45 
     | 
    
         
            +
            With the `your` attribute and in the special case the context is a Hobo::Model::UserMixin instance it automatically embeds the `your` tag funtionality. (note: :name is added by default as an interpolable variable)
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
            ### Attributes
         
     | 
| 
       48 
48 
     | 
    
         | 
| 
         @@ -96,7 +96,7 @@ With the `your` attribute and in the special case the context is a Hobo::Model:: 
     | 
|
| 
       96 
96 
     | 
    
         
             
              # prepare symbolized attributes for merging
         
     | 
| 
       97 
97 
     | 
    
         
             
              attrs = {}
         
     | 
| 
       98 
98 
     | 
    
         
             
              all_attributes.each_pair{|k,v| attrs[k.to_sym] = v} -%>
         
     | 
| 
       99 
     | 
    
         
            -
            <% if your && belong_class < Hobo::Model:: 
     | 
| 
      
 99 
     | 
    
         
            +
            <% if your && belong_class < Hobo::Model::UserBase && this.kind_of?(Hobo::Model::UserBase) && I18n.locale == :en -%>
         
     | 
| 
       100 
100 
     | 
    
         
             
                <your key="&collection" merge-attrs="&{:name=>this.name}.merge(attrs)" capitalize>
         
     | 
| 
       101 
101 
     | 
    
         
             
                  <%= belong_class.human_attribute_name(collection.to_sym, attrs) %>
         
     | 
| 
       102 
102 
     | 
    
         
             
                </your>
         
     | 
| 
         @@ -24,7 +24,7 @@ The easiest way to see what this tag does is to look at the source. 
     | 
|
| 
       24 
24 
     | 
    
         
             
                  </do>
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
                  <do param="scripts">
         
     | 
| 
       27 
     | 
    
         
            -
                    <javascript param name="prototype, effects, dragdrop, controls, lowpro, hobo-rapid"/>
         
     | 
| 
      
 27 
     | 
    
         
            +
                    <javascript param name="prototype, effects, dragdrop, controls, rails, lowpro, hobo-rapid"/>
         
     | 
| 
       28 
28 
     | 
    
         
             
                    <if-ie version="lt IE 7" param="fix-ie6">
         
     | 
| 
       29 
29 
     | 
    
         
             
                      <javascript name="IE7"/>
         
     | 
| 
       30 
30 
     | 
    
         
             
                      <javascript name="ie7-recalc"/>
         
     | 
| 
         @@ -32,13 +32,14 @@ The easiest way to see what this tag does is to look at the source. 
     | 
|
| 
       32 
32 
     | 
    
         
             
                    <do param="custom-scripts"/>
         
     | 
| 
       33 
33 
     | 
    
         
             
                    <javascript param="application-javascript" name="application"/>
         
     | 
| 
       34 
34 
     | 
    
         
             
                  </do>
         
     | 
| 
      
 35 
     | 
    
         
            +
                  <%= csrf_meta_tag %>
         
     | 
| 
       35 
36 
     | 
    
         
             
                </head>
         
     | 
| 
       36 
37 
     | 
    
         | 
| 
       37 
38 
     | 
    
         
             
                <body param>
         
     | 
| 
       38 
39 
     | 
    
         
             
                  <set-scoped flash-rendered="&false">
         
     | 
| 
       39 
40 
     | 
    
         
             
                    <ajax-progress param/>
         
     | 
| 
       40 
41 
     | 
    
         
             
                    <header class="page-header" param>
         
     | 
| 
       41 
     | 
    
         
            -
                      <account-nav if="&login_url(Hobo::Model:: 
     | 
| 
      
 42 
     | 
    
         
            +
                      <account-nav if="&login_url(Hobo::Model::UserBase.default_user_model)" param/>
         
     | 
| 
       42 
43 
     | 
    
         
             
                      <h1 param="app-name"><a href="#{base_url}/"><app-name/></a></h1>
         
     | 
| 
       43 
44 
     | 
    
         
             
                      <live-search param if="&defined_route? :site_search"/>
         
     | 
| 
       44 
45 
     | 
    
         
             
                      <main-nav current="&title" param/>
         
     | 
| 
         @@ -171,16 +171,35 @@ See [Filtering stories by status](/tutorials/agility#filtering_stories_by_status 
     | 
|
| 
       171 
171 
     | 
    
         
             
             - `options` - an array of options or an array of arrays (useful for localized apps) for the menu.
         
     | 
| 
       172 
172 
     | 
    
         
             
               It can be omitted if you provide the options as an array or array of arrays in the locale file.
         
     | 
| 
       173 
173 
     | 
    
         
             
             - `no-filter` - The text of the first option which indicates no filter is in effect. Defaults to 'All'
         
     | 
| 
      
 174 
     | 
    
         
            +
             - `first-value` - the value to be used with the first option. Typically not used,
         
     | 
| 
      
 175 
     | 
    
         
            +
             meaning the option has a blank value.
         
     | 
| 
      
 176 
     | 
    
         
            +
             - model - the model name (optional: needed if you use the "activerecord.attributes" namespace.
         
     | 
| 
       174 
177 
     | 
    
         | 
| 
       175 
178 
     | 
    
         
             
            ### I18n
         
     | 
| 
       176 
179 
     | 
    
         | 
| 
       177 
     | 
    
         
            -
            It lookups the options attributes in filter_menu.#{ 
     | 
| 
      
 180 
     | 
    
         
            +
            It lookups the options attributes in "activerecord.attributes.#{model}.filter_menu.#{param\_name}.options"
         
     | 
| 
      
 181 
     | 
    
         
            +
            with fallback to "filter_menu.#{param_name}.options".
         
     | 
| 
       178 
182 
     | 
    
         
             
            The passed options are used as a default in case the lookup fails.
         
     | 
| 
       179 
     | 
    
         
            -
            Besides the " 
     | 
| 
      
 183 
     | 
    
         
            +
            Besides the "activerecord.attributes.#{model}.filter_menu.#{param_name}.no_filter" or
         
     | 
| 
      
 184 
     | 
    
         
            +
            "tags.filter_menu.default.no_filter" key is used as default of the attribute "no-filter"
         
     | 
| 
       180 
185 
     | 
    
         
             
            (or "All" if no default is found)
         
     | 
| 
       181 
186 
     | 
    
         | 
| 
       182 
187 
     | 
    
         
             
            ### I18n Example
         
     | 
| 
       183 
188 
     | 
    
         | 
| 
      
 189 
     | 
    
         
            +
             
     | 
| 
      
 190 
     | 
    
         
            +
              es:
         
     | 
| 
      
 191 
     | 
    
         
            +
                activerecord:
         
     | 
| 
      
 192 
     | 
    
         
            +
                  attributes:
         
     | 
| 
      
 193 
     | 
    
         
            +
                    <model_name>:
         
     | 
| 
      
 194 
     | 
    
         
            +
                      filter_menu:
         
     | 
| 
      
 195 
     | 
    
         
            +
                        period:
         
     | 
| 
      
 196 
     | 
    
         
            +
                          no_filter: Todos Períodos
         
     | 
| 
      
 197 
     | 
    
         
            +
                          options:
         
     | 
| 
      
 198 
     | 
    
         
            +
                          - [ "Hoy", "today" ]
         
     | 
| 
      
 199 
     | 
    
         
            +
                          - [ "Ayer", "yesterday" ]
         
     | 
| 
      
 200 
     | 
    
         
            +
             
     | 
| 
      
 201 
     | 
    
         
            +
            or
         
     | 
| 
      
 202 
     | 
    
         
            +
             
     | 
| 
       184 
203 
     | 
    
         
             
              es:
         
     | 
| 
       185 
204 
     | 
    
         
             
                tags:
         
     | 
| 
       186 
205 
     | 
    
         
             
                  filter_menu:
         
     | 
| 
         @@ -209,16 +228,16 @@ Besides the "tags.filter_menu.default.no_filter" key is used as default of the a 
     | 
|
| 
       209 
228 
     | 
    
         
             
               </select>
         
     | 
| 
       210 
229 
     | 
    
         | 
| 
       211 
230 
     | 
    
         
             
              -->
         
     | 
| 
       212 
     | 
    
         
            -
            <def tag="filter-menu" attrs="param-name, options, no-filter, id">
         
     | 
| 
       213 
     | 
    
         
            -
              <% opt = t(" 
     | 
| 
      
 231 
     | 
    
         
            +
            <def tag="filter-menu" attrs="model, param-name, options, no-filter, id, first-value">
         
     | 
| 
      
 232 
     | 
    
         
            +
              <% opt = t("activerecord.attributes.#{model}.filter_menu.#{param_name}.options", :default=>[:"tags.filter_menu.#{param_name}.options"])
         
     | 
| 
       214 
233 
     | 
    
         
             
                 options = opt unless opt.blank?
         
     | 
| 
       215 
     | 
    
         
            -
                 no_filter = t(" 
     | 
| 
      
 234 
     | 
    
         
            +
                 no_filter = t("activerecord.attributes.#{model}.filter_menu.#{param_name}.no_filter", :default=>[:"tags.filter_menu.#{param_name}.no_filter", :"tags.filter_menu.default.no_filter", no_filter, "All"]) %>
         
     | 
| 
       216 
235 
     | 
    
         
             
              <form action="&request.fullpath" method="get" class="filter-menu" merge-attrs="id">
         
     | 
| 
       217 
236 
     | 
    
         
             
                <div>
         
     | 
| 
       218 
237 
     | 
    
         
             
                  <% opt = options.first.kind_of?(Array) ? options.*.last : options
         
     | 
| 
       219 
238 
     | 
    
         
             
                     selected = opt.detect {|o| o.to_s==params[param_name.gsub('-', '_')] }  %>
         
     | 
| 
       220 
239 
     | 
    
         
             
                  <select-menu name="¶m_name" options="&options" selected="&selected"
         
     | 
| 
       221 
     | 
    
         
            -
                               first-option="&no_filter" key="¶m_name" merge-params/>
         
     | 
| 
      
 240 
     | 
    
         
            +
                               first-option="&no_filter" first-value="&first_value" key="¶m_name" merge-params/>
         
     | 
| 
       222 
241 
     | 
    
         
             
                </div>
         
     | 
| 
       223 
242 
     | 
    
         
             
              </form>
         
     | 
| 
       224 
243 
     | 
    
         
             
            </def>
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            name: hobo
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
4 
     | 
    
         
             
              prerelease: 6
         
     | 
| 
       5 
     | 
    
         
            -
              version: 1.3.0. 
     | 
| 
      
 5 
     | 
    
         
            +
              version: 1.3.0.pre31
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors: 
         
     | 
| 
       8 
8 
     | 
    
         
             
            - Tom Locke
         
     | 
| 
         @@ -10,7 +10,7 @@ autorequire: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            date: 2011-03- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2011-03-29 00:00:00 -04:00
         
     | 
| 
       14 
14 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       16 
16 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -43,7 +43,7 @@ dependencies: 
     | 
|
| 
       43 
43 
     | 
    
         
             
                requirements: 
         
     | 
| 
       44 
44 
     | 
    
         
             
                - - "="
         
     | 
| 
       45 
45 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       46 
     | 
    
         
            -
                    version: 1.3.0. 
     | 
| 
      
 46 
     | 
    
         
            +
                    version: 1.3.0.pre31
         
     | 
| 
       47 
47 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       48 
48 
     | 
    
         
             
              version_requirements: *id003
         
     | 
| 
       49 
49 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -54,7 +54,7 @@ dependencies: 
     | 
|
| 
       54 
54 
     | 
    
         
             
                requirements: 
         
     | 
| 
       55 
55 
     | 
    
         
             
                - - "="
         
     | 
| 
       56 
56 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       57 
     | 
    
         
            -
                    version: 1.3.0. 
     | 
| 
      
 57 
     | 
    
         
            +
                    version: 1.3.0.pre31
         
     | 
| 
       58 
58 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       59 
59 
     | 
    
         
             
              version_requirements: *id004
         
     | 
| 
       60 
60 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -65,7 +65,7 @@ dependencies: 
     | 
|
| 
       65 
65 
     | 
    
         
             
                requirements: 
         
     | 
| 
       66 
66 
     | 
    
         
             
                - - "="
         
     | 
| 
       67 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       68 
     | 
    
         
            -
                    version: 1.3.0. 
     | 
| 
      
 68 
     | 
    
         
            +
                    version: 1.3.0.pre31
         
     | 
| 
       69 
69 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       70 
70 
     | 
    
         
             
              version_requirements: *id005
         
     | 
| 
       71 
71 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -260,7 +260,7 @@ files: 
     | 
|
| 
       260 
260 
     | 
    
         
             
            - lib/hobo/model/scopes.rb
         
     | 
| 
       261 
261 
     | 
    
         
             
            - lib/hobo/model/scopes/apply_scopes.rb
         
     | 
| 
       262 
262 
     | 
    
         
             
            - lib/hobo/model/scopes/automatic_scopes.rb
         
     | 
| 
       263 
     | 
    
         
            -
            - lib/hobo/model/ 
     | 
| 
      
 263 
     | 
    
         
            +
            - lib/hobo/model/user_base.rb
         
     | 
| 
       264 
264 
     | 
    
         
             
            - lib/hobo/model/view_hints.rb
         
     | 
| 
       265 
265 
     | 
    
         
             
            - lib/hobo/rapid/generators/rapid/cards.dryml.erb
         
     | 
| 
       266 
266 
     | 
    
         
             
            - lib/hobo/rapid/generators/rapid/forms.dryml.erb
         
     |