javascript_util_asset_pack 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/javascript_util_asset_pack.gemspec +1 -1
- data/lib/javascript_util_asset_pack/version.rb +1 -1
- data/vendor/assets/javascripts/util_pack/ajax_form.coffee +15 -0
- data/vendor/assets/javascripts/util_pack/index.js +3 -0
- data/vendor/assets/javascripts/util_pack/jquery_ajax_error.coffee +41 -0
- data/vendor/assets/javascripts/util_pack/spinner.coffee +31 -0
- metadata +6 -2
@@ -18,6 +18,6 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.add_dependency 'rails', '~> 3.1'
|
19
19
|
s.add_dependency 'javascript_safe_logger', '~> 0.0.4'
|
20
20
|
|
21
|
-
s.files = Dir.glob("lib/**/*") + %w(javascript_util_asset_pack.gemspec README.rdoc)
|
21
|
+
s.files = Dir.glob("{lib,vendor}/**/*") + %w(javascript_util_asset_pack.gemspec README.rdoc)
|
22
22
|
s.require_paths = ["lib"]
|
23
23
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class AjaxForm
|
2
|
+
constructor: (selector, callback = null) ->
|
3
|
+
$(selector).submit (e) ->
|
4
|
+
e.preventDefault()
|
5
|
+
form = this
|
6
|
+
success = if callback? then callback else () -> log "no success callback"
|
7
|
+
|
8
|
+
$.ajax $(form).attr('action'),
|
9
|
+
type: "POST"
|
10
|
+
data: $(form).serialize()
|
11
|
+
success: success
|
12
|
+
|
13
|
+
window.Util ?= {}
|
14
|
+
window.Util.AjaxForm = AjaxForm
|
15
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
jQuery(document).ajaxError (event, xhr, settings, exception) ->
|
2
|
+
baseMessage = "Error: "
|
3
|
+
friendly = baseMessage
|
4
|
+
local = "#{baseMessage}#{xhr.status}, #{xhr.statusText} #{exception}\n#{settings.url}"
|
5
|
+
|
6
|
+
if xhr.status is 404
|
7
|
+
friendly = "#{friendly}Page not found"
|
8
|
+
else if xhr.status is 401
|
9
|
+
friendly = "#{friendly}Access Denied"
|
10
|
+
else if xhr.status is 422
|
11
|
+
friendly = "Your submission has one or more errors. \n\nPlease correct the following issues: \n"
|
12
|
+
validationErrors = jQuery.parseJSON(xhr.responseText)
|
13
|
+
if jQuery.isArray(validationErrors)
|
14
|
+
friendly = friendly + " - #{error}\n" for error in validationErrors
|
15
|
+
local = friendly + "\n\n"
|
16
|
+
else
|
17
|
+
friendly = "#{friendly}an exception has occurred\nPlease try again"
|
18
|
+
|
19
|
+
window.Util.spinner.hide()
|
20
|
+
|
21
|
+
if window.Rails?.env is "DEVELOPMENT"
|
22
|
+
contentType = xhr.getResponseHeader("content-type")
|
23
|
+
if contentType?.indexOf('html') > -1
|
24
|
+
body = "<div>#{xhr.responseText}</div>"
|
25
|
+
fragment = $(body).find "h1"
|
26
|
+
local = "#{local} \n#{fragment.text()}"
|
27
|
+
fragment = $(body).find "pre"
|
28
|
+
|
29
|
+
if fragment.length > 0
|
30
|
+
fragment.each () -> local = "#{local}\n#{$(this).text()}"
|
31
|
+
|
32
|
+
else
|
33
|
+
# json, text, xml, etc... add specific parsing later if needed
|
34
|
+
local = "#{local}"
|
35
|
+
|
36
|
+
lengthOfVisibleErrorMessage = if local.length > 350 then 350 else local.length
|
37
|
+
message = local.substring(0, lengthOfVisibleErrorMessage)
|
38
|
+
alert "#{message}...\n\n - Check browser console for more info.\n - This message for development only."
|
39
|
+
|
40
|
+
else
|
41
|
+
alert friendly
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class Spinner
|
2
|
+
constructor: (spinnerId) ->
|
3
|
+
@spinnerId = spinnerId
|
4
|
+
|
5
|
+
hide: () ->
|
6
|
+
jQuery(@spinnerId).hide()
|
7
|
+
|
8
|
+
nextTo: (controlID, topOffset = 0, leftOffset = 14) ->
|
9
|
+
if controlID?
|
10
|
+
$control = jQuery(controlID)
|
11
|
+
return null if $control.length is 0
|
12
|
+
|
13
|
+
offset = $control.offset()
|
14
|
+
top = parseInt(offset.top + topOffset)
|
15
|
+
left = parseInt(offset.left + leftOffset + $control.width())
|
16
|
+
|
17
|
+
# sometimes things are not what they seem, use the parent coordinates if needed
|
18
|
+
if left < 0
|
19
|
+
left = jQuery(controlID).parent().offset().left + leftOffset
|
20
|
+
|
21
|
+
# show spinner
|
22
|
+
jQuery(@spinnerId)
|
23
|
+
.css('position', 'absolute')
|
24
|
+
.css('top', "#{top}px")
|
25
|
+
.css('left', "#{left}px ")
|
26
|
+
.show()
|
27
|
+
.css('z-index', 33010)
|
28
|
+
|
29
|
+
window.Util ?= {}
|
30
|
+
window.Util.spinner = new Spinner('#spinner')
|
31
|
+
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 12
|
9
|
+
version: 0.0.12
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jesse House
|
@@ -114,6 +114,10 @@ files:
|
|
114
114
|
- lib/javascript_util_asset_pack/engine.rb
|
115
115
|
- lib/javascript_util_asset_pack/version.rb
|
116
116
|
- lib/javascript_util_asset_pack.rb
|
117
|
+
- vendor/assets/javascripts/util_pack/ajax_form.coffee
|
118
|
+
- vendor/assets/javascripts/util_pack/index.js
|
119
|
+
- vendor/assets/javascripts/util_pack/jquery_ajax_error.coffee
|
120
|
+
- vendor/assets/javascripts/util_pack/spinner.coffee
|
117
121
|
- javascript_util_asset_pack.gemspec
|
118
122
|
- README.rdoc
|
119
123
|
has_rdoc: true
|