rest_in_place 2.1.1 → 2.3.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.
- checksums.yaml +15 -0
- data/MIT-LICENSE +1 -1
- data/README.markdown +8 -6
- data/lib/assets/javascripts/rest_in_place/index.js +1 -1
- data/lib/assets/javascripts/rest_in_place/{rest_in_place.coffee.erb → rest_in_place.js.coffee.erb} +39 -13
- data/lib/rest_in_place/version.rb +1 -1
- data/rest_in_place.gemspec +1 -1
- metadata +12 -11
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZDA3N2Y3M2JmODg2OWI5YmExM2Q1ZDA0MzdkNTQ4OGFjODc2MzgxMw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MTk3ZTc1YTgyOWQxODI5YmIwMjdiMGRhYThhOGNlYTAyNTU3OGViMA==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NDE5ZWRmYWQ2ZWNmNzUzZmMyNGQ1ZTBhOTEwYzNhOWFhOTRhZTc0MmRkZjQ5
|
10
|
+
ZjM1YTcxMGQxY2IxMzk1MjdjNDZiYmJkZDQ2ZmJiZGFkYTUyYzU4OTlkYmEz
|
11
|
+
Mjk3YWNmZjBhNDQxOWFiMmVmNmM0OGFjYTdhNjEwOTU5MmQ5MDQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MDYzYTMwMWQ3ZjA3YmU5MzZhNTNhZmExYTQ4ZmZkY2U3NGQyODEwZjQzMmE0
|
14
|
+
MWJkOTM0YTU1NjRmN2Y3Yjc0OTRkNjkwOTE2MDJlNTMyNGY1YTAzN2YwZjUz
|
15
|
+
MDAwMmMyZTU0Y2E0MGFiOWRlZGI3ZmZiYmJmNTlmMjJkZjRmNGE=
|
data/MIT-LICENSE
CHANGED
data/README.markdown
CHANGED
@@ -102,7 +102,7 @@ follows:
|
|
102
102
|
|
103
103
|
- put attributes into the element, like this:
|
104
104
|
|
105
|
-
<span class="rest-in-place" data-url="/users/1" data-object="user" data-attribute="name">
|
105
|
+
<span class="rest-in-place" data-url="/users/1" data-object="user" data-attribute="name" data-placeholder="Enter a name">
|
106
106
|
<%= @user.name %>
|
107
107
|
</span>
|
108
108
|
|
@@ -158,6 +158,8 @@ it's associated with:
|
|
158
158
|
Triggering the event is the first thing that happens, before any processing
|
159
159
|
and form building takes place. That means uou can use this event to modify
|
160
160
|
the content of the element (for example to remove number/date formatting).
|
161
|
+
- `ready.rest-in-place` when the form has been built. This event can be used
|
162
|
+
e.g. to change the size of the field or textarea.
|
161
163
|
- `success.rest-in-place` with the data retrieved from the server as an
|
162
164
|
extra parameter after a successful save on the server.
|
163
165
|
This event is triggered at the very latest moment, after the element has
|
@@ -187,9 +189,9 @@ Your app/controllers/users_controller.rb:
|
|
187
189
|
class UsersController < ApplicationController
|
188
190
|
def show
|
189
191
|
@user = User.find params[:id]
|
190
|
-
respond_to do |
|
191
|
-
|
192
|
-
|
192
|
+
respond_to do |format|
|
193
|
+
format.html
|
194
|
+
format.json {render :json => @user}
|
193
195
|
end
|
194
196
|
end
|
195
197
|
|
@@ -260,5 +262,5 @@ If you send pull requests be sure to also add tests and make sure the existing
|
|
260
262
|
tests pass.
|
261
263
|
|
262
264
|
|
263
|
-
|
264
|
-
|
265
|
+
Copyright (c) 2013 [Jan Varwig], released under the MIT license
|
266
|
+
|
@@ -1 +1 @@
|
|
1
|
-
//= require ./rest_in_place
|
1
|
+
//= require ./rest_in_place
|
data/lib/assets/javascripts/rest_in_place/{rest_in_place.coffee.erb → rest_in_place.js.coffee.erb}
RENAMED
@@ -10,23 +10,25 @@ class RestInPlaceEditor
|
|
10
10
|
@createClickHandler()
|
11
11
|
|
12
12
|
@$element.click(@clickHandler)
|
13
|
+
|
14
|
+
@updateDisplayValue(@$element.text())
|
13
15
|
|
14
16
|
# ## Public interface functions ############################################
|
15
17
|
|
16
18
|
# Toggle the element associated with this editor from normal to a form field
|
17
19
|
activate : ->
|
20
|
+
@oldValue = @elementHTML()
|
18
21
|
@$element.trigger('activate.rest-in-place')
|
19
|
-
@oldValue = @$element.html()
|
20
22
|
@$element.addClass('rip-active')
|
21
23
|
@$element.unbind('click', @clickHandler)
|
22
24
|
@activateForm()
|
25
|
+
@$element.trigger('ready.rest-in-place')
|
23
26
|
|
24
27
|
# Restore the element to its default state
|
25
28
|
abort : ->
|
26
29
|
@$element.trigger('abort.rest-in-place')
|
27
|
-
|
28
|
-
|
29
|
-
.removeClass('rip-active')
|
30
|
+
@updateDisplayValue(@oldValue)
|
31
|
+
@$element.removeClass('rip-active')
|
30
32
|
.click(@clickHandler)
|
31
33
|
|
32
34
|
# Take the changes a user has made and send them to the server.
|
@@ -104,15 +106,17 @@ class RestInPlaceEditor
|
|
104
106
|
@formType = @formType || $(parent).attr("data-formtype")
|
105
107
|
@objectName = @objectName || $(parent).attr("data-object")
|
106
108
|
@attributeName = @attributeName || $(parent).attr("data-attribute")
|
109
|
+
@placeholder = @placeholder || $(parent).attr("data-placeholder")
|
107
110
|
|
108
111
|
@$element.parents().each (index, parent) =>
|
109
112
|
@objectName = @objectName || res[1] if res = parent.id.match(/^(\w+)_(\d+)$/i)
|
110
113
|
|
111
|
-
@url = @$element.attr("data-url")
|
112
|
-
@formType = @$element.attr("data-formtype")
|
113
|
-
@objectName = @$element.attr("data-object")
|
114
|
-
@attributeName = @$element.attr("data-attribute")
|
115
|
-
|
114
|
+
@url = @$element.attr("data-url") || @url || document.location.pathname
|
115
|
+
@formType = @$element.attr("data-formtype") || @formType || "input"
|
116
|
+
@objectName = @$element.attr("data-object") || @objectName
|
117
|
+
@attributeName = @$element.attr("data-attribute") || @attributeName
|
118
|
+
@placeholder = @$element.attr("data-placeholder") || @placeholder || ''
|
119
|
+
|
116
120
|
# Overwrites formtype specific method implementations during initialization
|
117
121
|
bindForm : ->
|
118
122
|
@activateForm = RestInPlaceEditor.forms[@formType].activateForm
|
@@ -145,12 +149,26 @@ class RestInPlaceEditor
|
|
145
149
|
data[@objectName][@attributeName]
|
146
150
|
else
|
147
151
|
data[@attributeName]
|
148
|
-
|
152
|
+
|
153
|
+
updateDisplayValue : (value) ->
|
154
|
+
if $.trim(value).length < 1
|
155
|
+
@$element.html(@placeholderHTML())
|
156
|
+
else
|
157
|
+
@$element.text(value)
|
158
|
+
|
159
|
+
placeholderHTML : ->
|
160
|
+
"""<span class="rest-in-placeholder">#{@placeholder}</span>"""
|
161
|
+
|
162
|
+
elementHTML: ->
|
163
|
+
value = @$element.html()
|
164
|
+
value = '' if value == @placeholderHTML()
|
165
|
+
value
|
166
|
+
|
149
167
|
# ## Handlers ##############################################################
|
150
168
|
|
151
169
|
# Handles the successful response from the server
|
152
170
|
loadSuccessCallback : (data) ->
|
153
|
-
|
171
|
+
@updateDisplayValue(@extractAttributeFromData(data))
|
154
172
|
@$element.click(@clickHandler)
|
155
173
|
@$element.removeClass('rip-active')
|
156
174
|
@$element.trigger('success.rest-in-place', data)
|
@@ -173,7 +191,11 @@ class RestInPlaceEditor
|
|
173
191
|
RestInPlaceEditor.forms =
|
174
192
|
"input" :
|
175
193
|
activateForm : ->
|
176
|
-
|
194
|
+
value = $.trim(@elementHTML())
|
195
|
+
@$element.html("""<form action="javascript:void(0)" style="display:inline;">
|
196
|
+
<input type="text" class="rest-in-place-#{@attributeName}" placeholder="#{@placeholder}">
|
197
|
+
</form>""")
|
198
|
+
@$element.find('input').val(value)
|
177
199
|
@$element.find('input')[0].select()
|
178
200
|
@$element.find("form").submit =>
|
179
201
|
@update()
|
@@ -187,7 +209,11 @@ RestInPlaceEditor.forms =
|
|
187
209
|
|
188
210
|
"textarea" :
|
189
211
|
activateForm : ->
|
190
|
-
|
212
|
+
value = $.trim(@elementHTML())
|
213
|
+
@$element.html("""<form action="javascript:void(0)" style="display:inline;">
|
214
|
+
<textarea class="rest-in-place-#{@attributeName}" placeholder="#{@placeholder}"></textarea>
|
215
|
+
</form>""")
|
216
|
+
@$element.find('textarea').val(value)
|
191
217
|
@$element.find('textarea')[0].select()
|
192
218
|
@$element.find("textarea").keyup (e) =>
|
193
219
|
@abort() if e.keyCode == ESC_KEY
|
data/rest_in_place.gemspec
CHANGED
@@ -5,7 +5,7 @@ require "rest_in_place/version"
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "rest_in_place"
|
7
7
|
s.version = RestInPlace::VERSION
|
8
|
-
s.date = '
|
8
|
+
s.date = '2014-03-06'
|
9
9
|
s.authors = ["Jan Varwig"]
|
10
10
|
s.email = ["jan@varwig.org"]
|
11
11
|
s.homepage = "http://jan.varwig.org"
|
metadata
CHANGED
@@ -1,27 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest_in_place
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
5
|
-
prerelease:
|
4
|
+
version: 2.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jan Varwig
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-03-06 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '3.1'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.1'
|
25
27
|
description: REST in Place is an AJAX Inplace-Editor that talks to RESTful controllers.
|
26
28
|
email:
|
27
29
|
- jan@varwig.org
|
@@ -33,33 +35,32 @@ files:
|
|
33
35
|
- README.markdown
|
34
36
|
- rest_in_place.gemspec
|
35
37
|
- lib/assets/javascripts/rest_in_place/index.js
|
36
|
-
- lib/assets/javascripts/rest_in_place/rest_in_place.coffee.erb
|
38
|
+
- lib/assets/javascripts/rest_in_place/rest_in_place.js.coffee.erb
|
37
39
|
- lib/rest_in_place/version.rb
|
38
40
|
- lib/rest_in_place.rb
|
39
41
|
homepage: http://jan.varwig.org
|
40
42
|
licenses:
|
41
43
|
- MIT
|
44
|
+
metadata: {}
|
42
45
|
post_install_message:
|
43
46
|
rdoc_options: []
|
44
47
|
require_paths:
|
45
48
|
- lib
|
46
49
|
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
-
none: false
|
48
50
|
requirements:
|
49
51
|
- - ! '>='
|
50
52
|
- !ruby/object:Gem::Version
|
51
53
|
version: '0'
|
52
54
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
|
-
none: false
|
54
55
|
requirements:
|
55
56
|
- - ! '>='
|
56
57
|
- !ruby/object:Gem::Version
|
57
58
|
version: '0'
|
58
59
|
requirements: []
|
59
60
|
rubyforge_project:
|
60
|
-
rubygems_version:
|
61
|
+
rubygems_version: 2.0.3
|
61
62
|
signing_key:
|
62
|
-
specification_version:
|
63
|
+
specification_version: 4
|
63
64
|
summary: An AJAX Inplace-Editor for the Rails 3.1 asset pipeline.
|
64
65
|
test_files: []
|
65
66
|
has_rdoc:
|