Sha256: e16aa95518c92cd5dc6b17825a44388b2d4b0667d80c8c922c7c2e6a3be7a7a9

Contents?: true

Size: 1.93 KB

Versions: 28

Compression:

Stored size: 1.93 KB

Contents

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

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

  @pathFor: (path) ->
    locationOrigin = "#{window.location.protocol}//#{window.location.hostname}" + (if window.location.port then ":#{window.location.port}" else "")
    "#{locationOrigin}#{@mountedAt()}#{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 Spree.env == 'development'
      console.warn 'Spree.url is deprecated, please use Spree.ajax for your request instead.'
    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.
  #
  # Spree.ajax works in two ways to support common jQuery syntax:
  #
  # Spree.ajax("url", {settings: 'go here'})
  # or:
  # Spree.ajax({url: "url", settings: 'go here'})
  #
  # Spree.getJSON has the same method signature as $.getJSON
  @ajax: (url, options) ->
    if typeof(url) == "object"
      options = url
      url = undefined

    options = options || {}

    options = $.extend(options, { headers: { "X-Spree-Token": Spree.api_key } })
    $.ajax(url, options)

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

  @getJSON: (url, data, success) ->
    if typeof data is 'function'
      success = data
      data = undefined
    @ajax(
      dataType: "json",
      url: url,
      data: data,
      success: success
    )

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
solidus_core-1.2.3 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.1.4 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.0.7 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.0.6 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.2.2 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.2.1 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.1.3 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.0.5 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.2.0 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.2.0.rc2 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.0.4 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.1.2 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.2.0.rc1 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.2.0.beta1 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.0.3 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.1.1 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.1.0 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.1.0.pre2 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.1.0.pre1 app/assets/javascripts/spree.js.coffee.erb
solidus_core-1.1.0.beta1 app/assets/javascripts/spree.js.coffee.erb