err_supply 0.1.10 → 0.2.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 +4 -4
- data/lib/assets/javascripts/err_supply-bootstrap.js +92 -0
- data/lib/err_supply/version.rb +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43b07a58a27ef4bfaaea935f09990cfb3e271f4f
|
4
|
+
data.tar.gz: 1e5e224eb76058586d0c3ca850ef94d41d29de7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14ec0bfe4fad3df32041bdb6cc7135c4c9006ca5a59995c7f1f06bc96dab98c0bedb3d95ec530f530729bda8e977aa8eecb9a6fc8f7a59b3b352db6e4d6f887e
|
7
|
+
data.tar.gz: 06a5f8eb14ee3d4af61dfe38de4e1b4e302aae57dcc3098775e75ef4806f5e04d172f8276c91334a40dbea62478a5ef5d16a6afe8947361bb83c7916a564cfb8
|
@@ -0,0 +1,92 @@
|
|
1
|
+
//= require jquery.qtip
|
2
|
+
|
3
|
+
/*
|
4
|
+
ErrSupply Twitter Bootstrap3 Adapter
|
5
|
+
Copyright (c) 2014 Coroutine LLC
|
6
|
+
Licensed under the MIT license
|
7
|
+
*/
|
8
|
+
jQuery(function($) {
|
9
|
+
$("form").on("err_supply:loaded", function(event, errors) {
|
10
|
+
|
11
|
+
// define how errors are applied to dom elements
|
12
|
+
var applyFn = function(error_hash) {
|
13
|
+
var unmatched = {};
|
14
|
+
var errors = error_hash || {};
|
15
|
+
var error;
|
16
|
+
var content;
|
17
|
+
var $field;
|
18
|
+
var position;
|
19
|
+
|
20
|
+
for (var id in errors) {
|
21
|
+
error = errors[id];
|
22
|
+
if (error && error.messages && error.messages.length) {
|
23
|
+
|
24
|
+
content = '<ul class="err_supply">';
|
25
|
+
for (var i = 0, n = error.messages.length; i < n; i++) {
|
26
|
+
content += '<li>' + error.label + " " + error.messages[i] + '</li>';
|
27
|
+
};
|
28
|
+
content += '</ul>';
|
29
|
+
|
30
|
+
$field = $('#' + id);
|
31
|
+
options = {}
|
32
|
+
if ($field.offset()) {
|
33
|
+
|
34
|
+
// determine position
|
35
|
+
if (($field.offset().left + $field.outerWidth() + 300) < $(window).width()) {
|
36
|
+
position = 'right';
|
37
|
+
}
|
38
|
+
else {
|
39
|
+
position = 'left';
|
40
|
+
};
|
41
|
+
|
42
|
+
// add class
|
43
|
+
$field.addClass('error');
|
44
|
+
|
45
|
+
// add popover
|
46
|
+
console.log(content);
|
47
|
+
$field.popover({
|
48
|
+
html: true,
|
49
|
+
placement: position,
|
50
|
+
trigger: 'focus',
|
51
|
+
content: content
|
52
|
+
});
|
53
|
+
}
|
54
|
+
else {
|
55
|
+
unmatched[id] = error;
|
56
|
+
};
|
57
|
+
};
|
58
|
+
};
|
59
|
+
|
60
|
+
return unmatched;
|
61
|
+
};
|
62
|
+
|
63
|
+
// get reference to form firing event
|
64
|
+
var $form = $(this);
|
65
|
+
|
66
|
+
// find all contained elements with a style of error and remove the class.
|
67
|
+
// this is typically more important for ajax submissions. html submissions
|
68
|
+
// tend not to have this problem.
|
69
|
+
$form.find('.error').removeClass('error');
|
70
|
+
|
71
|
+
// hide all fields that have been explicitly destroyed. when an html submission
|
72
|
+
// has errors, the _destroy value renders as true rather than 1, which may or may not
|
73
|
+
// causes destroyed sets to be visible after the reload. here, we scan for both
|
74
|
+
// values and hide any containing div.fields elements.
|
75
|
+
$form.find('input:hidden[id$=_destroy]').filter('[value=true], [value=1]').closest('.fields').hide();
|
76
|
+
|
77
|
+
// apply errors to dom elements
|
78
|
+
var unmatched_errors = applyFn(errors) || {};
|
79
|
+
|
80
|
+
// publish unmatched errors, in case view cares about that
|
81
|
+
$form.trigger('err_supply:unmatched', unmatched_errors);
|
82
|
+
|
83
|
+
// move focus to first field with error (or first field)
|
84
|
+
var $focus_field = ($form.find('.error').size() > 0) ?
|
85
|
+
$form.find('.error').filter(':first') :
|
86
|
+
$form.find(':not(.filter) :input:visible:enabled:first');
|
87
|
+
$focus_field.focus()
|
88
|
+
|
89
|
+
// cancel event
|
90
|
+
return false;
|
91
|
+
});
|
92
|
+
});
|
data/lib/err_supply/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: err_supply
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Coroutine
|
@@ -9,34 +9,34 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-02-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 3.0.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 3.0.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rspec
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 2.0.0
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 2.0.0
|
42
42
|
description: Simple, beautiful error messages for Rails. Err_supply unpacks and rekeys
|
@@ -50,12 +50,13 @@ executables: []
|
|
50
50
|
extensions: []
|
51
51
|
extra_rdoc_files: []
|
52
52
|
files:
|
53
|
-
- .gitignore
|
54
|
-
- .specification
|
53
|
+
- ".gitignore"
|
54
|
+
- ".specification"
|
55
55
|
- Gemfile
|
56
56
|
- README.md
|
57
57
|
- Rakefile
|
58
58
|
- err_supply.gemspec
|
59
|
+
- lib/assets/javascripts/err_supply-bootstrap.js
|
59
60
|
- lib/assets/javascripts/err_supply.js
|
60
61
|
- lib/err_supply.rb
|
61
62
|
- lib/err_supply/controller_helpers.rb
|
@@ -71,19 +72,18 @@ require_paths:
|
|
71
72
|
- lib
|
72
73
|
required_ruby_version: !ruby/object:Gem::Requirement
|
73
74
|
requirements:
|
74
|
-
- -
|
75
|
+
- - ">="
|
75
76
|
- !ruby/object:Gem::Version
|
76
77
|
version: '0'
|
77
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
79
|
requirements:
|
79
|
-
- -
|
80
|
+
- - ">="
|
80
81
|
- !ruby/object:Gem::Version
|
81
82
|
version: '0'
|
82
83
|
requirements: []
|
83
84
|
rubyforge_project:
|
84
|
-
rubygems_version: 2.
|
85
|
+
rubygems_version: 2.2.1
|
85
86
|
signing_key:
|
86
87
|
specification_version: 4
|
87
88
|
summary: Simple, beautiful error messages for Rails.
|
88
89
|
test_files: []
|
89
|
-
has_rdoc:
|