on_the_spot 0.0.7 → 0.0.8

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.markdown CHANGED
@@ -60,10 +60,13 @@ The `on_the_spot_edit` also accepts options:
60
60
  * `:type` : `:textarea` or `:select` (none means default edit)
61
61
  * `:ok_text` : the text for the ok-button
62
62
  * `:cancel_text` : the text for the cancel-button
63
+ * `:display_text`: if you want to overrule the displayed text, especially useful when using your own `:url` or `:loadurl`
63
64
  * `:tooltip` : the tooltip-text
64
65
  * `:rows`: for textarea, the number of rows, defaults to 5
65
66
  * `:columns`: for textarea, the number of columns, defaults to 40
66
67
  * `:data`: for select, the lookup-data, should be in an array of id-value pairs. E.g. `[[1, 'ok'], [2, 'not ok'], [3, 'not decided']]`.
68
+ * `:loadurl`: for select, an url that will return the data in JSON format (use instead of `:data`)
69
+ * `:url`: URL to post to if you don't want to use the standard routes
67
70
 
68
71
 
69
72
  For the texts: if a text is not specified, the default is taken from the `on_the_spot.en.yml` (or your current language).
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
@@ -7,18 +7,19 @@ module OnTheSpot
7
7
  class OnTheSpotMissingParameters < StandardError; end
8
8
 
9
9
  # Possible options:
10
- # ok_text : the ok-button text
11
- # cancel_text : the cancel-button text
12
- # tooltip : the tooltip to show
13
- # type : {'textarea' || 'select' }
14
- # rows : nr of rows for textarea
15
- # columns : nr of columns for textarea
16
- # loadurl : (for select) an url that will return the json for the select
17
- # data : (for select) an array of options in the form [id, value]
10
+ # ok_text : the ok-button text
11
+ # cancel_text : the cancel-button text
12
+ # tooltip : the tooltip to show
13
+ # type : {'textarea' || 'select' }
14
+ # rows : nr of rows for textarea
15
+ # columns : nr of columns for textarea
16
+ # loadurl : (for select) an url that will return the json for the select
17
+ # display_text : either overrule the normal display-value, or needed when using loadurl
18
+ # data : (for select) an array of options in the form [id, value]
19
+ # url : (optional) URL to post to if you don't want to use the standard routes
18
20
  def on_the_spot_edit(object, field, options={})
19
21
  #!!! to do: translate options to data-fields
20
22
  # Possible fields:
21
- # url?
22
23
  # type: textarea or not
23
24
  # button-translations ok-Text, cancel-Text
24
25
  #
@@ -29,10 +30,12 @@ module OnTheSpot
29
30
  :cancel_text => t('on_the_spot.cancel'),
30
31
  :tooltip => t('on_the_spot.tooltip'),
31
32
  :rows => 5,
32
- :columns => 40
33
+ :columns => 40,
34
+ :url => {:action => 'update_attribute_on_the_spot'}
35
+
33
36
  )
34
37
 
35
- update_url = url_for(:action => 'update_attribute_on_the_spot')
38
+ update_url = url_for(options[:url])
36
39
 
37
40
  field_value = object.send(field.to_sym).to_s
38
41
 
@@ -61,7 +64,9 @@ module OnTheSpot
61
64
  html_options[:'data-tooltip'] = options[:tooltip]
62
65
 
63
66
  content_tag("span", html_options) do
64
- if editable_type == :select
67
+ if options[:display_text]
68
+ options[:display_text]
69
+ elsif editable_type == :select && options[:loadurl].nil?
65
70
  lookup_display_value(select_data, field_value)
66
71
  else
67
72
  field_value
data/on_the_spot.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{on_the_spot}
8
- s.version = "0.0.7"
8
+ s.version = "0.0.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nathan Van der Auwera"]
12
- s.date = %q{2011-03-23}
12
+ s.date = %q{2011-04-25}
13
13
  s.description = %q{Unobtrusive in place editing, using jEditable; only works in Rails 3}
14
14
  s.email = %q{nathan@dixis.com}
