Running:
| Rails 2.2.2 | ActiveScaffold | CalendarDateSelect | SemanticAttributes |
| Prawnto - try it | RecordSelect | Phusion Passenger™ and Ruby EE |
Change the Language
Id Customer name Phone Active Signup on Employees Active at
Modifier Supprimer Afficher Employees
Orders
Info
330 Saravanan.K

989-486-6666 true

Saravanan Kulanthivel 01/06/2009 04:22 AM
Modifier Supprimer Afficher Employees
Orders
Info
329 matt

646-463-3242 true

tom s  

Source

/app/controllers/application.rb

class ApplicationController < ActionController::Base
  include Authorize
  include ExceptionNotifiable

  layout  "admin"
  
  protect_from_forgery :secret => '426afc884e3d819c9f7c7c4e050a5d97'
  
  #password will be hashed before saving in log file
  filter_parameter_logging :password

  protected 

  helper_method :logged_in?, :current_user
  helper_method :permit?, :admin_restrict_to

  def localize
    I18n.locale = session[:lang_code] unless session[:lang_code].nil?
  end
  
end

/app/controllers/companies_controller.rb

class CompaniesController < ApplicationController
  append_before_filter :localize

  layout "demo"
    
  ActiveScaffold.set_defaults do |config| 
    config.ignore_columns.add [:created_at, :updated_at]
    config.left_handed = true
  end
  
  active_scaffold :company do |config|
    config.actions.swap :search, :field_search
    config.actions << :customize
    config.actions << :print_list
    config.actions << :export_tool

    config.nested.add_link "Employees", [:employees]
    config.nested.add_link "Orders", [:orders]
    config.nested.add_link "Info", [:employees, :orders]
    
    config.list.sorting = [:id => 'DESC']
    # Any Column#method can be used as a key to the columns_by_key_value hash, for example:
    #   [:phone => {
    #     :description = "(Format: ###-###-####)"
    #   }],
    # We have defined a few synonyms so that you can use the language you prefer:
    #   columns_by_key_value or has_columns
    #   :exclude or :except
    #   :form_ui or :type
    # Because we are using ActiveScaffoldTools - which comes with date, file and boolean bridges -
    #  we do not have to set the type or form_ui for :active_at, :active or :signup_on but we do 
    #  for demo purposes.
    has_columns [
      [:id => {
        :exclude => [:create, :update]
      }],
      [:name => {
        :description => :name_description,
        :inplace_edit => true,
	      :options => {:print_width => "240"},
	      :required => true
      }],
      [:phone => {
        :exclude => [:field_search],
	      :options => {:print_width => "140"},
        :type => :usa_phone,
	      :required => true
      }],
      [:state => {
        :exclude => [:list],
	      :options => {:print_width => "80"},
        :type => :usa_state,
	      :required => true
      }],
      [:active => {
        :form_ui => :checkbox,
        :inplace_edit => true,
	      :options => {:print_width => "80"}
      }],
      [:signup_on => {
        # Force time formatting by uncommenting this line
        # :options => {:showsTime => 1},
        :exclude => [],
        :options => {:field_search => :range}
      }],
      [:comment => {
        :exclude => [:list],
        :options => {:print_width => "440", :rows => 10, :cols => 40},
        :type => :textarea
      }],
      [:employees => {
        :exclude => [:field_search]  
      }],
      [:orders => {
        :exclude => [:field_search, :list]
      }],
      [:active_at => {
        :exclude => [:field_search]
      }]
    ]
  end
    
  def delete_all
    Company.destroy_all
    index
  end
  
  def change_language
    session[:lang_code] = params[:lang_code]
    redirect_to :action => :list
  end

 	protected

  def current_user
    true
  end
  
 	# ===================
  # = Authorize BEGIN =
  # ===================
  
  def create_authorized?
    true
  end
  
  def delete_authorized?
    true
  end
  
  def list_authorized?
    true
  end
  
  def show_authorized?
    true
  end
  
  def update_authorized?
    true
  end
  
  # =================
  # = Authorize END =
  # =================
end

/app/controllers/employees_controller.rb

class EmployeesController < ApplicationController
  # We are not logging in this demo
  # before_filter  :authorize
  
  active_scaffold :employees do |config|
	  has_columns [
      [:first_name => {
        :exclude => []
      }],
      [:last_name => {
        :exclude => [],
	      :required => true
      }],
      [:company => {
        :exclude => []
      }]
	  ]
	end  

 	protected

 	# ===================
  # = Authorize BEGIN =
  # ===================
  
  def create_authorized?
    true
  end
  
  def delete_authorized?
    true
  end
  
  def list_authorized?
    true
  end
  
  def show_authorized?
    true
  end
  
  def update_authorized?
    true
  end
  
  # =================
  # = Authorize END =
  # =================

