Sha256: 9ea92ce9f117f5d4a1f7038aa840eaf82acfe51b640f1d34c905f47f45b8d739

Contents?: true

Size: 1.94 KB

Versions: 23

Compression:

Stored size: 1.94 KB

Contents

#= require jsuri
class window.Spree
  @ready: (callback) ->
    jQuery(document).ready(callback)

    # fire ready callbacks also on turbolinks page change event
    jQuery(document).on 'page:load', ->
      callback(jQuery)

  @mountedAt: ->
    "<%= Rails.application.routes.url_helpers.spree_path(trailing_slash: true) %>"

  @adminPath: ->
    '<%= Spree.admin_path.gsub(/\A(\/)?(.*[^\/])(\/)?\z/, '\\2/') %>'

  @pathFor: (path) ->
    locationOrigin = "#{window.location.protocol}//#{window.location.hostname}" + (if window.location.port then ":#{window.location.port}" else "")
    @url("#{locationOrigin}#{@mountedAt()}#{path}", @url_params).toString()

  @adminPathFor: (path) ->
    @pathFor("#{@adminPath()}#{path}")

  # Helper function to take a URL and add query parameters to it
  # Uses the JSUri library from here: https://github.com/derek-watson/jsUri
  # Thanks to Jake Moffat for the suggestion: https://twitter.com/jakeonrails/statuses/321776992221544449
  @url: (uri, query) ->
    if uri.path == undefined
      uri = new Uri(uri)
    if query
      $.each query, (key, value) ->
        uri.addQueryParam(key, value)
    return uri

  # This function automatically appends the API token
  # for the user to the end of any URL.
  # Immediately after, this string is then passed to jQuery.ajax.
  #
  # ajax works in two ways in jQuery:
  #
  # $.ajax("url", {settings: 'go here'})
  # or:
  # $.ajax({url: "url", settings: 'go here'})
  #
  # This function will support both of these calls.
  @ajax: (url_or_settings, settings) ->
    if (typeof(url_or_settings) == "string")
      $.ajax(Spree.url(url_or_settings).toString(), settings)
    else
      url = url_or_settings['url']
      delete url_or_settings['url']
      $.ajax(Spree.url(url).toString(), url_or_settings)

  @routes:
    states_search: @pathFor('api/v1/states')
    apply_coupon_code: (order_id) ->
      Spree.pathFor("api/v1/orders/#{order_id}/apply_coupon_code")

  @url_params:
    {}

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
goca-spree-core-3.1.14.rails.5.0.1 app/assets/javascripts/spree.js.coffee.erb
goca-spree-core-3.1.14.rails.5.0 app/assets/javascripts/spree.js.coffee.erb
goca-spree-core-3.1.15.rails.5.0 app/assets/javascripts/spree.js.coffee.erb
goca-spree-core-3.1.15.pre.rails.pre.5.0 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.14 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.13 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.12 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.11 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.10 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.9 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.8 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.7 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.6 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.5 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.4 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.3 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.2 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.1 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.0 app/assets/javascripts/spree.js.coffee.erb
spree_core-3.1.0.rc4 app/assets/javascripts/spree.js.coffee.erb