edit_mode 1.0.0 → 1.0.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.
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.