<div class="app_tools">\r
<ul class="main">\r
<li class="settings"><i class="icon-cogs" title="Settings"></i></li>\r
+ <li class="startup"><i class="icon-home" title="Home"></i></li>\r
<li><a href="https://kiwiirc.com/" target="_blank"><img src="<%base_path%>/assets/img/ico.png" alt="KiwiIRC" title="KiwiIRC" /></a></li>\r
</ul>\r
</div>\r
\r
<a class="close_menu query"><i class="icon-comment"></i><%= message %></a>\r
<a class="close_menu info"><i class="icon-info-sign"></i><%= info %></a>\r
- <a class="close_menu slap"><i class="icon-user-md"></i><%= slap %></a>\r
+ <a class="close_menu ignore"><label><i><input type="checkbox" /></i><%= ignore %></label></a>\r
</div>\r
</script>\r
\r
<%= timestamps %>\r
</label>\r
</div>\r
+ <div class="checkbox">\r
+ <label>\r
+ <input data-setting="use_24_hour_timestamps" type="checkbox">\r
+ <%= timestamp_24 %>\r
+ </label>\r
+ </div>\r
<div class="checkbox">\r
<label>\r
<input data-setting="mute_sounds" type="checkbox">\r
<h6>Language</h6>\r
<div class="control-group">\r
<select data-setting="locale">\r
+ <option value=""></li>\r
<% _.forEach(languages, function(lang) { %>\r
<option value="<%= lang.tag %>"><%= lang.language %></li>\r
<% }); %>\r
\r
\r
<script type="text/html" id="tmpl_channel_list">\r
- <div>\r
- <table style="margin:1em 2em;">\r
+ <div class="applet_chanlist">\r
+ <table>\r
<thead style="font-weight: bold;">\r
<tr>\r
- <td><%= channel_name %></td>\r
- <td><%= users %></td>\r
+ <td><a class="channel_name_title"><%= channel_name %></a></td>\r
+ <td><a class="users_title"><%= users %></a></td>\r
<td style="padding-left: 2em;"><%= topic %></td>\r
</tr>\r
</thead>\r
}\r
}\r
\r
- (function () {\r
- var base_path = '<%base_path%>', // Entry path for the kiwi application\r
- scripts = [],\r
- opts = {\r
- container: $('body'),\r
- base_path: base_path,\r
- settings_path: base_path + '/assets/settings.json'\r
- };\r
+ /**\r
+ * Get alerted when a group of jobs have been completed.\r
+ * Eg. .registerJob('job1'); .registerJob('job2');\r
+ * .onFinish(function(){ alert('Jobs finished!'); });\r
+ * .finishJob('job1');\r
+ * .finishJob('job2');\r
+ */\r
+ function JobManager() {\r
+ var completed_jobs = { };\r
\r
- normalizeConsole();\r
+ // Functions to call once all jobs have completed\r
+ var completed_callbacks = [];\r
\r
- /**\r
- * Job bootup manager\r
- * Once all jobs have completed, call any registered completed functions\r
- */\r
- var jobs = new (function BootManager() {\r
- var completed_jobs = { };\r
\r
- // Functions to call once all jobs have completed\r
- var completed_callbacks = [];\r
+ function callCompletedFunctions(fn) {\r
+ $.each(completed_callbacks, function(idx, fn) {\r
+ fn();\r
+ });\r
\r
+ completed_callbacks = [];\r
+ };\r
\r
- function callCompletedFunctions(fn) {\r
- $.each(completed_callbacks, function(idx, fn) {\r
- fn();\r
- });\r
\r
- completed_callbacks = [];\r
- };\r
+ this.finishJob = function(job_name) {\r
+ if (typeof completed_jobs[job_name] === 'undefined') {\r
+ return;\r
+ }\r
\r
+ completed_jobs[job_name] = true;\r
\r
- this.finishJob = function(job_name) {\r
- if (typeof completed_jobs[job_name] === 'undefined') {\r
- return;\r
+ // Check if all our jobs have completed\r
+ var all_jobs_completed = true;\r
+ $.each(completed_jobs, function(idx, completed) {\r
+ if (!completed) {\r
+ all_jobs_completed = false;\r
+ return false;\r
}\r
+ });\r
+\r
+ if (all_jobs_completed) {\r
+ callCompletedFunctions();\r
+ }\r
+ };\r
\r
- completed_jobs[job_name] = true;\r
\r
- // Check if all our jobs have completed\r
- var all_jobs_completed = true;\r
- $.each(completed_jobs, function(idx, completed) {\r
- if (!completed) {\r
- all_jobs_completed = false;\r
- return false;\r
- }\r
- });\r
+ this.onFinish = function(fn) {\r
+ completed_callbacks.push(fn);\r
+ };\r
\r
- if (all_jobs_completed) {\r
- callCompletedFunctions();\r
- }\r
- };\r
\r
+ this.registerJob = function(job_name) {\r
+ completed_jobs[job_name] = false;\r
+ };\r
+ }\r
\r
- this.onFinish = function(fn) {\r
- completed_callbacks.push(fn);\r
+ (function () {\r
+ var base_path = '<%base_path%>', // Entry path for the kiwi application\r
+ scripts = [],\r
+ opts = {\r
+ container: $('body'),\r
+ base_path: base_path,\r
+ settings_path: base_path + '/assets/settings.json'\r
};\r
\r
+ normalizeConsole();\r
\r
- this.registerJob = function(job_name) {\r
- completed_jobs[job_name] = false;\r
- };\r
- })();\r
+ /**\r
+ * Job bootup manager\r
+ * Once all jobs have completed, call any registered completed functions\r
+ */\r
+ var jobs = new JobManager();\r
\r
\r
// Run after all dependancies have been loaded\r
jobs.onFinish(function startApp() {\r
- // Start the app\r
- kiwi.start(opts, function() {\r
- // Load any plugins\r
+ // Kiwi IRC version this is built from\r
+ kiwi.build_version = '<%build_version%>';\r
+\r
+ // Start the app after loading plugins\r
+ kiwi.init(opts, function() {\r
if (opts.client_plugins && opts.client_plugins.length > 0) {\r
+\r
+ // Wait until all plugins are loaded before starting the app\r
+ kiwi.plugins.once('loaded', function() {\r
+ kiwi.start();\r
+ });\r
+\r
_.each(opts.client_plugins, function (plugin_url) {\r
kiwi.plugins.load(plugin_url);\r
});\r
+\r
+ } else {\r
+\r
+ // No plugins were needed so start the app\r
+ kiwi.start();\r
}\r
});\r
});\r