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.
@@ -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
@@ -1,3 +1,3 @@
1
1
  module JavascriptUtilAssetPack
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  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,3 @@
1
+ //= require ./spinner
2
+ //= require ./ajax_form
3
+ //= require ./jquery_ajax_error
@@ -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
- - 11
9
- version: 0.0.11
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