shoestrap 1.1.1 → 1.2.0.pre1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +45 -0
- data/features/command_wrapper_helper.rb +2 -2
- data/features/features_helper.rb +1 -1
- data/features/shoestrap/generators/admin_generator_spec.rb +50 -0
- data/features/shoestrap/generators/cms_generator_spec.rb +5 -0
- data/lib/generators/shoestrap/admin_generator.rb +75 -0
- data/lib/generators/shoestrap/base_generator.rb +7 -2
- data/lib/generators/shoestrap/cms_generator.rb +13 -9
- data/lib/shoestrap/version.rb +1 -1
- data/shoestrap.gemspec +2 -0
- data/templates/admin_generator/devise.html.haml +16 -0
- data/templates/admin_generator/devise_views/mailer/reset_password_instructions.html.haml +6 -0
- data/templates/admin_generator/devise_views/mailer/unlock_instructions.html.haml +5 -0
- data/templates/admin_generator/devise_views/passwords/edit.html.haml +11 -0
- data/templates/admin_generator/devise_views/passwords/new.html.haml +8 -0
- data/templates/admin_generator/devise_views/sessions/new.html.haml +9 -0
- data/templates/admin_generator/devise_views/shared/_links.haml +19 -0
- data/templates/admin_generator/translations/admin.de.yml +20 -0
- data/templates/admin_generator/translations/devise_admin.de.yml +31 -0
- data/templates/cms_generator/_main_navigation.html.haml +0 -1
- data/templates/cms_generator/base_controller_with_kuhsaft.rb +1 -1
- data/templates/cms_generator/base_controller_without_kuhsaft.rb +1 -1
- data/templates/cms_generator/inherited_views/base/_form.html.haml +4 -1
- data/templates/cms_generator/translations/{resource.yml → resource.yml.erb} +6 -4
- data/templates/cms_generator/translations/shoestrap_base.yml +1 -1
- metadata +17 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1ba2f15eb6a56881dad023f467e41abd045607d
|
4
|
+
data.tar.gz: 208c4381a6cf5d67ea8861b765f06f2fa3d7c58f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 382a19a644f9e9217c39bb9ac276bea57fbde51fdd1cd09b76c0023b891ccc1251317ee5c1efc55b2d2e9a2da87dc028614930889029f6d479bc0f3212a472fd
|
7
|
+
data.tar.gz: f1fb21c9875c81059c2ef5f1308dd0b7fd44cfc545647d14247282e1725d35c765fd9ccbac77054686021bea55ac8d8112f011da295336f3d4c07de20296d639
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -15,6 +15,51 @@ work. Your mileage may vary!
|
|
15
15
|
|
16
16
|
# Building a Rails App with shoestrap
|
17
17
|
|
18
|
+
## Generating a new application
|
19
|
+
|
20
|
+
You can generate a new rails application with shoestrap by using the
|
21
|
+
shoestrap new command:
|
22
|
+
|
23
|
+
```
|
24
|
+
shoestrap new foo
|
25
|
+
```
|
26
|
+
|
27
|
+
Since `shoestrap new` is just a wrapper for rails new, the options you
|
28
|
+
can pass to rails new can also be given to shoestrap. Additionally you
|
29
|
+
can specify following shoestrap specific options on the command line:
|
30
|
+
|
31
|
+
```
|
32
|
+
--kuhsaft=true # Will install and set up the Rails app with Kuhsaft
|
33
|
+
--css=bootstrap # Will set up the app to use the given CSS
|
34
|
+
# Framework. Available frameworks: foundation, bootstrap
|
35
|
+
```
|
36
|
+
|
37
|
+
## Generating a CMS Resource
|
38
|
+
|
39
|
+
Use the cms generator to generate a simple CRUD Backend for a given
|
40
|
+
resource:
|
41
|
+
|
42
|
+
```
|
43
|
+
rails generate shoestrap:cms car wheels:integer model:string
|
44
|
+
rake db:migrate
|
45
|
+
```
|
46
|
+
|
47
|
+
In the generated model you can specify which attributes are shown in the
|
48
|
+
index view, and which attributes are editable.
|
49
|
+
|
50
|
+
The CRUD Backend will be available under /cms/<resource-name>
|
51
|
+
|
52
|
+
## CMS Resources and Associations
|
53
|
+
|
54
|
+
If you want to show the name of an associaton, build a wrapper method
|
55
|
+
for it in the model and add it to the index_attributes.
|
56
|
+
|
57
|
+
## Adding Authentication to the CMS
|
58
|
+
|
59
|
+
The shoestrap admin generator will add an Admin model that uses devise
|
60
|
+
for authentication. It is not registerable, so you will have to create
|
61
|
+
the first user in the rails console.
|
62
|
+
|
18
63
|
## Meta Tags
|
19
64
|
|
20
65
|
Shoestrap expects you to define a `content_for :head block` where you
|
@@ -33,7 +33,7 @@ def generate_test_app_with_shoestrap(options=nil)
|
|
33
33
|
# destroy all scaffolds
|
34
34
|
Dir['app/models/*.rb','app/models/cms/*.rb'].each do |path|
|
35
35
|
model_name = File.basename(path).gsub(File.extname(path),'')
|
36
|
-
drop_shoestrap_scaffold_for
|
36
|
+
drop_shoestrap_scaffold_for(model_name, options) unless model_name == 'admin'
|
37
37
|
end
|
38
38
|
|
39
39
|
result = bundle_exec 'rake db:drop db:create db:migrate db:seed'
|
@@ -91,4 +91,4 @@ end
|
|
91
91
|
|
92
92
|
def ts
|
93
93
|
Time.now.strftime('%H:%M:%S')
|
94
|
-
end
|
94
|
+
end
|
data/features/features_helper.rb
CHANGED
@@ -0,0 +1,50 @@
|
|
1
|
+
require_relative '../../features_helper'
|
2
|
+
|
3
|
+
describe 'rails generate shoestrap:admin' do
|
4
|
+
|
5
|
+
before :all do
|
6
|
+
generate_test_app_with_shoestrap
|
7
|
+
rails 'generate shoestrap:admin'
|
8
|
+
end
|
9
|
+
|
10
|
+
let(:app_path){ application_path }
|
11
|
+
|
12
|
+
it 'generates an admin cms model' do
|
13
|
+
expect(application_file('app/models/admin.rb')).not_to be_nil
|
14
|
+
expect(Dir.glob("#{app_path}/db/migrate/*create*admins*").size).to be 1
|
15
|
+
expect(application_file('config/routes.rb')).to match(/resources :admins/)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'installs devise' do
|
19
|
+
expect(application_file('Gemfile')).to match('devise')
|
20
|
+
expect(application_file('config/initializers/devise.rb')).not_to be_nil
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'disables the devise registerable module' do
|
24
|
+
expect(application_file('app/models/admin.rb')).not_to match(':registerable')
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'configures devise to use the devise layout' do
|
28
|
+
expect(application_file('config/initializers/devise.rb')).to match("devise_layout = 'devise'")
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'adds a before filter to kuhsaft controller' do
|
32
|
+
expect(application_file('config/initializers/kuhsaft.rb')).to match('before_filter :authenticate_admin!')
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'adds a before filter to shoestrap base controller' do
|
36
|
+
expect(application_file('app/controllers/shoestrap/base_controller.rb')).to match('before_filter :authenticate_admin!')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'installs the devise layout' do
|
40
|
+
expect(application_file('app/views/layouts/devise.html.haml')).not_to be_nil
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'installs the devise views' do
|
44
|
+
expect(application_file('app/views/admins/sessions/new.html.haml')).not_to be_nil
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'installs the devise translations' do
|
48
|
+
expect(application_file('config/locales/de/admin.yml')).not_to be_nil
|
49
|
+
end
|
50
|
+
end
|
@@ -54,6 +54,11 @@ describe 'rails generate shoestrap:cms' do
|
|
54
54
|
expect(application_file('app/models/car.rb', options)).not_to be_nil
|
55
55
|
end
|
56
56
|
|
57
|
+
it 'uses the fields given in the command line to pre-fill editable and index attributes' do
|
58
|
+
expect(application_file('app/models/car.rb', options)).to match('editable_attributes :tires, :model')
|
59
|
+
expect(application_file('app/models/car.rb', options)).to match('index_attributes :tires, :model')
|
60
|
+
end
|
61
|
+
|
57
62
|
it 'generates a migration' do
|
58
63
|
expect(Dir.glob("#{app_path}/db/migrate/*create*cars*").size).to be 1
|
59
64
|
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'fileutils'
|
3
|
+
require_relative 'base_generator'
|
4
|
+
require_relative '../../shoestrap/shell'
|
5
|
+
|
6
|
+
module Shoestrap
|
7
|
+
class AdminGenerator < BaseGenerator
|
8
|
+
|
9
|
+
# FIXME: set editable attributes => could be fixed by dynamic editable attributes generation in cms generator
|
10
|
+
|
11
|
+
def generate_admin_model
|
12
|
+
generate 'shoestrap:cms', 'admin', 'first_name:string last_name:string'
|
13
|
+
end
|
14
|
+
|
15
|
+
def add_gems_and_bundle
|
16
|
+
gem 'devise'
|
17
|
+
gem 'devise-i18n'
|
18
|
+
Shell.exec('bundle')
|
19
|
+
ENV['BUNDLE_GEMFILE'] = File.join(Dir.pwd, 'Gemfile')
|
20
|
+
require 'bundler'
|
21
|
+
Bundler.require(:default)
|
22
|
+
end
|
23
|
+
|
24
|
+
def setup_devise
|
25
|
+
generate 'devise:install'
|
26
|
+
generate 'devise', 'admin'
|
27
|
+
gsub_file 'config/initializers/devise.rb', ' # config.scoped_views = false', ' config.scoped_views = true'
|
28
|
+
inject_into_file 'config/initializers/devise.rb', before: '# Use this hook to configure devise mailer, warden hooks and so forth.' do
|
29
|
+
<<-eos.gsub(/^ {8}/, '').chomp
|
30
|
+
Rails.application.config.to_prepare do
|
31
|
+
devise_layout = 'devise'
|
32
|
+
Devise::SessionsController.layout devise_layout
|
33
|
+
Devise::RegistrationsController.layout devise_layout
|
34
|
+
Devise::ConfirmationsController.layout devise_layout
|
35
|
+
Devise::UnlocksController.layout devise_layout
|
36
|
+
Devise::PasswordsController.layout devise_layout
|
37
|
+
end
|
38
|
+
|
39
|
+
eos
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def disable_registration
|
44
|
+
gsub_file 'app/models/admin.rb', / :registerable,/, ''
|
45
|
+
end
|
46
|
+
|
47
|
+
def add_before_filters
|
48
|
+
inject_into_file 'app/controllers/shoestrap/base_controller.rb', "before_filter :authenticate_admin!\n\n", before: 'def show'
|
49
|
+
inject_into_file 'config/initializers/kuhsaft.rb', before: ' Kuhsaft::Engine.configure do' do
|
50
|
+
<<-eos.gsub(/^ {4}/, '').chomp
|
51
|
+
Kuhsaft::Cms::AdminController.class_eval do
|
52
|
+
before_filter :authenticate_admin!
|
53
|
+
end
|
54
|
+
|
55
|
+
eos
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def install_views
|
60
|
+
copy_file 'devise.html.haml', 'app/views/layouts/devise.html.haml'
|
61
|
+
directory 'devise_views', 'app/views/admins'
|
62
|
+
end
|
63
|
+
|
64
|
+
def install_translations
|
65
|
+
copy_file 'translations/devise_admin.de.yml', 'config/locales/de/devise_admin.yml'
|
66
|
+
copy_file 'translations/admin.de.yml', 'config/locales/de/admin.yml', force: true
|
67
|
+
end
|
68
|
+
|
69
|
+
def add_logout_link
|
70
|
+
inject_into_file 'app/views/kuhsaft/cms/admin/_main_navigation.html.haml',
|
71
|
+
" = link_to t('.logout'), destroy_admin_session_path, :method => :delete\n",
|
72
|
+
after: "%p.navbar-text.pull-right\n"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -8,6 +8,11 @@ module Shoestrap
|
|
8
8
|
end
|
9
9
|
|
10
10
|
private
|
11
|
+
|
12
|
+
def kuhsaft_is_installed?
|
13
|
+
@kuhsaft_is_installed ||= !!defined?(Kuhsaft)
|
14
|
+
end
|
15
|
+
|
11
16
|
def shoestrap_logger
|
12
17
|
self.class.shoestrap_logger
|
13
18
|
end
|
@@ -26,6 +31,7 @@ module Shoestrap
|
|
26
31
|
end
|
27
32
|
|
28
33
|
private
|
34
|
+
|
29
35
|
def rails_root
|
30
36
|
if defined?(Rails) && Rails.respond_to?(:root)
|
31
37
|
Rails.root.to_s
|
@@ -36,6 +42,5 @@ module Shoestrap
|
|
36
42
|
end
|
37
43
|
end
|
38
44
|
end
|
39
|
-
|
40
45
|
end
|
41
|
-
end
|
46
|
+
end
|
@@ -22,13 +22,13 @@ module Shoestrap
|
|
22
22
|
def add_navigation_link
|
23
23
|
if kuhsaft_is_installed?
|
24
24
|
inject_into_file 'config/cms_navigation.rb', :before => 'primary.dom_class = \'nav\'' do
|
25
|
-
"primary.item :#{model_name}_nav, t('cms.#{
|
25
|
+
"primary.item :#{model_name}_nav, t('cms.#{plural_name}.navigation_title'), #{route_name}_path\n "
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
def add_model_and_migration
|
31
|
-
generate 'model', model_name
|
31
|
+
generate 'model', model_name, ARGV[1..-1].join(' ')
|
32
32
|
inject_into_file "app/models/#{model_name}.rb", before: 'class' do
|
33
33
|
"require 'shoestrap/cms_model'\n\n"
|
34
34
|
end
|
@@ -38,17 +38,17 @@ module Shoestrap
|
|
38
38
|
include Shoestrap::CMSModel
|
39
39
|
|
40
40
|
# TODO: Define what attributes are shown in the form and permitted by strong parameters
|
41
|
-
|
41
|
+
editable_attributes #{attribute_keys_as_string}
|
42
42
|
|
43
43
|
# TODO: Define what attributes are shown in the index view
|
44
|
-
|
44
|
+
index_attributes #{attribute_keys_as_string}
|
45
45
|
|
46
46
|
eos
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
50
|
def add_resource_translations
|
51
|
-
|
51
|
+
template 'translations/resource.yml.erb', "config/locales/de/#{model_name}.yml"
|
52
52
|
end
|
53
53
|
|
54
54
|
def add_controller
|
@@ -89,10 +89,6 @@ module Shoestrap
|
|
89
89
|
copy_file 'translations/shoestrap_base.yml', 'config/locales/de/shoestrap_base.yml'
|
90
90
|
end
|
91
91
|
|
92
|
-
def kuhsaft_is_installed?
|
93
|
-
@kuhsaft_is_installed ||= !!defined?(Kuhsaft)
|
94
|
-
end
|
95
|
-
|
96
92
|
def resource_route_name
|
97
93
|
"cms/#{model_name}"
|
98
94
|
end
|
@@ -112,5 +108,13 @@ module Shoestrap
|
|
112
108
|
def route_name
|
113
109
|
controller_name.gsub('/', '_')
|
114
110
|
end
|
111
|
+
|
112
|
+
def attributes
|
113
|
+
ARGV[1..-1].map {|x| x.split(':').first }
|
114
|
+
end
|
115
|
+
|
116
|
+
def attribute_keys_as_string
|
117
|
+
ARGV[1..-1].map {|x| ":#{x.split(':').first}" }.join(', ')
|
118
|
+
end
|
115
119
|
end
|
116
120
|
end
|
data/lib/shoestrap/version.rb
CHANGED
data/shoestrap.gemspec
CHANGED
@@ -36,6 +36,8 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_development_dependency "modernizr-rails"
|
37
37
|
spec.add_development_dependency "pry-rails"
|
38
38
|
spec.add_development_dependency "rails-i18n"
|
39
|
+
spec.add_development_dependency "devise-i18n"
|
40
|
+
spec.add_development_dependency "devise"
|
39
41
|
spec.add_development_dependency "i18n-missing_translations"
|
40
42
|
spec.add_development_dependency "capybara"
|
41
43
|
spec.add_development_dependency "capybara-webkit"
|
@@ -0,0 +1,16 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%meta{ charset: "utf-8" }
|
5
|
+
%title Screen Concept CMS
|
6
|
+
= stylesheet_link_tag 'kuhsaft/cms/application.css', :media => 'screen, projection'
|
7
|
+
= stylesheet_link_tag 'kuhsaft/cms/customizations.css', :media => 'screen, projection'
|
8
|
+
= csrf_meta_tag
|
9
|
+
|
10
|
+
%body
|
11
|
+
.container.cms
|
12
|
+
.row
|
13
|
+
.span3
|
14
|
+
.span6
|
15
|
+
= yield
|
16
|
+
.span3
|
@@ -0,0 +1,6 @@
|
|
1
|
+
%p
|
2
|
+
Hello #{@resource.email}!
|
3
|
+
%p Someone has requested a link to change your password. You can do this through the link below.
|
4
|
+
%p= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token)
|
5
|
+
%p If you didn't request this, please ignore this email.
|
6
|
+
%p Your password won't change until you access the link above and create a new one.
|
@@ -0,0 +1,5 @@
|
|
1
|
+
%p
|
2
|
+
Hello #{@resource.email}!
|
3
|
+
%p Your account has been locked due to an excessive number of unsuccessful sign in attempts.
|
4
|
+
%p Click the link below to unlock your account:
|
5
|
+
%p= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token)
|
@@ -0,0 +1,11 @@
|
|
1
|
+
%h2= t('devise.change_password')
|
2
|
+
= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }, :wrapper => :bootstrap) do |f|
|
3
|
+
= f.error_notification
|
4
|
+
= f.input :reset_password_token, :as => :hidden
|
5
|
+
= f.full_error :reset_password_token
|
6
|
+
.form-inputs
|
7
|
+
= f.input :password, :label => t("devise.new_password"), :required => true, :autofocus => true
|
8
|
+
= f.input :password_confirmation, :label => t("devise.confirm_new_password"), :required => true
|
9
|
+
.form-actions
|
10
|
+
= f.button :submit, t('devise.change_password')
|
11
|
+
= render "admin/shared/links"
|
@@ -0,0 +1,8 @@
|
|
1
|
+
%h2= t('devise.forgot_password')
|
2
|
+
= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }, :wrapper => :bootstrap) do |f|
|
3
|
+
= f.error_notification
|
4
|
+
.form-inputs
|
5
|
+
= f.input :email, :required => true, :autofocus => true
|
6
|
+
.form-actions
|
7
|
+
= f.button :submit, t('devise.send_reset_password_instructions')
|
8
|
+
= render "admins/shared/links"
|
@@ -0,0 +1,9 @@
|
|
1
|
+
%h2=t('devise.sign_in')
|
2
|
+
= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name), :wrapper => :bootstrap) do |f|
|
3
|
+
.form-inputs
|
4
|
+
= f.input :email, :required => false, :autofocus => true
|
5
|
+
= f.input :password, :required => false
|
6
|
+
= f.input :remember_me, :as => :boolean if devise_mapping.rememberable?
|
7
|
+
.form-actions
|
8
|
+
= f.button :submit, t('devise.sign_in')
|
9
|
+
= render "admins/shared/links"
|
@@ -0,0 +1,19 @@
|
|
1
|
+
- if controller_name != 'sessions'
|
2
|
+
= link_to t("devise.sign_in"), new_session_path(resource_name)
|
3
|
+
%br/
|
4
|
+
- if devise_mapping.registerable? && controller_name != 'registrations'
|
5
|
+
= link_to t("devise.sign_up"), new_registration_path(resource_name)
|
6
|
+
%br/
|
7
|
+
- if devise_mapping.recoverable? && controller_name != 'passwords'
|
8
|
+
= link_to t("devise.forgot_password"), new_password_path(resource_name)
|
9
|
+
%br/
|
10
|
+
- if devise_mapping.confirmable? && controller_name != 'confirmations'
|
11
|
+
= link_to t("devise.no_confirmation"), new_confirmation_path(resource_name)
|
12
|
+
%br/
|
13
|
+
- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
|
14
|
+
= link_to t("devise.no_unlock"), new_unlock_path(resource_name)
|
15
|
+
%br/
|
16
|
+
- if devise_mapping.omniauthable?
|
17
|
+
- resource_class.omniauth_providers.each do |provider|
|
18
|
+
= link_to "#{t('devise.sign_in_with')} #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider)
|
19
|
+
%br/
|
@@ -0,0 +1,20 @@
|
|
1
|
+
de:
|
2
|
+
cms:
|
3
|
+
admins:
|
4
|
+
singular_name: Administrator
|
5
|
+
plural_name: Administratoren
|
6
|
+
navigation_title: Administratoren
|
7
|
+
|
8
|
+
activerecord:
|
9
|
+
attributes:
|
10
|
+
admin:
|
11
|
+
first_name: Vorname
|
12
|
+
last_name: Nachname
|
13
|
+
password: Passwort
|
14
|
+
password_confirmation: Passwort Bestätigung
|
15
|
+
email: E-Mail
|
16
|
+
|
17
|
+
models:
|
18
|
+
admin:
|
19
|
+
one: Administrator
|
20
|
+
other: Administartoren
|
@@ -0,0 +1,31 @@
|
|
1
|
+
de:
|
2
|
+
devise:
|
3
|
+
forgot_password: "Passwort vergessen?"
|
4
|
+
sign_up: "Registrieren"
|
5
|
+
sign_in: "Anmelden"
|
6
|
+
no_confirmation: "Kein Bestätigungsmail erhalten?"
|
7
|
+
no_unlock: "Keine E-Mail mit Informationen zum Entsperren erhalten?"
|
8
|
+
sign_in_with: "Anmelden mit"
|
9
|
+
send_reset_password_instructions: "Passwort zurücksetzen"
|
10
|
+
resend_unlock_instructions: "Konto entsperren"
|
11
|
+
logout: "Abmelden"
|
12
|
+
login: "Anmelden"
|
13
|
+
|
14
|
+
failure:
|
15
|
+
user:
|
16
|
+
not_found_in_database: "Ungültige Anmeldedaten."
|
17
|
+
admin:
|
18
|
+
not_found_in_database: "Ungültige Anmeldedaten."
|
19
|
+
|
20
|
+
activerecord:
|
21
|
+
errors:
|
22
|
+
models:
|
23
|
+
admin:
|
24
|
+
attributes:
|
25
|
+
email:
|
26
|
+
blank: 'Darf nicht leer sein!'
|
27
|
+
attributes:
|
28
|
+
user:
|
29
|
+
remember_me: "Angemeldet bleiben"
|
30
|
+
admin:
|
31
|
+
remember_me: "Angemeldet bleiben"
|
@@ -3,7 +3,10 @@
|
|
3
3
|
|
4
4
|
.form-inputs
|
5
5
|
- resource.class.editable_attributes.each do |column_name|
|
6
|
-
|
6
|
+
- if column_name.to_s.end_with? '_id'
|
7
|
+
= f.association column_name.to_s.gsub(/_id$/, '').to_sym
|
8
|
+
- else
|
9
|
+
= f.input column_name
|
7
10
|
|
8
11
|
.form-actions
|
9
12
|
= f.button :submit
|
@@ -1,16 +1,18 @@
|
|
1
1
|
de:
|
2
2
|
cms:
|
3
|
-
|
3
|
+
<%= plural_name %>:
|
4
4
|
singular_name: TRANSLATEME
|
5
5
|
plural_name: TRANSLATEME
|
6
6
|
navigation_title: TRANSLATEME
|
7
7
|
|
8
8
|
activerecord:
|
9
9
|
attributes:
|
10
|
-
|
11
|
-
|
10
|
+
<%= model_name %>:
|
11
|
+
<% attributes.each do |attr| -%>
|
12
|
+
<%= "#{attr}: TRANSLATE ME" %>
|
13
|
+
<% end -%>
|
12
14
|
|
13
15
|
models:
|
14
|
-
|
16
|
+
<%= model_name %>:
|
15
17
|
one: TRANSLATEME
|
16
18
|
other: TRANSLATEME
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shoestrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felipe Kaufmann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -190,6 +190,7 @@ files:
|
|
190
190
|
- features/features_helper.rb
|
191
191
|
- features/postgres_helper.rb
|
192
192
|
- features/shoestrap/commands/new_command_spec.rb
|
193
|
+
- features/shoestrap/generators/admin_generator_spec.rb
|
193
194
|
- features/shoestrap/generators/bdd_generator_spec.rb
|
194
195
|
- features/shoestrap/generators/bootstrap_generator_spec.rb
|
195
196
|
- features/shoestrap/generators/cms_generator_spec.rb
|
@@ -198,6 +199,7 @@ files:
|
|
198
199
|
- features/shoestrap/generators/kuhsaft_generator_spec.rb
|
199
200
|
- features/shoestrap/generators/smacss_files_generator_spec.rb
|
200
201
|
- features/shoestrap/generators/view_files_generator_spec.rb
|
202
|
+
- lib/generators/shoestrap/admin_generator.rb
|
201
203
|
- lib/generators/shoestrap/base_generator.rb
|
202
204
|
- lib/generators/shoestrap/bdd_generator.rb
|
203
205
|
- lib/generators/shoestrap/bootstrap_generator.rb
|
@@ -223,6 +225,15 @@ files:
|
|
223
225
|
- spec/shoestrap/cli_spec.rb
|
224
226
|
- spec/shoestrap/cms_model.rb
|
225
227
|
- spec/spec_helper.rb
|
228
|
+
- templates/admin_generator/devise.html.haml
|
229
|
+
- templates/admin_generator/devise_views/mailer/reset_password_instructions.html.haml
|
230
|
+
- templates/admin_generator/devise_views/mailer/unlock_instructions.html.haml
|
231
|
+
- templates/admin_generator/devise_views/passwords/edit.html.haml
|
232
|
+
- templates/admin_generator/devise_views/passwords/new.html.haml
|
233
|
+
- templates/admin_generator/devise_views/sessions/new.html.haml
|
234
|
+
- templates/admin_generator/devise_views/shared/_links.haml
|
235
|
+
- templates/admin_generator/translations/admin.de.yml
|
236
|
+
- templates/admin_generator/translations/devise_admin.de.yml
|
226
237
|
- templates/application_generator/_typekit.html.haml
|
227
238
|
- templates/application_generator/application.html.haml
|
228
239
|
- templates/application_generator/application_helper.rb
|
@@ -243,7 +254,7 @@ files:
|
|
243
254
|
- templates/cms_generator/inherited_views/base/edit.html.haml
|
244
255
|
- templates/cms_generator/inherited_views/base/index.html.haml
|
245
256
|
- templates/cms_generator/inherited_views/base/new.html.haml
|
246
|
-
- templates/cms_generator/translations/resource.yml
|
257
|
+
- templates/cms_generator/translations/resource.yml.erb
|
247
258
|
- templates/cms_generator/translations/shoestrap_base.yml
|
248
259
|
- templates/coffee_files_generator/application.js.coffee
|
249
260
|
- templates/foundation_generator/_mixin.css.sass
|
@@ -280,9 +291,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
280
291
|
version: '0'
|
281
292
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
282
293
|
requirements:
|
283
|
-
- - '
|
294
|
+
- - '>'
|
284
295
|
- !ruby/object:Gem::Version
|
285
|
-
version:
|
296
|
+
version: 1.3.1
|
286
297
|
requirements: []
|
287
298
|
rubyforge_project:
|
288
299
|
rubygems_version: 2.0.3
|
@@ -295,6 +306,7 @@ test_files:
|
|
295
306
|
- features/features_helper.rb
|
296
307
|
- features/postgres_helper.rb
|
297
308
|
- features/shoestrap/commands/new_command_spec.rb
|
309
|
+
- features/shoestrap/generators/admin_generator_spec.rb
|
298
310
|
- features/shoestrap/generators/bdd_generator_spec.rb
|
299
311
|
- features/shoestrap/generators/bootstrap_generator_spec.rb
|
300
312
|
- features/shoestrap/generators/cms_generator_spec.rb
|