annotate app/assets/javascripts/zp.hash_magic.js @ 287:77c157a9e645

Fix hash magic links.
author edogawaconan <me@myconan.net>
date Wed, 16 Oct 2013 04:17:42 +0900
parents fa4a1ba990ae
children e855e58d137e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
214
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
1 //= require zp.formatter
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
2 (function($) {
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
3 window.zp.hash_magic = {
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
4 load_hash: function() {
287
77c157a9e645 Fix hash magic links.
edogawaconan <me@myconan.net>
parents: 264
diff changeset
5 var
77c157a9e645 Fix hash magic links.
edogawaconan <me@myconan.net>
parents: 264
diff changeset
6 format = window.location.hash.slice(1),
77c157a9e645 Fix hash magic links.
edogawaconan <me@myconan.net>
parents: 264
diff changeset
7 tab_link = function(fmt) {
77c157a9e645 Fix hash magic links.
edogawaconan <me@myconan.net>
parents: 264
diff changeset
8 return zp.formatter.links().filter("[href='#" + fmt + "']")
77c157a9e645 Fix hash magic links.
edogawaconan <me@myconan.net>
parents: 264
diff changeset
9 }
77c157a9e645 Fix hash magic links.
edogawaconan <me@myconan.net>
parents: 264
diff changeset
10 if(!tab_link(format).length) format = "pl"
77c157a9e645 Fix hash magic links.
edogawaconan <me@myconan.net>
parents: 264
diff changeset
11 tab_link(format).click()
214
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
12 },
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
13 set_hash: function(e) {
224
6e9718a1ee11 Combine event-related actions
Edho Arief <edho@myconan.net>
parents: 223
diff changeset
14 if (typeof e !== "undefined") {
263
a9c45375a656 Nuke width adjuster from orbit.
edogawaconan <me@myconan.net>
parents: 232
diff changeset
15 if (zp.formatter.links().filter(e.target).length === 0) return
224
6e9718a1ee11 Combine event-related actions
Edho Arief <edho@myconan.net>
parents: 223
diff changeset
16 else e.preventDefault()
6e9718a1ee11 Combine event-related actions
Edho Arief <edho@myconan.net>
parents: 223
diff changeset
17 }
214
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
18 var
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
19 format = zp.formatter.current(),
263
a9c45375a656 Nuke width adjuster from orbit.
edogawaconan <me@myconan.net>
parents: 232
diff changeset
20 hash = "#"
214
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
21 hash += format
263
a9c45375a656 Nuke width adjuster from orbit.
edogawaconan <me@myconan.net>
parents: 232
diff changeset
22 if (hash === "#pl") { hash = " " }
214
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
23 history.replaceState(null, "", hash)
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
24 },
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
25 init: function() {
232
e3468efc9ec9 Do check if we're on the right place
Edho Arief <edho@myconan.net>
parents: 224
diff changeset
26 if (!$("#paste").length) return
214
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
27 this.load_hash()
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
28 if (history.replaceState) {
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
29 this.set_hash()
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
30 $(document).on('click', $.proxy(this.set_hash, this))
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
31 }
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
32 }
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
33 }
22c4b5f90e24 Massive javascript and html refactor. Also, ie9
Edho Arief <edho@myconan.net>
parents:
diff changeset
34 })(jQuery)