Skip to content

Commit

Permalink
#85 hierapolis-rails added
Browse files Browse the repository at this point in the history
  • Loading branch information
adamdilek committed Sep 25, 2013
1 parent 0de956e commit 49e4146
Show file tree
Hide file tree
Showing 10 changed files with 247 additions and 29 deletions.
20 changes: 17 additions & 3 deletions lib/cybele/app_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def convert_application_css_to_sass
end

def configure_smtp

remove_file 'config/settings/production.yml'
copy_file 'config/settings/production.yml', 'config/settings/production.yml'

config = <<-RUBY
Expand All @@ -123,7 +123,7 @@ def setup_staging_environment
email:
noreply: [email protected]
YML
prepend_file 'config/setting.yml', config
prepend_file 'config/settings.yml', config
end

def configure_action_mailer
Expand Down Expand Up @@ -210,7 +210,7 @@ def generate_hq_namespace
generate "devise Admin"
create_namespace_routing('hq')
directory 'app/controllers/hq', 'app/controllers/hq'
template 'app/views/layouts/hq/base.html.haml.erb', 'app/views/layouts/hq/base.html.haml', force: true
#template 'app/views/layouts/hq/base.html.haml.erb', 'app/views/layouts/hq/base.html.haml', force: true
template 'app/views/hq/dashboard/index.html.haml.erb', 'app/views/hq/dashboard/index.html.haml', force: true
directory 'app/views/hq/sessions', 'app/views/hq/sessions'
gsub_file 'config/routes.rb', /devise_for :admins/, "devise_for :admins, controllers: {sessions: 'hq/sessions'}, path: 'hq',
Expand All @@ -224,6 +224,20 @@ def set_time_zone
add_time_zone_to_user
end

def create_hierapolis_theme
remove_file 'lib/templates/rails/responders_controller/controller.rb'
remove_file 'lib/templates/haml/scaffold/_form.html.haml'
generate 'hierapolis:install'
end

def replace_simple_form_wrapper
remove_file 'config/initializers/simple_form.rb'
remove_file 'config/initializers/simple_form_bootstrap.rb'

copy_file 'config/initializers/simple_form.rb', 'config/initializers/simple_form.rb'
copy_file 'config/initializers/simple_form_bootstrap.rb', 'config/initializers/simple_form_bootstrap.rb'
end

private

def action_mailer_host(rails_env, host)
Expand Down
10 changes: 10 additions & 0 deletions lib/cybele/generators/app_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ def customization
invoke :install_gems
invoke :gitignore_files_and_folders
invoke :setup_bootstrap_sass_coffee
invoke :setup_rails_config
invoke :configure_mail_setting
invoke :setup_rspec
invoke :setup_capybara
Expand All @@ -36,6 +37,7 @@ def customization
invoke :setup_welcome_page
invoke :setup_devise
invoke :setup_time_zone
invoke :setup_staging_environment
invoke :goodbye
end

Expand Down Expand Up @@ -172,6 +174,14 @@ def goodbye
def run_bundle
end

def setup_hierapolis
build :create_hierapolis_theme
end

def setup_sipmle_form_wrapper
build :replace_simple_form_wrapper
end

protected

def get_builder_class
Expand Down
1 change: 1 addition & 0 deletions templates/app/assets/javascripts/application.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@
#= require jquery_ujs
#= require turbolinks
#= require bootstrap
#= require hierapolis
#= require_tree .
4 changes: 1 addition & 3 deletions templates/app/assets/stylesheets/application.css.sass
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@
*= require_self
*= require_tree .
@import "compass"
@import "bootstrap"
@import "bootstrap-responsive"
@import "hierapolis"

body
padding-top: 20px
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'application_responder'

class Hq::BaseController < ActionController::Base
class Hq::ApplicationController < ActionController::Base
before_action :authenticate_admin!
self.responder = ApplicationResponder
respond_to :html, :json
Expand Down
2 changes: 1 addition & 1 deletion templates/app/controllers/hq/sessions_controller.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
class Hq::SessionsController < Devise::SessionsController

layout 'login'
end
21 changes: 0 additions & 21 deletions templates/app/views/layouts/hq/base.html.haml.erb

This file was deleted.

142 changes: 142 additions & 0 deletions templates/config/initializers/simple_form.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# Use this setup block to configure all options available in SimpleForm.
SimpleForm.setup do |config|
# Wrappers are used by the form builder to generate a
# complete input. You can remove any component from the
# wrapper, change the order or even add your own to the
# stack. The options given below are used to wrap the
# whole input.
config.wrappers :default, class: :input,
hint_class: :field_with_hint, error_class: :field_with_errors do |b|
## Extensions enabled by default
# Any of these extensions can be disabled for a
# given input by passing: `f.input EXTENSION_NAME => false`.
# You can make any of these extensions optional by
# renaming `b.use` to `b.optional`.

# Determines whether to use HTML5 (:email, :url, ...)
# and required attributes
b.use :html5

# Calculates placeholders automatically from I18n
# You can also pass a string as f.input placeholder: "Placeholder"
b.use :placeholder

## Optional extensions
# They are disabled unless you pass `f.input EXTENSION_NAME => :lookup`
# to the input. If so, they will retrieve the values from the model
# if any exists. If you want to enable the lookup for any of those
# extensions by default, you can change `b.optional` to `b.use`.

# Calculates maxlength from length validations for string inputs
b.optional :maxlength

# Calculates pattern from format validations for string inputs
b.optional :pattern

