backbone_form_helper 0.0.1.1.alpha → 0.0.1.2.alpha

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.md CHANGED
@@ -5,13 +5,15 @@ This Rails gem provide javascript form helper based on Rails principle like 'f.t
5
5
  template for each of them (eg. /templates/text_field). Now are templates
6
6
  created in Twitter bootstrap style.
7
7
 
8
- **This is still alpha.**
8
+ #### This is still alpha.
9
+
9
10
 
10
11
  ## Installation
11
12
 
12
13
  External dependencies:
13
14
 
14
15
  * underscore.js
16
+ * sass-rails
15
17
  * coffee-rails for assets (now js are written in .coffee)
16
18
 
17
19
  Add this line to your application's Gemfile:
@@ -26,6 +28,13 @@ Or install it yourself as:
26
28
 
27
29
  $ gem install backbone_form_helper
28
30
 
31
+ Run this from command line:
32
+
33
+ $ rails g backbone_form_helper:copy
34
+
35
+ This will copy scss/css and coffee script files into your
36
+ vendor/assets/javascripts(stylesheets) directory. If you set as argument
37
+ different destination, it will be copied there (eg. 'app/assets/').
29
38
 
30
39
  Add this line into your application.js:
31
40
 
@@ -39,40 +48,116 @@ Add this line into your application.scss:
39
48
  @import 'form_helper/form_helper';
40
49
  ```
41
50
 
51
+ Templates for fields are in directory 'javascripts/form_helper/templates' so you can change them by your needs. They are in eco templates.
52
+
42
53
  ## Helper list
43
54
  For now:
44
55
 
45
- * label
46
- * text_field
47
- * text_area
48
- * select
49
- * select_tag
50
- * check_box
51
- * date_field
56
+ ### new FormHelper(model, options=optional)
57
+ `f = new FormHelper @task` -> take prefix for fields name from class name of model. If task is instance of class Task, then **'f.text_field :name'** will generate name **task[name]**
58
+
59
+ `f = new FormHelper @task, {name: 'issue'}` -> **'f.text_field :name'** will generate **issue[name]**
60
+ ### label(method, text=optional, {html_options=optional})
61
+ Return tag of label. If model has error on this method class 'error' will be added.
62
+
63
+ ```rhtml
64
+ f.label 'name'
65
+ # => <label for="task_name">Name</label>
66
+ f.label :name, 'Title'
67
+ # => <label for="task_name">Title</label>
68
+ f.label :name, {class: 'red bold'}
69
+ # => <label for="task_name" class="red bold">Name</label>
70
+
71
+ ```
72
+ ### text_field(method, value=optional, html_options={optional})
73
+ Return text field with prefilled value from model if value isn't directly defined. Added class 'error' if model has error on method and show errors on method.
74
+
75
+ ```rhtml
76
+ f.text_field 'name'
77
+ # => <input type="text" id="task_name" name="task[name]" value="#{model.name value}" />
78
+ # => <span class="help-inline">#{errors on name}</span>
79
+
80
+ f.text_field 'name', 'John'
81
+ # => <input type="text" id="task_name" name="task[name]" value="John" />
82
+ # => <span class="help-inline">#{errors on name}</span>
83
+
84
+ f.text_field 'name', {placeholder: 'name of person', class: 'mandatory'}
85
+ # => <input type="text" id="task_name" name="task[name]" placeholder="name of person" class="mandatory"/>
86
+ # => <span class="help-inline">#{errors on name}</span>
87
+ ```
88
+ ### text_area(method, value=optional, html_options={optional})
89
+ Same as text_field but with textarea tag.
90
+
91
+ ### select(method, options, html_options={optional})
92
+ Return select tag with set options and selected option by value of method on model if value isn't set directly.
93
+
94
+ ```rhtml
95
+ f.select 'group_id', {values: _.map(@groups, (g) -> [g.get('_id'), g.get('name')])}, {class: 'mandatory'}
96
+ # => <select id="task_group_id" name="task[group_id]" class="mandatory">#{generated options}</option>
97
+
98
+ f.select 'group_id', {values: _.map(@groups, (g) -> [g.get('_id'), g.get('name')]), value: '12'}
99
+ # => return select tag with selected option with value '12'
100
+ ```
101
+ ### select_tag
102
+ Similar as 'select', but is not relate to model (like in RoR)
103
+
104
+ ```rhtml
105
+ f.select_tag 'only_group_id', {values: _.map(@groups, (g) -> [g.get('_id'), g.get('name')]), value: '12'}
106
+ # => <select id="only_group_id" name="only_group_id" class="mandatory">#{generated options}</option>
107
+ ```
108
+ ### check_box(method, value=optional, html_options={optional})
109
+
110
+ ```rhtml
111
+ f.check_box 'is_done'
112
+ # =><label class="checkbox">
113
+ <input id="task_is_done" name="task[is_done]" type="hidden" value="false">
114
+ <input id="task_is_done" name="task[is_done]" type="checkbox"
115
+ value="true" #{'checked' if method of model is 1 or true}>
116
+ </label>
117
+
118
+ f.check_box 'is_done', {title: 'Tick this for done'}
119
+ # =><label class="checkbox">
120
+ <input id="task_is_done" name="task[is_done]" type="hidden" value="false">
121
+ <input id="task_is_done" name="task[is_done]" type="checkbox"
122
+ value="true" #{'checked' if method of model is 1 or true}>
123
+ Tick this for done
124
+ </label>
125
+ ```
126
+ ### date_field
127
+ Return bootstrap-datepicker date field (see on [http://www.eyecon.ro/bootstrap-datepicker](http://))
128
+
129
+ ```rhtml
130
+ f.date_field 'date', class: 'text_field', placeholder: 'date'
131
+ ```
52
132
 
53
133
  ## Usage
54
134
 
55
- <% form = new FormHelper @task %>
56
- <%- form.check_box 'is_done', title: 'Is done' %>
57
- <%- form.date_field 'date', class: 'text_field', placeholder: 'datum' %>
58
- <%- form.text_area 'description', placeholder: 'ukol' %>
59
- <%- form.select 'group_id', values: _.map(@groups, (g) -> [g.get('_id'), g.get('name')]) %>
60
- <%- form.select 'user_id', values: _.map(@users, (g) -> [g.get('_id'), g.get('name')]) %>
61
-
135
+ ```rhtml
136
+ <% form = new FormHelper @task %>
137
+ <%- form.check_box 'is_done', title: 'Is done' %>
138
+ <%- form.date_field 'date', class: 'text_field', placeholder: 'datum' %>
139
+ <%- form.text_area 'description', placeholder: 'ukol' %>
140
+ <%- form.select 'group_id', values: _.map(@groups, (g) -> [g.get('_id'), g.get('name')]) %>
141
+ <%- form.select 'user_id', values: _.map(@users, (g) -> [g.get('_id'), g.get('name')]) %>
142
+ ````
62
143
 
