thin_man 0.15.8 → 0.15.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/thin_man.js +1 -1
- data/lib/thin_man/ajax_helper.rb +14 -7
- data/lib/thin_man/version.rb +1 -1
- data/test/test_helper.rb +5 -1
- data/test/thin_man_test.rb +66 -3
- metadata +21 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb59b80ee372136c2d30ce71712bf3f70cda3432
|
4
|
+
data.tar.gz: d4756037bcad8774858773769303360c14bc702c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0f1ccf59e2f46bd89b15cab567ef5d3f8f527f96ca53075639bb35af30b55cf6338ebea55cca01cb106815ed67224aa56bd17f813dfdc81cf9925aa5e1e894c
|
7
|
+
data.tar.gz: 73dfdc654606498b54894f3277a9c23deec0d84baefc088d706d84143abaaaf846fcccdffaa50743fa84b91078df0fce1b67ce38207da63b91c3ee3de9c6f850
|
@@ -263,7 +263,7 @@ var initThinMan = function(){
|
|
263
263
|
}),
|
264
264
|
AjaxProgress: Class.extend({
|
265
265
|
init: function(target,alt,progress_color){
|
266
|
-
if(target.length > 0 && target.is(':visible')){
|
266
|
+
if(target.length > 0 && target.is(':visible') && target.css('display') != 'inline'){
|
267
267
|
this.progress_target = target;
|
268
268
|
} else if(typeof(alt) != 'undefined' && alt.is(':visible')) {
|
269
269
|
this.progress_target = alt;
|
data/lib/thin_man/ajax_helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module ThinMan
|
2
2
|
module AjaxHelper
|
3
|
-
def ajax_link(name, options, html_options, target, sub_class: nil, insert_method: nil, empty_on_success: nil, http_method: nil, no_mouse_click: nil, progress_target: nil)
|
3
|
+
def ajax_link(name, options, html_options, target, sub_class: nil, insert_method: nil, empty_on_success: nil, http_method: nil, no_mouse_click: nil, progress_target: nil, progress_color: nil)
|
4
4
|
ajax_options = {
|
5
5
|
'data-ajax-link' => true,
|
6
6
|
'data-ajax-target' => target
|
@@ -11,12 +11,13 @@ module ThinMan
|
|
11
11
|
ajax_options.merge!('data-empty-on-success' => empty_on_success) if empty_on_success.present?
|
12
12
|
ajax_options.merge!('data-no-mouse-click' => no_mouse_click) if no_mouse_click.present?
|
13
13
|
ajax_options.merge!('data-progress-target' => progress_target) if progress_target.present?
|
14
|
+
ajax_options.merge!('data-progress-color' => progress_color) if progress_color.present?
|
14
15
|
link_to(name,
|
15
16
|
options,
|
16
17
|
html_options.merge(ajax_options))
|
17
18
|
end
|
18
19
|
|
19
|
-
def ajax_link_now(name, options, html_options, target, sub_class: nil, insert_method: nil, empty_on_success: nil, http_method: nil, progress_target: nil)
|
20
|
+
def ajax_link_now(name, options, html_options, target, sub_class: nil, insert_method: nil, empty_on_success: nil, http_method: nil, progress_target: nil, progress_color: nil)
|
20
21
|
ajax_options = {
|
21
22
|
'data-ajax-link-now' => true,
|
22
23
|
'data-ajax-target' => target
|
@@ -26,6 +27,7 @@ module ThinMan
|
|
26
27
|
ajax_options.merge!('data-ajax-method' => http_method) if http_method.present?
|
27
28
|
ajax_options.merge!('data-empty-on-success' => empty_on_success) if empty_on_success.present?
|
28
29
|
ajax_options.merge!('data-progress-target' => progress_target) if progress_target.present?
|
30
|
+
ajax_options.merge!('data-progress-color' => progress_color) if progress_color.present?
|
29
31
|
link_to(name,
|
30
32
|
options,
|
31
33
|
html_options.merge(ajax_options))
|
@@ -46,7 +48,7 @@ module ThinMan
|
|
46
48
|
html_options.merge(ajax_options))
|
47
49
|
end
|
48
50
|
|
49
|
-
def ajax_form_hash(target, sub_class: nil, insert_method: nil, error_target: nil, empty_on_success: nil, reset_on_success: nil, container: nil, custom_progress: nil, no_mouse_click: nil, progress_target: nil)
|
51
|
+
def ajax_form_hash(target, sub_class: nil, insert_method: nil, error_target: nil, empty_on_success: nil, reset_on_success: nil, container: nil, custom_progress: nil, no_mouse_click: nil, progress_target: nil, progress_color: nil)
|
50
52
|
ajax_options = {
|
51
53
|
'data-ajax-form' => true,
|
52
54
|
'data-ajax-target' => target
|
@@ -60,10 +62,11 @@ module ThinMan
|
|
60
62
|
ajax_options.merge!('data-custom-progress' => custom_progress) if custom_progress.present?
|
61
63
|
ajax_options.merge!('data-no-mouse-click' => no_mouse_click) if no_mouse_click.present?
|
62
64
|
ajax_options.merge!('data-progress-target' => progress_target) if progress_target.present?
|
65
|
+
ajax_options.merge!('data-progress-color' => progress_color) if progress_color.present?
|
63
66
|
ajax_options
|
64
67
|
end
|
65
68
|
|
66
|
-
def ajax_form_now(target, sub_class: nil, insert_method: nil, error_target: nil, empty_on_success: nil, reset_on_success: nil, container: nil, custom_progress: nil, progress_target: nil)
|
69
|
+
def ajax_form_now(target, sub_class: nil, insert_method: nil, error_target: nil, empty_on_success: nil, reset_on_success: nil, container: nil, custom_progress: nil, progress_target: nil, progress_color: nil)
|
67
70
|
ajax_options = {
|
68
71
|
'data-ajax-form-now' => true,
|
69
72
|
'data-ajax-target' => target
|
@@ -76,10 +79,11 @@ module ThinMan
|
|
76
79
|
ajax_options.merge!('data-reset-on-success' => reset_on_success) if reset_on_success.present?
|
77
80
|
ajax_options.merge!('data-custom-progress' => custom_progress) if custom_progress.present?
|
78
81
|
ajax_options.merge!('data-progress-target' => progress_target) if progress_target.present?
|
82
|
+
ajax_options.merge!('data-progress-color' => progress_color) if progress_color.present?
|
79
83
|
ajax_options
|
80
84
|
end
|
81
85
|
|
82
|
-
def ajax_form_attrs(target, sub_class: nil, insert_method: nil, error_target: nil, empty_on_success: nil, reset_on_success: nil, no_mouse_click: nil, progress_target: nil)
|
86
|
+
def ajax_form_attrs(target, sub_class: nil, insert_method: nil, error_target: nil, empty_on_success: nil, reset_on_success: nil, no_mouse_click: nil, progress_target: nil, progress_color: nil)
|
83
87
|
data_attrs = "data-ajax-form=true data-ajax-target=#{target}"
|
84
88
|
data_attrs += " data-insert-method=#{insert_method}" if insert_method
|
85
89
|
data_attrs += " data-sub-type=#{sub_class}" if sub_class
|
@@ -88,10 +92,11 @@ module ThinMan
|
|
88
92
|
data_attrs += " data-error-target=#{error_target}" if error_target
|
89
93
|
data_attrs += " data-no-mouse-click=#{no_mouse_click}" if no_mouse_click
|
90
94
|
data_attrs += " data-progress-target=#{progress_target}" if progress_target
|
95
|
+
data_attrs += " data-progress-color=#{progress_color}" if progress_color
|
91
96
|
data_attrs
|
92
97
|
end
|
93
98
|
|
94
|
-
def ajax_form_now_attrs(target, sub_class: nil, insert_method: nil, error_target: nil, empty_on_success: nil, reset_on_success: nil, progress_target: nil)
|
99
|
+
def ajax_form_now_attrs(target, sub_class: nil, insert_method: nil, error_target: nil, empty_on_success: nil, reset_on_success: nil, progress_target: nil, progress_color: nil)
|
95
100
|
data_attrs = "data-ajax-form-now=true data-ajax-target=#{target}"
|
96
101
|
data_attrs += " data-insert-method=#{insert_method}" if insert_method
|
97
102
|
data_attrs += " data-sub-type=#{sub_class}" if sub_class
|
@@ -99,10 +104,11 @@ module ThinMan
|
|
99
104
|
data_attrs += " data-reset-on-success=#{reset_on_success}" if reset_on_success
|
100
105
|
data_attrs += " data-error-target=#{error_target}" if error_target
|
101
106
|
data_attrs += " data-progress-target=#{progress_target}" if progress_target
|
107
|
+
data_attrs += " data-progress-color=#{progress_color}" if progress_color
|
102
108
|
data_attrs
|
103
109
|
end
|
104
110
|
|
105
|
-
def ajax_link_attrs(target, insert_method: nil, sub_type: nil, empty_on_success: nil, http_method: nil, no_mouse_click: nil, progress_target: nil)
|
111
|
+
def ajax_link_attrs(target, insert_method: nil, sub_type: nil, empty_on_success: nil, http_method: nil, no_mouse_click: nil, progress_target: nil, progress_color: nil)
|
106
112
|
data_attrs = "data-ajax-link=true data-ajax-target=#{target}"
|
107
113
|
data_attrs += " data-insert-method=#{insert_method}" if insert_method
|
108
114
|
data_attrs += " data-ajax-method=#{http_method}" if http_method
|
@@ -110,6 +116,7 @@ module ThinMan
|
|
110
116
|
data_attrs += " data-empty-on-success=#{empty_on_success}" if empty_on_success
|
111
117
|
data_attrs += " data-no-mouse-click=#{no_mouse_click}" if no_mouse_click
|
112
118
|
data_attrs += " data-progress-target=#{progress_target}" if progress_target
|
119
|
+
data_attrs += " data-progress-color=#{progress_color}" if progress_color
|
113
120
|
data_attrs
|
114
121
|
end
|
115
122
|
|
data/lib/thin_man/version.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -2,8 +2,12 @@
|
|
2
2
|
ENV["RAILS_ENV"] = "test"
|
3
3
|
|
4
4
|
require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
|
5
|
-
ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
|
6
5
|
require "rails/test_help"
|
6
|
+
require 'minitest/unit'
|
7
|
+
require 'minitest/autorun'
|
8
|
+
require 'minitest/spec'
|
9
|
+
require 'minitest/pride'
|
10
|
+
require 'minitest/rails'
|
7
11
|
|
8
12
|
Rails.backtrace_cleaner.remove_silencers!
|
9
13
|
|
data/test/thin_man_test.rb
CHANGED
@@ -1,7 +1,70 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class ThinManTest <
|
4
|
-
|
5
|
-
|
3
|
+
class ThinManTest < ActionView::TestCase
|
4
|
+
include ThinMan::AjaxHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@html_options = {class: 'test_class'}
|
8
|
+
@target = '#target_element'
|
9
|
+
@error_target = '#error_target'
|
10
|
+
@insert_method = 'append'
|
11
|
+
@empty_on_success = '#empty_me'
|
12
|
+
@http_method = 'PATCH'
|
13
|
+
@no_mouse_click = true
|
14
|
+
@progress_target = '#progress_element'
|
15
|
+
@progress_color = 'blue'
|
16
|
+
|
17
|
+
@replace_response = true
|
18
|
+
@no_confirm = true
|
19
|
+
@custom_progress = '#custom_progress'
|
20
|
+
end
|
21
|
+
|
22
|
+
it "generates ajax link hash" do
|
23
|
+
test_link = ajax_link('test link', "http://test.com", @html_options, @target, insert_method: @insert_method, empty_on_success: @empty_on_success, http_method: @http_method, no_mouse_click: @no_mouse_click, progress_target: @progress_target, progress_color: @progress_color)
|
24
|
+
test_link.must_match "data-ajax-link="
|
25
|
+
test_link.must_match(/class=.test_class./)
|
26
|
+
test_link.must_match "data-ajax-target=\"#{@target}\""
|
27
|
+
test_link.must_match "data-insert-method=\"#{@insert_method}\""
|
28
|
+
test_link.must_match "data-empty-on-success=\"#{@empty_on_success}\""
|
29
|
+
test_link.must_match "data-ajax-method=\"#{@http_method}\""
|
30
|
+
test_link.must_match "data-no-mouse-click=\"#{@no_mouse_click}\""
|
31
|
+
test_link.must_match "data-progress-target=\"#{@progress_target}\""
|
32
|
+
test_link.must_match "data-progress-color=\"#{@progress_color}\""
|
33
|
+
end
|
34
|
+
|
35
|
+
it "generates an instant link" do
|
36
|
+
test_link = ajax_link_now('test link', "http://test.com", @html_options, @target, insert_method: @insert_method, empty_on_success: @empty_on_success, http_method: @http_method, progress_target: @progress_target, progress_color: @progress_color)
|
37
|
+
test_link.must_match "data-ajax-link-now="
|
38
|
+
test_link.must_match(/class=.test_class./)
|
39
|
+
test_link.must_match "data-ajax-target=\"#{@target}\""
|
40
|
+
test_link.must_match "data-insert-method=\"#{@insert_method}\""
|
41
|
+
test_link.must_match "data-empty-on-success=\"#{@empty_on_success}\""
|
42
|
+
test_link.must_match "data-ajax-method=\"#{@http_method}\""
|
43
|
+
test_link.must_match "data-progress-target=\"#{@progress_target}\""
|
44
|
+
test_link.must_match "data-progress-color=\"#{@progress_color}\""
|
6
45
|
end
|
46
|
+
|
47
|
+
it "generates a delete link" do
|
48
|
+
test_link = ajax_delete('test link', "http://test.com", @html_options, @target, replace_response: @replace_response, no_confirm: @no_confirm, custom_progress: @custom_progress, no_mouse_click: @no_mouse_click)
|
49
|
+
test_link.must_match "data-ajax-delete="
|
50
|
+
test_link.must_match(/class=.test_class./)
|
51
|
+
test_link.must_match "data-ajax-target=\"#{@target}\""
|
52
|
+
test_link.must_match "data-replace-response=\"#{@replace_response}\""
|
53
|
+
test_link.must_match "data-no-confirm=\"#{@no_confirm}\""
|
54
|
+
test_link.must_match "data-custom-progress=\"#{@custom_progress}\""
|
55
|
+
test_link.must_match "data-no-mouse-click=\"#{@no_mouse_click}\""
|
56
|
+
end
|
57
|
+
|
58
|
+
it "generates ajax form hash" do
|
59
|
+
form_hash = ajax_form_hash(@target, error_target: @error_target, insert_method: @insert_method, empty_on_success: @empty_on_success, no_mouse_click: @no_mouse_click, progress_target: @progress_target, progress_color: @progress_color)
|
60
|
+
form_hash['data-ajax-form'].must_equal true
|
61
|
+
form_hash['data-ajax-target'].must_equal @target
|
62
|
+
form_hash['data-error-target'].must_equal @error_target
|
63
|
+
form_hash['data-insert-method'].must_equal @insert_method
|
64
|
+
form_hash['data-empty-on-success'].must_equal @empty_on_success
|
65
|
+
form_hash['data-no-mouse-click'].must_equal @no_mouse_click
|
66
|
+
form_hash['data-progress-target'].must_equal @progress_target
|
67
|
+
form_hash['data-progress-color'].must_equal @progress_color
|
68
|
+
end
|
69
|
+
|
7
70
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thin_man
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.15.
|
4
|
+
version: 0.15.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Draut, Adam Bialek
|
@@ -44,6 +44,26 @@ dependencies:
|
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '1'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: minitest-rails
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '2'
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '3'
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '2'
|
64
|
+
- - "<"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '3'
|
47
67
|
description: 'A Rails library that makes web apps lively while keeping all the logic
|
48
68
|
on the server. '
|
49
69
|
email:
|