end

/app/controllers/orders_controller.rb

class OrdersController < ApplicationController
  # We are not logging in this demo
  # before_filter  :authorize
  
  active_scaffold :orders do |config|
	  has_columns [
      [:item_name => {
        :exclude => [],
	      :required => true
      }],
      [:quantity => {
        :exclude => [],
	      :required => true
      }],
      [:company => {
        :exclude => []
      }]
	  ]
	end  

 	protected

 	# ===================
  # = Authorize BEGIN =
  # ===================
  
  def create_authorized?
    true
  end
  
  def delete_authorized?
    true
  end
  
  def list_authorized?
    true
  end
  
  def show_authorized?
    true
  end
  
  def update_authorized?
    true
  end
  
  # =================
  # = Authorize END =
  # =================

end

/app/helpers/companies_helper.rb

module CompaniesHelper
end

/app/models/company.rb

# == Schema Information
# Schema version: 11
#
# Table name: companies
#
#  id              :integer(11)   not null, primary key
#  name            :string(255)   
#  phone           :string(255)   
#  created_at      :datetime      
#  updated_at      :datetime      
#  company_type_id :integer(11)   
#  signup_on       :date          
#  active          :boolean(1)    
#  state           :string(255)   
#  comment         :string(255)   
#  active_at       :datetime      
#
class Company < ActiveRecord::Base
	
	has_many :employees, :dependent => :destroy
	has_many :orders, :dependent => :destroy
	
  
  attribute :name, :is => :required
  attribute :state, :is => :required
	attribute :phone, :is_a => :phone_number

  # ===================
  # = Authorize BEGIN =
  # ===================

  def authorized_for_create?
    true
  end

  def authorized_for_read?
    true
  end
  
  def authorized_for_update?
    true
  end
  
  def authorized_for_delete?
    true
  end

  # =================
  # = Authorize END =
  # =================

end
demo.rhtml is missing

/config/routes.rb

ActionController::Routing::Routes.draw do |map|
  map.connect '', :controller => "as_docs"
  map.connect ':controller/service.wsdl', :action => 'wsdl'
  map.connect ':controller/:action'
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:file_name.:format'
  
  map.resources :companies, :active_scaffold => true, :collection => {:browse => :get}, :member => {:select => :post}

  map.admin '/admin', :controller => "admin/sections"
  
end
report_controller.rb is missing report_helper.rb is missing sample.rfpdf is missing

/db/migrate/20081114153112_create_employees_and_orders.rb

# Create a migration like the following then run:
#   rake db:migrate
# then:
#   script/generate active_scaffold Employee Employees
#   script/generate active_scaffold Order Orders
# then edit the controllers and models a bit and...you are up and running.
#
class CreateEmployeesAndOrders < ActiveRecord::Migration
  def self.up
    create_table :employees, :force => true do |t|
      t.string :first_name
      t.string :last_name
      t.integer :company_id
    end
    create_table :orders, :force => true do |t|
      t.string :item_name
      t.integer :quantity
      t.integer :company_id
    end
  end

  def self.down
    drop_table :orders
    drop_table :employees
  end
end

/config/locales/en-us.yml