15
15
  s.extra_rdoc_files = [
@@ -45,22 +45,58 @@ describe "OnTheSpot" do
45
45
  @tester.should_receive(:t).with('on_the_spot.ok').and_return("ok")
46
46
  @tester.should_receive(:t).with('on_the_spot.cancel').and_return("cancel")
47
47
  @tester.should_receive(:t).with('on_the_spot.tooltip').and_return("tooltip")
48
- @tester.should_receive(:url_for).and_return('/bla')
49
48
  end
50
49
 
51
- it "should make the correct html for an edit-field" do
52
- @result = @tester.on_the_spot_edit @dummy, :content
53
- @result.should == "<span class=\"on_the_spot_editing\" data-cancel=\"cancel\" data-ok=\"ok\" data-tooltip=\"tooltip\" data-url=\"/bla\" id=\"r_spec/mocks/mock__content__123\">test</span>"
54
- end
50
+ context "with standard route" do
51
+ before(:each) do
52
+ @tester.should_receive(:url_for).with({:action => 'update_attribute_on_the_spot'}).and_return('/bla')
53
+ end
54
+
55
+ it "should make the correct html for an edit-field" do
56
+ @result = @tester.on_the_spot_edit @dummy, :content
57
+ @result.should == "<span class=\"on_the_spot_editing\" data-cancel=\"cancel\" data-ok=\"ok\" data-tooltip=\"tooltip\" data-url=\"/bla\" id=\"r_spec/mocks/mock__content__123\">test</span>"
58
+ end
59
+
60
+ it "should make the correct html for an edit-field and overrule display-text" do
61
+ @result = @tester.on_the_spot_edit @dummy, :content, :display_text => 'jediknight'
62
+ @result.should == "<span class=\"on_the_spot_editing\" data-cancel=\"cancel\" data-ok=\"ok\" data-tooltip=\"tooltip\" data-url=\"/bla\" id=\"r_spec/mocks/mock__content__123\">jediknight</span>"
63
+ end
64
+
65
+ it "should make the correct html for a text-area" do
66
+ @result = @tester.on_the_spot_edit @dummy, :content, :type => :textarea
67
+ @result.should == "<span class=\"on_the_spot_editing\" data-cancel=\"cancel\" data-columns=\"40\" data-edittype=\"textarea\" data-ok=\"ok\" data-rows=\"5\" data-tooltip=\"tooltip\" data-url=\"/bla\" id=\"r_spec/mocks/mock__content__123\">test</span>"
68
+ end
69
+
70
+ it "should make the correct html for a select-box" do
71
+ @result = @tester.on_the_spot_edit @dummy, :content, :type => :select, :data => [['test', 'This a test'], ['prod', 'Pure Production'], ['QA', 'Quality Assurance']]
72
+ @result.should == "<span class=\"on_the_spot_editing\" data-cancel=\"cancel\" data-edittype=\"select\" data-ok=\"ok\" data-select=\"{ 'test':'This a test', 'prod':'Pure Production', 'QA':'Quality Assurance', 'selected':'test'}\" data-tooltip=\"tooltip\" data-url=\"/bla\" id=\"r_spec/mocks/mock__content__123\">This a test</span>"
73
+ end
55
74
 
56
- it "should make the correct html for a text-area" do
57
- @result = @tester.on_the_spot_edit @dummy, :content, :type => :textarea
58
- @result.should == "<span class=\"on_the_spot_editing\" data-cancel=\"cancel\" data-columns=\"40\" data-edittype=\"textarea\" data-ok=\"ok\" data-rows=\"5\" data-tooltip=\"tooltip\" data-url=\"/bla\" id=\"r_spec/mocks/mock__content__123\">test</span>"
75
+
76
+
77
+ context "a select-box with a loadurl" do
78
+ it "should make the correct html (and not look up the value)" do
79
+ @result = @tester.on_the_spot_edit @dummy, :content, :type => :select, :loadurl => '/load/data'
80
+ @result.should == "<span class=\"on_the_spot_editing\" data-cancel=\"cancel\" data-edittype=\"select\" data-loadurl=\"/load/data\" data-ok=\"ok\" data-tooltip=\"tooltip\" data-url=\"/bla\" id=\"r_spec/mocks/mock__content__123\">test</span>"
81
+ end
82
+
83
+ it "should use the display-text preferrably" do
84
+ @result = @tester.on_the_spot_edit @dummy, :content, :type => :select, :loadurl => '/load/data', :display_text => 'ninja'
85
+ @result.should == "<span class=\"on_the_spot_editing\" data-cancel=\"cancel\" data-edittype=\"select\" data-loadurl=\"/load/data\" data-ok=\"ok\" data-tooltip=\"tooltip\" data-url=\"/bla\" id=\"r_spec/mocks/mock__content__123\">ninja</span>"
86
+ end
87
+ end
59
88
  end
60
89
 
61
- it "should make the correct html for a select-box" do
62
- @result = @tester.on_the_spot_edit @dummy, :content, :type => :select, :data => [['test', 'This a test'], ['prod', 'Pure Production'], ['QA', 'Quality Assurance']]
63
- @result.should == "<span class=\"on_the_spot_editing\" data-cancel=\"cancel\" data-edittype=\"select\" data-ok=\"ok\" data-select=\"{ 'test':'This a test', 'prod':'Pure Production', 'QA':'Quality Assurance', 'selected':'test'}\" data-tooltip=\"tooltip\" data-url=\"/bla\" id=\"r_spec/mocks/mock__content__123\">This a test</span>"
90
+ context "with explicit route" do
91
+ before(:each) do
92
+ @tester.should_receive(:url_for).with({:action => 'update_it_otherwise'}).and_return('/bla')
93
+ end
94
+
95
+ it "should make the correct html for an edit-field" do
96
+ @result = @tester.on_the_spot_edit @dummy, :content, :url => {:action => 'update_it_otherwise' }
97
+ @result.should == "<span class=\"on_the_spot_editing\" data-cancel=\"cancel\" data-ok=\"ok\" data-tooltip=\"tooltip\" data-url=\"/bla\" id=\"r_spec/mocks/mock__content__123\">test</span>"
98
+ end
99
+
64
100
  end
65
101
  end
66
102
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 7
9
- version: 0.0.7
8
+ - 8
9
+ version: 0.0.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Nathan Van der Auwera
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-03-23 00:00:00 +01:00
17
+ date: 2011-04-25 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency