diff options
Diffstat (limited to 'extensions/UserProfile')
-rw-r--r-- | extensions/UserProfile/Extension.pm | 9 | ||||
-rw-r--r-- | extensions/UserProfile/template/en/default/pages/user_profile.html.tmpl | 69 | ||||
-rw-r--r-- | extensions/UserProfile/web/styles/user_profile.css | 44 |
3 files changed, 82 insertions, 40 deletions
diff --git a/extensions/UserProfile/Extension.pm b/extensions/UserProfile/Extension.pm index 99f235896..9e8eadb97 100644 --- a/extensions/UserProfile/Extension.pm +++ b/extensions/UserProfile/Extension.pm @@ -281,16 +281,18 @@ sub page_before_template { my $target; my $input = Bugzilla->input_params; my $limit = Bugzilla->params->{'maxusermatches'} + 1; - if (!$input->{login}) { + my $login = $input->{login}; + if (!$login) { $target = Bugzilla->login(LOGIN_REQUIRED); + $login = $target->login; } else { - my $users = Bugzilla::User::match($input->{login}, $limit, 1); + my $users = Bugzilla::User::match($login, $limit, 1); if (scalar(@$users) == 1) { # always allow singular matches without confirmation $target = $users->[0]; } else { Bugzilla::User::match_field({ 'login' => {'type' => 'single'} }); - $target = Bugzilla::User->check($input->{login}); + $target = Bugzilla::User->check($login); } } @@ -353,6 +355,7 @@ sub page_before_template { $vars->{stats} = $stats; $vars->{statuses} = $statuses; $vars->{products} = $products; + $vars->{login} = $login; $vars->{target} = $target; } diff --git a/extensions/UserProfile/template/en/default/pages/user_profile.html.tmpl b/extensions/UserProfile/template/en/default/pages/user_profile.html.tmpl index 005d53443..71442b822 100644 --- a/extensions/UserProfile/template/en/default/pages/user_profile.html.tmpl +++ b/extensions/UserProfile/template/en/default/pages/user_profile.html.tmpl @@ -8,39 +8,9 @@ [% PROCESS global/variables.none.tmpl %] -[% inline_styles = BLOCK %] - #login_autocomplete { - float: left; - } - - #user_profile_table th { - text-align: right; - padding-right: 1em; - vertical-align: middle; - white-space: nowrap; - } - - #user_profile_table .numeric { - text-align: right; - } - - #user_profile_table .product_span { - white-space: nowrap; - } - - #what { - margin-top: 2em; - } - - #updated { - font-style: italic; - font-size: x-small; - } -[% END %] - [% PROCESS global/header.html.tmpl title = "User Profile: " _ target.identity - style = inline_styles + style_urls = [ "extensions/UserProfile/web/styles/user_profile.css" ] yui = [ 'autocomplete' ] javascript_urls = [ "js/field.js" ] %] @@ -48,13 +18,14 @@ <table id="user_profile_table"> <tr> - <th>Email</th> + <td> </td> + <th>Search</th> <td colspan="2"> <form action="user_profile"> [% INCLUDE global/userselect.html.tmpl id => "login" name => "login" - value => target.email + value => login size => 40 emptyok => 0 %] @@ -64,14 +35,31 @@ </tr> <tr> + <td colspan="4" class="separator"><hr></td> +</tr> + +<tr> + <td rowspan="16" id="gravatar-container"> + [% IF user.gravatar %] + <img id="gravatar" src="[% target.gravatar(256) FILTER none %]" width="128" height="128"><br> + [% IF target.id == user.id %] + <a href="http://gravatar.com/">Change my image</a> + [% END %] + [% ELSE %] + + [% END %] + </td> <th>Name</th> <td colspan="2">[% target.name FILTER html %]</td> </tr> <tr> + <th>Email</th> + <td colspan="2"><a href="mailto:[% target.login FILTER uri %]">[% target.login FILTER html %]</a></td> +</tr> + +<tr> <td> </td> - <td> </td> - <td width="100%"> </td> </tr> [%# user.creation_ts is added by the TagNewUsers extension %] @@ -150,7 +138,7 @@ </tr> <tr> - <th>Statuses changed</td> + <th>Statuses changed</th> <td colspan="2"> RESOLVED ([% statuses.item('RESOLVED') || 0 FILTER html %]), FIXED ([% statuses.item('RESOLVED/FIXED') || 0 FILTER html %]), @@ -160,7 +148,7 @@ </tr> <tr> - <th>Activity by product</td> + <th>Activity by product</th> <td colspan="2"> [% FOREACH p = products %] <span class="product_span"> @@ -176,6 +164,13 @@ </td> </tr> +<tr> + <td> </td> + <td> </td> + <td> </td> + <td width="100%"> </td> +</tr> + </table> <div id="what"> diff --git a/extensions/UserProfile/web/styles/user_profile.css b/extensions/UserProfile/web/styles/user_profile.css new file mode 100644 index 000000000..c261c24b6 --- /dev/null +++ b/extensions/UserProfile/web/styles/user_profile.css @@ -0,0 +1,44 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This Source Code Form is "Incompatible With Secondary Licenses", as + * defined by the Mozilla Public License, v. 2.0. */ + +#login_autocomplete { + float: left; +} + +#user_profile_table th { + text-align: right; + padding-right: 1em; + vertical-align: middle; + white-space: nowrap; +} + +#user_profile_table .numeric { + text-align: right; +} + +#user_profile_table .product_span { + white-space: nowrap; +} + +#updated { + font-style: italic; + font-size: x-small; +} + +#gravatar-container { + text-align: center; + font-size: x-small; + vertical-align: top; + padding-right: 15px; +} + +#gravatar { + -moz-box-shadow: 2px 2px 5px #888; + -webkit-box-shadow: 2px 2px 5px #888; + box-shadow: 2px 2px 5px #888; + margin-bottom: 5px; +} |