ajaxcrud 0.9.0 → 1.0.0
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/README.rdoc +80 -0
- data/lib/ajaxcrud/version.rb +1 -1
- data/lib/generators/ajaxcrud/USAGE +31 -3
- metadata +22 -40
data/README.rdoc
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
{twitter.com/vikonava}[http://www.twitter.com/vikonava]
|
2
|
+
|
3
|
+
= AjaxCRUD
|
4
|
+
|
5
|
+
Gem for Rails that creates a convenient scaffold using Ajax in an unobtrusive way usign jQuery and jQueryUI.
|
6
|
+
|
7
|
+
This gem has been tested working on Rails 3.
|
8
|
+
|
9
|
+
== Requirements
|
10
|
+
|
11
|
+
* jQuery
|
12
|
+
* jQuery_ujs
|
13
|
+
* jQueryUI (including stylesheet and images)
|
14
|
+
|
15
|
+
== Setup
|
16
|
+
|
17
|
+
Add the gem to your Gemfile then run +bundle+ to install it.
|
18
|
+
|
19
|
+
gem 'ajaxcrud'
|
20
|
+
|
21
|
+
Install jQuery and jQueryUI(js and css) using assets on Rails 3.1 by adding the next line to app/assets/javascripts/application.js
|
22
|
+
|
23
|
+
# app/assets/javascripts/application.js
|
24
|
+
//= require jquery
|
25
|
+
//= require jquery_ujs
|
26
|
+
//= require jquery-ui
|
27
|
+
|
28
|
+
And remember to also add the stylesheet and images included on jQueryUI to the app/assets/stylesheets/ folder.
|
29
|
+
|
30
|
+
== Usage
|
31
|
+
|
32
|
+
Theres only one command to run the generator and create a scaffold, and goes as follows:
|
33
|
+
|
34
|
+
rails g ajaxcrud NAME [field:type:boolean field:type:boolean]
|
35
|
+
|
36
|
+
Where <tt>NAME</tt> is the name of the model you are going to create. Additional to that <tt>field</tt> is the name of the attribute you are going to add and <tt>type</tt> is the type of field, just as a regular scaffold. The extra <tt>boolean</tt> in there is to indicate if that attribute is going to be indexed in the search field, it can be <tt>true</tt>, <tt>false</tt> or <tt>blank</tt> being false as default.
|
37
|
+
|
38
|
+
For example, if we are going to create a scaffold for <tt>Person</tt> which will include attributes <tt>name</tt>, <tt>address</tt>, <tt>website</tt> and <tt>phone_number</tt> being <tt>name</tt> and <tt>website</tt> the only attributes that are going to be indexed in the search field, we should run the following command:
|
39
|
+
|
40
|
+
rails g ajaxcrud Person name:string:true address:text website:string:true phone_number:string
|
41
|
+
|
42
|
+
This will create the Ajax scaffold and additional to that a general stylesheet to give some default color to the index table, an ajaxcrud helper to make <tt>index.html.erb</tt> more self-explanatory.
|
43
|
+
|
44
|
+
== Additional Configurations
|
45
|
+
|
46
|
+
You can configurate the default table to show more attributes that the one's indexed, just edit the <tt>show.html.erb</tt> file.
|
47
|
+
|
48
|
+
== Helpers
|
49
|
+
|
50
|
+
Helpers that are going to be added on <tt>index.html.erb</tt> are:
|
51
|
+
|
52
|
+
* ajaxcrud_js(name, new_text, info_text)
|
53
|
+
post a javascript required code inside your index file. Where <tt>name</tt> is the name of your model which in our example is <tt>person</tt>, <tt>new_text</tt> would be the text to show in the dialog box when a user is going to be created and also <tt>info_text</tt> works in a similar way but for the show dialog.
|
54
|
+
|
55
|
+
* ajaxcrud_dialogbox(name)
|
56
|
+
is used to post the code that build the dialog boxes on the file. Where <tt>name</tt> is the name of your model which in our example is <tt>person</tt>.
|
57
|
+
|
58
|
+
* ajaxcrud_notices(name)
|
59
|
+
is included in the place where notices will be shown in a <tt>flash[:notice]</tt> style but with some different finish. Where <tt>name</tt> is the name of your model which in our example is <tt>person</tt>.
|
60
|
+
|
61
|
+
* ajaxcrud_search(name)
|
62
|
+
is the search field used to look for in the table records. Where <tt>name</tt> is the name of your model which in our example is <tt>person</tt>.
|
63
|
+
|
64
|
+
* ajaxcrud_new_link(name)
|
65
|
+
creates the link to enable the New Record dialog. Where <tt>name</tt> is the name of your model which in our example is <tt>person</tt>.
|
66
|
+
|
67
|
+
* ajaxcrud_show_link(path)
|
68
|
+
creates the link to render the <tt>show.html.erb</tt> file of the selected record inside a dialog. Where <tt>path</tt> is the original way to access the show file.
|
69
|
+
|
70
|
+
== Known Bugs
|
71
|
+
|
72
|
+
* When creating the same ajaxcrud twice the <tt>migration</tt> file is going to be created more than once.
|
73
|
+
* If generator <tt>destroy</tt> is used everything is deleted (including the helper, <tt>ajaxcrud.css</tt>,...) of the model you indicate EXCEPT the migration file which needs to be removed manually.
|
74
|
+
* When destroying a model the <tt>ajaxcrud.css</tt> and <tt>ajaxcrud_helper.rb</tt> are also deleted. Since they are being used for all the scaffolds generated you can add them manually and remember to add +include AjaxcrudHelper+ to your app/helpers/application_helper.rb file.
|
75
|
+
|
76
|
+
== Special Thanks
|
77
|
+
|
78
|
+
This gem was made based on some of the tutorial made by 'Nikunj' at the {Tech Journey}[http://codefundas.blogspot.com/2010/12/create-ajax-based-curd-using-rails-3.html]'s website and being adapted to change or add some functionalities to that.
|
79
|
+
|
80
|
+
Also thanks to {Ryan Bates}[http://www.twitter.com/rbates] who helped me find out how to create my first generator and gem, and whose {website}[http://www.railscast.com] is awesome and has helped me a lot learning how to code in Ruby on Rails. Highly Recomended.
|
data/lib/ajaxcrud/version.rb
CHANGED
@@ -1,8 +1,36 @@
|
|
1
1
|
Description:
|
2
|
-
|
2
|
+
Creates a very nice ajax-based scaffold for a model.
|
3
3
|
|
4
4
|
Example:
|
5
|
-
rails
|
5
|
+
rails g ajaxcrud NAME [field:type:boolean field:type:boolean]
|
6
|
+
|
7
|
+
NAME - is the name of the model that is going to be built
|
8
|
+
|
9
|
+
FIELD - the name of the attribute
|
10
|
+
TYPE - the type of the attribute (string, integer, date, float, text, etc)
|
11
|
+
BOOLEAN - true if it's going to be indexed in the search field (default = false)
|
12
|
+
|
13
|
+
Creating table Person with attributes name, address, website and phone number indexing only name and website on the search field:
|
14
|
+
|
15
|
+
rails g ajaxcrud Person name:string:true address:text website:string:true phone_number:string
|
6
16
|
|
7
17
|
This will create:
|
8
|
-
|
18
|
+
db/migrate/{timestamp}_create_{name}.rb
|
19
|
+
app/models/{name}.rb
|
20
|
+
test/unit/{name}_test.rb
|
21
|
+
test/fixtures/{name}.yml
|
22
|
+
app/views/{name}/create.js.erb
|
23
|
+
app/views/{name}/destroy.js.erb
|
24
|
+
app/views/{name}/edit.js.erb
|
25
|
+
app/views/{name}/_form.html.erb
|
26
|
+
app/views/{name}/index.html.erb
|
27
|
+
app/views/{name}/_{name}.html.erb
|
28
|
+
app/views/{name}/search.js.erb
|
29
|
+
app/views/{name}/show.html.erb
|
30
|
+
app/views/{name}/update.js.erb
|
31
|
+
app/controllers/{name}/create.js.erb
|
32
|
+
test/unit/helpers/{name}_helper_test.rb
|
33
|
+
app/helpers/{name}_helper.rb
|
34
|
+
app/helpers/ajaxcrud_helper.rb
|
35
|
+
app/assets/stylesheets/ajaxcrud.css.scss
|
36
|
+
app/assets/stylesheets/images/success.png
|
metadata
CHANGED
@@ -1,35 +1,27 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ajaxcrud
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 9
|
9
|
-
- 0
|
10
|
-
version: 0.9.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Viko Nava
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2011-10-22 00:00:00 Z
|
12
|
+
date: 2011-10-22 00:00:00.000000000Z
|
19
13
|
dependencies: []
|
20
|
-
|
21
|
-
|
22
|
-
email:
|
14
|
+
description: Creates complete scaffolds using ajax to create, edit and destroy on
|
15
|
+
the same page. Also includes a real-time search field.
|
16
|
+
email:
|
23
17
|
- viko.nava@gmail.com
|
24
18
|
executables: []
|
25
|
-
|
26
19
|
extensions: []
|
27
|
-
|
28
20
|
extra_rdoc_files: []
|
29
|
-
|
30
|
-
files:
|
21
|
+
files:
|
31
22
|
- .gitignore
|
32
23
|
- Gemfile
|
24
|
+
- README.rdoc
|
33
25
|
- Rakefile
|
34
26
|
- ajaxcrud.gemspec
|
35
27
|
- lib/ajaxcrud.rb
|
@@ -60,38 +52,28 @@ files:
|
|
60
52
|
- lib/generators/ajaxcrud/templates/views/search.js.erb
|
61
53
|
- lib/generators/ajaxcrud/templates/views/show.html.erb
|
62
54
|
- lib/generators/ajaxcrud/templates/views/update.js.erb
|
63
|
-
homepage:
|
55
|
+
homepage: ''
|
64
56
|
licenses: []
|
65
|
-
|
66
57
|
post_install_message:
|
67
58
|
rdoc_options: []
|
68
|
-
|
69
|
-
require_paths:
|
59
|
+
require_paths:
|
70
60
|
- lib
|
71
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
72
62
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
77
|
-
|
78
|
-
- 0
|
79
|
-
version: "0"
|
80
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
68
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
segments:
|
87
|
-
- 0
|
88
|
-
version: "0"
|
69
|
+
requirements:
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
89
73
|
requirements: []
|
90
|
-
|
91
74
|
rubyforge_project: ajaxcrud
|
92
75
|
rubygems_version: 1.8.10
|
93
76
|
signing_key:
|
94
77
|
specification_version: 3
|
95
78
|
summary: Scaffolding with Ajax
|
96
79
|
test_files: []
|
97
|
-
|