"en-us":
  locale_name: "English"
  active_scaffold:
    add:                  "Add"
    add_existing:         "Add Existing"
    are_you_sure:         "Are you sure?"
    cancel:               "Cancel"
    click_to_edit:        "Click to edit"
    close:                "Close"
    create:               "Create"
    create_model:         "Create {{model}}"
    create_another:       "Create Another"
    created_model:        "Created {{model}}"
    create_new:           "Create New"
    customize:            "Customize"
    delete:               "Delete"
    deleted_model:        "Deleted {{model}}"
    delimiter:            "Delimiter"
    download:             "Download"
    edit:                 "Edit"
    export:               "Export"
    filtered:             "(Filtered)"
    found:                "Found"
    hide:                 "Hide"
    live_search:          "Live Search"
    loading…:             "Loading…"
    nested_for_model:     "{{nested_model}} for {{parent_model}}"
    next:                 "Next"
    no_entries:           "No Entries"
    omit_header:          "Omit Header"
    options:              "Options"
    pdf:                  "PDF"
    previous:             "Previous"
    print:                "Print"
    refresh:              "Refresh"
    remove:               "Remove"
    remove_file:          "Remove or Replace file"
    replace_with_new:     "Replace With New"
    revisions_for_model:  "Revisions for {{model}}"
    reset:                "Reset"
    saving…:              "Saving…"
    search:               "Search"
    search_terms:         "Search Terms"
    _select_:             "- select -"
    show:                 "Show"
    show_model:           "Show {{model}}"
    _to_ :                " to "
    update:               "Update"
    update_model:         "Update {{model}}"
    udated_model:         "Updated {{model}}"

    percentage_example:   "Ex. 10%"
    usa_phone_example:    "Ex. 111-333-4444"
    usa_money_example:    "Ex. 1,333"
    usa_zip_example:      "Ex. 88888-3333"
    ssn_example:          "Ex. 555-22-3333"
    
    # error_messages
    internal_error: "Request Failed (code 500, Internal Error)"
    version_inconsistency: "Version inconsistency - this record has been modified since you started editing it."
  date:
    formats:
      # Use the strftime parameters for formats.
      # When no format has been given, it uses default.
      # You can provide other formats here if you like!
      default: "%Y-%m-%d"
      short: "%b %d"
      long: "%B %d, %Y"
      
    day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
    abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
      
    # Don't forget the nil at the beginning; there's no such thing as a 0th month
    month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
    abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
    # Used in date_select and datime_select.
    order: [ :year, :month, :day ]

  time:
    formats:
      default: "%a, %d %b %Y %H:%M:%S %z"
      short: "%d %b %H:%M"
      long: "%B %d, %Y %H:%M"
    am: "am"
    pm: "pm"
      
  # Used in array.to_sentence.
  support:
    array:
      sentence_connector: "and"
      skip_last_comma: false
  number:
    # Used in number_with_delimiter()
    # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
    format:
      # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
      separator: "."
      # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
      delimiter: ","
      # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
      precision: 3
      
    # Used in number_to_currency()
    currency:
      format:
        # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
        format: "%u%n"
        unit: "$"
        # These three are to override number.format and are optional
        separator: "."
        delimiter: ","
        precision: 2
        
    # Used in number_to_percentage()
    percentage:
      format:
        # These three are to override number.format and are optional
        # separator: 
        delimiter: ""
        # precision: 
        
    # Used in number_to_precision()
    precision:
      format:
        # These three are to override number.format and are optional
        # separator:
        delimiter: ""
        # precision:
        
    # Used in number_to_human_size()
    human:
      format:
        # These three are to override number.format and are optional
        # separator: 
        delimiter: ""
        precision: 1

  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
  datetime:
    distance_in_words:
      half_a_minute: "half a minute"
      less_than_x_seconds:
        one:   "less than 1 second"
        other: "less than {{count}} seconds"
      x_seconds:
        one:   "1 second"
        other: "{{count}} seconds"
      less_than_x_minutes:
        one:   "less than a minute"
        other: "less than {{count}} minutes"
      x_minutes:
        one:   "1 minute"
        other: "{{count}} minutes"
      about_x_hours:
        one:   "about 1 hour"
        other: "about {{count}} hours"
      x_days:
        one:   "1 day"
        other: "{{count}} days"
      about_x_months:
        one:   "about 1 month"
        other: "about {{count}} months"
      x_months:
        one:   "1 month"
        other: "{{count}} months"
      about_x_years:
        one:   "about 1 year"
        other: "about {{count}} years"
      over_x_years:
        one:   "over 1 year"
        other: "over {{count}} years"

  activerecord:
    errors:
      template:
        header:
          one:    "1 error prohibited this {{model}} from being saved"
          other:  "{{count}} errors prohibited this {{model}} from being saved"
        # The variable :count is also available
        body: "There were problems with the following fields:"
      # The values :model, :attribute and :value are always available for interpolation
      # The value :count is available when applicable. Can be used for pluralization.
      messages:
        inclusion: "is not included in the list"
        exclusion: "is reserved"
        invalid: "is invalid"
        confirmation: "doesn't match confirmation"
        accepted: "must be accepted"
        empty: "can't be empty"
        blank: "can't be blank"
        too_long: "is too long (maximum is {{count}} characters)"
        too_short: "is too short (minimum is {{count}} characters)"
        wrong_length: "is the wrong length (should be {{count}} characters)"
        taken: "has already been taken"
        not_a_number: "is not a number"
        greater_than: "must be greater than {{count}}"
        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
        equal_to: "must be equal to {{count}}"
        less_than: "must be less than {{count}}"
        less_than_or_equal_to: "must be less than or equal to {{count}}"
        odd: "must be odd"
        even: "must be even"
        # Append your own errors here or at the model/attributes scope.

      # You can define own errors for models or model attributes.
      # The values :model, :attribute and :value are always available for interpolation.
      #
      # For example,
      #   models:
      #     user:
      #       blank: "This is a custom blank message for {{model}}: {{attribute}}"
      #       attributes:
      #         login:
      #           blank: "This is a custom blank message for User login"
      # Will define custom blank validation message for User model and 
      # custom blank validation message for login attribute of User model.
      models:

    # Translate model names. Used in Model.human_name().
    #models:
      # For example,
      #   user: "Dude"
      # will translate User model name to "Dude"

    # Translate model attribute names. Used in Model.human_attribute_name(attribute).
    #attributes:
      # For example,
      #   user:
      #     login: "Handle"
      # will translate User attribute "login" as "Handle"

