Commit | Line | Data |
---|---|---|
8eb39b80 D |
1 | <!DOCTYPE html>\r |
2 | <html>\r | |
3 | <head>\r | |
2b3eb5b9 | 4 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r |
ecc47600 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">\r |
8eb39b80 D |
6 | <base target="_blank">\r |
7 | \r | |
8 | <title> KiwiIRC </title>\r | |
9 | \r | |
aa92fb91 | 10 | <link rel="shortcut icon" href="<%base_path%>/assets/img/favicon.ico">\r |
2b3eb5b9 | 11 | \r |
8eb39b80 | 12 | <link rel="stylesheet" type="text/css" href="<%base_path%>/assets/css/style.css" />\r |
b20715f9 | 13 | <link rel="stylesheet" type="text/css" href="<%base_path%>/assets/css/font-awesome.min.css" />\r |
8eb39b80 D |
14 | <!--[if IE 7]>\r |
15 | <link rel="stylesheet" type="text/css" href="/kiwi/assets/css/font-awesome-ie7.css" />\r | |
16 | <![endif]-->\r | |
17 | </head>\r | |
18 | <body>\r | |
19 | <div id="kiwi" class="theme_relaxed">\r | |
4f99a29b | 20 | <div class="toolbar">\r |
8eb39b80 D |
21 | <div class="app_tools">\r |
22 | <ul class="main">\r | |
23 | <li class="settings"><i class="icon-cogs" title="Settings"></i></li>\r | |
155d9f1d | 24 | <li><a href="https://kiwiirc.com/" target="_blank"><img src="<%base_path%>/assets/img/ico.png" alt="KiwiIRC" title="KiwiIRC" /></a></li>\r |
8eb39b80 D |
25 | </ul>\r |
26 | </div>\r | |
27 | \r | |
de214968 | 28 | <div class="tabs"></div>\r |
8eb39b80 | 29 | \r |
de214968 | 30 | <div class="topic">\r |
8eb39b80 D |
31 | <div contenteditable="true"></div>\r |
32 | </div>\r | |
33 | \r | |
707593d2 | 34 | <div class="status_message"></div>\r |
8eb39b80 D |
35 | </div>\r |
36 | \r | |
30f9f42a | 37 | <div class="memberlists_resize_handle"></div>\r |
8eb39b80 | 38 | \r |
30f9f42a | 39 | <div class="panels">\r |
8eb39b80 D |
40 | <div class="panel_container container1"></div>\r |
41 | </div>\r | |
42 | \r | |
cd66544e | 43 | <div class="memberlists disabled"></div>\r |
8eb39b80 | 44 | \r |
1e85105e | 45 | <div class="controlbox">\r |
8eb39b80 D |
46 | <div class="input">\r |
47 | <span class="nick"> </span>\r | |
48 | <div class="input_wrap"><textarea class="inp"></textarea></div>\r | |
fb989cb2 | 49 | <div class="input_tools"></div>\r |
8eb39b80 D |
50 | </div>\r |
51 | </div>\r | |
52 | </div>\r | |
53 | \r | |
54 | \r | |
55 | \r | |
56 | \r | |
57 | \r | |
58 | \r | |
59 | <script type="text/html" id="tmpl_userbox">\r | |
60 | <div class="userbox">\r | |
062bae80 JA |
61 | <a class="if_op op"><i class="icon-star"></i>Op</a>\r |
62 | <a class="if_op deop"><i class="icon-star-empty"></i>De-op</a>\r | |
63 | <a class="if_op voice"><i class="icon-volume-up"></i>Voice</a>\r | |
64 | <a class="if_op devoice"><i class="icon-volume-off"></i>De-voice</a>\r | |
65 | <a class="if_op kick"><i class="icon-remove"></i>Kick</a>\r | |
66 | <a class="if_op ban"><i class="icon-ban-circle"></i>Ban</a>\r | |
67 | \r | |
8eb39b80 D |
68 | <a class="query"><i class="icon-comment"></i>Message</a>\r |
69 | <a class="info"><i class="icon-info-sign"></i>Info</a>\r | |
70 | <a class="slap"><i class="icon-user-md"></i>Slap!</a>\r | |
8eb39b80 D |
71 | </div>\r |
72 | </script>\r | |
73 | \r | |
74 | <script type="text/html" id="tmpl_nickchange">\r | |
75 | <form class="nickchange">\r | |
76 | <label for="nickchange">New nick:</label> <input type="text" mozactionhint="done" autocomplete="off" spellcheck="false"/> <button>Change</button> <a class="cancel">Cancel</a>\r | |
77 | </form>\r | |
78 | </script>\r | |
79 | \r | |
21e3d147 D |
80 | <script type="text/html" id="tmpl_new_connection_info">\r |
81 | <div style="margin:1em 20px;">\r | |
82 | <img src="https://kiwiirc.com/img/ico.png" alt="KiwiIRC Logo" title="Kiwi IRC" style="display:block; margin:0 auto;"/> <br />\r | |
83 | <p style="font-style:italic;">A <strong>hand-crafted IRC client</strong> that you can enjoy. Designed to be used <strong>easily</strong> and <strong>freely</strong>.</p>\r | |
84 | \r | |
85 | <p style="font-size:0.9em;margin-top:2em;">Peek at the <a href="https://www.kiwiirc.com/">Kiwi IRC homepage</a> for more information or to find out how to embed it on your own website. Looking for source code? Try the <a href="http://github.com/prawnsalad/KiwiIRC/">GitHub</a> page. This network of people may not be associated with Kiwi IRC itself.</p>\r | |
86 | </div>\r | |
87 | </script>\r | |
88 | \r | |
8eb39b80 D |
89 | <script type="text/html" id="tmpl_server_select">\r |
90 | <div class="server_select">\r | |
91 | \r | |
21e3d147 D |
92 | <div class="side_panel" style="position:absolute;top:0px;left:320px;">\r |
93 | <div class="content" style="position:relative;width:300px;">\r | |
94 | </div>\r | |
95 | </div>\r | |
96 | \r | |
3735e390 | 97 | <div class="server_details" style="position:relative;width:320px;">\r |
8eb39b80 D |
98 | <div class="status">Think of a nickname..</div>\r |
99 | \r | |
100 | <form>\r | |
101 | <div class="basic">\r | |
bac3c32e D |
102 | <table>\r |
103 | <tr class="nick">\r | |
104 | <td><label for="server_select_nick">Nickname</label></td>\r | |
105 | <td><input type="text" class="nick" id="server_select_nick"></td>\r | |
106 | </tr>\r | |
107 | \r | |
108 | <tr class="have_pass">\r | |
109 | <td colspan="2">\r | |
110 | <label for="server_select_show_pass">I have a password</label> <input type="checkbox" id="server_select_show_pass" style="width:auto;" />\r | |
111 | </td>\r | |
112 | </tr>\r | |
113 | \r | |
114 | <tr class="pass">\r | |
115 | <td><label for="server_select_password">Password</label></td>\r | |
116 | <td><input type="password" class="password" id="server_select_password"></td>\r | |
117 | </tr>\r | |
118 | \r | |
119 | <tr class="channel">\r | |
120 | <td><label for="server_select_channel">Channel</label></td>\r | |
700ef8ba D |
121 | <td>\r |
122 | <div style="position:relative;">\r | |
123 | <input type="text" class="channel" id="server_select_channel">\r | |
124 | <i class="icon-key" title="Channel Key"></i>\r | |
125 | </div>\r | |
126 | </td>\r | |
9f67f0f2 JA |
127 | </tr>\r |
128 | \r | |
129 | <tr class="have_key">\r | |
130 | <td colspan="2">\r | |
131 | <label for="server_select_show_channel_key">Channel requires a key</label> <input type="checkbox" id="server_select_show_channel_key" style="width:auto;" />\r | |
132 | </td>\r | |
133 | </tr>\r | |
134 | \r | |
135 | <tr class="key">\r | |
136 | <td><label for="server_select_channel_key">Key</label></td>\r | |
b1e93bfa | 137 | <td><input type="password" class="channel_key" id="server_select_channel_key"></td>\r |
bac3c32e D |
138 | </tr>\r |
139 | \r | |
140 | <tr class="start">\r | |
141 | <td colspan="2"><button type="submit">Start..</button></td>\r | |
142 | </tr>\r | |
143 | </table>\r | |
144 | \r | |
145 | <a href="" onclick="return false;" class="show_more">Server and network</a>\r | |
8eb39b80 D |
146 | </div>\r |
147 | \r | |
bf3d49ee | 148 | \r |
bac3c32e D |
149 | <div class="more">\r |
150 | <table>\r | |
151 | <tr class="server">\r | |
152 | <td><label for="server_select_server">Server</label></td>\r | |
153 | <td><input type="text" class="server" id="server_select_server"></td>\r | |
154 | <tr>\r | |
155 | \r | |
156 | <tr class="port">\r | |
157 | <td><label for="server_select_port">Port</label></td>\r | |
158 | <td><input type="text" class="port" id="server_select_port"></td>\r | |
159 | </tr>\r | |
160 | \r | |
161 | <tr class="ssl">\r | |
162 | <td><label for="server_select_ssl">SSL</label></td>\r | |
163 | <td><input type="checkbox" class="ssl" id="server_select_ssl"></td>\r | |
164 | </tr>\r | |
165 | </table>\r | |
8eb39b80 D |
166 | </div>\r |
167 | </form>\r | |
168 | \r | |
155d9f1d | 169 | <a class="kiwi_logo" href="https://kiwiirc.com/" target="_blank">\r |
ebb21b51 | 170 | <h1><span>Powered by Kiwi IRC</span> <img src="<%base_path%>/assets/img/ico.png" alt="KiwiIRC Logo" title="Kiwi IRC" /></h1>\r |
8eb39b80 | 171 | </a>\r |
8eb39b80 D |
172 | </div>\r |
173 | </div>\r | |
174 | </script>\r | |
175 | \r | |
176 | <script type="text/html" id="tmpl_applet_settings">\r | |
5720c80a | 177 | <div class="settings_container">\r |
41e7e25b VC |
178 | <section>\r |
179 | <h6>Theme</h6>\r | |
f1bc407a | 180 | <div class="control-group">\r |
41e7e25b VC |
181 | <div class="thumbnails">\r |
182 | <a class="thumbnail" data-setting="theme" data-value="relaxed" href="#">\r | |
34edea2e | 183 | <div class="thumbnail_wrapper"><div class="theme_color" style="background-color: #e7e7e7;"></div></div>\r |
41e7e25b VC |
184 | <div class="caption"><u>Relaxed</u></div>\r |
185 | </a>\r | |
186 | <a class="thumbnail" data-setting="theme" data-value="mini" href="#">\r | |
34edea2e | 187 | <div class="thumbnail_wrapper"><div class="theme_color" style="background-color: #fff;"></div></div>\r |
41e7e25b VC |
188 | <div class="caption"><u>Mini</u></div>\r |
189 | </a>\r | |
190 | <a class="thumbnail" data-setting="theme" data-value="cli" href="#">\r | |
34edea2e | 191 | <div class="thumbnail_wrapper"><div class="theme_color" style="background-color: #222;"></div></div>\r |
41e7e25b VC |
192 | <div class="caption"><u>CLI</u></div>\r |
193 | </a>\r | |
194 | <a class="thumbnail" data-setting="theme" data-value="basic" href="#">\r | |
34edea2e | 195 | <div class="thumbnail_wrapper"><div class="theme_color" style="background-color: #e7e7e7;"></div></div>\r |
41e7e25b VC |
196 | <div class="caption"><u>Basic</u></div>\r |
197 | </a>\r | |
198 | </div>\r | |
199 | </div>\r | |
200 | </section>\r | |
201 | \r | |
202 | <section>\r | |
203 | <h6>Channels</h6>\r | |
f1bc407a | 204 | <div class="control-group">\r |
41e7e25b VC |
205 | <div class="radio">\r |
206 | <label>\r | |
207 | <input type="radio" name="channel_list_style" data-setting="channel_list_style" value="tabs">\r | |
208 | Tabs\r | |
209 | </label>\r | |
210 | </div>\r | |
211 | <div class="radio">\r | |
212 | <label>\r | |
213 | <input type="radio" name="channel_list_style" data-setting="channel_list_style" value="list">\r | |
214 | List <small class="text-muted">(for large amouts of channels)</small>\r | |
215 | </label>\r | |
216 | </div>\r | |
217 | </div>\r | |
218 | </section>\r | |
219 | \r | |
220 | <section>\r | |
221 | <h6>Chat window</h6>\r | |
f1bc407a | 222 | <div class="control-group">\r |
41e7e25b VC |
223 | <div class="checkbox">\r |
224 | <label>\r | |
225 | <input data-setting="show_joins_parts" type="checkbox">\r | |
226 | Join/part channel notifications\r | |
227 | </label>\r | |
228 | </div>\r | |
229 | <div class="checkbox">\r | |
230 | <label>\r | |
231 | <input data-setting="show_timestamps" type="checkbox">\r | |
232 | Timestamps\r | |
233 | </label>\r | |
234 | </div>\r | |
235 | <div class="checkbox">\r | |
236 | <label>\r | |
237 | <input data-setting="mute_sounds" type="checkbox">\r | |
2392d889 | 238 | Mute sound notifications\r |
41e7e25b VC |
239 | </label>\r |
240 | </div>\r | |
241 | <label>\r | |
242 | <input data-setting="scrollback" class="input-small" type="text" size="4" pattern="\d*">\r | |
243 | <span>messages in scroll history</span>\r | |
244 | </label>\r | |
245 | </div>\r | |
246 | </section>\r | |
8eb39b80 D |
247 | </div>\r |
248 | </script>\r | |
249 | \r | |
250 | \r | |
251 | <script type="text/html" id="tmpl_channel_list">\r | |
252 | <div>\r | |
253 | <table style="margin:1em 2em;">\r | |
254 | <thead style="font-weight: bold;">\r | |
255 | <tr>\r | |
256 | <td>Channel Name</td>\r | |
257 | <td>Users</td>\r | |
258 | <td style="padding-left: 2em;">Topic</td>\r | |
259 | </tr>\r | |
260 | </thead>\r | |
261 | <tbody style="vertical-align: top;">\r | |
262 | </tbody>\r | |
263 | </table>\r | |
264 | </div>\r | |
265 | </script>\r | |
266 | \r | |
267 | \r | |
22373da6 D |
268 | <script type="text/html" id="tmpl_script_editor">\r |
269 | <div style="height:100%;">\r | |
270 | <style>\r | |
8c3b8ed2 D |
271 | #kiwi .script_editor .se_toolbar { padding: 10px 20px; }\r |
272 | #kiwi .script_editor .se_toolbar span.status { margin-left:2em; font-style:italic; }\r | |
273 | #kiwi .script_editor .se_toolbar button { height:30px; padding:0 1em; }\r | |
274 | #kiwi .script_editor .se_toolbar button i { font-size:1.2em; margin-left:3px; }\r | |
22373da6 D |
275 | </style>\r |
276 | <div class="script_editor" style="height:100%; position:relative;">\r | |
8c3b8ed2 | 277 | <div class="se_toolbar"><button class="btn_save">Save <i class="icon-save"></i></button><span class="status"></span></div>\r |
22373da6 D |
278 | <div class="editor" style="position:absolute;top:50px;bottom:0px;left:0px;right:0px;"></div>\r |
279 | </div>\r | |
280 | </div>\r | |
281 | </script>\r | |
282 | \r | |
283 | \r | |
8eb39b80 D |
284 | <script>\r |
285 | /* Script loader (https://github.com/ded/script.js) */\r | |
286 | (function(a,b,c){typeof c["module"]!="undefined"&&c.module.exports?c.module.exports=b():typeof c["define"]!="undefined"&&c["define"]=="function"&&c.define.amd?define(a,b):c[a]=b()})("$script",function(){function p(a,b){for(var c=0,d=a.length;c<d;++c)if(!b(a[c]))return j;return 1}function q(a,b){p(a,function(a){return!b(a)})}function r(a,b,i){function o(a){return a.call?a():d[a]}function t(){if(!--n){d[m]=1,l&&l();for(var a in f)p(a.split("|"),o)&&!q(f[a],o)&&(f[a]=[])}}a=a[k]?a:[a];var j=b&&b.call,l=j?b:i,m=j?a.join(""):b,n=a.length;return setTimeout(function(){q(a,function(a){if(h[a])return m&&(e[m]=1),h[a]==2&&t();h[a]=1,m&&(e[m]=1),s(!c.test(a)&&g?g+a+".js":a,t)})},0),r}function s(c,d){var e=a.createElement("script"),f=j;e.onload=e.onerror=e[o]=function(){if(e[m]&&!/^c|loade/.test(e[m])||f)return;e.onload=e[o]=null,f=1,h[c]=2,d()},e.async=1,e.src=c,b.insertBefore(e,b.firstChild)}var a=document,b=a.getElementsByTagName("head")[0],c=/^https?:\/\//,d={},e={},f={},g,h={},i="string",j=!1,k="push",l="DOMContentLoaded",m="readyState",n="addEventListener",o="onreadystatechange";return!a[m]&&a[n]&&(a[n](l,function t(){a.removeEventListener(l,t,j),a[m]="complete"},j),a[m]="loading"),r.get=s,r.order=function(a,b,c){(function d(e){e=a.shift(),a.length?r(e,d):r(e,b,c)})()},r.path=function(a){g=a},r.ready=function(a,b,c){a=a[k]?a:[a];var e=[];return!q(a,function(a){d[a]||e[k](a)})&&p(a,function(a){return d[a]})?b():!function(a){f[a]=f[a]||[],f[a][k](b),c&&c(e)}(a.join("|")),r},r},this)\r | |
287 | \r | |
288 | \r | |
289 | \r | |
290 | \r | |
291 | function getQueryVariable(variable) {\r | |
292 | var query = window.location.search.substring(1);\r | |
293 | var vars = query.split('&');\r | |
294 | for (var i = 0; i < vars.length; i++) {\r | |
295 | var pair = vars[i].split('=');\r | |
296 | if (decodeURIComponent(pair[0]) == variable) {\r | |
297 | return decodeURIComponent(pair[1]);\r | |
298 | }\r | |
299 | }\r | |
300 | }\r | |
301 | \r | |
302 | window.onload = function () {\r | |
303 | \r | |
304 | // Common dependancies that are required at all times\r | |
305 | var scripts = [\r | |
0935901c | 306 | ['libs/jquery-1.9.1.min.js', 'libs/lodash.min.js'],\r |
70664613 | 307 | 'libs/backbone.min.js'\r |
8eb39b80 D |
308 | ];\r |
309 | \r | |
310 | // If in debug mode, load each development script\r | |
311 | if (getQueryVariable('debug')) {\r | |
312 | console.log('Loading debugging scripts');\r | |
313 | scripts = scripts.concat([\r | |
2d22d7e2 | 314 | 'src/app.js',\r |
8eb39b80 | 315 | [\r |
2d22d7e2 D |
316 | 'src/models/application.js',\r |
317 | 'src/models/gateway.js'\r | |
8eb39b80 D |
318 | ],\r |
319 | [\r | |
2d22d7e2 D |
320 | 'src/models/newconnection.js',\r |
321 | 'src/models/panellist.js',\r | |
322 | 'src/models/networkpanellist.js',\r | |
323 | 'src/models/panel.js',\r | |
324 | 'src/models/member.js',\r | |
325 | 'src/models/memberlist.js',\r | |
326 | 'src/models/network.js'\r | |
8eb39b80 D |
327 | ],\r |
328 | \r | |
329 | [\r | |
2d22d7e2 D |
330 | 'src/models/query.js',\r |
331 | 'src/models/channel.js',\r | |
332 | 'src/models/server.js',\r | |
333 | 'src/models/applet.js'\r | |
8eb39b80 D |
334 | ],\r |
335 | \r | |
336 | [\r | |
2d22d7e2 | 337 | 'src/applets/settings.js',\r |
2d22d7e2 D |
338 | 'src/applets/chanlist.js',\r |
339 | 'src/applets/scripteditor.js'\r | |
8eb39b80 D |
340 | ],\r |
341 | \r | |
342 | [\r | |
2d22d7e2 D |
343 | 'src/models/pluginmanager.js',\r |
344 | 'src/models/datastore.js',\r | |
3ea29ac2 | 345 | 'src/helpers/utils.js'\r |
50ac472f D |
346 | ],\r |
347 | \r | |
348 | // Some views extend these, so make sure they're loaded beforehand\r | |
349 | [\r | |
350 | 'src/views/panel.js'\r | |
351 | ],\r | |
352 | \r | |
353 | [\r | |
354 | 'src/views/channel.js',\r | |
355 | 'src/views/applet.js',\r | |
356 | 'src/views/application.js',\r | |
357 | 'src/views/apptoolbar.js',\r | |
358 | 'src/views/controlbox.js',\r | |
0b7949de | 359 | 'src/views/favicon.js',\r |
50ac472f D |
360 | 'src/views/mediamessage.js',\r |
361 | 'src/views/member.js',\r | |
362 | 'src/views/memberlist.js',\r | |
363 | 'src/views/menubox.js',\r | |
364 | 'src/views/networktabs.js',\r | |
365 | 'src/views/nickchangebox.js',\r | |
366 | 'src/views/resizehandler.js',\r | |
367 | 'src/views/serverselect.js',\r | |
368 | 'src/views/statusmessage.js',\r | |
369 | 'src/views/tabs.js',\r | |
370 | 'src/views/topicbar.js',\r | |
371 | 'src/views/userbox.js'\r | |
8eb39b80 D |
372 | ]\r |
373 | ]);\r | |
374 | } else {\r | |
375 | scripts.push('kiwi.min.js?<%cache_buster%>');\r | |
376 | }\r | |
377 | \r | |
378 | \r | |
379 | // Run after all dependancies have been loaded\r | |
380 | function startApp () {\r | |
381 | var opts = {\r | |
382 | container: $('#kiwi'),\r | |
93e84f75 | 383 | base_path: base_path,\r |
8eb39b80 D |
384 | \r |
385 | // Override the kiwi_server to use. (Think: running on standalone client..)\r | |
93e84f75 D |
386 | //kiwi_server: 'http://kiwiirc.com:80',\r |
387 | \r | |
2eec3842 D |
388 | server_settings: <%server_settings%>,\r |
389 | client_plugins: <%client_plugins%>\r | |
8eb39b80 D |
390 | };\r |
391 | \r | |
eaaf73b0 D |
392 | // Start the app\r |
393 | kiwi.start(opts);\r | |
2eec3842 D |
394 | \r |
395 | // Load any plugins\r | |
396 | if (opts.client_plugins && opts.client_plugins.length > 0) {\r | |
397 | _.each(opts.client_plugins, function (plugin_url) {\r | |
398 | kiwi.plugins.load(plugin_url);\r | |
399 | });\r | |
400 | }\r | |
8eb39b80 D |
401 | }\r |
402 | \r | |
403 | \r | |
404 | // Load each script\r | |
405 | var cur_script = 0;\r | |
406 | function loadNextScript () {\r | |
407 | var to_load,\r | |
408 | base = base_path + '/assets/';\r | |
409 | \r | |
410 | // Start the kiwi app if all scripts have been loaded\r | |
411 | if (cur_script === scripts.length) {\r | |
412 | startApp();\r | |
413 | return;\r | |
414 | }\r | |
415 | \r | |
416 | if (typeof scripts[cur_script] === 'string') {\r | |
417 | to_load = base + scripts[cur_script];\r | |
418 | } else {\r | |
419 | to_load = [];\r | |
420 | for(var idx in scripts[cur_script]) {\r | |
421 | to_load.push(base + scripts[cur_script][idx]);\r | |
422 | }\r | |
423 | }\r | |
424 | \r | |
425 | $script(to_load, loadNextScript);\r | |
426 | \r | |
427 | cur_script++;\r | |
428 | }\r | |
429 | \r | |
430 | // Entry path for the kiwi application\r | |
431 | var base_path = '<%base_path%>';\r | |
432 | \r | |
433 | // Start loading scripts\r | |
434 | loadNextScript();\r | |
435 | };\r | |
436 | </script>\r | |
437 | </body>\r | |
b1e93bfa | 438 | </html>\r |