lib/assets/javascripts/wiselinks.js.coffee in wiselinks-0.5.2 vs lib/assets/javascripts/wiselinks.js.coffee in wiselinks-0.5.3
- old
+ new
@@ -12,10 +12,11 @@
throw "Load jQuery to use Wiselinks" unless window.jQuery?
self = this
@options = jQuery.extend(self._defaults(), @options);
+ @template_id = new Date().getTime()
if self.enabled()
@assets_digest = $("meta[name='assets-digest']").attr("content")
if History.emulated.pushState && @options.html4 == true
@@ -26,13 +27,16 @@
self._call(window.location.hash.substring(2))
History.Adapter.bind(
window,
"statechange"
- (event, data) ->
- state = History.getState()
- self._call(state.url, state.data.target, state.data.render)
+ (event, data) ->
+ state = History.getState()
+ if self._template_id_changed(state)
+ self._call(state.url, null, 'template')
+ else
+ self._call(state.url, state.data.target, state.data.render)
)
$(document).on(
"submit", "form[data-push], form[data-replace]"
(event) ->
@@ -55,14 +59,15 @@
enabled: ->
!History.emulated.pushState || @options.html4 == true
load: (url, target, render = 'template') ->
- History.pushState({ timestamp: (new Date().getTime()), render: render, target: target }, document.title, url )
+ @template_id = new Date().getTime() if render != 'partial'
+ History.pushState({ template_id: @template_id, render: render, target: target }, document.title, url )
- reload: () ->
- History.replaceState({ timestamp: (new Date().getTime()), render: 'template' }, document.title, History.getState().url )
+ reload: () ->
+ History.replaceState({ template_id: @template_id, render: 'template' }, document.title, History.getState().url )
_defaults: ->
html4: true
html4_root_path: '/'
@@ -154,9 +159,12 @@
_non_standard_click: (event) ->
event.metaKey || event.ctrlKey || event.shiftKey || event.altKey
_assets_changed: (digest) ->
@assets_digest? && @assets_digest != digest
+
+ _template_id_changed: (state) ->
+ !state.data.template_id? || state.data.template_id != @template_id
_set_title: (xhr) ->
value = xhr.getResponseHeader('X-Wiselinks-Title')
document.title = decodeURI(value) if value?
\ No newline at end of file