| 1 | <!DOCTYPE html> |
| 2 | <html> |
| 3 | <head> |
| 4 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
| 5 | <base target="_blank"> |
| 6 | |
| 7 | <title> KiwiIRC </title> |
| 8 | |
| 9 | <link rel="stylesheet" type="text/css" href="/kiwi/assets/css/style.css" /> |
| 10 | |
| 11 | </head> |
| 12 | <body> |
| 13 | <div id="kiwi"> |
| 14 | <div id="toolbar"> |
| 15 | <a class="kiwi_logo" href="http://www.kiwiirc.com/" target="_blank"> |
| 16 | <h2><img src="/kiwi/assets/img/ico.png" alt="KiwiIRC Logo" title="Kiwi IRC" /> Powered by Kiwi IRC</h2> |
| 17 | </a> |
| 18 | |
| 19 | <div id="tabs"> |
| 20 | <ul class="panellist channels"></ul> |
| 21 | <ul class="panellist applets"></ul> |
| 22 | </div> |
| 23 | |
| 24 | <div id="topic"> |
| 25 | <input type="text" /> |
| 26 | </div> |
| 27 | |
| 28 | <div id="status_message"></div> |
| 29 | </div> |
| 30 | |
| 31 | <div id="memberlists_resize_handle"></div> |
| 32 | |
| 33 | <div id="panels"> |
| 34 | <div class="panel_container container1"></div> |
| 35 | </div> |
| 36 | |
| 37 | <div id="memberlists"></div> |
| 38 | |
| 39 | <div id="controlbox"> |
| 40 | <div class="input"> |
| 41 | <span class="nick"> </span> |
| 42 | <div class="input_wrap"><input type="text" class="inp" /></div> |
| 43 | </div> |
| 44 | </div> |
| 45 | </div> |
| 46 | |
| 47 | |
| 48 | |
| 49 | |
| 50 | |
| 51 | |
| 52 | <script type="text/html" id="tmpl_userbox"> |
| 53 | <div class="userbox"> |
| 54 | <a class="query">Message</a> |
| 55 | <a class="info">Info</a> |
| 56 | <a class="slap">Slap!</a> |
| 57 | |
| 58 | <div class="divider-horizontal"></div> |
| 59 | </div> |
| 60 | </script> |
| 61 | |
| 62 | <script type="text/html" id="tmpl_nickchange"> |
| 63 | <form class="nickchange"> |
| 64 | <label for="nickchange">New nick:</label> <input type="text" mozactionhint="done" autocomplete="off" spellcheck="false"/> <button>Change</button> <a class="cancel">Cancel</a> |
| 65 | </form> |
| 66 | </script> |
| 67 | |
| 68 | <script type="text/html" id="tmpl_server_select"> |
| 69 | <div class="server_select"> |
| 70 | |
| 71 | <div style="position:relative;float:left;width:320px;padding-right:3em;margin-top:50px;"> |
| 72 | <div class="status">Think of a nickname..</div> |
| 73 | |
| 74 | <form> |
| 75 | <div class="basic"> |
| 76 | <label for="server_select_nick">Nickname</label> |
| 77 | <input type="text" class="nick" id="server_select_nick"> <br /> |
| 78 | |
| 79 | <button type="submit">Start..</button> <br /> |
| 80 | <a href="" onclick="return false;" class="show_more">More</a> |
| 81 | </div> |
| 82 | |
| 83 | <div class="more"> |
| 84 | <label for="server_select_server">Server</label> |
| 85 | <input type="text" class="server" id="server_select_server"> <br /> |
| 86 | <label for="server_select_channel">Channel</label> |
| 87 | <input type="text" class="channel" id="server_select_channel"> <br /> |
| 88 | <br /> |
| 89 | <label for="server_select_port">Port</label> |
| 90 | <input type="text" class="port" id="server_select_port"> <br /> |
| 91 | <label for="server_select_password">Password</label> |
| 92 | <input type="text" class="password" id="server_select_password"> <br /> |
| 93 | <label for="server_select_ssl">SSL</label> |
| 94 | <input type="checkbox" class="ssl" id="server_select_ssl"> |
| 95 | </div> |
| 96 | </form> |
| 97 | |
| 98 | <div class="divider-verticle"></div> |
| 99 | </div> |
| 100 | |
| 101 | <div style="position:relative;float:left;width:320px;margin-left:3em;color:#555555;"> |
| 102 | <a class="kiwi_logo" href="http://www.kiwiirc.com/" target="_blank"> |
| 103 | <img src="/kiwi/assets/img/ico.png" alt="KiwiIRC Logo" title="Kiwi IRC" /> <br /> |
| 104 | <h1>Powered by Kiwi IRC</h1> |
| 105 | </a> |
| 106 | |
| 107 | <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> |
| 108 | |
| 109 | <p style="font-size:0.9em;margin-top:2em;">Peek at the <a href="http://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> |
| 110 | </div> |
| 111 | </div> |
| 112 | </script> |
| 113 | |
| 114 | <script type="text/html" id="tmpl_applet_settings"> |
| 115 | <div> |
| 116 | <select class="theme"> |
| 117 | <option value="default">Default</option> |
| 118 | <option value="relaxed">Relaxed</option> |
| 119 | <option value="cli">CLI</option> |
| 120 | </select> |
| 121 | <button class="save">Save</button> |
| 122 | </div> |
| 123 | </script> |
| 124 | |
| 125 | |
| 126 | <script type="text/html" id="tmpl_channel_list"> |
| 127 | <div> |
| 128 | <table style="margin:1em 2em;"> |
| 129 | <thead style="font-weight: bold;"> |
| 130 | <tr> |
| 131 | <td>Channel Name</td> |
| 132 | <td>Users</td> |
| 133 | <td style="padding-left: 2em;">Topic</td> |
| 134 | </tr> |
| 135 | </thead> |
| 136 | <tbody style="vertical-align: top;"> |
| 137 | </tbody> |
| 138 | </table> |
| 139 | </div> |
| 140 | </script> |
| 141 | |
| 142 | |
| 143 | <script> |
| 144 | /* Script loader (https://github.com/ded/script.js) */ |
| 145 | (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) |
| 146 | |
| 147 | |
| 148 | |
| 149 | |
| 150 | function getQueryVariable(variable) { |
| 151 | var query = window.location.search.substring(1); |
| 152 | var vars = query.split('&'); |
| 153 | for (var i = 0; i < vars.length; i++) { |
| 154 | var pair = vars[i].split('='); |
| 155 | if (decodeURIComponent(pair[0]) == variable) { |
| 156 | return decodeURIComponent(pair[1]); |
| 157 | } |
| 158 | } |
| 159 | } |
| 160 | |
| 161 | window.onload = function () { |
| 162 | |
| 163 | // Common dependancies that are required at all times |
| 164 | var scripts = [ |
| 165 | ['jquery-1.7.1.min.js', 'underscore-min.js'], |
| 166 | 'backbone-git.js' |
| 167 | ]; |
| 168 | |
| 169 | // If in debug mode, load each development script |
| 170 | if (getQueryVariable('debug')) { |
| 171 | console.log('Loading debugging scripts'); |
| 172 | scripts = scripts.concat([ |
| 173 | 'dev/app.js', |
| 174 | [ |
| 175 | 'dev/model_application.js', |
| 176 | 'dev/model_gateway.js' |
| 177 | ], |
| 178 | [ |
| 179 | 'dev/model_panellist.js', |
| 180 | 'dev/model_panel.js', |
| 181 | 'dev/model_member.js', |
| 182 | 'dev/model_memberlist.js' |
| 183 | ], |
| 184 | |
| 185 | [ |
| 186 | 'dev/model_channel.js', |
| 187 | 'dev/model_server.js', |
| 188 | 'dev/model_applet.js' |
| 189 | ], |
| 190 | |
| 191 | [ |
| 192 | 'dev/applet_settings.js', |
| 193 | 'dev/applet_nickserv.js', |
| 194 | 'dev/applet_chanlist.js' |
| 195 | ], |
| 196 | |
| 197 | [ |
| 198 | 'dev/utils.js', |
| 199 | 'dev/view.js' |
| 200 | ] |
| 201 | ]); |
| 202 | } else { |
| 203 | scripts.push('kiwi.js'); |
| 204 | } |
| 205 | |
| 206 | |
| 207 | // Run after all dependancies have been loaded |
| 208 | function startApp () { |
| 209 | var opts = { |
| 210 | container: $('#kiwi'), |
| 211 | base_path: base_path |
| 212 | |
| 213 | // Override the kiwi_server to use. (Think: running on standalone client..) |
| 214 | //kiwi_server: 'http://kiwiirc.com:80' |
| 215 | }; |
| 216 | |
| 217 | // Start the app by either the dev or closed environment |
| 218 | (kiwi && kiwi.global && kiwi.global.start(opts)) || (kiwi && kiwi.start(opts)); |
| 219 | } |
| 220 | |
| 221 | |
| 222 | // Load each script |
| 223 | var cur_script = 0; |
| 224 | function loadNextScript () { |
| 225 | var to_load, |
| 226 | base = base_path + '/assets/'; |
| 227 | |
| 228 | // Start the kiwi app if all scripts have been loaded |
| 229 | if (cur_script === scripts.length) { |
| 230 | startApp(); |
| 231 | return; |
| 232 | } |
| 233 | |
| 234 | if (typeof scripts[cur_script] === 'string') { |
| 235 | to_load = base + scripts[cur_script]; |
| 236 | } else { |
| 237 | to_load = []; |
| 238 | for(var idx in scripts[cur_script]) { |
| 239 | to_load.push(base + scripts[cur_script][idx]); |
| 240 | } |
| 241 | } |
| 242 | |
| 243 | $script(to_load, loadNextScript); |
| 244 | |
| 245 | cur_script++; |
| 246 | } |
| 247 | |
| 248 | // Entry path for the kiwi application |
| 249 | var base_path = '/kiwi'; |
| 250 | |
| 251 | // Start loading scripts |
| 252 | loadNextScript(); |
| 253 | }; |
| 254 | </script> |
| 255 | </body> |
| 256 | </html> |