From 278bc8b93cc2ed1cee418c92e3bacad3d6bd3bb0 Mon Sep 17 00:00:00 2001 From: Thomas Menari Date: Thu, 24 Jan 2013 01:02:50 +0000 Subject: [PATCH] add initial yearbook feature --- modules/profile/pages.js | 11 +++++++ views/profile/profile_grid.jade | 51 +++++++++++++++++++++++++++++++++ views/users/connections.jade | 1 + 3 files changed, 63 insertions(+) create mode 100644 views/profile/profile_grid.jade diff --git a/modules/profile/pages.js b/modules/profile/pages.js index 379892c..543567e 100644 --- a/modules/profile/pages.js +++ b/modules/profile/pages.js @@ -21,6 +21,17 @@ var pages = function(dbot) { 'profile': profile, 'stats': stats.channels, }); + }, + + '/grid/:connection': function(req, res) { + var connection = req.params.connection; + var profiles = dbot.db.profiles[connection]; + + res.render('profile_grid', { + 'name': dbot.config.name, + 'connection': connection, + 'profiles': profiles, + }); } } }; diff --git a/views/profile/profile_grid.jade b/views/profile/profile_grid.jade new file mode 100644 index 0000000..b462288 --- /dev/null +++ b/views/profile/profile_grid.jade @@ -0,0 +1,51 @@ +extends ../layout + +block content + script(type="text/javascript", src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js") + + script + $(document).ready(function(){ + // Allowing forcing of string stats data to sort as numeric + jQuery.extend( jQuery.fn.dataTableExt.oSort, { + "forcenum-pre": function ( a ) { + a = a.replace("\,", ""); + return parseFloat( a ); + }, + + "forcenum-asc": function ( a, b ) { + return a - b; + }, + + "forcenum-desc": function ( a, b ) { + return b - a; + } + } ); + + $('.tip').tooltip(); + $('.data').dataTable({ + "aoColumnDefs": [ + { "sType": "forcenum", + "asSorting": [ "desc", "asc" ], + "aTargets": [ 1, 2, 3, 4, 5 ] } + ], + "bPaginate": false, + "bFilter": false, + "bLengthChange": false, + "oLanguage": { + "sInfo": "", + "sInfoEmpty": "", + "sInfoFiltered": "" + }, + }); + }); + + div.page-header.profile_page-header + h1 + #{connection} + div.span9 + each profile, key in profiles + if profile.hasOwnProperty('profile') && profile.profile.avatar + div.span2 + a(href='/profile/'+connection+'/'+encodeURIComponent(key)) + h3= profile.profile.primary + img.profile_avatar(src="#{profile.profile.avatar}") diff --git a/views/users/connections.jade b/views/users/connections.jade index f6750fb..023376b 100644 --- a/views/users/connections.jade +++ b/views/users/connections.jade @@ -7,3 +7,4 @@ block content #modulelinks -each connection in connections a.module(href='/channels/'+connection) #{connection} + a.module(href='/grid/'+connection) #{connection} headshots