Commit | Line | Data |
---|---|---|
21c4e167 H |
1 | // Match links against PDF, PPT, PPS, and TIF files |
2 | var VIEWER_URL = 'http://freewheel.autodesk.com/dwf.aspx?path='; | |
3 | var pattern = new RegExp('^[^\\?#]+\\.(dwf)((#|\\?).*)?$', 'i'); | |
4 | var provideMenu = false; | |
5 | var targetHref; | |
6 | ||
7 | /** | |
8 | * Checks a link to see if it points to a potential gview supported file. | |
9 | * If so, rewrites the link to point to the Docs Viewer. | |
10 | */ | |
11 | function checkLink() { | |
12 | var href = this.href; | |
13 | if (pattern.test(href)) { | |
14 | // Show context menu on right click | |
15 | $(this).bind('contextmenu', function(e) { | |
16 | targetHref = href; | |
17 | $('#gview-cmenu').removeClass('gview-hidden').css( | |
18 | {'left':e.pageX, 'top':e.pageY})[0].focus(); | |
19 | return false; | |
20 | }); | |
21 | // Rewrite link | |
22 | this.href = VIEWER_URL + encodeURI(href); | |
23 | provideMenu = true; | |
24 | } | |
25 | }; | |
26 | ||
27 | // Ignore checks on docs viewer domain | |
28 | if (!/^https?:\/\/freewheel.autodesk.com/.test(window.location.href)) { | |
29 | // Check all the links in the page | |
30 | $('a').each(checkLink); | |
31 | // Create context menu | |
32 | if (provideMenu) { | |
33 | var menu = $("<ul id='gview-cmenu' class='gview-hidden' tabindex='9999'/>"); | |
34 | // Hide menu on blur | |
35 | menu.blur(function (e) { | |
36 | $(this).addClass('gview-hidden'); | |
37 | }); | |
38 | // Add open in new tab option | |
39 | var item = $("<li class='gview-cmenu-item'>Open Link in New Tab</li>"); | |
40 | item.click(function (e) { window.open(VIEWER_URL + encodeURI(targetHref)); }); | |
41 | menu.append(item); | |
42 | // Add download option | |
43 | var item = $("<li class='gview-cmenu-item'>Download</li>"); | |
44 | item.click(function (e) { window.location.href = targetHref; }); | |
45 | menu.append(item); | |
46 | // Add open as Doc option | |
47 | /* | |
48 | item = $("<li class='gview-cmenu-item'>Save in Google Docs</li>"); | |
49 | item.click(function (e) { | |
50 | window.open(VIEWER_URL + encodeURI(targetHref) + '&a=sv'); | |
51 | }); | |
52 | */ | |
53 | menu.append(item); | |
54 | $(document.body).append(menu); | |
55 | } | |
56 | } |