master
handlebars 92 lines 4.68 KB
Raw
1 <!DOCTYPE html>
2 <html lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv=X-UA-Compatible content="IE=edge" />
5 <meta content="text/html;charset=utf-8" http-equiv=Content-Type />
6 <meta name=viewport content="user-scalable=1.0,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0" />
7 <meta name=apple-mobile-web-app-capable content=yes />
8 <meta name=format-detection content="telephone=no" />
9 <meta name="robots" content="noindex,nofollow">
10 <link type=text/css href="/styles/style.css" media="screen" rel="stylesheet" title="CSS" />
11 {{{customCSSTags}}}
12 <link rel="apple-touch-icon" href="/favicon-303x303.png" />
13 {{{customJSTags}}}
14 <title>{{{title1}}} - Download</title>
15 <style>
16 body {
17 background-color: cadetblue;
18 background: linear-gradient(to bottom right, #369, #036);
19 height:100%;
20 overflow:hidden;
21 }
22
23 a:link { color: #c8c8c8; }
24 a:visited { color: #c8c8c8; }
25 a:hover { color: #c8c8c8; }
26 a:active { color: #c8c8c8; }
27 </style>
28 </head>
29 <body>
30 <img style="position:absolute;left:0;bottom:0;z-index:-1;height:60%;opacity:0.1" src="../../images/login/back.png" />
31 <table id="centralTable" class="container" style="height:100%;z-index:1">
32 <tr>
33 <td style="width:100%;text-align:center">
34 <div id="message" style="display:none;color:#c8c8c8;font-size:20px"></div>
35 <table id="filetable" style="margin: 0 auto;color:#c8c8c8">
36 <tr>
37 <td>
38 <a id=fileimagelink>
39 <img id=fileimage src="../../images/login/file48.png" title="File" width="48" height="48" style="margin-left:3px;margin-right:3px;border-radius:3px;box-shadow:2px 2px 5px black;cursor:pointer;background-color:#FFF;margin-right:8px" />
40 </a>
41 </td>
42 <td style="text-align:left">
43 <div id="flink" style="font-size:22px">
44 <a id="filelink"></a>
45 </div>
46 <div id="filesize" style="font-size:16px"></div>
47 </td>
48 </tr>
49 </table>
50 </td>
51 </tr>
52 <tr style="height:20px">
53 <td>
54 <div>
55 <div id="flink" style="margin-left:4px">{{{footer}}}</div>
56 <div id="flink" style="float:right;margin-right:4px">{{{rootCertLink}}}&nbsp;<a href=../../terms>Terms &amp; Privacy</a></div>
57 </div>
58 </td>
59 </tr>
60 </table>
61 <script>
62 var random = '{{{randomlength}}}' // Random length string for BREACH mitigation
63 var messageid = parseInt('{{{messageid}}}');
64 var fileurl = '{{{fileurl}}}';
65 var filename = '{{{filename}}}';
66 var filesize = parseInt('{{{filesize}}}');
67
68 // Quick UI functions, a bit of a replacement for jQuery
69 function Q(x) { return document.getElementById(x); } // "Q"
70 function QS(x) { try { return Q(x).style; } catch (x) { } } // "Q" style
71 function QE(x, y) { try { Q(x).disabled = !y; } catch (x) { } } // "Q" enable
72 function QV(x, y) { try { QS(x).display = (y ? '' : 'none'); } catch (x) { } } // "Q" visible
73 function QA(x, y) { Q(x).innerHTML += y; } // "Q" append
74 function QH(x, y) { Q(x).innerHTML = y; } // "Q" html
75 function QC(x) { try { return Q(x).classList; } catch (x) { } } // "Q" class
76 function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
77 function EscapeHtml(x) { if (typeof x == 'string') return x.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/"/g, '&quot;').replace(/'/g, '&apos;'); if (typeof x == 'boolean') return x; if (typeof x == 'number') return x; }
78
79 QV('filetable', messageid == 1);
80 QV('message', messageid == 2);
81
82 if (messageid == 1) {
83 QH('filelink', EscapeHtml(filename));
84 Q('filelink').href = fileurl;
85 Q('fileimagelink').href = fileurl;
86 if (filesize == 1) { QH('filesize', format("1 byte")); } else { QH('filesize', format("{0} bytes", filesize)); }
87 } else if (messageid == 2) {
88 QH('message', "Invalid file link");
89 }
90 </script>
91 </body>
92 </html>