changeset 3543:6af65ba41115 beta

merge with UI branch
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 18 Mar 2013 18:17:58 +0100
parents af96fb19b53a (current diff) fc79b3d5beb7 (diff)
children c0a157ab9a15
files
diffstat 24 files changed, 1152 insertions(+), 845 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/summary.py	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/controllers/summary.py	Mon Mar 18 18:17:58 2013 +0100
@@ -72,8 +72,6 @@
 
     def index(self, repo_name):
         c.dbrepo = dbrepo = c.rhodecode_db_repo
-        c.following = self.scm_model.is_following_repo(repo_name,
-                                                self.rhodecode_user.user_id)
 
         def url_generator(**kw):
             return url('shortlog_home', repo_name=repo_name, size=10, **kw)
--- a/rhodecode/lib/base.py	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/lib/base.py	Mon Mar 18 18:17:58 2013 +0100
@@ -313,6 +313,8 @@
     c.rhodecode_db_repo: instance of db
     c.repository_followers: number of followers
     c.repository_forks: number of forks
+    c.repository_following: weather the current user is following the current repo
+
     """
 
     def __before__(self):
@@ -333,3 +335,5 @@
             c.repository_followers = self.scm_model.get_followers(dbr)
             c.repository_forks = self.scm_model.get_forks(dbr)
             c.repository_pull_requests = self.scm_model.get_pull_requests(dbr)
+            c.repository_following = self.scm_model.is_following_repo(c.repo_name,
+                                                self.rhodecode_user.user_id)
--- a/rhodecode/lib/helpers.py	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/lib/helpers.py	Mon Mar 18 18:17:58 2013 +0100
@@ -363,7 +363,7 @@
 from rhodecode.lib.utils2 import credentials_filter, age as _age
 from rhodecode.model.db import User, ChangesetStatus
 
-age = lambda  x: _age(x)
+age = lambda  x,y=False: _age(x,y)
 capitalize = lambda x: x.capitalize()
 email = author_email
 short_id = lambda x: x[:12]
@@ -914,13 +914,13 @@
 
     if not groups:
         if last_url:
-            return last_link
-        return repo_name
+            return literal('<span>%s</span>' % last_link)
+        return literal('<span>%s</span>' % repo_name)
     else:
         def make_link(group):
             return link_to(group.name,
                            url('repos_group_home', group_name=group.group_name))
-        return literal(' &raquo; '.join(map(make_link, groups) + [last_link]))
+        return literal(' &raquo; '.join(map(make_link, groups) + ['<span>' + last_link + '</span>']))
 
 
 def fancy_file_stats(stats):
--- a/rhodecode/lib/utils2.py	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/lib/utils2.py	Mon Mar 18 18:17:58 2013 +0100
@@ -349,11 +349,15 @@
     return engine
 
 
-def age(prevdate):
+def age(prevdate, show_short_version=False):
     """
     turns a datetime into an age string.
+    If show_short_version is True, then it will generate a not so accurate but shorter string,
+    example: 2days ago, instead of 2 days and 23 hours ago.
+
 
     :param prevdate: datetime object