# Calculates min and max from length validations for numeric inputs
b.optional :min_max

# Calculates readonly automatically from readonly attributes
b.optional :readonly

## Inputs
b.use :label_input
b.use :hint, wrap_with: { tag: :span, class: :hint }
b.use :error, wrap_with: { tag: :span, class: :error }
end

# The default wrapper to be used by the FormBuilder.
config.default_wrapper = :default

# Define the way to render check boxes / radio buttons with labels.
# Defaults to :nested for bootstrap config.
# inline: input + label
# nested: label > input
config.boolean_style = :nested

# Default class for buttons
config.button_class = 'btn'

# Method used to tidy up errors. Specify any Rails Array method.
# :first lists the first message for each field.
# Use :to_sentence to list all errors for each field.
# config.error_method = :first

# Default tag used for error notification helper.
config.error_notification_tag = :div

# CSS class to add for error notification helper.
config.error_notification_class = 'alert alert-error'

# ID to add for error notification helper.
# config.error_notification_id = nil

# Series of attempts to detect a default label method for collection.
# config.collection_label_methods = [ :to_label, :name, :title, :to_s ]

# Series of attempts to detect a default value method for collection.
# config.collection_value_methods = [ :id, :to_s ]

# You can wrap a collection of radio/check boxes in a pre-defined tag, defaulting to none.
# config.collection_wrapper_tag = nil

# You can define the class to use on all collection wrappers. Defaulting to none.
# config.collection_wrapper_class = nil

# You can wrap each item in a collection of radio/check boxes with a tag,
# defaulting to :span. Please note that when using :boolean_style = :nested,
# SimpleForm will force this option to be a label.
# config.item_wrapper_tag = :span

# You can define a class to use in all item wrappers. Defaulting to none.
# config.item_wrapper_class = nil

# How the label text should be generated altogether with the required text.
# config.label_text = lambda { |label, required| "#{required} #{label}" }

# You can define the class to use on all labels. Default is nil.
config.label_class = 'control-label'

# You can define the class to use on all forms. Default is simple_form.
# config.form_class = :simple_form

# You can define which elements should obtain additional classes
# config.generate_additional_classes_for = [:wrapper, :label, :input]

# Whether attributes are required by default (or not). Default is true.
# config.required_by_default = true

# Tell browsers whether to use the native HTML5 validations (novalidate form option).
# These validations are enabled in SimpleForm's internal config but disabled by default
# in this configuration, which is recommended due to some quirks from different browsers.
# To stop SimpleForm from generating the novalidate option, enabling the HTML5 validations,
# change this configuration to true.
config.browser_validations = false

# Collection of methods to detect if a file type was given.
# config.file_methods = [ :mounted_as, :file?, :public_filename ]

# Custom mappings for input types. This should be a hash containing a regexp
# to match as key, and the input type that will be used when the field name
# matches the regexp as value.
# config.input_mappings = { /count/ => :integer }

# Custom wrappers for input types. This should be a hash containing an input
# type as key and the wrapper that will be used for all inputs with specified type.
# config.wrapper_mappings = { string: :prepend }

# Default priority for time_zone inputs.
# config.time_zone_priority = nil

# Default priority for country inputs.
# config.country_priority = nil

# When false, do not use translations for labels.
# config.translate_labels = true

# Automatically discover new inputs in Rails' autoload path.
# config.inputs_discovery = true

# Cache SimpleForm inputs discovery
# config.cache_discovery = !Rails.env.development?
end
70 changes: 70 additions & 0 deletions templates/config/initializers/simple_form_bootstrap.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Use this setup block to configure all options available in SimpleForm.
# File Path: RAILS_ROOT/config/initializers/simple_form_bootstrap.rb
SimpleForm.setup do |config|
config.wrappers :bootstrap, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.use :placeholder
b.use :label, class: 'control-label'
b.use :input
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end

config.wrappers :prepend, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.use :placeholder
b.use :label, class: 'control-label'
b.wrapper tag: 'div', class: 'input-group' do |input|
input.wrapper tag: 'div', class: 'input-prepend' do |prepend|
prepend.use :input
end
input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
input.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
end
end

config.wrappers :append, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.use :placeholder
b.use :label
b.wrapper tag: 'div', class: 'input-group' do |input|
input.wrapper tag: 'div', class: 'input-append' do |append|
append.use :input
end
input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
input.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
end
end
config.error_notification_class = 'alert alert-danger'

# Wrappers for forms and inputs using the Twitter Bootstrap toolkit.
# Check the Bootstrap docs (http://twitter.github.com/bootstrap)
# to learn about the different styles for forms and inputs,
# buttons and other elements.
config.default_wrapper = :bootstrap
end


inputs = %w[
CollectionSelectInput
DateTimeInput
FileInput
GroupedCollectionSelectInput
NumericInput
PasswordInput
RangeInput
StringInput
TextInput
]

inputs.each do |input_type|
superclass = "SimpleForm::Inputs::#{input_type}".constantize

new_class = Class.new(superclass) do
def input_html_classes
super.push('form-control')
end
end

Object.const_set(input_type, new_class)
end
4 changes: 4 additions & 0 deletions templates/cybele_Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ gem 'ransack'

# gem 'rails-observers'

gem 'hierapolis-rails', '~> 0.3.0'
gem 'breadcrumbs_on_rails', '~> 2.3.0'
gem 'blankable', '~> 0.2.0'

group :doc do
gem 'sdoc', require: false
end
Expand Down

1 comment on commit 49e4146

@tayfunoziserikan
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Please sign in to comment.