edit_mode 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 38c0c37c354fab2e8bb12c74efdd91f35f759403
4
- data.tar.gz: 389732d6e83c1439e3ecf787555fd1fe31c4ec3d
3
+ metadata.gz: 991ce0ccecb0a6a2e1fe3c4b89beafd161aefd55
4
+ data.tar.gz: af088d26b02ae13dcdbcdf9c9177b85cbb01a69f
5
5
  SHA512:
6
- metadata.gz: acc64b9ac686cdb83ab6e74e941204894fe2c2d34bd82f61aca900c2ed5e3e292f98539e4994d76ebaf52b55e40812277339e076f3feedea51455500cc38a1d6
7
- data.tar.gz: 480cb272a37d72e89e279200b64cb555c79e860bd5e09e74debeb11d697e53ac7c56b7a91f869339b113dc65e1cbcf359523ddfd11221b2dd7aab82e727d904e
6
+ metadata.gz: 46b5159359661938f826158c56a974fe3c679367ddf15810b99073b37ab71011a65fe12a0957a976f76c61ed33924f68453ec0db6646f290a9652a6aec3707c4
7
+ data.tar.gz: d252d3d2e97f74953de2c0a54d6df9aa3dd8dac6a19812483a326b770a1594967928ad43de85293d629f056ae215b8500bdae0d9d3827cefb1ca93aaf95e0a15
data/.gitignore CHANGED
@@ -3,7 +3,6 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
- Gemfile.lock
7
6
  InstalledFiles
8
7
  _yardoc
9
8
  coverage
@@ -16,7 +15,6 @@ test/tmp
16
15
  test/version_tmp
17
16
  tmp
18
17
 
19
- Gemfile.lock
20
18
  test_app/.bundle