/config/locales/fr-ca.yml

"fr-ca":
  locale_name: "Francais"
  active_scaffold:
    add:                  "Add"
    add_existing:         "Ajouter des données existantes"
    are_you_sure:         "Est-ce vraiment ce que vous voulez?"
    cancel:               "Annuler"
    click_to_edit:        "Click to edit"
    close:                "Fermer"
    create:               "Créer"
    create_model:         "Créer à {{model}}"
    create_another:       "Créer autre"
    created_model:        "{{model}} créé"
    create_new:           "Créer nouveau"
    customize:            "Customize"
    delete:               "Supprimer"
    deleted_model:        "{{model}} supprimé"
    delimiter:            "Delimiter"
    download:             "Download"
    edit:                 "Modifier"
    export:               "Export"
    filtered:             "(Filtré)"
    found:                "Trouvé"
    hide:                 "Hide"
    live_search:          "Recherche en direct"
    loading…:             "Loading…"
    nested_for_model:     "{{nested_model}} pour {{parent_model}}"
    next:                 "Prochain"
    no_entries:           "Aucune entrée"
    omit_header:          "Omit Header"
    options:              "Options"
    pdf:                  "PDF"
    previous:             "Précédent"
    print:                "Print"
    refresh:              "Refresh"
    remove:               "Enlever"
    remove_file:          "Enlever"
    replace_with_new:     "Replace with New"
    revisions_for_model:  "Remplacer par le nouveau"
    reset:                "Rétablir"
    saving…:              "Saving…"
    search:               "Recherche"
    search_terms:         "Critères de recherche"
    _select_:             " - sélectionner -"
    show:                 "Afficher"
    show_model:           "Afficher {{model}}"
    _to_ :                " to "
    update:               "Mettre à jour"
    update_model:         "Mettre à jour {{model}}"
    udated_model:         "%s mis à jour"

    version_inconsistency: "Incompatibilité des versions – cet enregistrement a été modifié depuis que vous avez commencé à l’éditer."
  record_select:
    n_found:            "{{count}} {{model}} trouvés"
    next:               "Prochain"
    next_count:         "Suivant {{count}}"
    previous:           "Précédent"
    previous_count:     "Précédent {{count}}"

    # AS error messages
  date:
    formats:
      # Use the strftime parameters for formats.
      # When no format has been given, it uses default.
      # You can provide other formats here if you like!
      default: "%d/%m/%Y"
      short: "%e %b"
      long: "%e %B %Y"
      long_ordinal: "%e %B %Y"
      only_day: "%e"

    day_names: [dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi]
    abbr_day_names: [dim, lun, mar, mer, jeu, ven, sam]

    # Don't forget the nil at the beginning; there's no such thing as a 0th month
    month_names: [~, janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre]
    abbr_month_names: [~, jan., fév., mar., avr., mai, juin, juil., août, sept., oct., nov., déc.]
    # Used in date_select and datime_select.
    order: [ :day, :month, :year ]

  time:
    formats:
      default: "%d %B %Y %H:%M"
      time: "%H:%M"
      short: "%d %b %H:%M"
      long: "%A %d %B %Y %H:%M:%S %Z"
      long_ordinal: "%A %d %B %Y %H:%M:%S %Z"
      only_second: "%S"
    am: "am"
    pm: "pm"

  # Used in array.to_sentence.
  support:
    array:
      sentence_connector: "and"
      skip_last_comma: false
  number:
    # Used in number_with_delimiter()
    # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
    format:
      separator: ','
      delimiter: ' '
      precision: 3

    # Used in number_to_currency()
    currency:
      format:
        # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
        format: "%u%n"
        unit: '€'
        precision: 2
        format: '%n %u'
        separator: "."
        delimiter: ","

    # Used in number_to_percentage()
    percentage:
      format:
        # These three are to override number.format and are optional
        # separator: 
        delimiter: ""
        # precision: 

    # Used in number_to_precision()
    precision:
      format:
        # These three are to override number.format and are optional
        # separator:
        delimiter: ""
        # precision:

    # Used in number_to_human_size()
    human:
      format:
        # These three are to override number.format and are optional
        # separator: 
        delimiter: ""
        precision: 1
    human:
      storage_units: [ Octet, ko, Mo, Go, To ]

  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
  datetime:
    distance_in_words:
      half_a_minute: "une demi-minute"
      less_than_x_seconds:
        zero:  "moins d'une seconde"
        one:   "moins de 1 seconde"
        other: "moins de {{count}} secondes"
      x_seconds:
        one:   "1 seconde"
        other: "{{count}} secondes"
      less_than_x_minutes:
        zero:  "moins d'une minute"
        one:   "moins de 1 minute"
        other: "moins de {{count}} minutes"
      x_minutes:
        one:   "1 minute"
        other: "{{count}} minutes"
      about_x_hours:
        one:   "environ une heure"
        other: "environ {{count}} heures"
      x_days:
        one:   "1 jour"
        other: "{{count}} jours"
      about_x_months:
        one:   "environ un mois"
        other: "environ {{count}} mois"
      x_months:
        one:   "1 mois"
        other: "{{count}} mois"
      about_x_years:
        one:   "environ un an"
        other: "environ {{count}} ans"
      over_x_years:
        one:   "plus d'un an"
        other: "plus de {{count}} ans"

  activerecord:
    errors:
      template:
        header:
          one:    "1 a empêché ce {{model}} d\'être sauvegardé"
          other:  "{{count}} a interdit ce {{model}} d'être économisé"
        # The variable :count is also available
        body: "Des problèmes sont survenus pour les champs suivants :"
      # The values :model, :attribute and :value are always available for interpolation
      # The value :count is available when applicable. Can be used for pluralization.
      messages:
        inclusion: "n'est pas inclut dans la liste"
        exclusion: "est réservé"
        invalid: "est invalide"
        confirmation: "ne correspond pas à la confirmation"
        accepted: "doit être accepté"
        empty: "ne peut pas être vide"
        blank: "ne peut pas être vierge"
        too_long: "est trop long (%d caractères maximum)"
        too_short: "est trop court(%d caractères minimum)"
        wrong_length: "n'est pas de la bonne longueur (devrait être de %d caractères)"
        taken: "est déjà prit"
        not_a_number: "n'est pas un nombre"
        greater_than: "must be greater than {{count}}"
        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
        equal_to: "must be equal to {{count}}"
        less_than: "must be less than {{count}}"
        less_than_or_equal_to: "must be less than or equal to {{count}}"
        odd: "must be odd"
        even: "must be even"
        
        # Append your own errors here or at the model/attributes scope.

      # You can define own errors for models or model attributes.
      # The values :model, :attribute and :value are always available for interpolation.
      #
      # For example,
      #   models:
      #     user:
      #       blank: "This is a custom blank message for {{model}}: {{attribute}}"
      #       attributes:
      #         login:
      #           blank: "This is a custom blank message for User login"
      # Will define custom blank validation message for User model and 
      # custom blank validation message for login attribute of User model.
      models:

    # Translate model names. Used in Model.human_name().
    #models:
      # For example,
      #   user: "Dude"
      # will translate User model name to "Dude"

    # Translate model attribute names. Used in Model.human_attribute_name(attribute).
    #attributes:
      # For example,
      #   user:
      #     login: "Handle"
      # will translate User attribute "login" as "Handle"

/config/locales/extras/en-us.yml

"en-us":
  activerecord:
    models:
      company: "Customers"
      employee: "Employees"
    attributes:
      company:
        name: "Customer Name"
        name_description: "The Customer's name."

/config/locales/extras/fr-ca.yml

"fr-ca":
  activerecord:
    models:
      company: "Customers"
      employee: "Employees"
    attributes:
      company:
        name: "Customer name"
        name_description: "The customer's name."