+    :param show_short_version: if it should aproximate the date and return a shorter string
     :rtype: unicode
     :returns: unicode words describing age
     """
@@ -423,7 +427,7 @@
         else:
             sub_value = 0
 
-        if sub_value == 0:
+        if sub_value == 0 or show_short_version:
             if future:
                 return _(u'in %s') % fmt_funcs[part](value)
             else:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rhodecode/public/css/contextbar.css	Mon Mar 18 18:17:58 2013 +0100
@@ -0,0 +1,367 @@
+/**
+ * Stylesheets for the context bar
+ */
+
+#quick .repo_switcher { background-image: url("../images/icons/database.png"); }
+#quick .journal { background-image: url("../images/icons/book.png"); }
+#quick .search { background-image: url("../images/icons/search_16.png"); }
+#quick .admin { background-image: url("../images/icons/cog_edit.png"); }
+
+#context-bar button.follow { background-image: url("../images/icons/heart.png"); }
+#context-bar button.following { background-image: url("../images/icons/heart_delete.png"); }
+#context-bar a.fork { background-image: url("../images/icons/arrow_divide.png"); }
+#context-bar a.summary { background-image: url("../images/icons/clipboard_16.png"); }
+#context-bar a.changelogs { background-image: url("../images/icons/time.png"); }
+#context-bar a.files { background-image: url("../images/icons/file.png"); }
+#context-bar a.switch-to { background-image: url("../images/icons/arrow_switch.png"); }
+#context-bar a.options { background-image: url("../images/icons/table_gear.png"); }
+#context-bar a.pull-request { background-image: url("../images/icons/arrow_join.png"); }
+#context-bar a.branches { background-image: url("../images/icons/arrow_branch.png"); }
+#context-bar a.tags { background-image: url("../images/icons/tag_blue.png"); }
+#context-bar a.bookmarks { background-image: url("../images/icons/tag_green.png"); }
+#context-bar a.settings { background-image: url("../images/icons/cog.png"); }
+#context-bar a.shortlog { background-image: url("../images/icons/time.png"); }
+#context-bar a.search { background-image: url("../images/icons/search_16.png"); }
+#context-bar a.admin { background-image: url("../images/icons/cog_edit.png"); }
+
+#context-bar a.journal { background-image: url("../images/icons/book.png"); }
+#context-bar a.repos { background-image: url("../images/icons/database_edit.png"); }
+#context-bar a.repos_groups { background-image: url("../images/icons/database_link.png"); }
+#context-bar a.users { background-image: url("../images/icons/user_edit.png"); }
+#context-bar a.groups { background-image: url("../images/icons/group_edit.png"); }
+#context-bar a.permissions { background-image: url("../images/icons/key.png"); }
+#context-bar a.ldap { background-image: url("../images/icons/server_key.png"); }
+#context-bar a.defaults { background-image: url("../images/icons/wrench.png"); }
+#context-bar a.settings { background-image: url("../images/icons/cog_edit.png"); }
+#context-bar a.compare_request { background-image: url('../images/icons/arrow_inout.png')}
+#context-bar a.locking_del { background-image: url('../images/icons/lock_delete.png')}
+#context-bar a.locking_add { background-image: url('../images/icons/lock_add.png')}
+
+#content #context-bar {
+    position: relative;
+    background-color: #003B76 !important;
+    padding: 0px;
+    overflow: visible;
+}
+
+#header #header-inner #quick a,
+#content #context-bar,
+#content #context-bar a,
+#content #context-bar button {
+     color: #FFFFFF;
+}
+
+#header #header-inner #quick a:hover,
+#content #context-bar a:hover,
+#content #context-bar button:hover {
+     text-decoration: none;
+}
+
+#content #context-bar .icon {
+    display: inline-block;
+    width: 16px;
+    height: 16px;
+    vertical-align: text-bottom;
+}
+
+ul.horizontal-list {
+    display: block;
+}
+
+ul.horizontal-list > li {
+    float: left;
+    position: relative;
+}
+
+#header #header-inner #quick ul,
+ul.horizontal-list > li ul {
+    position: absolute;
+    display: none;
+    right: 0;
+    z-index: 999;
+}
+
+#header #header-inner #quick li:hover > ul,
+ul.horizontal-list li:hover > ul {
+    display: block;
+}
+
+#header #header-inner #quick li ul li,
+ul.horizontal-list ul li {
+    position: relative;
+    border-bottom: 1px solid rgba(0,0,0,0.1);
+    border-top: 1px solid rgba(255,255,255,0.1);
+}
+
+ul.horizontal-list > li ul ul {
+    position: absolute;
+    right: 100%;
+    top: -1px;
+    min-width: 200px;
+    max-height: 400px;
+    overflow-x: hidden;
+    overflow-y: auto;
+}
+
+#header #header-inner #quick ul a,
+ul.horizontal-list li a {
+    white-space: nowrap;
+}
+
+#breadcrumbs {
+    float: left;
+    padding: 5px 0;
+    padding-left: 5px;
+    font-weight: bold;
+    font-size: 14px;
+}
+
+#breadcrumbs span {
+    font-weight: bold;
+    font-size: 2em;
+}
+
+#context-top {
+    position: relative;
+    overflow: hidden;
+    border-bottom: 1px solid #003162;
+    padding: 5px;
+}
+
+#header #header-inner #quick ul,
+#revision-changer,
+#context-pages,
+#context-pages ul {
+    background: #3b6998; /* Old browsers */
+    background: -moz-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* FF3.6+ */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4574a2), color-stop(100%,#2f5d8b)); /* Chrome,Safari4+ */
+    background: -webkit-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* Chrome10+,Safari5.1+ */
+    background: -o-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* Opera 11.10+ */
+    background: -ms-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* IE10+ */
+    background: linear-gradient(to bottom, #4574a2 0%, #2f5d8b 100%); /* W3C */
+    /*Filter on IE will also use overflow:hidden implicitly, and that would clip our inner menus.*/
+    /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4574a2', endColorstr='#2f5d8b',GradientType=0 ); /* IE6-9 */*/
+}
+
+#header #header-inner #quick a,
+#context-actions a,
+#context-pages a {
+    background-repeat: no-repeat;
+    background-position: 10px 50%;
+    padding-left: 30px;
+}
+
+#quick a,
+#context-pages ul ul a {
+    padding-left: 10px;
+}
+
+ul#context-actions {
+    display: inline-block;
+    float: right;
+    border-radius: 4px;
+    background-image: linear-gradient(top, #4574a2 0%, #2f5d8b 100%);
+}
+#content ul#context-actions li {
+    padding: 0px;
+    border-right: 1px solid rgba(0,0,0,0.1);
+    border-left: 1px solid rgba(255,255,255,0.1);
+}
+
+#context-actions button,
+#context-actions a {
+    display: block;
+    cursor: pointer;
+    background: none;
+    border: none;
+    margin: 0px;
+    height: auto;
+    padding: 10px 10px 10px 30px;
+    background-repeat: no-repeat;
+    background-position: 10px 50%;
+    font-size: 1em;
+}
+
+#context-actions a {
+    padding: 11px 10px 12px 30px;
+}
+
+#header #header-inner #quick li:hover,
+#revision-changer:hover,
+#context-pages li:hover,
+#context-actions li:hover,
+#content #context-actions li:hover,
+#header #header-inner #quick li.current,
+#context-pages li.current {
+    background: #6388ad; /* Old browsers */
+    background: -moz-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* FF3.6+ */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
+    background: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Chrome10+,Safari5.1+ */
+    background: -o-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Opera 11.10+ */
+    background: -ms-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* IE10+ */
+    background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* W3C */
+    /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#88bfe8', endColorstr='#70b0e0',GradientType=0 ); /* IE6-9 */*/
+}
+
+
+#content #context-actions li:first-child {
+    border-left: none;
+    border-radius: 4px 0 0px 4px;
+}
+
+#content #context-actions li:last-child {
+    border-right: none;
+    border-radius: 0 4px 4px 0;
+}
+
+#content  #context-actions .icon {
+    margin: auto;
+    margin-bottom: 5px;
+    display: block;
+    clear: both;
+    float: none;
+}
+
+#content  #context-actions button.follow,
+#content  #context-actions button.following {
+    width: auto;
+    float: none;
+}
+
+#content  #context-actions button .show-following,
+#content  #context-actions button .show-follow {
+    display: none;
+}
+
+#content #context-bar #context-actions button.follow .show-follow {
+    display: block;
+}
+
+#content #context-bar #context-actions button.following .show-following {
+    display: block;
+}
+
+#context-state {
+    background-color: #336699;
+    border-top: 1px solid #517da8;
+    min-height: 36px;
+}
+
+#context-pages {
+    float: right;
+    border-left: 1px solid rgba(0,0,0,0.1);
+}
+
+#context-pages li.curreasdnt {
+    background: #535353; /* Old browsers */
+    background: -moz-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* FF3.6+ */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#5d5d5d), color-stop(100%,#484848)); /* Chrome,Safari4+ */
+    background: -webkit-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* Chrome10+,Safari5.1+ */
+    background: -o-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* Opera 11.10+ */
+    background: -ms-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* IE10+ */
+    background: linear-gradient(to bottom, #5d5d5d 0%, #484848 100%); /* W3C */
+}
+
+#content #context-pages .icon {
+    margin-right: 5px;
+}
+
+#header #header-inner #quick li,
+#content #context-pages li {
+    border-right: 1px solid rgba(0,0,0,0.1);
+    border-left: 1px solid rgba(255,255,255,0.1);
+    padding: 0;
+}
+#header #header-inner #quick li:last-child,
+#content #context-pages li:last-child {
+    border-right: none;
+}
+
+#header #header-inner #quick li:first-child {
+    border-left: none;
+}
+
+#header #header-inner #quick > li:first-child > a {
+    border-radius: 4px 0 0 4px;
+}
+
+#header #header-inner #quick a,
+#context-pages a,
+#context-pages .admin_menu a {
+    display: block;
+    padding: 0px 10px 1px 30px;
+    padding-left: 30px;
+    line-height: 35px;
+}
+
+#header #header-inner #quick a.thin,
+#context-pages a.thin,
+#context-pages .admin_menu a.thin {
+    line-height: 28px !important;
+}
+
+#header #header-inner #quick a#quick_login_link {
+    padding-left: 0px;
+}
+
+#header #header-inner #quick a {
+    overflow: hidden;
+}
+#quick a.childs:after,
+#revision-changer:before,
+#context-pages a.childs:after,
+#context-pages a.dropdown:after {
+    content: ' \25BE';
+}
+#context-pages a.childs {
+    padding-right: 20px;
+}
+#context-pages a.childs:after {
+    position: absolute;
+    float: right;
+    padding-left: 5px;
+    padding-right: 5px;
+}
+
+#revision-changer:before {
+    position: absolute;
+    top: 0px;
+    right: 0px;
+    border-right: 1px solid rgba(0,0,0,0.1);
+    height: 25px;
+    padding-top: 10px;
+    padding-right: 10px;
+}
+
+#context-pages li:last-child a {
+    padding-right: 10px;
+}
+
+#context-bar #revision-changer {
+    position: relative;
+    cursor: pointer;
+    border: none;
+    padding: 0;
+    margin: 0;
+    color: #FFFFFF;
+    font-size: 0.85em;
+    padding: 2px 15px;
+    padding-bottom: 3px;
+    padding-right: 30px;
+    border-right: 1px solid rgba(255,255,255,0.1);
+}
+
+#revision-changer .branch-name,
+#revision-changer .revision {
+    display: block;
+    text-align: center;
+    line-height: 1.5em;
+}
+
+#revision-changer .branch-name {
+    font-weight: bold;
+}
+
+#revision-changer .revision {
+    text-transform: uppercase;
+}
\ No newline at end of file
--- a/rhodecode/public/css/style.css	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/public/css/style.css	Mon Mar 18 18:17:58 2013 +0100
@@ -396,37 +396,14 @@
     color: #bfe3ff;
 }
 
-#header #header-inner #quick, #header #header-inner #quick ul {
+#header #header-inner #quick {
     position: relative;
     float: right;
     list-style-type: none;
     list-style-position: outside;
-    margin: 8px 8px 0 0;
-    padding: 0;
-}
-
-#header #header-inner #quick li {
-    position: relative;
-    float: left;
-    margin: 0 5px 0 0;
+    margin: 4px 8px 0 0;
     padding: 0;
-}
-
-#header #header-inner #quick li a.menu_link {
-    top: 0;
-    left: 0;
-    height: 1%;
-    display: block;
-    clear: both;
-    overflow: hidden;
-    color: #FFF;
-    font-weight: 700;
-    text-decoration: none;
-    background: #369;
-    padding: 0;
-    -webkit-border-radius: 4px 4px 4px 4px;
-    -khtml-border-radius: 4px 4px 4px 4px;
-    border-radius: 4px 4px 4px 4px;
+    border-radius: 4px;
 }
 
 #header #header-inner #quick li span.short {
@@ -434,14 +411,8 @@
 }
 
 #header #header-inner #quick li span {
-    top: 0;
-    right: 0;
-    height: 1%;
-    display: block;
-    float: left;
-    border-left: 1px solid #3f6f9f;
+    display: inline;
     margin: 0;
-    padding: 10px 12px 8px 10px;
 }
 
 #header #header-inner #quick li span.normal {
@@ -450,13 +421,9 @@
 }
 
 #header #header-inner #quick li span.icon {
-    top: 0;
-    left: 0;
+
     border-left: none;
-    border-right: 1px solid #2e5c89;
-    padding: 8px 6px 4px;
-    min-width: 16px;
-    min-height: 16px;
+    padding-left: 10px ;
 }
 
 #header #header-inner #quick li span.icon_short {
@@ -468,39 +435,8 @@
 }
 
 #header #header-inner #quick li span.icon img, #header #header-inner #quick li span.icon_short img {
-    margin: 0px -2px 0px 0px;
-}
-
-#header #header-inner #quick li.current a,
-#header #header-inner #quick li a:hover {
-    background: #4e4e4e no-repeat top left;
-}
-
-#header #header-inner #quick li.current a span,
-#header #header-inner #quick li a:hover span {
-    border-left: 1px solid #545454;
-}
-
-#header #header-inner #quick li.current a span.icon,
-#header #header-inner #quick li.current a span.icon_short,
-#header #header-inner #quick li a:hover span.icon,
-#header #header-inner #quick li a:hover span.icon_short {
-    border-left: none;
-    border-right: 1px solid #464646;
-}
-
-#header #header-inner #quick ul {
-    top: 29px;
-    right: 0;
-    min-width: 200px;
-    display: none;
-    position: absolute;
-    background: #FFF;
-    border: 1px solid #666;
-    border-top: 1px solid #003367;
-    z-index: 100;
-    margin: 0px 0px 0px 0px;
-    padding: 0;
+    vertical-align: middle;
+    margin-bottom: 2px;
 }
 
 #header #header-inner #quick ul.repo_switcher {
@@ -510,216 +446,113 @@
 }
 
 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
-    float: none;
-    margin: 0;
-    border-bottom: 2px solid #003367;
+    padding: 2px 3px;
+    padding-right: 17px;
+}
+
+#header #header-inner #quick ul.repo_switcher li.qfilter_rs  input {
+    width: 100%;
+    border-radius: 10px;
+    padding: 2px 7px;
 }
 
 #header #header-inner #quick .repo_switcher_type {
     position: absolute;
     left: 0;
     top: 9px;
-}
-
-#header #header-inner #quick li ul li {
-    border-bottom: 1px solid #ddd;
-}
-
-#header #header-inner #quick li ul li a {
-    width: 182px;
-    height: auto;
-    display: block;
-    float: left;
-    background: #FFF;
-    color: #003367;
-    font-weight: 400;
-    margin: 0;
-    padding: 7px 9px;
-}
-
-#header #header-inner #quick li ul li a:hover {
-    color: #000;
-    background: #FFF;
-}
-
-#header #header-inner #quick ul ul {
-    top: auto;
-}
-
-#header #header-inner #quick li ul ul {
-    right: 200px;
-    max-height: 290px;
-    overflow: auto;
-    overflow-x: hidden;
-    white-space: normal;
+    margin: 0px 2px 0px 2px;
 }
 
 #header #header-inner #quick li ul li a.journal, #header #header-inner #quick li ul li a.journal:hover {
-    background: url("../images/icons/book.png") no-repeat scroll 4px 9px
-        #FFF;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/book.png");
 }
 
 #header #header-inner #quick li ul li a.private_repo, #header #header-inner #quick li ul li a.private_repo:hover {
-    background: url("../images/icons/lock.png") no-repeat scroll 4px 9px
-        #FFF;
-    min-width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/lock.png")
 }
 
 #header #header-inner #quick li ul li a.public_repo, #header #header-inner #quick li ul li a.public_repo:hover {
-    background: url("../images/icons/lock_open.png") no-repeat scroll 4px
-        9px #FFF;
-    min-width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/lock_open.png");
 }
 
 #header #header-inner #quick li ul li a.hg, #header #header-inner #quick li ul li a.hg:hover {
-    background: url("../images/icons/hgicon.png") no-repeat scroll 4px 9px
-        #FFF;
-    min-width: 167px;
-    margin: 0 0 0 14px;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/hgicon.png");
+    padding-left: 42px;
+    background-position: 20px 9px;
 }
 
 #header #header-inner #quick li ul li a.git, #header #header-inner #quick li ul li a.git:hover {
-    background: url("../images/icons/giticon.png") no-repeat scroll 4px 9px
-        #FFF;
-    min-width: 167px;
-    margin: 0 0 0 14px;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/giticon.png");
+    padding-left: 42px;
+    background-position: 20px 9px;
 }
 
 #header #header-inner #quick li ul li a.repos, #header #header-inner #quick li ul li a.repos:hover {
-    background: url("../images/icons/database_edit.png") no-repeat scroll
-        4px 9px #FFF;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/database_edit.png");
 }
 
 #header #header-inner #quick li ul li a.repos_groups, #header #header-inner #quick li ul li a.repos_groups:hover {
-    background: url("../images/icons/database_link.png") no-repeat scroll
-        4px 9px #FFF;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/database_link.png");
 }
 
 #header #header-inner #quick li ul li a.users, #header #header-inner #quick li ul li a.users:hover {
-    background: #FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/user_edit.png");
 }
 
 #header #header-inner #quick li ul li a.groups, #header #header-inner #quick li ul li a.groups:hover {
-    background: #FFF url("../images/icons/group_edit.png") no-repeat 4px 9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/group_edit.png");
 }
 
 #header #header-inner #quick li ul li a.defaults, #header #header-inner #quick li ul li a.defaults:hover {
-    background: #FFF url("../images/icons/wrench.png") no-repeat 4px 9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/wrench.png");
 }
 
 #header #header-inner #quick li ul li a.settings, #header #header-inner #quick li ul li a.settings:hover {
-    background: #FFF url("../images/icons/cog.png") no-repeat 4px 9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/cog.png");
 }
 
 #header #header-inner #quick li ul li a.permissions, #header #header-inner #quick li ul li a.permissions:hover {
-    background: #FFF url("../images/icons/key.png") no-repeat 4px 9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/key.png");
 }
 
 #header #header-inner #quick li ul li a.ldap, #header #header-inner #quick li ul li a.ldap:hover {
-    background: #FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/server_key.png");
 }
 
 #header #header-inner #quick li ul li a.fork, #header #header-inner #quick li ul li a.fork:hover {
-    background: #FFF url("../images/icons/arrow_divide.png") no-repeat 4px
-        9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/arrow_divide.png");
 }
 
 #header #header-inner #quick li ul li a.locking_add, #header #header-inner #quick li ul li a.locking_add:hover {
-    background: #FFF url("../images/icons/lock_add.png") no-repeat 4px
-        9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/lock_add.png");
 }
 
 #header #header-inner #quick li ul li a.locking_del, #header #header-inner #quick li ul li a.locking_del:hover {
-    background: #FFF url("../images/icons/lock_delete.png") no-repeat 4px
-        9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/lock_delete.png");
 }
 
 #header #header-inner #quick li ul li a.pull_request, #header #header-inner #quick li ul li a.pull_request:hover {
-    background: #FFF url("../images/icons/arrow_join.png") no-repeat 4px
-        9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/arrow_join.png") ;
 }
 
 #header #header-inner #quick li ul li a.compare_request, #header #header-inner #quick li ul li a.compare_request:hover {
-    background: #FFF url("../images/icons/arrow_inout.png") no-repeat 4px
-        9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/arrow_inout.png");
 }
 
 #header #header-inner #quick li ul li a.search, #header #header-inner #quick li ul li a.search:hover {
-    background: #FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/search_16.png");
 }
 
 #header #header-inner #quick li ul li a.shortlog, #header #header-inner #quick li ul li a.shortlog:hover {
-    background: #FFF url("../images/icons/clock_16.png") no-repeat 4px 9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
-}
-
+    background-image: url("../images/icons/clock_16.png");
+}
 
 #header #header-inner #quick li ul li a.delete, #header #header-inner #quick li ul li a.delete:hover {
-    background: #FFF url("../images/icons/delete.png") no-repeat 4px 9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/delete.png");
 }
 
 #header #header-inner #quick li ul li a.branches, #header #header-inner #quick li ul li a.branches:hover {
-    background: #FFF url("../images/icons/arrow_branch.png") no-repeat 4px
-        9px;
-    width: 167px;
-    margin: 0;
-    padding: 12px 9px 7px 24px;
+    background-image: url("../images/icons/arrow_branch.png");
 }
 
 #header #header-inner #quick li ul li a.tags,
@@ -1076,7 +909,6 @@
 
 #content div.box {
     clear: both;
-    overflow: hidden;
     background: #fff;
     margin: 0 0 10px;
     padding: 0 0 10px;
@@ -1115,6 +947,7 @@
     filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76', endColorstr='#00376e', GradientType=0 );
     margin: 0 0 20px;
     padding: 0;
+    border-radius: 4px 4px 0 0;
 }
 
 #content div.box div.title h5 {
@@ -1255,6 +1088,7 @@
     background: linear-gradient(to bottom,rgba(255,255,255,0),rgba(64,96,128,0.1));
 
     display: none;
+    overflow: hidden;
 }
 #content div.box div.expand .expandtext {
     background-color: #ffffff;
@@ -1844,7 +1678,71 @@
     padding: 0 3px 2px;
 }
 
-#summary {
+#content div.box #summary {
+    margin-right: 200px;
+}
+
+#summary-menu-stats {
+    float: left;
+    width: 180px;
+    position: absolute;
+    top: 0;
+    right: 0;
+}
+
+#summary-menu-stats ul {
+    margin: 0 10px;
+    display: block;
+    background-color: #f9f9f9;
+    border: 1px solid #d1d1d1;
+    border-radius: 4px;
+}
+
+#content #summary-menu-stats li {
+    border-top: 1px solid #d1d1d1;
+    padding: 0;
+}
+
+#content #summary-menu-stats li:hover {
+    background: #f0f0f0;
+}
+
+#content #summary-menu-stats li:first-child {
+    border-top: none;
+}
+
+#summary-menu-stats a.followers { background-image: url('../images/icons/heart.png')}
+#summary-menu-stats a.forks { background-image: url('../images/icons/arrow_divide.png')}
+#summary-menu-stats a.settings { background-image: url('../images/icons/cog_edit.png')}
+#summary-menu-stats a.feed { background-image: url('../images/icons/rss_16.png')}
+#summary-menu-stats a.repo-size { background-image: url('../images/icons/server.png')}
+
+#summary-menu-stats a {
+    display: block;
+    padding: 12px 30px;
+    background-repeat: no-repeat;
+    background-position: 10px 50%;
+    padding-right: 10px;
+}
+
+
+#repo_size_2 {
+    margin-left: 30px;
+    display: block;
+    padding-right: 10px;
+    padding-bottom: 7px;
+}
+
+#summary-menu-stats a:hover {
+    text-decoration: none;
+}
+
+#summary-menu-stats a span {
+    background-color: #FFF;
+    border: 1px inset #f0f0f0;
+    border-radius: 7px;
+    padding: 1px;
+    font-size: 10px;
 }
 
 #summary .metatag {
@@ -2085,7 +1983,7 @@
 }
 
 #quick_login .password_forgoten {
-    padding-right: 10px;
+    padding-right: 0px;
     padding-top: 0px;
     text-align: left;
 }
@@ -2093,6 +1991,8 @@
 #quick_login .password_forgoten a {
     font-size: 10px;
     color: #fff;
+    padding: 0px !important;
+    line-height: 20px !important;
 }
 
 #quick_login .register {
@@ -2104,6 +2004,8 @@
 #quick_login .register a {
     font-size: 10px;
     color: #fff;
+    padding: 0px !important;
+    line-height: 20px !important;    
 }
 
 #quick_login .submit {
@@ -2127,15 +2029,16 @@
     padding: 4px 0px 0px 6px;
 }
 #quick_login .notifications {
-    padding: 4px 0px 0px 6px;
+    padding: 2px 0px 0px 6px;
     color: #FFFFFF;
     font-weight: bold;
+    line-height: 10px !important;
 }
 #quick_login .notifications a,
 #quick_login .unread a {
     color: #FFFFFF;
     display: block;
-    padding: 2px;
+    padding: 0px !important;
 }
 #quick_login .notifications a:hover,
 #quick_login .unread a:hover {
@@ -2462,10 +2365,10 @@
     text-align: right;
 }
 
-#changeset_content .container .left .message {
+#changeset_content .container .message {
     white-space: pre-wrap;
 }
-#changeset_content .container .left .message a:hover {
+#changeset_content .container .message a:hover {
     text-decoration: none;
 }
 .cs_files .cur_cs {
@@ -2561,23 +2464,30 @@
     text-align: left;
 }
 
+.table {
+    position: relative;
+}
+
 #graph {
+    position: relative;
     overflow: hidden;
 }
 
 #graph_nodes {
-    float: left;
-    margin-right: 0px;
-    margin-top: 0px;
+    position: absolute;
+}
+
+#graph_content,
+#graph .info_box,
+#graph .container_header {
+    margin-left: 100px;
 }
 
 #graph_content {
-    width: 80%;
-    float: left;
-}
-
-#graph_content .container_header {
-    border-bottom: 1px solid #DDD;
+    position: relative;
+}
+
+#graph .container_header {
     padding: 10px;
     height: 25px;
 }
@@ -2592,49 +2502,143 @@
     margin: 0px 0px 0px 3px;
 }
 
+#graph_content #changesets {
+    table-layout: fixed;
+    border-collapse: collapse;
+    border-left: none;
+    border-right: none;
+    border-color: #cdcdcd;
+}
+
 #graph_content .container {
-    border-bottom: 1px solid #DDD;
-    height: 56px;
+
+}
+
+#graph_content #changesets td {
     overflow: hidden;
-}
-
-#graph_content .container .right {
-    float: right;
-    width: 23%;
-    text-align: right;
-}
-
-#graph_content .container .left {
-    float: left;
-    width: 25%;
-    padding-left: 5px;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    height: 31px;
+    border-color: #cdcdcd;
+    text-align: left;
+}
+
+#graph_content .container .author {
+   width: 105px;
+}
+
+#graph_content .container .hash {
+    width: 85px;
+    font-size: 0.85em;
+}
+
+#graph_content #changesets .container .date {
+    width: 76px;
+    color: #666;
+    font-size: 10px;
+}
+
+#graph_content #changesets .container .right {
+    width: 120px;
+    padding-right: 0px;
+    overflow: visible;
+    position: relative;
 }
 
 #graph_content .container .mid {
+    padding: 0;
+}
+
+#graph_content .log-container {
+    position: relative;
+}
+
+#graph_content #changesets td.checkbox {
+    width: 20px;
+}
+
+#graph_content .container .changeset_range {
     float: left;
-    width: 49%;
-}
-
-
-#graph_content .container .left .date {
-    color: #666;
-    padding-left: 22px;
-    font-size: 10px;
-}
-
-#graph_content .container .left .author {
-    height: 22px;
-}
-
-#graph_content .container .left .author .user {
+    margin: 6px 3px;
+}
+
+#graph_content .container .author img {
+    vertical-align: middle;
+}
+
+#graph_content .container .author .user {
     color: #444444;
-    float: left;
-    margin-left: -4px;
-    margin-top: 4px;
 }
 
 #graph_content .container .mid .message {
     white-space: pre-wrap;
+    padding: 0;
+    overflow: hidden;
+    height: 1.1em;
+}
+
+#graph_content .container .extra-container {
+    display: block;
+    position: absolute;
+    top: -15px;
+    right: 0;
+    padding-left: 5px;
+    background: #FFFFFF;
+    height: 41px;
+}
+
+#graph_content .comments-container,
+#graph_content .logtags {
+    display: block;
+    float: left;
+    overflow: hidden;
+    padding: 0;
+    margin: 0;
+}
+
+#graph_content .comments-container {
+    margin: 0.8em 0;
+    margin-right: 0.5em;
+}
+
+#graph_content  .tagcontainer {
+    width: 80px;
+    position: relative;
+    float: right;
+    height: 100%;
+    top: 7px;
+    margin-left: 0.5em;
+}
+
+#graph_content .logtags {
+    min-width: 80px;
+    height: 1.1em;
+    position: absolute;
+    left: 0px;
+    width: auto;
+    top: 0px;
+}
+
+#graph_content .logtags.tags {
+    top: 14px;
+}
+
+#graph_content .logtags:hover {
+    overflow: visible;
+    position: absolute;
+    width: auto;
+    right: 0;
+    left: initial;
+}
+
+#graph_content .logtags .bookbook,
+#graph_content .logtags .tagtag {
+    float: left;
+    line-height: 1em;
+    margin-bottom: 1px;
+    margin-right: 1px;
+    padding: 1px 3px;
+    font-size: 10px;
 }
 
 #graph_content .container .mid .message a:hover {
@@ -2676,17 +2680,18 @@
 .code-header .changeset-status-container .changeset-status-ico, .container .changeset-status-ico {
     float: left;
 }
-.right .comments-container {
-    padding-right: 5px;
-    margin-top: 1px;
-    float: right;
-    height: 14px;
-}
-
-.right .comments-cnt {
-    float: left;
+
+#graph_content .comments-cnt {
     color: rgb(136, 136, 136);
-    padding-right: 2px;
+    padding: 5px 0;
+}
+
+#graph_content .comments-cnt a {
+    background-image: url('../images/icons/comments.png');
+    background-repeat: no-repeat;
+    background-position: 100% 50%;
+    padding: 5px 0;
+    padding-right: 20px;
 }
 
 .right .changes {
@@ -2731,7 +2736,6 @@
     padding: 1px 3px 1px 3px;
     background-color: #fca062;
     font-size: 10px;
-    font-weight: bold;
     color: #ffffff;
     text-transform: uppercase;
     white-space: nowrap;
@@ -2745,65 +2749,101 @@
     clear: both;
 }
 .right .logtags {
-    padding: 2px 2px 2px 2px;
-}
-.right .logtags .branchtag, .right .logtags .tagtag, .right .logtags .booktag {
+    line-height: 2.2em;
+}
+.branchtag, .logtags .tagtag, .logtags .booktag {
     margin: 0px 2px;
 }
 
+.branchtag,
+.tagtag,
+.bookbook,
+.spantag {
+    padding: 1px 3px 1px 3px;
+    font-size: 10px;
+    color: #336699;
+    white-space: nowrap;
+    -webkit-border-radius: 4px;
+    border-radius: 4px;
+    border: 1px solid #d9e8f8;
+    line-height: 1.5em;
+}
+
+#graph_content .branchtag,
+#graph_content .tagtag,
+#graph_content .bookbook {
+    margin: 1.1em 0;
+    margin-right: 0.5em;
+}
+
+.branchtag,
+.tagtag,
+.bookbook {
+    float: left;
+}
+
 .right .logtags .branchtag,
-.logtags .branchtag,
-.spantag {
+.logtags .tagtag,
+.right .merge {
+    float: right;
+    line-height: 1em;
+    margin: 1px 1px !important;
+    display: block;
+}
+
+.bookbook {
+    border-color: #46A546;
+    color: #46A546;
+}
+
+.tagtag {
+    border-color: #62cffc;
+    color: #62cffc;
+}
+
+.logtags .branchtag a:hover,
+.logtags .branchtag a,
+.branchtag a,
+.branchtag a:hover {
+    text-decoration: none;
+    color: inherit;
+}
+.logtags .tagtag {
     padding: 1px 3px 1px 3px;
-    background-color: #bfbfbf;
+    background-color: #62cffc;
     font-size: 10px;
-    font-weight: bold;
     color: #ffffff;
     white-space: nowrap;
     -webkit-border-radius: 3px;
     border-radius: 3px;
 }
-.right .logtags .branchtag a:hover, .logtags .branchtag a {
-    color: #ffffff;
-}
-.right .logtags .branchtag a:hover, .logtags .branchtag a:hover {
+
+.tagtag a,
+.tagtag a:hover,
+.logtags .tagtag a,
+.logtags .tagtag a:hover {
     text-decoration: none;
-    color: #ffffff;
-}
-.right .logtags .tagtag, .logtags .tagtag {
+    color: inherit;
+}
+.logbooks .bookbook, .logbooks .bookbook, .logtags .bookbook, .logtags .bookbook {
     padding: 1px 3px 1px 3px;
-    background-color: #62cffc;
+    background-color: #46A546;
     font-size: 10px;
-    font-weight: bold;
     color: #ffffff;
     white-space: nowrap;
     -webkit-border-radius: 3px;
     border-radius: 3px;
 }
-.right .logtags .tagtag a:hover, .logtags .tagtag a {
-    color: #ffffff;
-}
-.right .logtags .tagtag a:hover, .logtags .tagtag a:hover {
-    text-decoration: none;
+.logbooks .bookbook, .logbooks .bookbook a, .right .logtags .bookbook, .logtags .bookbook a {
     color: #ffffff;
 }
-.right .logbooks .bookbook, .logbooks .bookbook, .right .logtags .bookbook, .logtags .bookbook {
-    padding: 1px 3px 1px 3px;
-    background-color: #46A546;
-    font-size: 10px;
-    font-weight: bold;
-    color: #ffffff;
-    text-transform: uppercase;
-    white-space: nowrap;
-    -webkit-border-radius: 3px;
-    border-radius: 3px;
-}
-.right .logbooks .bookbook, .logbooks .bookbook a, .right .logtags .bookbook, .logtags .bookbook a {
-    color: #ffffff;
-}
-.right .logbooks .bookbook, .logbooks .bookbook a:hover, .right .logtags .bookbook, .logtags .bookbook a:hover {
+
+.logbooks .bookbook, .logbooks .bookbook a:hover,
+.logtags .bookbook, .logtags .bookbook a:hover,
+.bookbook a,
+.bookbook a:hover {
     text-decoration: none;
-    color: #ffffff;
+    color: inherit;
 }
 div.browserblock {
     overflow: hidden;
@@ -3468,7 +3508,6 @@
 
 #content {
     clear: both;
-    overflow: hidden;
     padding: 10px 10px 14px 10px;
 }
 
@@ -3616,7 +3655,6 @@
 
 img,
 #header #header-inner #quick li a:hover span.normal,
-#header #header-inner #quick li ul li.last,
 #content div.box div.form div.fields div.field div.textarea table td table td a,
 #clone_url,
 #clone_url_id
@@ -3660,8 +3698,17 @@
     padding: 0 10px 10px;
 }
 
-#content div.box div.title ul.links li a:hover, #content div.box div.title ul.links li.ui-tabs-selected a {
-    color: #bfe3ff;
+#content div.box div.title ul.links li a:hover,
+#content div.box div.title ul.links li.ui-tabs-selected a {
+
+    background: #6388ad; /* Old browsers */
+    background: -moz-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* FF3.6+ */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
+    background: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Chrome10+,Safari5.1+ */
+    background: -o-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Opera 11.10+ */
+    background: -ms-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* IE10+ */
+    background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* W3C */
+    /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#88bfe8', endColorstr='#70b0e0',GradientType=0 ); /* IE6-9 */*/
 }
 
 #content div.box ol.lower-roman, #content div.box ol.upper-roman, #content div.box ol.lower-alpha, #content div.box ol.upper-alpha, #content div.box ol.decimal {
@@ -3669,6 +3716,7 @@
 }
 
 #content div.box div.form, #content div.box div.table, #content div.box div.traffic {
+    position: relative;
     clear: both;
     overflow: hidden;
     margin: 0;
@@ -3752,7 +3800,6 @@
 #content div.box div.form div.fields div.buttons input
 div.form div.fields div.buttons input,
 #content div.box div.action div.button input {
-    /*color: #000;*/
     font-size: 11px;
     font-weight: 700;
     margin: 0;
@@ -3926,13 +3973,7 @@
     width: 600px;
 }
 
-#changeset_content .container .left {
-    float: left;
-    width: 75%;
-    padding-left: 5px;
-}
-
-#changeset_content .container .left .date, .ac .match {
+#changeset_content .container .date, .ac .match {
     font-weight: 700;
     padding-top: 5px;
     padding-bottom: 5px;
@@ -4352,21 +4393,6 @@
     padding: 4px 0px 6px 0px;
 }
 
-
-tr.hl-comment {
-/*
-    background-color: #FFFFCC !important;
-*/
-}
-
-/*
-tr.hl-comment pre {
-    border-top: 2px solid #FFEE33;
-    border-left: 2px solid #FFEE33;
-    border-right: 2px solid #FFEE33;
-}
-*/
-
 .comment-inline-form strong {
     display: block;
     margin-bottom: 15px;
@@ -4467,22 +4493,16 @@
     margin: 2px 0px 8px 5px !important
 }
 
-
 .notification-paginator {
     padding: 0px 0px 4px 16px;
     float: left;
 }
 
-.menu_link_user {
-    padding: 10px 8px 8px 8px !important;
-}
-
+#context-pages .pull-request span,
 .menu_link_notifications {
     padding: 4px 4px !important;
-    margin: 7px 4px 0px 0px !important;
     text-align: center;
     color: #888 !important;
-    font-size: 10px;
     background-color: #DEDEDE !important;
     border-radius: 4px !important;
     -webkit-border-radius: 4px !important;
--- a/rhodecode/public/js/rhodecode.js	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/public/js/rhodecode.js	Mon Mar 18 18:17:58 2013 +0100
@@ -509,7 +509,7 @@
 };
 
 var onSuccessFollow = function(target){
-    var f = YUD.get(target.id);
+    var f = YUD.get(target);
     var f_cnt = YUD.get('current_followers_count');
 
     if(YUD.hasClass(f, 'follow')){
@@ -576,6 +576,7 @@
     return false;	
 }
 
+
 /**
  * TOOLTIP IMPL.
  */
--- a/rhodecode/templates/admin/repos/repo_edit.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/admin/repos/repo_edit.html	Mon Mar 18 18:17:58 2013 +0100
@@ -6,11 +6,7 @@
 </%def>
 
 <%def name="breadcrumbs_links()">
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
-    ${_('edit')}
+  ${_('Edit Repository Settings')}
 </%def>
 
 <%def name="page_nav()">
@@ -18,6 +14,7 @@
 </%def>
 
 <%def name="main()">
+ ${self.context_bar('options')}
 <div class="box box-left">
     <!-- box / title -->
     <div class="title">
--- a/rhodecode/templates/base/base.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/base/base.html	Mon Mar 18 18:17:58 2013 +0100
@@ -61,11 +61,144 @@
     </div>
 </%def>
 
+<%def name="context_bar(current=None)">
+   %if c.repo_name:
+    ${repo_context_bar(current)}
+   %endif
+</%def>
+
+<%def name="admin_menu()">
+  <ul class="admin_menu">
+      <li>${h.link_to(_('admin journal'),h.url('admin_home'),class_='journal ')}</li>
+      <li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
+      <li>${h.link_to(_('repository groups'),h.url('repos_groups'),class_='repos_groups')}</li>
+      <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
+      <li>${h.link_to(_('user groups'),h.url('users_groups'),class_='groups')}</li>
+      <li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li>
+      <li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li>
+      <li>${h.link_to(_('defaults'),h.url('defaults'),class_='defaults')}</li>
+      <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
+  </ul>
+</%def>
+
+<%def name="admin_menu_simple()">
+  <ul>
+      <li>${h.link_to(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li>
+  </ul>
+</%def>
+
+<%def name="repo_context_bar(current=None)">
+  <%
+      def follow_class():
+          if c.repository_following:
+              return h.literal('following')
+          else:
+            return h.literal('follow')
+  %>
+  <%
+    def is_current(selected):
+        if selected == current:
+            return h.literal('class="current"')
+    %>
+
+  <!--- CONTEXT BAR -->
+  <div id="context-bar" class="box">
+    <div id="context-top">
+      <div id="breadcrumbs">
+        ${h.link_to(_(u'Repositories'),h.url('home'))}
+        »
+        ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
+      </div>
+      ## TODO: this check feels wrong, it would be better to have a check for permissions
+      ## also it feels like a job for the controller
+      %if c.rhodecode_user.username != 'default':
+        <ul id="context-actions" class="horizontal-list">
+          <li>
+           <button class="${follow_class()}" onclick="javascript:toggleFollowingRepo(this,${c.rhodecode_db_repo.repo_id},'${str(h.get_token())}');">
+            <!--span class="icon show-follow follow"></span>
+            <span class="icon show-following following"></span-->
+            <span class="show-follow">${_('Follow')}</span>
+            <span class="show-following">${_('Unfollow')}</span>
+          </button>
+          </li>
+          <li><a href="${h.url('repo_fork_home',repo_name=c.repo_name)}" class="fork">${_('Fork')}</a></li>
+          %if h.is_hg(c.rhodecode_repo):
+          <li><a href="${h.url('pullrequest_home',repo_name=c.repo_name)}" class="pull-request">${_('Create Pull Request')}</a></li>
+          %endif
+        </ul>
+      %endif
+    </div>
+    <div id="context-state">
+      <!--button id="revision-changer">
+        <span class="branch-name">graphics/shader-move</span>
+        <span class="revision">@73318:8d3d6ee94072</span>
+      </button-->
+      <ul id="context-pages" class="horizontal-list">
+        <li ${is_current('summary')}><a href="${h.url('summary_home', repo_name=c.repo_name)}" class="summary">${_('Summary')}</a></li>
+        <li ${is_current('changelog')}><a href="${h.url('changelog_home', repo_name=c.repo_name)}" class="changelogs">${_('Changelog')}</a></li>
+        <li ${is_current('files')}><a href="${h.url('files_home', repo_name=c.repo_name)}" class="files"></span>${_('Files')}</a></li>
+        <li ${is_current('switch-to')}>
+          <a href="#" id="branch_tag_switcher_2" class="dropdown switch-to"></span>${_('Switch To')}</a>
+          <ul id="switch_to_list_2" class="switch_to submenu">
+            <li><a href="#">${_('loading...')}</a></li>
+          </ul>
+        </li>
+        <li ${is_current('options')}>
+          <a href="#" class="dropdown options"></span>Options</a>
+          <ul>
+             %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
+               %if h.HasPermissionAll('hg.admin')('access settings on repository'):
+                   <li>${h.link_to(_('Settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
+               %else:
+                   <li>${h.link_to(_('Settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
+               %endif
+             %endif
+              %if c.rhodecode_db_repo.fork:
+               <li>${h.link_to(_('Compare fork'),h.url('compare_url',repo_name=c.rhodecode_db_repo.fork.repo_name,org_ref_type='branch',org_ref='default',other_repo=c.repo_name,other_ref_type='branch',other_ref=request.GET.get('branch') or 'default'),class_='compare_request')}</li>
+              %endif
+              <li>${h.link_to(_('Lightweight changelog'),h.url('shortlog_home',repo_name=c.repo_name),class_='shortlog')}</li>
+              <li>${h.link_to(_('Search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}</li>
+
+              %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
+                %if c.rhodecode_db_repo.locked[0]:
+                  <li>${h.link_to(_('Unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}</li>
+                %else:
+                  <li>${h.link_to(_('Lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}</li>
+                %endif
+              %endif
+             </ul>
+        </li>
+        <li ${is_current('showpullrequest')}>
+          <a href="${h.url('pullrequest_show_all',repo_name=c.repo_name)}" title="${_('Show Pull Requests')}" class="pull-request">Pull Requests
+            %if c.repository_pull_requests:
+              <span>${c.repository_pull_requests}</span>
+            %endif
+          </a>
+        </li>
+      </ul>
+    </div>
+  </div>
+  <script type="text/javascript">
+      YUE.on('branch_tag_switcher_2','mouseover',function(){
+         var loaded = YUD.hasClass('branch_tag_switcher_2','loaded');
+         if(!loaded){
+             YUD.addClass('branch_tag_switcher_2','loaded');
+             ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list_2',
+                 function(o){},
+                 function(o){YUD.removeClass('branch_tag_switcher_2','loaded');}
+                 ,null);
+         }
+         return false;
+      });
+  </script>
+  <!--- END CONTEXT BAR -->
+</%def>
+
 <%def name="usermenu()">
     ## USER MENU
     <li>
-      <a class="menu_link" id="quick_login_link">
-          <span class="icon" style="padding:5px 5px 0px 5px">
+      <a class="menu_link childs" id="quick_login_link">
+          <span class="icon">
              <img src="${h.gravatar_url(c.rhodecode_user.email,20)}" alt="avatar">
           </span>
           %if c.rhodecode_user.username != 'default':
@@ -122,12 +255,12 @@
                 <div class="full_name">${c.rhodecode_user.full_name_or_username}</div>
                 <div class="email">${c.rhodecode_user.email}</div>
                 <div class="big_gravatar"><img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,48)}" /></div>
-                <div class="notifications"><a href="${h.url('notifications')}">${_('Notifications')}</a></div>
-                <div class="unread"><a href="${h.url('notifications')}">${_('Unread')}: ${c.unread_notifications}</a></div>
+                ##<div class="notifications"><a href="${h.url('notifications')}">${_('Notifications')}</a></div>
+                <div class="unread"><a href="${h.url('notifications')}">${_('Unread notifications')}: ${c.unread_notifications}</a></div>
             </div>
             <div class="links_right">
             <ol class="links">
-              <li>${h.link_to(_(u'Home'),h.url('home'))}</li>
+              ##<li>${h.link_to(_(u'Home'),h.url('home'))}</li>
               <li>${h.link_to(_(u'Journal'),h.url('journal'))}</li>
               <li>${h.link_to(_(u'My account'),h.url('admin_settings_my_account'))}</li>
               <li class="logout">${h.link_to(_(u'Log Out'),h.url('logout_home'))}</li>
@@ -146,14 +279,11 @@
             if selected == current:
                 return h.literal('class="current"')
         %>
-        <ul id="quick">
+        <ul id="quick" class="horizontal-list">
           <!-- repo switcher -->
           <li ${is_current('home')}>
-              <a class="menu_link" id="repo_switcher" title="${_('Switch repository')}" href="${h.url('home')}">
-              <span class="icon">
-                  <img src="${h.url('/images/icons/database.png')}" alt="${_('Products')}" />
-              </span>
-              <span>${_('Repositories')}</span>
+              <a class="menu_link repo_switcher childs" id="repo_switcher" title="${_('Switch repository')}" href="${h.url('home')}">
+              ${_('Repositories')}
               </a>
               <ul id="repo_switcher_list" class="repo_switcher">
                   <li>
@@ -161,202 +291,41 @@
                   </li>
               </ul>
           </li>
-        ## we render this menu only not for those pages
-        %if current not in ['home','admin', 'search', 'journal']:
-            ##REGULAR MENU
-            <li ${is_current('summary')}>
-               <a class="menu_link" title="${_('Summary page')}" href="${h.url('summary_home',repo_name=c.repo_name)}">
-               <span class="icon">
-                   <img src="${h.url('/images/icons/clipboard_16.png')}" alt="${_('Summary')}" />
-               </span>
-               <span>${_('Summary')}</span>
-               </a>
-            </li>
-            <li ${is_current('changelog')}>
-               <a class="menu_link" title="${_('Changeset list')}" href="${h.url('changelog_home',repo_name=c.repo_name)}">
-               <span class="icon">
-                   <img src="${h.url('/images/icons/time.png')}" alt="${_('Changelog')}" />
-               </span>
-               <span>${_('Changelog')}</span>
-               </a>
+          ##ROOT MENU
+          %if c.rhodecode_user.username != 'default':
+            <li ${is_current('journal')}>
+              <a class="menu_link journal" title="${_('Show recent activity')}"  href="${h.url('journal')}">
+              ${_('Journal')}
+              </a>
             </li>
-            <li ${is_current('switch_to')}>
-               <a class="menu_link" id="branch_tag_switcher" title="${_('Switch to')}" href="#">
-               <span class="icon">
-                   <img src="${h.url('/images/icons/arrow_switch.png')}" alt="${_('Switch to')}" />
-               </span>
-               <span>${_('Switch to')}</span>
-               </a>
-                <ul id="switch_to_list" class="switch_to">
-                    <li><a href="#">${_('loading...')}</a></li>
-                </ul>
-            </li>
-            <li ${is_current('files')}>
-               <a class="menu_link" title="${_('Show repository content')}" href="${h.url('files_home',repo_name=c.repo_name)}">
-               <span class="icon">
-                   <img src="${h.url('/images/icons/file.png')}" alt="${_('Files')}" />
-               </span>
-               <span>${_('Files')}</span>
-               </a>
+          %else:
+            <li ${is_current('journal')}>
+              <a class="menu_link journal" title="${_('Public journal')}"  href="${h.url('public_journal')}">
+              ${_('Public journal')}
+              </a>
             </li>
-            <li ${is_current('options')}>
-               <a class="menu_link" title="${_('Options')}" href="#">
-               <span class="icon">
-                   <img src="${h.url('/images/icons/table_gear.png')}" alt="${_('Admin')}" />
-               </span>
-               <span>${_('Options')}</span>
-               </a>
-               <ul>
-               %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
-                 %if h.HasPermissionAll('hg.admin')('access settings on repository'):
-                     <li>${h.link_to(_('repository settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
-                 %else:
-                     <li>${h.link_to(_('repository settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
-                 %endif
-               %endif
-
-                <li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li>
-                %if h.is_hg(c.rhodecode_repo):
-                 <li>${h.link_to(_('open new pull request'),h.url('pullrequest_home',repo_name=c.repo_name),class_='pull_request')}</li>
-                %endif
-                %if c.rhodecode_db_repo.fork:
-                 <li>${h.link_to(_('compare fork'),h.url('compare_url',repo_name=c.rhodecode_db_repo.fork.repo_name,org_ref_type='branch',org_ref='default',other_repo=c.repo_name,other_ref_type='branch',other_ref=request.GET.get('branch') or 'default'),class_='compare_request')}</li>
-                %endif
-                <li>${h.link_to(_('lightweight changelog'),h.url('shortlog_home',repo_name=c.repo_name),class_='shortlog')}</li>
-                <li>${h.link_to(_('search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}</li>
-
-                %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
-                  %if c.rhodecode_db_repo.locked[0]:
-                    <li>${h.link_to(_('unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}</li>
-                  %else:
-                    <li>${h.link_to(_('lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}</li>
-                  %endif
-                %endif
-
-                % if h.HasPermissionAll('hg.admin')('access admin main page'):
-                   <li>
-                     ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
-                      <%def name="admin_menu()">
-                      <ul>
-                          <li>${h.link_to(_('admin journal'),h.url('admin_home'),class_='journal')}</li>
-                          <li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
-                          <li>${h.link_to(_('repository groups'),h.url('repos_groups'),class_='repos_groups')}</li>
-                          <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
-                          <li>${h.link_to(_('user groups'),h.url('users_groups'),class_='groups')}</li>
-                          <li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li>
-                          <li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li>
-                          <li>${h.link_to(_('defaults'),h.url('defaults'),class_='defaults')}</li>
-                          <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
-                      </ul>
-                      </%def>
-                      ## ADMIN MENU
-                      ${admin_menu()}
-                   </li>
-                ## if you're a admin of any groups, show admin menu for it
-                % elif c.rhodecode_user.groups_admin:
-                   <li>
-                     ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
-                      <%def name="admin_menu_simple()">
-                      <ul>
-                          <li>${h.link_to(_('repository groups'),h.url('repos_groups'),class_='repos_groups')}</li>
-                      </ul>
-                      </%def>
-                      ## ADMIN MENU
-                      ${admin_menu_simple()}
-                   </li>
-                % endif
-               </ul>
-            </li>
-            <li>
-                <a class="menu_link" title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}">
-                <span class="icon_short">
-                    <img src="${h.url('/images/icons/heart.png')}" alt="${_('Followers')}" />
-                </span>
-                <span id="current_followers_count" class="short">${c.repository_followers}</span>
-                </a>
+          %endif
+          <li ${is_current('search')}>
+              <a class="menu_link search" title="${_('Search in repositories')}"  href="${h.url('search')}">
+              ${_('Search')}
+              </a>
+          </li>
+          % if h.HasPermissionAll('hg.admin')('access admin main page'):
+            <li ${is_current('admin')}>
+              <a class="menu_link admin childs" title="${_('Admin')}" href="${h.url('admin_home')}">
+                ${_('Admin')}
+              </a>
+              ${admin_menu()}
             </li>
-            <li>
-                <a class="menu_link" title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
-                <span class="icon_short">
-                    <img src="${h.url('/images/icons/arrow_divide.png')}" alt="${_('Forks')}" />
-                </span>
-                <span class="short">${c.repository_forks}</span>
-                </a>
-            </li>
-            <li>
-                <a class="menu_link" title="${_('Pull requests')}" href="${h.url('pullrequest_show_all',repo_name=c.repo_name)}">
-                <span class="icon_short">
-                    <img src="${h.url('/images/icons/arrow_join.png')}" alt="${_('Pull requests')}" />
-                </span>
-                <span class="short">${c.repository_pull_requests}</span>
-                </a>
-            </li>
-            ${usermenu()}
-            <script type="text/javascript">
-                YUE.on('branch_tag_switcher','mouseover',function(){
-                   var loaded = YUD.hasClass('branch_tag_switcher','loaded');
-                   if(!loaded){
-                       YUD.addClass('branch_tag_switcher','loaded');
-                       ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list',
-                           function(o){},
-                           function(o){YUD.removeClass('branch_tag_switcher','loaded');}
-                           ,null);
-                   }
-                   return false;
-                });
-            </script>
-        %else:
-            ##ROOT MENU
-            %if c.rhodecode_user.username != 'default':
-             <li ${is_current('journal')}>
-                <a class="menu_link" title="${_('Show recent activity')}"  href="${h.url('journal')}">
-                <span class="icon">
-                    <img src="${h.url('/images/icons/book.png')}" alt="${_('Journal')}" />
-                </span>
-                <span>${_('Journal')}</span>
-                </a>
-             </li>
-            %else:
-             <li ${is_current('journal')}>
-                <a class="menu_link" title="${_('Public journal')}"  href="${h.url('public_journal')}">
-                <span class="icon">
-                    <img src="${h.url('/images/icons/book.png')}" alt="${_('Public journal')}" />
-                </span>
-                <span>${_('Public journal')}</span>
-                </a>
-             </li>
-            %endif
-            <li ${is_current('search')}>
-                <a class="menu_link" title="${_('Search in repositories')}"  href="${h.url('search')}">
-                <span class="icon">
-                    <img src="${h.url('/images/icons/search_16.png')}" alt="${_('Search')}" />
-                </span>
-                <span>${_('Search')}</span>
-                </a>
-            </li>
-            % if h.HasPermissionAll('hg.admin')('access admin main page'):
-            <li ${is_current('admin')}>
-               <a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
-               <span class="icon">
-                   <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
-               </span>
-               <span>${_('Admin')}</span>
-               </a>
-                ${admin_menu()}
-            </li>
-            % elif c.rhodecode_user.groups_admin:
-            <li ${is_current('admin')}>
-               <a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
-               <span class="icon">
-                   <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
-               </span>
-               <span>${_('Admin')}</span>
-               </a>
-                ${admin_menu_simple()}
-            </li>
-            % endif
-            ${usermenu()}
-        %endif
+          % elif c.rhodecode_user.groups_admin:
+          <li ${is_current('admin')}>
+              <a class="menu_link admin childs" title="${_('Admin')}" href="${h.url('admin_home')}">
+                ${_('Admin')}
+              </a>
+              ${admin_menu_simple()}
+          </li>
+          % endif
+          ${usermenu()}
 <script type="text/javascript">
     YUE.on('repo_switcher','mouseover',function(){
       var target = 'q_filter_rs';
--- a/rhodecode/templates/base/root.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/base/root.html	Mon Mar 18 18:17:58 2013 +0100
@@ -11,6 +11,8 @@
         <%def name="css()">
             <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css', ver=c.rhodecode_version)}" media="screen"/>
             <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css', ver=c.rhodecode_version)}"/>
+
+            <link rel="stylesheet" type="text/css" href="${h.url('/css/contextbar.css', ver=c.rhodecode_version)}"/>
             ## EXTRA FOR CSS
             ${self.css_extra()}
         </%def>
--- a/rhodecode/templates/bookmarks/bookmarks.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/bookmarks/bookmarks.html	Mon Mar 18 18:17:58 2013 +0100
@@ -8,11 +8,7 @@
 
 <%def name="breadcrumbs_links()">
     <input class="q_filter_box" id="q_filter_bookmarks" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
-    ${_('bookmarks')}
+    ${_('Bookmarks')}
 </%def>
 
 <%def name="page_nav()">
@@ -20,6 +16,7 @@
 </%def>
 <%def name="main()">
 <div class="box">
+${self.context_bar('switch-to')}
     <!-- box / title -->
     <div class="title">
         ${self.breadcrumbs()}
--- a/rhodecode/templates/branches/branches.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/branches/branches.html	Mon Mar 18 18:17:58 2013 +0100
@@ -7,11 +7,7 @@
 
 <%def name="breadcrumbs_links()">
     <input class="q_filter_box" id="q_filter_branches" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
-    ${_('branches')}
+    ${_('Branches')}
 </%def>
 
 <%def name="page_nav()">
@@ -19,6 +15,7 @@
 </%def>
 
 <%def name="main()">
+${self.context_bar('switch-to')}
 <div class="box">
     <!-- box / title -->
     <div class="title">
--- a/rhodecode/templates/changelog/changelog.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/changelog/changelog.html	Mon Mar 18 18:17:58 2013 +0100
@@ -7,12 +7,8 @@
 </%def>
 
 <%def name="breadcrumbs_links()">
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
     <% size = c.size if c.size <= c.total_cs else c.total_cs %>
-    ${_('changelog')} - ${ungettext('showing %d out of %d revision', 'showing %d out of %d revisions', size) % (size, c.total_cs)}
+    ${_('Changelog')} - ${ungettext('showing %d out of %d revision', 'showing %d out of %d revisions', size) % (size, c.total_cs)}
 </%def>
 
 <%def name="page_nav()">
@@ -20,6 +16,7 @@
 </%def>
 
 <%def name="main()">
+${self.context_bar('changelog')}
 <div class="box">
     <!-- box / title -->
     <div class="title">
@@ -28,10 +25,6 @@
     <div class="table">
         % if c.pagination:
             <div id="graph">
-                <div id="graph_nodes">
-                    <canvas id="graph_canvas"></canvas>
-                </div>
-                <div id="graph_content">
                     <div class="info_box" style="clear: both;padding: 10px 6px;min-height: 12px;text-align: right;">
                     <a href="#" class="ui-btn small" id="rev_range_container" style="display:none"></a>
                     <a href="#" class="ui-btn small" id="rev_range_clear" style="display:none">${_('Clear selection')}</a>
@@ -42,123 +35,105 @@
                     %if h.is_hg(c.rhodecode_repo):
                     <a id="open_new_pr" href="${h.url('pullrequest_home',repo_name=c.repo_name)}" class="ui-btn small">${_('Open new pull request')}</a>
                     %endif
+                </div>
+                <div class="container_header">
+                    ${h.form(h.url.current(),method='get')}
+                    <div style="float:left">
+                        ${h.submit('set',_('Show'),class_="ui-btn")}
+                        ${h.text('size',size=1,value=c.size)}
+                        ${_('revisions')}
                     </div>
-                    <div class="container_header">
-                        ${h.form(h.url.current(),method='get')}
-                        <div class="info_box" style="float:left">
-                          ${h.submit('set',_('Show'),class_="ui-btn")}
-                          ${h.text('size',size=1,value=c.size)}
-                          ${_('revisions')}
-                        </div>
-                        ${h.end_form()}
+                    ${h.end_form()}
                     <div style="float:right">${h.select('branch_filter',c.branch_name,c.branch_filters)}</div>
-                    </div>
+                </div>
+                <div id="graph_nodes">
+                    <canvas id="graph_canvas"></canvas>
+                </div>
+                <div id="graph_content">
 
+                <table id="changesets">
+                <tbody>
                 %for cnt,cs in enumerate(c.pagination):
-                    <div id="chg_${cnt+1}" class="container ${'tablerow%s' % (cnt%2)}">
-                        <div class="left">
-                            <div>
+                    <tr id="chg_${cnt+1}" class="container ${'tablerow%s' % (cnt%2)}">
+                        <td class="checkbox">
                             ${h.checkbox(cs.raw_id,class_="changeset_range")}
-                            <span class="tooltip" title="${h.tooltip(h.age(cs.date))}"><a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id)}"><span class="changeset_id">${cs.revision}:<span class="changeset_hash">${h.short_id(cs.raw_id)}</span></span></a></span>
-                            </div>
-                            <div class="author">
-                                <div class="gravatar">
-                                    <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(cs.author),16)}"/>
-                                </div>
-                                <div title="${cs.author}" class="user">${h.shorter(h.person(cs.author),22)}</div>
-                            </div>
-                            <div class="date">${h.fmt_date(cs.date)}</div>
-                        </div>
-                        <div class="mid">
-                            <div class="message">${h.urlify_commit(cs.message, c.repo_name,h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
-                            <div class="expand"><span class="expandtext">&darr; ${_('Show more')} &darr;</span></div>
-                        </div>
-                        <div class="right">
-                                    <div class="changes">
-                                        <div id="changed_total_${cs.raw_id}" style="float:right;" class="changed_total tooltip" title="${h.tooltip(_('Affected number of files, click to show more details'))}">${len(cs.affected_files)}</div>
+                        </td>
+                        <td class="author">
+                            <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(cs.author),16)}"/>
+                            <span title="${cs.author}" class="user">${h.shorter(h.person(cs.author),22)}</span>
+                        </td>
+                        <td class="hash">
+                            <a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id)}">
+                                <span class="changeset_hash">${h.short_id(cs.raw_id)}</span>
+                            </a>
+                        </td>
+                        <td class="date">
+                            <div class="date">${h.age(cs.date,True)}</div>
+                        </td>
+                        <td class="mid">
+                            <div class="log-container">
+                                <div class="message">${h.urlify_commit(cs.message, c.repo_name,h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
+                                <div class="expand"><span class="expandtext">&darr; ${_('Show more')} &darr;</span></div>
+                                <div class="extra-container">
+                                    %if c.comments.get(cs.raw_id,[]):
                                         <div class="comments-container">
-                                        %if len(c.comments.get(cs.raw_id,[])) > 0:
                                             <div class="comments-cnt" title="${('comments')}">
-                                              <a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id,anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
-                                               <div class="comments-cnt">${len(c.comments[cs.raw_id])}</div>
-                                               <img src="${h.url('/images/icons/comments.png')}">
-                                              </a>
+                                                <a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id,anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
+                                                    ${len(c.comments[cs.raw_id])}
+                                                </a>
                                             </div>
-                                        %endif
                                         </div>
-                                        <div class="changeset-status-container">
-                                            %if c.statuses.get(cs.raw_id):
-                                              <div title="${_('Changeset status')}" class="changeset-status-lbl">${c.statuses.get(cs.raw_id)[1]}</div>
-                                              <div class="changeset-status-ico">
-                                              %if c.statuses.get(cs.raw_id)[2]:
-                                                <a class="tooltip" title="${_('Click to open associated pull request #%s' % c.statuses.get(cs.raw_id)[2])}" href="${h.url('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}"><img src="${h.url('/images/icons/flag_status_%s.png' % c.statuses.get(cs.raw_id)[0])}" /></a>
-                                              %else:
-                                                <img src="${h.url('/images/icons/flag_status_%s.png' % c.statuses.get(cs.raw_id)[0])}" />
-                                              %endif
-                                              </div>
-                                            %endif
-                                        </div>
-                                    </div>
-                                   %if cs.parents:
-                                    %for p_cs in reversed(cs.parents):
-                                        <div class="parent">${_('Parent')}
-                                            <span class="changeset_id">${p_cs.revision}:<span class="changeset_hash">${h.link_to(h.short_id(p_cs.raw_id),
-                                            h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}</span></span>
+                                    %endif
+                                    %if h.is_hg(c.rhodecode_repo):
+	                                    %for book in cs.bookmarks:
+	                                        <div class="bookbook" title="${'%s %s' % (_('bookmark'),book)}">
+	                                            ${h.link_to(h.shorter(book),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
+	                                        </div>
+	                                    %endfor
+                                    %endif
+                                    %for tag in cs.tags:
+                                        <div class="tagtag"  title="${'%s %s' % (_('tag'),tag)}">
+                                            ${h.link_to(h.shorter(tag),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
                                         </div>
                                     %endfor
-                                   %else:
-                                        <div class="parent">${_('No parents')}</div>
-                                   %endif
-
-                                <span class="logtags">
-                                    %if len(cs.parents)>1:
-                                    <span class="merge">${_('merge')}</span>
-                                    %endif
-                                    %if cs.branch:
-                                    <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
-                                       ${h.link_to(h.shorter(cs.branch),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
-                                    </span>
+                                    %if (not c.branch_name) and cs.branch:
+                                        <div class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
+                                            ${h.link_to(h.shorter(cs.branch),h.url('changelog_home',repo_name=c.repo_name,branch=cs.branch))}
+                                        </div>
                                     %endif
-                                    %if h.is_hg(c.rhodecode_repo):
-                                      %for book in cs.bookmarks:
-                                      <span class="bookbook" title="${'%s %s' % (_('bookmark'),book)}">
-                                         ${h.link_to(h.shorter(book),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
-                                      </span>
-                                      %endfor
-                                    %endif
-                                    %for tag in cs.tags:
-                                        <span class="tagtag"  title="${'%s %s' % (_('tag'),tag)}">
-                                        ${h.link_to(h.shorter(tag),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
-                                    %endfor
-                                </span>
-                        </div>
-                    </div>
+                                </div>
+                            </div>
+                        </td>
+                    </tr>
+                %endfor
+                </tbody>
+                </table>
 
-                %endfor
+
                 <div class="pagination-wh pagination-left">
                     ${c.pagination.pager('$link_previous ~2~ $link_next')}
                 </div>
-                </div>
             </div>
+        </div>
 
-            <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
-            <script type="text/javascript">
-                YAHOO.util.Event.onDOMReady(function(){
+        <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
+        <script type="text/javascript">
+            YAHOO.util.Event.onDOMReady(function(){
 
-                    //Monitor range checkboxes and build a link to changesets
-                    //ranges
-                    var checkboxes = YUD.getElementsByClassName('changeset_range');
-                    var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
-                    var pr_tmpl = "${h.url('pullrequest_home',repo_name=c.repo_name)}";
+                //Monitor range checkboxes and build a link to changesets
+                //ranges
+                var checkboxes = YUD.getElementsByClassName('changeset_range');
+                var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
+                var pr_tmpl = "${h.url('pullrequest_home',repo_name=c.repo_name)}";
 
                     var checkbox_checker = function(e){
-                        var checked_checkboxes = [];
-                        for (pos in checkboxes){
-                            if(checkboxes[pos].checked){
-                                checked_checkboxes.push(checkboxes[pos]);
-                            }
+                    var checked_checkboxes = [];
+                    for (pos in checkboxes){
+                        if(checkboxes[pos].checked){
+                            checked_checkboxes.push(checkboxes[pos]);
                         }
-                        if(YUD.get('open_new_pr')){
+                    }
+                    if(YUD.get('open_new_pr')){
                             if(checked_checkboxes.length>1){
                               YUD.setStyle('open_new_pr','display','none');
                             } else {
@@ -171,29 +146,28 @@
                           }
                         }
 
-                        if(checked_checkboxes.length>0){
-                            var rev_end = checked_checkboxes[0].name;
-                            var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
-                            var url = url_tmpl.replace('__REVRANGE__',
-                                    rev_start+'...'+rev_end);
+                    if(checked_checkboxes.length>0){
+                        var rev_end = checked_checkboxes[0].name;
+                        var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
+                        var url = url_tmpl.replace('__REVRANGE__',
+                                rev_start+'...'+rev_end);
 
-                            var link = (rev_start == rev_end)
-                                ? _TM['Show selected change __S']
-                                : _TM['Show selected changes __S -> __E'];
+                        var link = (rev_start == rev_end)
+                            ? _TM['Show selected change __S']
+                            : _TM['Show selected changes __S -> __E'];
 
-                            link = link.replace('__S',rev_start.substr(0,6));
-                            link = link.replace('__E',rev_end.substr(0,6));
-                            YUD.get('rev_range_container').href = url;
-                            YUD.get('rev_range_container').innerHTML = link;
-                            YUD.setStyle('rev_range_container','display','');
-                            YUD.setStyle('rev_range_clear','display','');
+                        link = link.replace('__S',rev_start.substr(0,6));
+                        link = link.replace('__E',rev_end.substr(0,6));
+                        YUD.get('rev_range_container').href = url;
+                        YUD.get('rev_range_container').innerHTML = link;
+                        YUD.setStyle('rev_range_container','display','');
+                        YUD.setStyle('rev_range_clear','display','');
 
-                            YUD.get('open_new_pr').href = pr_tmpl + '?rev_start={0}&rev_end={1}'.format(rev_start,rev_end);
+                        YUD.get('open_new_pr').href = pr_tmpl + '?rev_start={0}&rev_end={1}'.format(rev_start,rev_end);
                             YUD.setStyle('compare_fork','display','none');
-                        }
-                        else{
-                            YUD.setStyle('rev_range_container','display','none');
-                            YUD.setStyle('rev_range_clear','display','none');
+                    } else{
+                        YUD.setStyle('rev_range_container','display','none');
+                        YUD.setStyle('rev_range_clear','display','none');
                             if (checkboxes){
                                 YUD.get('open_new_pr').href = pr_tmpl + '?rev_end={0}'.format(checkboxes[0].name);
                             }
@@ -203,94 +177,86 @@
                     YUE.onDOMReady(checkbox_checker);
                     YUE.on(checkboxes,'click', checkbox_checker);
 
-                    YUE.on('rev_range_clear','click',function(e){
-                        for (var i=0; i<checkboxes.length; i++){
-                            var cb = checkboxes[i];
-                            cb.checked = false;
-                        }
+                YUE.on('rev_range_clear','click',function(e){
+                    for (var i=0; i<checkboxes.length; i++){
+                        var cb = checkboxes[i];
+                        cb.checked = false;
+                    }
                         checkbox_checker();
-                        YUE.preventDefault(e);
-                    })
-
-                    var msgs = YUQ('.message');
-                    // get first element height
-                    var el = YUQ('#graph_content .container')[0];
-                    var row_h = el.clientHeight;
-                    for(var i=0;i<msgs.length;i++){
-                        var m = msgs[i];
-
-                        var h = m.clientHeight;
-                        var pad = YUD.getStyle(m,'padding');
-                        if(h > row_h){
-                            var offset = row_h - (h+12);
-                            YUD.setStyle(m.nextElementSibling,'display','block');
-                            YUD.setStyle(m.nextElementSibling,'margin-top',offset+'px');
-                        };
-                    }
-                    YUE.on(YUQ('.expand'),'click',function(e){
-                        var elem = e.currentTarget.parentNode.parentNode;
-                        YUD.setStyle(e.currentTarget,'display','none');
-                        YUD.setStyle(elem,'height','auto');
-
-                        //redraw the graph, line_count and jsdata are global vars
-                        set_canvas(100);
-
-                        var r = new BranchRenderer();
-                        r.render(jsdata,100,line_count);
-
-                    })
+                    YUE.preventDefault(e);
+                });
 
-                    // Fetch changeset details
-                    YUE.on(YUD.getElementsByClassName('changed_total'),'click',function(e){
-                        var id = e.currentTarget.id;
-                        var url = "${h.url('changelog_details',repo_name=c.repo_name,cs='__CS__')}";
-                        var url = url.replace('__CS__',id.replace('changed_total_',''));
-                        ypjax(url,id,function(){tooltip_activate()});
-                    });
-
-                    // change branch filter
-                    YUE.on(YUD.get('branch_filter'),'change',function(e){
-                        var selected_branch = e.currentTarget.options[e.currentTarget.selectedIndex].value;
-                        var url_main = "${h.url('changelog_home',repo_name=c.repo_name)}";
-                        var url = "${h.url('changelog_home',repo_name=c.repo_name,branch='__BRANCH__')}";
-                        var url = url.replace('__BRANCH__',selected_branch);
-                        if(selected_branch != ''){
-                            window.location = url;
-                        }else{
-                            window.location = url_main;
-                        }
-
-                    });
+                var msgs = YUQ('.message');
+                // get first element height
+                var el = YUQ('#graph_content .container')[0];
+                var row_h = el.clientHeight;
+                for(var i=0;i<msgs.length;i++){
+                    var m = msgs[i];
 
-                    function set_canvas(width) {
-                        var c = document.getElementById('graph_nodes');
-                        var t = document.getElementById('graph_content');
-                        canvas = document.getElementById('graph_canvas');
-                        var div_h = t.clientHeight;
-                        c.style.height=div_h+'px';
-                        canvas.setAttribute('height',div_h);
-                        c.style.height=width+'px';
-                        canvas.setAttribute('width',width);
+                    var h = m.clientHeight;
+                    var pad = YUD.getStyle(m,'padding');
+                    if(h > row_h){
+                        var offset = row_h - (h+12);
+                        YUD.setStyle(m.nextElementSibling,'display','block');
+                        YUD.setStyle(m.nextElementSibling,'margin-top',offset+'px');
                     };
-                    var heads = 1;
-                    var line_count = 0;
-                    var jsdata = ${c.jsdata|n};
+                }
+                YUE.on(YUQ('.expand'),'click',function(e){
+                    var elem = e.currentTarget.parentNode.parentNode;
+                    YUD.setStyle(e.currentTarget,'display','none');
+                    YUD.setStyle(elem,'height','auto');
 
-                    for (var i=0;i<jsdata.length;i++) {
-                        var in_l = jsdata[i][2];
-                        for (var j in in_l) {
-                            var m = in_l[j][1];
-                            if (m > line_count)
-                                line_count = m;
-                        }
-                    }
+                    //redraw the graph, line_count and jsdata are global vars
                     set_canvas(100);
 
                     var r = new BranchRenderer();
                     r.render(jsdata,100,line_count);
 
                 });
-            </script>
+
+                // change branch filter
+                YUE.on(YUD.get('branch_filter'),'change',function(e){
+                    var selected_branch = e.currentTarget.options[e.currentTarget.selectedIndex].value;
+                    var url_main = "${h.url('changelog_home',repo_name=c.repo_name)}";
+                    var url = "${h.url('changelog_home',repo_name=c.repo_name,branch='__BRANCH__')}";
+                    var url = url.replace('__BRANCH__',selected_branch);
+                    if(selected_branch != ''){
+                        window.location = url;
+                    }else{
+                        window.location = url_main;
+                    }
+
+                });
+
+                function set_canvas(width) {
+                    var c = document.getElementById('graph_nodes');
+                    var t = document.getElementById('graph_content');
+                    canvas = document.getElementById('graph_canvas');
+                    var div_h = t.clientHeight;
+                    //c.style.height=div_h+'px';
+                    canvas.setAttribute('height',div_h);
+                    //c.style.height=width+'px';
+                    canvas.setAttribute('width',width);
+                };
+                var heads = 1;
+                var line_count = 0;
+                var jsdata = ${c.jsdata|n};
+
+                for (var i=0;i<jsdata.length;i++) {
+                    var in_l = jsdata[i][2];
+                    for (var j in in_l) {
+                        var m = in_l[j][1];
+                        if (m > line_count)
+                            line_count = m;
+                    }
+                }
+                set_canvas(100);
+
+                var r = new BranchRenderer();
+                r.render(jsdata,100,line_count);
+
+            });
+        </script>
         %else:
             ${_('There are no changes yet')}
         %endif
--- a/rhodecode/templates/changeset/changeset.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/changeset/changeset.html	Mon Mar 18 18:17:58 2013 +0100
@@ -7,10 +7,6 @@
 </%def>
 
 <%def name="breadcrumbs_links()">
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
     ${_('changeset')} - <span class='hash'>r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)}</span>
 </%def>
 
@@ -19,6 +15,7 @@
 </%def>
 
 <%def name="main()">
+${self.context_bar('changelog')}
 <div class="box">
     <!-- box / title -->
     <div class="title">
--- a/rhodecode/templates/files/files.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/files/files.html	Mon Mar 18 18:17:58 2013 +0100
@@ -5,11 +5,7 @@
 </%def>
 
 <%def name="breadcrumbs_links()">
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
-    ${_('files')}
+    ${_('Files')}
     %if c.file:
         @ r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)}
     %endif
@@ -20,6 +16,7 @@
 </%def>
 
 <%def name="main()">
+ ${self.context_bar('files')}
 <div class="box">
     <!-- box / title -->
     <div class="title">
--- a/rhodecode/templates/followers/followers.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/followers/followers.html	Mon Mar 18 18:17:58 2013 +0100
@@ -6,17 +6,14 @@
 </%def>
 
 <%def name="breadcrumbs_links()">
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
-    ${_('followers')}
+    ${_('Followers')}
 </%def>
 
 <%def name="page_nav()">
     ${self.menu('followers')}
 </%def>
 <%def name="main()">
+${self.context_bar('followers')}
 <div class="box">
     <!-- box / title -->
     <div class="title">
--- a/rhodecode/templates/forks/forks.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/forks/forks.html	Mon Mar 18 18:17:58 2013 +0100
@@ -6,17 +6,14 @@
 </%def>
 
 <%def name="breadcrumbs_links()">
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
-    ${_('forks')}
+    ${_('Forks')}
 </%def>
 
 <%def name="page_nav()">
     ${self.menu('forks')}
 </%def>
 <%def name="main()">
+${self.context_bar('forks')}
 <div class="box">
     <!-- box / title -->
     <div class="title">
--- a/rhodecode/templates/index_base.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/index_base.html	Mon Mar 18 18:17:58 2013 +0100
@@ -295,7 +295,7 @@
 
           MSG_SORTASC:"${_('Click to sort ascending')}",
           MSG_SORTDESC:"${_('Click to sort descending')}",
-          MSG_EMPTY:"${_('No records found.')}",
+          MSG_EMPTY:"${_('No repositories found.')}",
           MSG_ERROR:"${_('Data error.')}",
           MSG_LOADING:"${_('Loading...')}",
         }
--- a/rhodecode/templates/pullrequests/pullrequest_show_all.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/pullrequests/pullrequest_show_all.html	Mon Mar 18 18:17:58 2013 +0100
@@ -5,15 +5,11 @@
 </%def>
 
 <%def name="breadcrumbs_links()">
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
-    ${_('pull requests')}
+    ${_('Pull requests')}
 </%def>
 
 <%def name="main()">
-
+${self.context_bar('showpullrequest')}
 <div class="box">
     <!-- box / title -->
     <div class="title">
--- a/rhodecode/templates/repo_switcher_list.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/repo_switcher_list.html	Mon Mar 18 18:17:58 2013 +0100
@@ -11,6 +11,6 @@
       %elif not repo['dbrepo']['private'] and c.visual.show_public_icon:
              <img src="${h.url('/images/icons/lock_open.png')}" alt="${_('Public repository')}" class="repo_switcher_type" />
       %endif
-      ${h.link_to(repo['name'],h.url('summary_home',repo_name=repo['name']),class_="repo_name %s" % repo['dbrepo']['repo_type'])}
+      ${h.link_to(repo['name'],h.url('summary_home',repo_name=repo['name']),class_="repo_name thin %s" % repo['dbrepo']['repo_type'])}
     </li>
 %endfor
--- a/rhodecode/templates/search/search.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/search/search.html	Mon Mar 18 18:17:58 2013 +0100
@@ -11,13 +11,9 @@
 
 <%def name="breadcrumbs_links()">
   %if c.repo_name:
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
-    ${_('search')}
+    ${_('Search')}
   %else:
-    ${_('search in all repositories')}
+    ${_('Search in all repositories')}
   %endif
   %if c.cur_query:
     &raquo;
@@ -33,7 +29,7 @@
     %endif
 </%def>
 <%def name="main()">
-
+ ${self.context_bar('options')}
 <div class="box">
     <!-- box / title -->
     <div class="title">
--- a/rhodecode/templates/shortlog/shortlog.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/shortlog/shortlog.html	Mon Mar 18 18:17:58 2013 +0100
@@ -7,16 +7,12 @@
 
 
 <%def name="breadcrumbs_links()">
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
     %if c.file_history:
-        ${h.link_to(_('shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}
+        ${h.link_to(_('Shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}
         &raquo;
         ${c.file_history}
     %else:
-        ${_('shortlog')}
+        ${_('Shortlog')}
     %endif
 </%def>
 
@@ -24,6 +20,7 @@
     ${self.menu('shortlog')}
 </%def>
 <%def name="main()">
+ ${self.context_bar('options')}
 <div class="box">
     <!-- box / title -->
     <div class="title">
--- a/rhodecode/templates/summary/summary.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/summary/summary.html	Mon Mar 18 18:17:58 2013 +0100
@@ -5,11 +5,7 @@
 </%def>
 
 <%def name="breadcrumbs_links()">
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
-    ${_('summary')}
+    ${_('Summary')}
 </%def>
 
 <%def name="page_nav()">
@@ -22,6 +18,7 @@
 </%def>
 
 <%def name="main()">
+    ${self.context_bar('summary')}
     <%
     summary = lambda n:{False:'summary-short'}.get(n)
     %>
@@ -43,30 +40,6 @@
                   <label>${_('Name')}:</label>
               </div>
               <div class="input ${summary(c.show_stats)}">
-                  <div style="float:right;padding:5px 0px 0px 5px">
-                     %if c.rhodecode_user.username != 'default':
-                      ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='atom_icon')}
-                     %else:
-                      ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name),class_='atom_icon')}
-                     %endif
-                  </div>
-                  %if c.rhodecode_user.username != 'default':
-                      %if c.following:
-                      <span id="follow_toggle" class="following tooltip" title="${_('Stop following this repository')}"
-                            onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
-                      </span>
-                      %else:
-                      <span id="follow_toggle" class="follow tooltip" title="${_('Start following this repository')}"
-                            onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
-                      </span>
-                      %endif
-                      <div style="float:right;padding:0px 0px 0px 0px">
-                         <span class="reposize tooltip" title="${_('Click to show size of repository')}"
-                            onclick="javascript:showRepoSize('repo_size','${c.dbrepo.repo_name}','${str(h.get_token())}')">
-                         </span>
-                         <span id="repo_size"></span>
-                      </div>
-                  %endif:
 
                    ## locking icon
                     %if c.rhodecode_db_repo.enable_locking:
@@ -96,7 +69,7 @@
 
                   ##FORK
                   %if c.dbrepo.fork:
-                    <div style="margin-top:5px;clear:both"">
+                    <div style="margin-top:5px;clear:both">
                     <a href="${h.url('summary_home',repo_name=c.dbrepo.fork.repo_name)}"><img class="icon" alt="${_('public')}" title="${_('Fork of')} ${c.dbrepo.fork.repo_name}" src="${h.url('/images/icons/arrow_divide.png')}"/>
                         ${_('Fork of')} ${c.dbrepo.fork.repo_name}
                     </a>
@@ -188,7 +161,45 @@
                 %endif
               </div>
              </div>
-      </div>
+        </div>
+        <div id="summary-menu-stats">
+          <ul>
+            <li>
+               <a class="followers" title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}">
+                ${_('Followers')}
+                <span id="current_followers_count">${c.repository_followers}</span>
+              </a>
+            </li>
+            <li>
+              <a class="forks" title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
+                ${_('Forks')}
+                <span>${c.repository_forks}</span>
+              </a>
+            </li>
+            <li>
+              %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
+               %if h.HasPermissionAll('hg.admin')('access settings on repository'):
+                   ${h.link_to(_('Settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}
+               %else:
+                   ${h.link_to(_('Settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}
+               %endif
+             %endif
+            </li>
+            <li>
+              %if c.rhodecode_user.username != 'default':
+                ${h.link_to(_('Feed'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='feed')}
+              %else:
+                ${h.link_to(_('Feed'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name),class_='feed')}
+              %endif
+            </li>
+            %if c.rhodecode_user.username != 'default':
+            <li class="repo_size">
+              <a href="#" class="repo-size" onclick="javascript:showRepoSize('repo_size_2','${c.dbrepo.repo_name}','${str(h.get_token())}')">Repository Size</a>
+              <span id="repo_size_2"></span>
+            </li>
+            %endif
+          </ul>
+        </div>
     </div>
 </div>
 
--- a/rhodecode/templates/tags/tags.html	Mon Mar 11 17:59:38 2013 +0100
+++ b/rhodecode/templates/tags/tags.html	Mon Mar 18 18:17:58 2013 +0100
@@ -8,17 +8,14 @@
 
 <%def name="breadcrumbs_links()">
     <input class="q_filter_box" id="q_filter_tags" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
-    ${h.link_to(_(u'Home'),h.url('/'))}
-    &raquo;
-    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
-    &raquo;
-    ${_('tags')}
+    ${_('Tags')}
 </%def>
 
 <%def name="page_nav()">
     ${self.menu('tags')}
 </%def>
 <%def name="main()">
+${self.context_bar('switch-to')}
 <div class="box">
     <!-- box / title -->
     <div class="title">