extjs_scaffold 0.1.1
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/.gitignore +9 -0
- data/.rspec +1 -0
- data/Gemfile +4 -0
- data/MIT-LICENSE +20 -0
- data/README.md +80 -0
- data/Rakefile +28 -0
- data/extjs_scaffold.gemspec +27 -0
- data/features/scaffold_generator.feature +124 -0
- data/features/step_definitions/aruba_ext_steps.rb +6 -0
- data/features/support/setup.rb +5 -0
- data/lib/extjs_scaffold.rb +1 -0
- data/lib/extjs_scaffold/version.rb +3 -0
- data/lib/generators/extjs_scaffold.rb +15 -0
- data/lib/generators/extjs_scaffold/install/USAGE +28 -0
- data/lib/generators/extjs_scaffold/install/install_generator.rb +82 -0
- data/lib/generators/extjs_scaffold/install/templates/Actionable.js +27 -0
- data/lib/generators/extjs_scaffold/install/templates/App.js +11 -0
- data/lib/generators/extjs_scaffold/install/templates/EditWindow.js +135 -0
- data/lib/generators/extjs_scaffold/install/templates/FormPanel.js +27 -0
- data/lib/generators/extjs_scaffold/install/templates/Format.js +34 -0
- data/lib/generators/extjs_scaffold/install/templates/GridPanel.js +289 -0
- data/lib/generators/extjs_scaffold/install/templates/ParentComboField.js +39 -0
- data/lib/generators/extjs_scaffold/install/templates/Rails.js +162 -0
- data/lib/generators/extjs_scaffold/install/templates/ScrollingToolbar.js +170 -0
- data/lib/generators/extjs_scaffold/install/templates/SearchField.js +104 -0
- data/lib/generators/extjs_scaffold/install/templates/UpdateWindow.js +112 -0
- data/lib/generators/extjs_scaffold/install/templates/Updateable.js +31 -0
- data/lib/generators/extjs_scaffold/install/templates/ext_auth.html.erb +3 -0
- data/lib/generators/extjs_scaffold/install/templates/extjs_scaffold.css.scss +9 -0
- data/lib/generators/extjs_scaffold/install/templates/images/README.txt +1 -0
- data/lib/generators/extjs_scaffold/install/templates/images/add.gif +0 -0
- data/lib/generators/extjs_scaffold/install/templates/images/application_form_edit.png +0 -0
- data/lib/generators/extjs_scaffold/install/templates/images/delete.gif +0 -0
- data/lib/generators/extjs_scaffold/install/templates/images/tick.png +0 -0
- data/lib/generators/extjs_scaffold/scaffold/USAGE +24 -0
- data/lib/generators/extjs_scaffold/scaffold/scaffold_generator.rb +19 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/USAGE +20 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/scaffold_controller_generator.rb +296 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/controller.rb +191 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/js/Controller.js +53 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/js/EditForm.js +17 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/js/EditWindow.js +27 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/js/Grid.js +26 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/js/Model.js +43 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/js/ReferenceStore.js +27 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/js/Store.js +28 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/js/UpdateForm.js +17 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/js/UpdateWindow.js +21 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/model.rb +57 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/tests/controller_spec.rb +197 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/tests/controller_test.rb +85 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/views/erb/index.html.erb +3 -0
- data/lib/generators/extjs_scaffold/scaffold_controller/templates/views/haml/index.html.haml +3 -0
- data/spec/dummy/.gitignore +15 -0
- data/spec/dummy/README +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/images/rails.png +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +7 -0
- data/spec/dummy/app/assets/stylesheets/application.css +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/mailers/.gitkeep +0 -0
- data/spec/dummy/app/models/.gitkeep +0 -0
- data/spec/dummy/app/views/layouts/application.html.erb +16 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +48 -0
- data/spec/dummy/config/boot.rb +7 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +30 -0
- data/spec/dummy/config/environments/production.rb +60 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +58 -0
- data/spec/dummy/db/schema.rb +23 -0
- data/spec/dummy/db/seeds.rb +7 -0
- data/spec/dummy/doc/README_FOR_APP +2 -0
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/dummy/lib/tasks/.gitkeep +0 -0
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/index.html +241 -0
- data/spec/dummy/public/robots.txt +5 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/vendor/assets/stylesheets/.gitkeep +0 -0
- data/spec/dummy/vendor/plugins/.gitkeep +0 -0
- data/spec/generators/install_spec.rb +140 -0
- data/spec/generators/scaffold_spec.rb +244 -0
- data/spec/spec_helper.rb +26 -0
- data/spec/support/App.js +12 -0
- data/spec/support/rails_routes.rb +4 -0
- metadata +290 -0
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2012 Mark H Winkler
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
# ExtjsScaffold
|
2
|
+
|
3
|
+
Rails 3.1 Scaffold generator for Extjs 4
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
### Install
|
8
|
+
|
9
|
+
1) Install Sencha Extjs 4 into public
|
10
|
+
|
11
|
+
public/extjs
|
12
|
+
|
13
|
+
2) Add Extjs to app/views/layouts/application.html.erb
|
14
|
+
|
15
|
+
<html>
|
16
|
+
<head>
|
17
|
+
<title>TestApp</title>
|
18
|
+
<%= stylesheet_link_tag "/extjs/resources/css/ext-all.css" %>
|
19
|
+
<%= stylesheet_link_tag "application" %>
|
20
|
+
<%= javascript_include_tag "/extjs/ext-all-debug.js" %>
|
21
|
+
<%= javascript_include_tag "application" %>
|
22
|
+
<%= csrf_meta_tags %>
|
23
|
+
</head>
|
24
|
+
<body>
|
25
|
+
|
26
|
+
<%= yield %>
|
27
|
+
|
28
|
+
</body>
|
29
|
+
</html>
|
30
|
+
|
31
|
+
3) Add Extjs MVC structure app/assets/javascripts/application.js
|
32
|
+
|
33
|
+
//= require_self
|
34
|
+
//= require_tree ./ux
|
35
|
+
//= require_tree ./util
|
36
|
+
//= require_tree ./model
|
37
|
+
//= require_tree ./store
|
38
|
+
//= require_tree ./view
|
39
|
+
//= require_tree ./controller
|
40
|
+
//= require_tree .
|
41
|
+
|
42
|
+
4) Run the install generator
|
43
|
+
|
44
|
+
rails generate extjs_scaffold:install
|
45
|
+
|
46
|
+
Which will create an Extjs application file and the scaffold ux files. By default the application file and the application name are set to the rails app name.
|
47
|
+
|
48
|
+
These can be customized using the --file-name and --app-name class options
|
49
|
+
|
50
|
+
rails generate extjs_scaffold:install --file-name=ExtjsApp --app-name=TestApp
|
51
|
+
|
52
|
+
or
|
53
|
+
|
54
|
+
rails generate extjs_scaffold:install -n=ExtjsApp -a=TestApp
|
55
|
+
|
56
|
+
### Scaffold
|
57
|
+
|
58
|
+
rails generate scaffold extjs_scaffold:scaffold widget name:string
|
59
|
+
|
60
|
+
Class Options
|
61
|
+
|
62
|
+
If the file or app name were customized during the install, they must be passed into the scaffold generator:
|
63
|
+
|
64
|
+
rails generate extjs_scaffold:scaffold widget name:string -n=ExtjsApp -a=TestApp
|
65
|
+
|
66
|
+
Reference field lookups default to a 'name' field in the parent table. This can be customized by setting the --reference_fields option:
|
67
|
+
|
68
|
+
rails generate extjs_scaffold:scaffold widget category:references name:string --reference_fields category:category_type
|
69
|
+
|
70
|
+
Which would look for a 'category_type' field in the category table
|
71
|
+
|
72
|
+
Pagination defaults to Kaminari. To use Will Paginate, set the --pagination option:
|
73
|
+
|
74
|
+
rails generate extjs_scaffold:scaffold widget name:string --pagination=will_paginate
|
75
|
+
|
76
|
+
Views support erb (default) and haml
|
77
|
+
|
78
|
+
Controller tests for TestUnit and Rspec are generated
|
79
|
+
|
80
|
+
ORM is generated using Rails::Generators::ScaffoldGenerator and then injected with additional methods
|
data/Rakefile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require "bundler/gem_tasks"
|
3
|
+
require "rubygems"
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'bundler/setup'
|
7
|
+
rescue LoadError
|
8
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
9
|
+
end
|
10
|
+
|
11
|
+
require 'rake'
|
12
|
+
require 'rake/rdoctask'
|
13
|
+
|
14
|
+
require 'rspec/core'
|
15
|
+
require 'rspec/core/rake_task'
|
16
|
+
|
17
|
+
RSpec::Core::RakeTask.new(:spec)
|
18
|
+
|
19
|
+
task :default => :spec
|
20
|
+
|
21
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
22
|
+
rdoc.rdoc_dir = 'rdoc'
|
23
|
+
rdoc.title = 'ExtjsScaffold'
|
24
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
25
|
+
rdoc.rdoc_files.include('README.md')
|
26
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
27
|
+
end
|
28
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "extjs_scaffold/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "extjs_scaffold"
|
7
|
+
s.version = ExtjsScaffold::VERSION
|
8
|
+
s.authors = ["mwinkler"]
|
9
|
+
s.email = ["mhwinkler@gmail.com"]
|
10
|
+
s.homepage = "https://github.com/mojomaze/extjs_scaffold"
|
11
|
+
s.summary = "Scaffold Generator for Rails 3.1 and Extjs 4"
|
12
|
+
s.description = "Scaffold Generator for Rails 3.1 and Sencha Extjs 4"
|
13
|
+
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
|
19
|
+
s.add_development_dependency "sqlite3"
|
20
|
+
s.add_development_dependency "rspec", "~> 2.7.0"
|
21
|
+
s.add_development_dependency "rspec-rails", "~> 2.7.0"
|
22
|
+
s.add_development_dependency "generator_spec"
|
23
|
+
s.add_development_dependency "cucumber"
|
24
|
+
s.add_development_dependency "cucumber-rails"
|
25
|
+
s.add_development_dependency "aruba", "< 0.4.7"
|
26
|
+
s.add_runtime_dependency "rails", "~> 3.1.0"
|
27
|
+
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
Feature: Generate Extjs Install and Scaffold
|
2
|
+
In order to use extjs as a scaffold replacement
|
3
|
+
As a user of Rails3 and extjs4
|
4
|
+
I would like to generate an extjs scaffold
|
5
|
+
|
6
|
+
Scenario: Generate ExtJs Scaffold
|
7
|
+
When I run `rails new test_app`
|
8
|
+
And I cd to "test_app"
|
9
|
+
Then the following files should exist:
|
10
|
+
| Gemfile |
|
11
|
+
| app/assets/javascripts/application.js |
|
12
|
+
| app/assets/stylesheets/application.css |
|
13
|
+
And I append to "Gemfile" with:
|
14
|
+
"""
|
15
|
+
gem "haml"
|
16
|
+
gem "kaminari"
|
17
|
+
gem "extjs_renderer", "~> 0.1.0"
|
18
|
+
gem 'extjs_scaffold', :path => '../../../'
|
19
|
+
|
20
|
+
"""
|
21
|
+
And I overwrite "app/views/layouts/application.html.erb" with:
|
22
|
+
"""
|
23
|
+
<!DOCTYPE html>
|
24
|
+
<html>
|
25
|
+
<head>
|
26
|
+
<title>TestApp</title>
|
27
|
+
<%= stylesheet_link_tag "/extjs/resources/css/ext-all.css" %>
|
28
|
+
<%= stylesheet_link_tag "application" %>
|
29
|
+
<%= javascript_include_tag "/extjs/ext-all-debug.js" %>
|
30
|
+
<%= javascript_include_tag "application" %>
|
31
|
+
<%= csrf_meta_tags %>
|
32
|
+
</head>
|
33
|
+
<body>
|
34
|
+
|
35
|
+
<%= yield %>
|
36
|
+
|
37
|
+
</body>
|
38
|
+
</html>
|
39
|
+
"""
|
40
|
+
And I overwrite "app/assets/javascripts/application.js" with:
|
41
|
+
"""
|
42
|
+
//= require_self
|
43
|
+
//= require_tree ./ux
|
44
|
+
//= require_tree ./util
|
45
|
+
//= require_tree ./model
|
46
|
+
//= require_tree ./store
|
47
|
+
//= require_tree ./view
|
48
|
+
//= require_tree ./controller
|
49
|
+
//= require_tree .
|
50
|
+
"""
|
51
|
+
And I install extjs in "test_app"
|
52
|
+
Then the following files should exist:
|
53
|
+
| public/extjs/bootstrap.js |
|
54
|
+
| public/extjs/ext-all-debug.js |
|
55
|
+
And I run `bundle install`
|
56
|
+
Then the output should contain:
|
57
|
+
"""
|
58
|
+
Your bundle is complete!
|
59
|
+
"""
|
60
|
+
And I run `rails g extjs_scaffold:install`
|
61
|
+
Then the following files should exist:
|
62
|
+
| app/assets/javascripts/TestApp.js |
|
63
|
+
And I run `rails g extjs_scaffold:scaffold category name:string`
|
64
|
+
Then the following files should exist:
|
65
|
+
| app/assets/javascripts/controller/Categories.js |
|
66
|
+
| app/controllers/categories_controller.rb |
|
67
|
+
| app/models/category.rb |
|
68
|
+
| app/views/categories/index.html.erb |
|
69
|
+
| test/functional/categories_controller_test.rb |
|
70
|
+
And I run `rails g extjs_scaffold:scaffold product category:references name:string`
|
71
|
+
Then the following files should exist:
|
72
|
+
| app/assets/javascripts/controller/Products.js |
|
73
|
+
| app/controllers/products_controller.rb |
|
74
|
+
| app/models/product.rb |
|
75
|
+
| app/views/products/index.html.erb |
|
76
|
+
| test/functional/products_controller_test.rb |
|
77
|
+
And I append to "Gemfile" with:
|
78
|
+
"""
|
79
|
+
gem "rspec", "~> 2.7.0"
|
80
|
+
gem "rspec-rails", "~> 2.7.0"
|
81
|
+
"""
|
82
|
+
And I run `bundle install`
|
83
|
+
Then the output should contain:
|
84
|
+
"""
|
85
|
+
Your bundle is complete!
|
86
|
+
"""
|
87
|
+
And I run `rails g rspec:install`
|
88
|
+
Then the following files should exist:
|
89
|
+
| spec/spec_helper.rb |
|
90
|
+
And I run `rails g extjs_scaffold:scaffold widget name:string sku:string in_stock:boolean price:decimal last_received_on:date --template_engine=haml`
|
91
|
+
Then the following files should exist:
|
92
|
+
| app/assets/javascripts/controller/Widgets.js |
|
93
|
+
| app/controllers/widgets_controller.rb |
|
94
|
+
| app/models/widget.rb |
|
95
|
+
| app/views/widgets/index.html.haml |
|
96
|
+
| spec/controllers/widgets_controller_spec.rb |
|
97
|
+
And I run `rails g extjs_scaffold:scaffold part widget:references name:string quantity:integer --template_engine=haml --reference-fields widget:sku`
|
98
|
+
Then the following files should exist:
|
99
|
+
| app/assets/javascripts/controller/Parts.js |
|
100
|
+
| app/controllers/parts_controller.rb |
|
101
|
+
| app/models/part.rb |
|
102
|
+
| app/views/parts/index.html.haml |
|
103
|
+
| spec/controllers/parts_controller_spec.rb |
|
104
|
+
And I run `rake db:migrate`
|
105
|
+
Then the output should contain:
|
106
|
+
"""
|
107
|
+
CreateParts: migrated
|
108
|
+
"""
|
109
|
+
And I run `rake db:test:prepare`
|
110
|
+
And I run `ruby -Itest test/functional/categories_controller_test.rb`
|
111
|
+
Then the output should contain:
|
112
|
+
"""
|
113
|
+
0 failures, 0 errors, 0 skips
|
114
|
+
"""
|
115
|
+
And I run `ruby -Itest test/functional/products_controller_test.rb`
|
116
|
+
Then the output should contain:
|
117
|
+
"""
|
118
|
+
0 failures, 0 errors, 0 skips
|
119
|
+
"""
|
120
|
+
And I run `rspec spec`
|
121
|
+
Then the output should contain:
|
122
|
+
"""
|
123
|
+
0 failures
|
124
|
+
"""
|
@@ -0,0 +1 @@
|
|
1
|
+
require "extjs_scaffold/version"
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "rails/generators/named_base"
|
2
|
+
|
3
|
+
module ExtjsScaffold
|
4
|
+
module Generators
|
5
|
+
class Base < Rails::Generators::NamedBase
|
6
|
+
def self.source_root
|
7
|
+
@_extjs_scaffold_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'extjs_scaffold', generator_name, 'templates'))
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.rails_app_name
|
11
|
+
Rails.root.to_s.split('/').last.titlecase.split.join
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
Description:
|
2
|
+
Installs Ext Application file and ux files needed for scaffold
|
3
|
+
|
4
|
+
Example:
|
5
|
+
rails new MyCoolApp
|
6
|
+
rails generate extjs_scaffold:install
|
7
|
+
|
8
|
+
This will create:
|
9
|
+
app/assests/images/extjs_scaffold/add.gif
|
10
|
+
app/assests/images/extjs_scaffold/application_form_edit.png
|
11
|
+
app/assests/images/extjs_scaffold/delete.gif
|
12
|
+
app/assests/images/extjs_scaffold/README.txt
|
13
|
+
app/assests/images/extjs_scaffold/tick.png
|
14
|
+
app/assets/javascripts/MyCoolApp.js
|
15
|
+
app/assets/javascripts/model/ParentCombo.js
|
16
|
+
app/assets/javascripts/util/Format.js
|
17
|
+
app/assets/javascripts/ux/data/Actionable.js
|
18
|
+
app/assets/javascripts/ux/data/Updateable.js
|
19
|
+
app/assets/javascripts/ux/proxy/Rails.js
|
20
|
+
app/assets/javascripts/ux/form/Panel.js
|
21
|
+
app/assets/javascripts/ux/field/ParentCombo.js
|
22
|
+
app/assets/javascripts/ux/field/SearchField.js
|
23
|
+
app/assets/javascripts/ux/grid/Panel.js
|
24
|
+
app/assets/javascripts/ux/toolbar/Scrolling.js
|
25
|
+
app/assets/javascripts/ux/window/EditWindow.js
|
26
|
+
app/assets/javascripts/ux/window/UpdateWindow.js
|
27
|
+
app/assets/stylesheets/extjs_scaffold.css.scss
|
28
|
+
public/images/extjs_scaffold/tick.png
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'generators/extjs_scaffold'
|
2
|
+
|
3
|
+
module ExtjsScaffold
|
4
|
+
module Generators
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
|
+
|
7
|
+
class_option :file_name, :desc => "Name of file used to hold Ext.application",
|
8
|
+
:aliases => '-n', :default => ExtjsScaffold::Generators::Base.rails_app_name
|
9
|
+
class_option :app_name, :desc => "Name of app used in Ext.application",
|
10
|
+
:aliases => '-a', :default => ExtjsScaffold::Generators::Base.rails_app_name
|
11
|
+
|
12
|
+
def self.source_root
|
13
|
+
@source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
14
|
+
end
|
15
|
+
|
16
|
+
def css_and_images
|
17
|
+
copy_file 'extjs_scaffold.css.scss', 'app/assets/stylesheets/extjs_scaffold.css.scss'
|
18
|
+
directory 'images', 'app/assets/images/extjs_scaffold'
|
19
|
+
copy_file 'images/tick.png', 'public/images/extjs_scaffold/tick.png'
|
20
|
+
end
|
21
|
+
|
22
|
+
def ext_auth_partial
|
23
|
+
copy_file 'ext_auth.html.erb', 'app/views/shared/_ext_auth.html.erb'
|
24
|
+
end
|
25
|
+
|
26
|
+
def create_application_file
|
27
|
+
empty_directory File.join("app/assets", "javascripts")
|
28
|
+
template 'App.js', File.join('app/assets/javascripts/', app_file_name)
|
29
|
+
end
|
30
|
+
|
31
|
+
def create_util_file
|
32
|
+
empty_directory File.join("app/assets/javascripts", "util")
|
33
|
+
template 'Format.js', File.join('app/assets/javascripts/util/', 'Format.js')
|
34
|
+
end
|
35
|
+
|
36
|
+
def create_ux_files
|
37
|
+
empty_directory File.join("app/assets/javascripts", "ux")
|
38
|
+
# data
|
39
|
+
empty_directory File.join("app/assets/javascripts/ux", "data")
|
40
|
+
empty_directory File.join("app/assets/javascripts/ux/data", "proxy")
|
41
|
+
|
42
|
+
template 'Actionable.js', File.join('app/assets/javascripts/ux/data/', 'Actionable.js')
|
43
|
+
template 'Updateable.js', File.join('app/assets/javascripts/ux/data/', 'Updateable.js')
|
44
|
+
template 'Rails.js', File.join('app/assets/javascripts/ux/data/proxy/', 'Rails.js')
|
45
|
+
|
46
|
+
# form
|
47
|
+
empty_directory File.join("app/assets/javascripts/ux", "form")
|
48
|
+
empty_directory File.join("app/assets/javascripts/ux/form", "field")
|
49
|
+
|
50
|
+
template 'FormPanel.js', File.join('app/assets/javascripts/ux/form/', 'Panel.js')
|
51
|
+
template 'ParentComboField.js', File.join('app/assets/javascripts/ux/form/field', 'ParentCombo.js')
|
52
|
+
template 'SearchField.js', File.join('app/assets/javascripts/ux/form/field/', 'SearchField.js')
|
53
|
+
|
54
|
+
#grid
|
55
|
+
empty_directory File.join("app/assets/javascripts/ux", "grid")
|
56
|
+
template 'GridPanel.js', File.join('app/assets/javascripts/ux/grid/', 'Panel.js')
|
57
|
+
|
58
|
+
#toolbar
|
59
|
+
empty_directory File.join("app/assets/javascripts/ux", "toolbar")
|
60
|
+
template 'ScrollingToolbar.js', File.join('app/assets/javascripts/ux/toolbar/', 'Scrolling.js')
|
61
|
+
|
62
|
+
#window
|
63
|
+
empty_directory File.join("app/assets/javascripts/ux", "window")
|
64
|
+
template 'EditWindow.js', File.join('app/assets/javascripts/ux/window/', 'EditWindow.js')
|
65
|
+
template 'UpdateWindow.js', File.join('app/assets/javascripts/ux/window/', 'UpdateWindow.js')
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
protected
|
70
|
+
|
71
|
+
def app_file_name
|
72
|
+
#file_name = options.file_name || rails_app_name
|
73
|
+
[options.file_name, :js].compact.join(".")
|
74
|
+
end
|
75
|
+
|
76
|
+
def app_name
|
77
|
+
options.app_name
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|