21
19
  test_app/db/*.sqlite3
22
20
  test_app/log/*.log
data/.travis.yml CHANGED
@@ -1,9 +1,8 @@
1
1
  rvm:
2
- - 1.9.2
3
- - 2.0.0
2
+ - 2.1.5
4
3
 
5
4
  #env: "RAILS_ENV=test DISPLAY=:99.0"
6
5
 
7
6
  before_script:
8
- - "sh -c 'cd test_app && bundle && bundle exec rake db:drop db:migrate'"
7
+ - "sh -c 'cd test_app && bundle install && bundle exec rake db:drop db:migrate'"
9
8
  # - "sh -e /etc/init.d/xvfb start"
data/Gemfile CHANGED
@@ -32,3 +32,4 @@ gem 'jquery-ui-rails'
32
32
 
33
33
  gem 'coffee-rails'
34
34
  gem 'sqlite3'
35
+ gem 'launchy'
data/Gemfile.lock ADDED
@@ -0,0 +1,204 @@
1
+ GIT
2
+ remote: https://github.com/bernat/best_in_place.git
3
+ revision: df178520bf9ba405baee9528d5dbb630d6ff760c
4
+ specs:
5
+ best_in_place (2.1.0)
6
+ jquery-rails
7
+ rails (>= 3.1)
8
+
9
+ PATH
10
+ remote: .
11
+ specs:
12
+ edit_mode (1.0.1)
13
+ jquery-rails
14
+ jquery-turbolinks
15
+ rails (>= 3.2)
16
+
17
+ GEM
18
+ remote: https://rubygems.org/
19
+ specs:
20
+ actionmailer (3.2.15)
21
+ actionpack (= 3.2.15)
22
+ mail (~> 2.5.4)
23
+ actionpack (3.2.15)
24
+ activemodel (= 3.2.15)
25
+ activesupport (= 3.2.15)
26
+ builder (~> 3.0.0)
27
+ erubis (~> 2.7.0)
28
+ journey (~> 1.0.4)
29
+ rack (~> 1.4.5)
30
+ rack-cache (~> 1.2)
31
+ rack-test (~> 0.6.1)
32
+ sprockets (~> 2.2.1)
33
+ activemodel (3.2.15)
34
+ activesupport (= 3.2.15)
35
+ builder (~> 3.0.0)
36
+ activerecord (3.2.15)
37
+ activemodel (= 3.2.15)
38
+ activesupport (= 3.2.15)
39
+ arel (~> 3.0.2)
40
+ tzinfo (~> 0.3.29)
41
+ activeresource (3.2.15)
42
+ activemodel (= 3.2.15)
43
+ activesupport (= 3.2.15)
44
+ activesupport (3.2.15)
45
+ i18n (~> 0.6, >= 0.6.4)
46
+ multi_json (~> 1.0)
47
+ addressable (2.3.6)
48
+ arel (3.0.3)
49
+ builder (3.0.4)
50
+ capybara (1.1.2)
51
+ mime-types (>= 1.16)
52
+ nokogiri (>= 1.3.3)
53
+ rack (>= 1.0.0)
54
+ rack-test (>= 0.5.4)
55
+ selenium-webdriver (~> 2.0)
56
+ xpath (~> 0.1.4)
57
+ childprocess (0.3.9)
58
+ ffi (~> 1.0, >= 1.0.11)
59
+ coffee-rails (3.2.2)
60
+ coffee-script (>= 2.2.0)
61
+ railties (~> 3.2.0)
62
+ coffee-script (2.2.0)
63
+ coffee-script-source
64
+ execjs
65
+ coffee-script-source (1.6.3)
66
+ diff-lcs (1.1.3)
67
+ erubis (2.7.0)
68
+ eventmachine (1.0.3)
69
+ execjs (2.0.2)
70
+ faye-websocket (0.4.7)
71
+ eventmachine (>= 0.12.0)
72
+ ffi (1.9.3)
73
+ guard (1.0.1)
74
+ ffi (>= 0.5.0)
75
+ thor (~> 0.14.6)
76
+ guard-rspec (0.5.5)
77
+ guard (>= 0.8.4)
78
+ hike (1.2.3)
79
+ http_parser.rb (0.5.3)
80
+ i18n (0.6.5)
81
+ journey (1.0.4)
82
+ jquery-rails (3.0.4)
83
+ railties (>= 3.0, < 5.0)
84
+ thor (>= 0.14, < 2.0)
85
+ jquery-turbolinks (2.1.0)
86
+ railties (>= 3.1.0)
87
+ turbolinks
88
+ jquery-ui-rails (4.1.0)
89
+ railties (>= 3.1.0)
90
+ json (1.8.1)
91
+ launchy (2.4.3)
92
+ addressable (~> 2.3)
93
+ libv8 (3.16.14.3)
94
+ mail (2.5.4)
95
+ mime-types (~> 1.16)
96
+ treetop (~> 1.4.8)
97
+ mime-types (1.25.1)
98
+ mini_portile (0.5.2)
99
+ multi_json (1.8.2)
100
+ nokogiri (1.6.0)
101
+ mini_portile (~> 0.5.0)
102
+ poltergeist (1.0.3)
103
+ capybara (~> 1.1)
104
+ childprocess (~> 0.3)
105
+ faye-websocket (~> 0.4.4)
106
+ http_parser.rb (~> 0.5.3)
107
+ multi_json (~> 1.0)
108
+ polyglot (0.3.3)
109
+ rack (1.4.5)
110
+ rack-cache (1.2)
111
+ rack (>= 0.4)
112
+ rack-ssl (1.3.3)
113
+ rack
114
+ rack-test (0.6.2)
115
+ rack (>= 1.0)
116
+ rails (3.2.15)
117
+ actionmailer (= 3.2.15)
118
+ actionpack (= 3.2.15)
119
+ activerecord (= 3.2.15)
120
+ activeresource (= 3.2.15)
121
+ activesupport (= 3.2.15)
122
+ bundler (~> 1.0)
123
+ railties (= 3.2.15)
124
+ railties (3.2.15)
125
+ actionpack (= 3.2.15)
126
+ activesupport (= 3.2.15)
127
+ rack-ssl (~> 1.3.2)
128
+ rake (>= 0.8.7)
129
+ rdoc (~> 3.4)
130
+ thor (>= 0.14.6, < 2.0)
131
+ rake (10.1.0)
132
+ rdoc (3.12.2)
133
+ json (~> 1.4)
134
+ ref (1.0.5)
135
+ rspec (2.10.0)
136
+ rspec-core (~> 2.10.0)
137
+ rspec-expectations (~> 2.10.0)
138
+ rspec-mocks (~> 2.10.0)
139
+ rspec-core (2.10.1)
140
+ rspec-expectations (2.10.0)
141
+ diff-lcs (~> 1.1.3)
142
+ rspec-mocks (2.10.1)
143
+ rspec-rails (2.10.0)
144
+ actionpack (>= 3.0)
145
+ activesupport (>= 3.0)
146
+ railties (>= 3.0)
147
+ rspec (~> 2.10.0)
148
+ rubyzip (1.0.0)
149
+ sass (3.2.12)
150
+ sass-rails (3.2.6)
151
+ railties (~> 3.2.0)
152
+ sass (>= 3.1.10)
153
+ tilt (~> 1.3)
154
+ selenium-webdriver (2.37.0)
155
+ childprocess (>= 0.2.5)
156
+ multi_json (~> 1.0)
157
+ rubyzip (~> 1.0.0)
158
+ websocket (~> 1.0.4)
159
+ sprockets (2.2.2)
160
+ hike (~> 1.2)
161
+ multi_json (~> 1.0)
162
+ rack (~> 1.0)
163
+ tilt (~> 1.1, != 1.3.0)
164
+ sqlite3 (1.3.8)
165
+ therubyracer (0.12.0)
166
+ libv8 (~> 3.16.14.0)
167
+ ref
168
+ thor (0.14.6)
169
+ tilt (1.4.1)
170
+ treetop (1.4.15)
171
+ polyglot
172
+ polyglot (>= 0.3.1)
173
+ turbolinks (2.5.2)
174
+ coffee-rails
175
+ tzinfo (0.3.38)
176
+ websocket (1.0.7)
177
+ xpath (0.1.4)
178
+ nokogiri (~> 1.3)
179
+
180
+ PLATFORMS
181
+ ruby
182
+
183
+ DEPENDENCIES
184
+ best_in_place (>= 2.0.3)!
185
+ capybara (= 1.1.2)
186
+ coffee-rails
187
+ edit_mode!
188
+ execjs
189
+ guard (= 1.0.1)
190
+ guard-rspec (= 0.5.5)
191
+ jquery-rails (>= 2.2.0)
192
+ jquery-ui-rails
193
+ launchy
194
+ nokogiri
195
+ poltergeist
196
+ rake
197
+ rspec
198
+ rspec-core
199
+ rspec-expectations
200
+ rspec-mocks
201
+ rspec-rails (= 2.10.0)
202
+ sass-rails
203
+ sqlite3
204
+ therubyracer
data/README.md CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  <img src="https://github.com/fiedl/edit_mode/raw/master/test_app/app/assets/images/screenshot.png" height="300" align="right" vspace="20" hspace="20" />
4
4
 
5
- *edit_mode* is a *ruby on rails gem* that allows you to toggle an edit mode on a normal show view.
6
- Think of it as a grouped in-place editing.
5
+ *edit_mode* is a *ruby on rails gem* that allows you to toggle an edit mode on a normal show view.
6
+ Think of it as a grouped in-place editing.
7
7
  This also toggles [best_in_place](https://github.com/bernat/best_in_place) fields.
8
8
 
9
- The edit mode is activated by pressing an 'edit' button on a show view. This shows additional editing tools
10
- and switches on the best_in_place form fields. When editing is finished, use 'save' or 'cancel' buttons to
11
- quit the edit mode and return to a normal show view.
9
+ The edit mode is activated by pressing an 'edit' button on a show view. This shows additional editing tools
10
+ and switches on the best_in_place form fields. When editing is finished, use 'save' or 'cancel' buttons to
11
+ quit the edit mode and return to a normal show view.
12
12
  Several editing groups per page are supported. Thus, you can have several 'boxes' to edit on a page.
13
13
 
14
14
  ## Demo
@@ -36,9 +36,12 @@ Or install it yourself as:
36
36
  In `app/assets/javascripts/application.js`, add:
37
37
 
38
38
  ```javascript
39
+ //= require jquery.turbolinks
39
40
  //= require edit_mode
40
41
  ```
41
-
42
+
43
+ If you experience trouble with javascript, check the correct loading order from [the jquery.turbolinks README](https://github.com/kossnocorp/jquery.turbolinks#usage).
44
+
42
45
  In `app/assets/stylesheets/application.css`, add:
43
46
 
44
47
  ```css
@@ -62,7 +65,7 @@ You can also have several edit_mode_group spans on a page, as shown in the demo
62
65
 
63
66
  ### Tool Buttons
64
67
 
65
- To enter and exit the edit mode, use buttons 'edit', 'save' and 'cancel'. These can be anchors, images, et cetera. They only have to have the correct css classes:
68
+ To enter and exit the edit mode, use buttons 'edit', 'save' and 'cancel'. These can be anchors, images, et cetera. They only have to have the correct css classes:
66
69
 
67
70
  ```html
68
71
  <span class="edit_mode_group">
@@ -129,21 +132,35 @@ and triggers.
129
132
 
130
133
  For example, if you have added a `<span id="my_new_edit_mode_span">...</span>` containing
131
134
  the edit_mode elements using ajax, just call via javascript (jQuery):
132
-
135
+
133
136
  ```javascript
134
137
  $( "#my_new_edit_mode_span" ).apply_edit_mode()
135
- ```
138
+ ```
136
139
 
137
140
  And if you want to enter edit_mode for this span, call instead:
138
-
141
+
139
142
  ```javascript
140
143
  $( "#my_new_edit_mode_span" ).apply_edit_mode().trigger( "edit" )
141
144
  ```
142
145
 
146
+ ### Deactivating the Modal
147
+
148
+ If you do not want the edit mode span to get modal when entering the edit mode, have a look at [the solution to issue #2](https://github.com/fiedl/edit_mode/issues/2).
149
+
143
150
  ## Documentation
144
151
 
145
152
  http://rubydoc.info/github/fiedl/edit_mode/frames
146
153
 
154
+ ## Demo App
155
+
156
+ * http://edit-mode-test-app.herokuapp.com/
157
+ * https://github.com/fiedl/edit_mode/tree/master/test_app
158
+ * Add heroku remote to git: http://stackoverflow.com/questions/5129598
159
+ * `brew install heroku-toolbelt`
160
+ * `heroku keys:add`
161
+ * `heroku git:remote -a edit-mode-test-app`
162
+ * Push test app to heroku: `git subtree push --prefix test_app heroku master` or `git push heroku \`git subtree split --prefix test_app master\`:master --force` ([SO](http://stackoverflow.com/a/10648623/2066546))
163
+
147
164
  ## Contributing
148
165
 
149
166
  1. Fork it
@@ -151,6 +168,3 @@ http://rubydoc.info/github/fiedl/edit_mode/frames
151
168
  3. Commit your changes (`git commit -am 'Added some feature'`)
152
169
  4. Push to the branch (`git push origin my-new-feature`)
153
170
  5. Create new Pull Request
154
-
155
-
156
-
data/edit_mode.gemspec CHANGED
@@ -23,7 +23,8 @@ Gem::Specification.new do |gem|
23
23
 
24
24
  gem.add_dependency "rails", ">= 3.2"
25
25
  gem.add_dependency "jquery-rails"
26
-
26
+ gem.add_dependency 'jquery-turbolinks'
27
+
27
28
  gem.add_development_dependency "rake"
28
29
  gem.add_development_dependency "rspec-rails", ">= 2.8.0"
29
30
  gem.add_development_dependency "nokogiri", ">= 1.5.0"
@@ -6,5 +6,4 @@ ready = ->
6
6
  this.find( ".best_in_place" ).apply_best_in_place()
7
7
  return this
8
8
 
9
- $(document).ready(ready)
10
- $(document).on('page:load', ready)
9
+ $(document).ready(ready)
@@ -31,5 +31,4 @@ ready = ->
31
31
  unless $( event.target ).is( "textarea" )
32
32
  $( this ).closest( ".edit_mode_group" ).trigger( "save" )
33
33
 
34
- $(document).ready(ready)
35
- $(document).on('page:load', ready)
34
+ $(document).ready(ready)
@@ -51,5 +51,4 @@ ready = ->
51
51
  button.effect( "pulsate", { times: 2 }, "fast", callback )
52
52
 
53
53
 
54
- $(document).ready(ready)
55
- $(document).on('page:load', ready)
54
+ $(document).ready(ready)
@@ -12,5 +12,4 @@ ready = ->
12
12
 
13
13
  $( document ).apply_initial_auto_hide()
14
14
 
15
- $(document).ready(ready)
16
- $(document).on('page:load', ready)
15
+ $(document).ready(ready)
@@ -28,5 +28,4 @@ ready = ->
28
28
  , 300 )
29
29
  )
30
30
 
31
- $(document).ready(ready)
32
- $(document).on('page:load', ready)
31
+ $(document).ready(ready)
@@ -31,5 +31,4 @@ ready = ->
31
31
  # Apply this to the whole document in the beginning.
32
32
  $( document ).apply_show_only_in_edit_mode()
33
33
 
34
- $(document).ready(ready)
35
- $(document).on('page:load', ready)
34
+ $(document).ready(ready)
@@ -29,5 +29,4 @@ ready = ->
29
29
  $( document ).apply_edit_mode_add_button_classes()
30
30
 
31
31
 
32
- $(document).ready(ready)
33
- $(document).on('page:load', ready)
32
+ $(document).ready(ready)
@@ -1,3 +1,3 @@
1
1
  module EditMode
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -30,12 +30,12 @@ describe "button behaviour", js: true do
30
30
  describe "edit button" do
31
31
 
32
32
  it "should be visible outside and invisible in edit mode" do
33
- page.should have_selector( ".edit_button", visible: true, count: 2 )
33
+ page.should have_selector( ".edit_button", visible: true, count: 3 )
34
34
  click_on 'edit'
35
- page.should have_selector( ".edit_button", visible: true, count: 1 )
36
- page.should_not have_selector( ".edit_button", visible: true, count: 2 )
37
- click_on 'cancel'
38
35
  page.should have_selector( ".edit_button", visible: true, count: 2 )
36
+ page.should_not have_selector( ".edit_button", visible: true, count: 3 )
37
+ click_on 'cancel'
38
+ page.should have_selector( ".edit_button", visible: true, count: 3 )
39
39
  end
40
40
 
41
41
  it "should activate the edit mode" do
data/test_app/Gemfile CHANGED
@@ -39,7 +39,7 @@ end
39
39
  # gem 'jbuilder'
40
40
 
41
41
  # Use unicorn as the app server
42
- # gem 'unicorn'
42
+ gem 'unicorn'
43
43
 
44
44
  # Deploy with Capistrano
45
45
  # gem 'capistrano'
@@ -51,8 +51,8 @@ gem "mocha", :group => :test
51
51
 
52
52
  # Edit Mode (This is the gem to demonstrate here.)
53
53
  #gem 'edit_mode', git: 'git://github.com/fiedl/edit_mode.git'
54
- gem 'edit_mode', path: '../'
55
-
54
+ gem 'edit_mode', '>= 1.0.1', path: '../'
56
55
 
57
56
  # In-place editing (To show that this gem integrates best_in_place out of the box.)
58
57
  gem 'best_in_place'
58
+ gem 'redcarpet'
@@ -0,0 +1,155 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ edit_mode (1.0.1)
5
+ jquery-rails
6
+ jquery-turbolinks
7
+ rails (>= 3.2)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actionmailer (3.2.11)
13
+ actionpack (= 3.2.11)
14
+ mail (~> 2.4.4)
15
+ actionpack (3.2.11)
16
+ activemodel (= 3.2.11)
17
+ activesupport (= 3.2.11)
18
+ builder (~> 3.0.0)
19
+ erubis (~> 2.7.0)
20
+ journey (~> 1.0.4)
21
+ rack (~> 1.4.0)
22
+ rack-cache (~> 1.2)
23
+ rack-test (~> 0.6.1)
24
+ sprockets (~> 2.2.1)
25
+ activemodel (3.2.11)
26
+ activesupport (= 3.2.11)
27
+ builder (~> 3.0.0)
28
+ activerecord (3.2.11)
29
+ activemodel (= 3.2.11)
30
+ activesupport (= 3.2.11)
31
+ arel (~> 3.0.2)
32
+ tzinfo (~> 0.3.29)
33
+ activeresource (3.2.11)
34
+ activemodel (= 3.2.11)
35
+ activesupport (= 3.2.11)
36
+ activesupport (3.2.11)
37
+ i18n (~> 0.6)
38
+ multi_json (~> 1.0)
39
+ arel (3.0.3)
40
+ best_in_place (2.1.0)
41
+ jquery-rails
42
+ rails (~> 3.1)
43
+ builder (3.0.4)
44
+ coffee-rails (3.2.2)
45
+ coffee-script (>= 2.2.0)
46
+ railties (~> 3.2.0)
47
+ coffee-script (2.2.0)
48
+ coffee-script-source
49
+ execjs
50
+ coffee-script-source (1.6.3)
51
+ erubis (2.7.0)
52
+ execjs (2.0.2)
53
+ hike (1.2.3)
54
+ i18n (0.6.11)
55
+ journey (1.0.4)
56
+ jquery-rails (3.1.2)
57
+ railties (>= 3.0, < 5.0)
58
+ thor (>= 0.14, < 2.0)
59
+ jquery-turbolinks (2.1.0)
60
+ railties (>= 3.1.0)
61
+ turbolinks
62
+ jquery-ui-rails (4.1.0)
63
+ railties (>= 3.1.0)
64
+ json (1.8.1)
65
+ kgio (2.9.2)
66
+ libv8 (3.16.14.3)
67
+ mail (2.4.4)
68
+ i18n (>= 0.4.0)
69
+ mime-types (~> 1.16)
70
+ treetop (~> 1.4.8)
71
+ metaclass (0.0.1)
72
+ mime-types (1.25.1)
73
+ mocha (0.14.0)
74
+ metaclass (~> 0.0.1)
75
+ multi_json (1.10.1)
76
+ nifty-generators (0.4.6)
77
+ pg (0.17.0)
78
+ polyglot (0.3.5)
79
+ rack (1.4.5)
80
+ rack-cache (1.2)
81
+ rack (>= 0.4)
82
+ rack-ssl (1.3.4)
83
+ rack
84
+ rack-test (0.6.2)
85
+ rack (>= 1.0)
86
+ rails (3.2.11)
87
+ actionmailer (= 3.2.11)
88
+ actionpack (= 3.2.11)
89
+ activerecord (= 3.2.11)
90
+ activeresource (= 3.2.11)
91
+ activesupport (= 3.2.11)
92
+ bundler (~> 1.0)
93
+ railties (= 3.2.11)
94
+ railties (3.2.11)
95
+ actionpack (= 3.2.11)
96
+ activesupport (= 3.2.11)
97
+ rack-ssl (~> 1.3.2)
98
+ rake (>= 0.8.7)
99
+ rdoc (~> 3.4)
100
+ thor (>= 0.14.6, < 2.0)
101
+ raindrops (0.13.0)
102
+ rake (10.3.2)
103
+ rdoc (3.12.2)
104
+ json (~> 1.4)
105
+ redcarpet (3.2.0)
106
+ ref (1.0.5)
107
+ sass (3.2.12)
108
+ sass-rails (3.2.6)
109
+ railties (~> 3.2.0)
110
+ sass (>= 3.1.10)
111
+ tilt (~> 1.3)
112
+ sprockets (2.2.3)
113
+ hike (~> 1.2)
114
+ multi_json (~> 1.0)
115
+ rack (~> 1.0)
116
+ tilt (~> 1.1, != 1.3.0)
117
+ sqlite3 (1.3.8)
118
+ therubyracer (0.12.0)
119
+ libv8 (~> 3.16.14.0)
120
+ ref
121
+ thor (0.19.1)
122
+ tilt (1.4.1)
123
+ treetop (1.4.15)
124
+ polyglot
125
+ polyglot (>= 0.3.1)
126
+ turbolinks (2.5.2)
127
+ coffee-rails
128
+ tzinfo (0.3.42)
129
+ uglifier (2.3.1)
130
+ execjs (>= 0.3.0)
131
+ json (>= 1.8.0)
132
+ unicorn (4.8.3)
133
+ kgio (~> 2.6)
134
+ rack
135
+ raindrops (~> 0.7)
136
+
137
+ PLATFORMS
138
+ ruby
139
+
140
+ DEPENDENCIES
141
+ best_in_place
142
+ coffee-rails (~> 3.2.1)
143
+ edit_mode (>= 1.0.1)!
144
+ jquery-rails
145
+ jquery-ui-rails
146
+ mocha
147
+ nifty-generators
148
+ pg
149
+ rails (= 3.2.11)
150
+ redcarpet
151
+ sass-rails (~> 3.2.3)
152
+ sqlite3
153
+ therubyracer
154
+ uglifier (>= 1.0.3)
155
+ unicorn
data/test_app/README.md CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  <img src="https://github.com/fiedl/edit_mode/raw/master/test_app/app/assets/images/screenshot.png" height="300" align="right" vspace="20" hspace="20" />
4
4
 
5
- *edit_mode* is a *ruby on rails gem* that allows you to toggle an edit mode on a normal show view.
6
- Think of it as a grouped in-place editing.
5
+ *edit_mode* is a *ruby on rails gem* that allows you to toggle an edit mode on a normal show view.
6
+ Think of it as a grouped in-place editing.
7
7
  This also toggles [best_in_place](https://github.com/bernat/best_in_place) fields.
8
8
 
9
- The edit mode is activated by pressing an 'edit' button on a show view. This shows additional editing tools
10
- and switches on the best_in_place form fields. When editing is finished, use 'save' or 'cancel' buttons to
11
- quit the edit mode and return to a normal show view.
9
+ The edit mode is activated by pressing an 'edit' button on a show view. This shows additional editing tools
10
+ and switches on the best_in_place form fields. When editing is finished, use 'save' or 'cancel' buttons to
11
+ quit the edit mode and return to a normal show view.
12
12
  Several editing groups per page are supported. Thus, you can have several 'boxes' to edit on a page.
13
13
 
14
14
  ## Demo
@@ -36,9 +36,12 @@ Or install it yourself as:
36
36
  In `app/assets/javascripts/application.js`, add:
37
37
 
38
38
  ```javascript
39
+ //= require jquery.turbolinks
39
40
  //= require edit_mode
40
41
  ```
41
-
42
+
43
+ If you experience trouble with javascript, check the correct loading order from [the jquery.turbolinks README](https://github.com/kossnocorp/jquery.turbolinks#usage).
44
+
42
45
  In `app/assets/stylesheets/application.css`, add:
43
46
 
44
47
  ```css
@@ -62,7 +65,7 @@ You can also have several edit_mode_group spans on a page, as shown in the demo
62
65
 
63
66
  ### Tool Buttons
64
67
 
65
- To enter and exit the edit mode, use buttons 'edit', 'save' and 'cancel'. These can be anchors, images, et cetera. They only have to have the correct css classes:
68
+ To enter and exit the edit mode, use buttons 'edit', 'save' and 'cancel'. These can be anchors, images, et cetera. They only have to have the correct css classes:
66
69
 
67
70
  ```html
68
71
  <span class="edit_mode_group">
@@ -129,21 +132,35 @@ and triggers.
129
132
 
130
133
  For example, if you have added a `<span id="my_new_edit_mode_span">...</span>` containing
131
134
  the edit_mode elements using ajax, just call via javascript (jQuery):
132
-
135
+
133
136
  ```javascript
134
137
  $( "#my_new_edit_mode_span" ).apply_edit_mode()
135
- ```
138
+ ```
136
139
 
137
140
  And if you want to enter edit_mode for this span, call instead:
138
-
141
+
139
142
  ```javascript
140
143
  $( "#my_new_edit_mode_span" ).apply_edit_mode().trigger( "edit" )
141
144
  ```
142
145
 
146
+ ### Deactivating the Modal
147
+
148
+ If you do not want the edit mode span to get modal when entering the edit mode, have a look at [the solution to issue #2](https://github.com/fiedl/edit_mode/issues/2).
149
+
143
150
  ## Documentation
144
151
 
145
152
  http://rubydoc.info/github/fiedl/edit_mode/frames
146
153
 
154
+ ## Demo App
155
+
156
+ * http://edit-mode-test-app.herokuapp.com/
157
+ * https://github.com/fiedl/edit_mode/tree/master/test_app
158
+ * Add heroku remote to git: http://stackoverflow.com/questions/5129598
159
+ * `brew install heroku-toolbelt`
160
+ * `heroku keys:add`
161
+ * `heroku git:remote -a edit-mode-test-app`
162
+ * Push test app to heroku: `git subtree push --prefix test_app heroku master` or `git push heroku \`git subtree split --prefix test_app master\`:master --force` ([SO](http://stackoverflow.com/a/10648623/2066546))
163
+
147
164
  ## Contributing
148
165
 
149
166
  1. Fork it
@@ -151,6 +168,3 @@ http://rubydoc.info/github/fiedl/edit_mode/frames
151
168
  3. Commit your changes (`git commit -am 'Added some feature'`)
152
169
  4. Push to the branch (`git push origin my-new-feature`)
153
170
  5. Create new Pull Request
154
-
155
-
156
-
@@ -6,4 +6,8 @@
6
6
  float: right
7
7
 
8
8
  p.global_tools
9
- margin-top: 70px
9
+ margin-top: 70px
10
+
11
+ textarea
12
+ width: 99%
13
+ height: 150px
@@ -0,0 +1,21 @@
1
+ module MarkdownHelper
2
+ # This method returns the given markdown code rendered as html.
3
+ # Have a look at these sources:
4
+ # * http://railscasts.com/episodes/272-markdown-with-redcarpet
5
+ # * https://github.com/vmg/redcarpet
6
+ # * http://daringfireball.net/projects/markdown/syntax
7
+ #
8
+ def markdown(text, options = nil)
9
+ options ||= { hard_wrap: true, filter_html: true, autolink: true, no_intraemphasis: true, fenced_code: true, gh_blockcode: true }
10
+ Redcarpet::Markdown.new(Redcarpet::Render::HTML, options).render(sanitize(text) || "").html_safe
11
+ end
12
+ end
13
+
14
+ # In order to use the markdown helper method with best_in_place's :display_with argument,
15
+ # the ActionView::Base has to include the markdown method.
16
+ #
17
+ module ActionView
18
+ class Base
19
+ include MarkdownHelper
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  class User < ActiveRecord::Base
2
- attr_accessible :first_name, :last_name, :date_of_birth
2
+ attr_accessible :first_name, :last_name, :date_of_birth, :description
3
3
  end
@@ -26,6 +26,17 @@
26
26
  </p>
27
27
  </div>
28
28
 
29
+ <div class="edit_mode_group">
30
+ <span class="edit_mode_tools">
31
+ <a class="edit_button" href="#">edit</a>
32
+ <a class="cancel_button" href="#">cancel</a>
33
+ <a class="save_button" href="#">save</a>
34
+ </span>
35
+
36
+ <h2>Markdown Description</h2>
37
+ <%= best_in_place @user, :description, display_with: :markdown, type: :textarea %>
38
+ </div>
39
+
29
40
  <div class="edit_mode_group">
30
41
  <span class="edit_mode_tools">
31
42
  <a class="edit_button" href="#">edit</a>
@@ -0,0 +1,5 @@
1
+ class AddDescriptionToUsers < ActiveRecord::Migration
2
+ def change
3
+ add_column :users, :description, :text
4
+ end
5
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20120607231941) do
14
+ ActiveRecord::Schema.define(:version => 20141107180745) do
15
15
 
16
16
  create_table "users", :force => true do |t|
17
17
  t.string "first_name"
@@ -19,6 +19,7 @@ ActiveRecord::Schema.define(:version => 20120607231941) do
19
19
  t.date "date_of_birth"
20
20
  t.datetime "created_at", :null => false
21
21
  t.datetime "updated_at", :null => false
22
+ t.text "description"
22
23
  end
23
24
 
24
25
  end
metadata CHANGED
@@ -1,97 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: edit_mode
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Fiedlschuster
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-28 00:00:00.000000000 Z
11
+ date: 2014-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jquery-rails
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: jquery-turbolinks
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - '>='
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
61
  version: '0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - '>='
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rspec-rails
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - '>='
73
+ - - ">="
60
74
  - !ruby/object:Gem::Version
61
75
  version: 2.8.0
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - '>='
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: 2.8.0
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: nokogiri
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - '>='
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
89
  version: 1.5.0
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - '>='
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: 1.5.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: capybara
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - '>='
101
+ - - ">="
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - '>='
108
+ - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  description: The edit mode is activated by pressing an 'edit' button on a show view.
@@ -105,10 +119,11 @@ executables: []
105
119
  extensions: []
106
120
  extra_rdoc_files: []
107
121
  files:
108
- - .gitignore
109
- - .rspec
110
- - .travis.yml
122
+ - ".gitignore"
123
+ - ".rspec"
124
+ - ".travis.yml"
111
125
  - Gemfile
126
+ - Gemfile.lock
112
127
  - Guardfile
113
128
  - LICENSE
114
129
  - README.md
@@ -137,6 +152,7 @@ files:
137
152
  - spec/spec_helper.rb
138
153
  - test_app/.gitignore
139
154
  - test_app/Gemfile
155
+ - test_app/Gemfile.lock
140
156
  - test_app/README.md
141
157
  - test_app/Rakefile
142
158
  - test_app/app/assets/images/rails.png
@@ -153,6 +169,7 @@ files:
153
169
  - test_app/app/helpers/application_helper.rb
154
170
  - test_app/app/helpers/error_messages_helper.rb
155
171
  - test_app/app/helpers/layout_helper.rb
172
+ - test_app/app/helpers/markdown_helper.rb
156
173
  - test_app/app/helpers/users_helper.rb
157
174
  - test_app/app/mailers/.gitkeep
158
175
  - test_app/app/models/.gitkeep
@@ -182,6 +199,7 @@ files:
182
199
  - test_app/config/locales/en.yml
183
200
  - test_app/config/routes.rb
184
201
  - test_app/db/migrate/20120607231941_create_users.rb
202
+ - test_app/db/migrate/20141107180745_add_description_to_users.rb
185
203
  - test_app/db/schema.rb
186
204
  - test_app/db/seeds.rb
187
205
  - test_app/lib/assets/.gitkeep
@@ -208,17 +226,17 @@ require_paths:
208
226
  - lib
209
227
  required_ruby_version: !ruby/object:Gem::Requirement
210
228
  requirements:
211
- - - '>='
229
+ - - ">="
212
230
  - !ruby/object:Gem::Version
213
231
  version: '0'
214
232
  required_rubygems_version: !ruby/object:Gem::Requirement
215
233
  requirements:
216
- - - '>='
234
+ - - ">="
217
235
  - !ruby/object:Gem::Version
218
236
  version: '0'
219
237
  requirements: []
220
238
  rubyforge_project:
221
- rubygems_version: 2.0.3
239
+ rubygems_version: 2.2.2
222
240
  signing_key:
223
241
  specification_version: 4
224
242
  summary: Toggle an edit mode on a show view. Think of it as a grouped in-place editing.