63
144
  Value and errors are taken from model automaticly how Rails do it and shown in template (eg. text_field template):
64
145
 
65
- <input type="text" id="<%= @field_id %>" <%- @unfold_options %> name="<%= @field_name %>" value="<%= @value %>" />
66
- <span class="help-inline">
67
- <%= @errors if @errors %>
68
- </span>
146
+ ```rhtml
147
+ <input type="text" id="<%= @field_id %>" <%- @unfold_options %> name="<%= @field_name %>" value="<%= @value %>" />
148
+ <span class="help-inline">
149
+ <%= @errors if @errors %>
150
+ </span>
151
+ ```
69
152
 
70
153
  so after render when model has error on name (model.errors['name'] or model.get('errors')['name']) it looks like:
71
154
 
72
- <input type="text" id="task_name" placeholder="ukol" class="error" name="task[name]" value="">
73
- <span class="help-inline">
74
- can't be blank
75
- </span>
155
+ ```rhtml
156
+ <input type="text" id="task_name" placeholder="ukol" class="error" name="task[name]" value="">
157
+ <span class="help-inline">
158
+ can't be blank
159
+ </span>
160
+ ```
76
161
 
77
162
  ## Contributing
78
163
 
@@ -81,3 +166,4 @@ so after render when model has error on name (model.errors['name'] or model.get(
81
166
  3. Commit your changes (`git commit -am 'Added some feature'`)
82
167
  4. Push to the branch (`git push origin my-new-feature`)
83
168
  5. Create new Pull Request
169
+
@@ -0,0 +1,4 @@
1
+ module BackboneFormHelper
2
+ class Railtie < ::Rails::Railtie
3
+ end
4
+ end
@@ -1,3 +1,3 @@
1
1
  module BackboneFormHelper
2
- VERSION = "0.0.1.1.alpha"
2
+ VERSION = "0.0.1.2.alpha"
3
3
  end
@@ -1,5 +1,5 @@
1
- require "backbone_form_helper/version"
2
- require "backbone_form_helper/engine"
3
-
4
1
  module BackboneFormHelper
5
2
  end
3
+ require "backbone_form_helper/version"
4
+ require "backbone_form_helper/engine"
5
+ require 'backbone_form_helper/railtie' if defined?(Rails::Railtie)
@@ -0,0 +1,14 @@
1
+ module BackboneFormHelper
2
+ module Generators
3
+ class CopyGenerator < ::Rails::Generators::Base
4
+ desc "Copy files into your project (default vendor/assetes/..)"
5
+ source_root File.expand_path('../../../../../vendor/assets/', __FILE__)
6
+ argument :destination, type: :string, default: 'vendor/assets/'
7
+
8
+ def create_initializer
9
+ directory "#{source_paths.first}/javascripts/form_helper", "#{destination}javascripts/form_helper"
10
+ directory "#{source_paths.first}/stylesheets/form_helper", "#{destination}stylesheets/form_helper"
11
+ end
12
+ end
13
+ end
14
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backbone_form_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.1.alpha
4
+ version: 0.0.1.2.alpha
5
5
  prerelease: 8
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-17 00:00:00.000000000 Z
12
+ date: 2012-11-18 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Form helper for backbone based on Rails priciple -> f.text_field :name
15
15
  email:
@@ -26,7 +26,9 @@ files:
26
26
  - backbone_form_helper.gemspec
27
27
  - lib/backbone_form_helper.rb
28
28
  - lib/backbone_form_helper/engine.rb
29
+ - lib/backbone_form_helper/railtie.rb
29
30
  - lib/backbone_form_helper/version.rb
31
+ - lib/rails/generators/backbone_form_helper/copy_generator.rb
30
32
  - vendor/assets/javascripts/form_helper/bootstrap-datepicker.js
31
33
  - vendor/assets/javascripts/form_helper/form_helper.js.coffee
32
34
  - vendor/assets/javascripts/form_helper/templates/check_box.jst.eco