# HG changeset patch # User Leonardo # Date 1363018183 -3600 # Node ID 6e8027c2f49cbaa2273a36cb732454ec944d9457 # Parent c65b440540da15cb167819b2ebbf3faa3f3a8dac# Parent 7174ee850baafb02e35da1ee281c31a06267d4aa Merge diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/controllers/summary.py --- a/rhodecode/controllers/summary.py Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/controllers/summary.py Mon Mar 11 17:09:43 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) diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/lib/base.py --- a/rhodecode/lib/base.py Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/lib/base.py Mon Mar 11 17:09:43 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) diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/lib/helpers.py --- a/rhodecode/lib/helpers.py Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/lib/helpers.py Mon Mar 11 17:09:43 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('%s' % last_link) + return literal('%s' % repo_name) else: def make_link(group): return link_to(group.name, url('repos_group_home', group_name=group.group_name)) - return literal(' » '.join(map(make_link, groups) + [last_link])) + return literal(' » '.join(map(make_link, groups) + ['' + last_link + ''])) def fancy_file_stats(stats): diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/lib/utils2.py --- a/rhodecode/lib/utils2.py Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/lib/utils2.py Mon Mar 11 17:09:43 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: diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/public/css/contextbar.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rhodecode/public/css/contextbar.css Mon Mar 11 17:09:43 2013 +0100 @@ -0,0 +1,363 @@ +/** + * 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#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; +} + + diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/public/css/style.css --- a/rhodecode/public/css/style.css Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/public/css/style.css Mon Mar 11 17:09:43 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,9 +446,14 @@ } #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 { @@ -521,205 +462,94 @@ 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; -} - #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"); } #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 +906,6 @@ #content div.box { clear: both; - overflow: hidden; background: #fff; margin: 0 0 10px; padding: 0 0 10px; @@ -1115,6 +944,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 +1085,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 +1675,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 { @@ -2462,10 +2357,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 +2456,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 +2494,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 +2672,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 +2728,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 +2741,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 +3500,6 @@ #content { clear: both; - overflow: hidden; padding: 10px 10px 14px 10px; } @@ -3616,7 +3647,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 @@ -3669,6 +3699,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 +3783,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 +3956,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 +4376,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 +4476,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; diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/public/js/graph.js diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/public/js/rhodecode.js --- a/rhodecode/public/js/rhodecode.js Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/public/js/rhodecode.js Mon Mar 11 17:09:43 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. */ diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/admin/repos/repo_edit.html --- a/rhodecode/templates/admin/repos/repo_edit.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/admin/repos/repo_edit.html Mon Mar 11 17:09:43 2013 +0100 @@ -6,11 +6,7 @@ <%def name="breadcrumbs_links()"> - ${h.link_to(_(u'Home'),h.url('/'))} - » - ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)} - » - ${_('edit')} + ${_('Edit Repository Settings')} <%def name="page_nav()"> @@ -18,6 +14,7 @@ <%def name="main()"> + ${self.context_bar('options')}
diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/base/base.html --- a/rhodecode/templates/base/base.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/base/base.html Mon Mar 11 17:09:43 2013 +0100 @@ -61,11 +61,144 @@
+<%def name="context_bar(current=None)"> + %if c.repo_name: + ${repo_context_bar(current)} + %endif + + +<%def name="admin_menu()"> + + + +<%def name="admin_menu_simple()"> + + + +<%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"') + %> + + +
+
+ + ## 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': + + %endif +
+
+ +
    +
  • ${_('Summary')}
  • +
  • ${_('Changelog')}
  • +
  • ${_('Files')}
  • +
  • + ${_('Switch To')} + +
  • +
  • + Options +
      + %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 + %if c.rhodecode_db_repo.fork: +
    • ${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')}
    • + %endif +
    • ${h.link_to(_('Lightweight changelog'),h.url('shortlog_home',repo_name=c.repo_name),class_='shortlog')}
    • +
    • ${h.link_to(_('Search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}
    • + + %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking: + %if c.rhodecode_db_repo.locked[0]: +
    • ${h.link_to(_('Unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}
    • + %else: +
    • ${h.link_to(_('Lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}
    • + %endif + %endif +
    +
  • +
  • + Pull Requests + %if c.repository_pull_requests: + ${c.repository_pull_requests} + %endif + +
  • +
+
+
+ + + + <%def name="usermenu()"> ## USER MENU
  • - - + + avatar %if c.rhodecode_user.username != 'default': @@ -146,14 +279,11 @@ if selected == current: return h.literal('class="current"') %> -
      +
      • - - - ${_('Products')} - - ${_('Repositories')} + + ${_('Repositories')}
        • @@ -161,202 +291,41 @@
      • - ## we render this menu only not for those pages - %if current not in ['home','admin', 'search', 'journal']: - ##REGULAR MENU -
      • - - - ${_('Summary')} - - ${_('Summary')} - -
      • -
      • - - - ${_('Changelog')} - - ${_('Changelog')} - + ##ROOT MENU + %if c.rhodecode_user.username != 'default': +
      • + + ${_('Journal')} +
      • -
      • - - - ${_('Switch to')} - - ${_('Switch to')} - - -
      • -
      • - - - ${_('Files')} - - ${_('Files')} - + %else: +
      • + + ${_('Public journal')} +
      • -
      • - - - ${_('Admin')} - - ${_('Options')} - -
          - %if h.HasRepoPermissionAll('repository.admin')(c.repo_name): - %if h.HasPermissionAll('hg.admin')('access settings on repository'): -
        • ${h.link_to(_('repository settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}
        • - %else: -
        • ${h.link_to(_('repository settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}
        • - %endif - %endif - -
        • ${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}
        • - %if h.is_hg(c.rhodecode_repo): -
        • ${h.link_to(_('open new pull request'),h.url('pullrequest_home',repo_name=c.repo_name),class_='pull_request')}
        • - %endif - %if c.rhodecode_db_repo.fork: -
        • ${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')}
        • - %endif -
        • ${h.link_to(_('lightweight changelog'),h.url('shortlog_home',repo_name=c.repo_name),class_='shortlog')}
        • -
        • ${h.link_to(_('search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}
        • - - %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking: - %if c.rhodecode_db_repo.locked[0]: -
        • ${h.link_to(_('unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}
        • - %else: -
        • ${h.link_to(_('lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}
        • - %endif - %endif - - % if h.HasPermissionAll('hg.admin')('access admin main page'): -
        • - ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')} - <%def name="admin_menu()"> -
            -
          • ${h.link_to(_('admin journal'),h.url('admin_home'),class_='journal')}
          • -
          • ${h.link_to(_('repositories'),h.url('repos'),class_='repos')}
          • -
          • ${h.link_to(_('repository groups'),h.url('repos_groups'),class_='repos_groups')}
          • -
          • ${h.link_to(_('users'),h.url('users'),class_='users')}
          • -
          • ${h.link_to(_('user groups'),h.url('users_groups'),class_='groups')}
          • -
          • ${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}
          • -
          • ${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}
          • -
          • ${h.link_to(_('defaults'),h.url('defaults'),class_='defaults')}
          • -
          • ${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}
          • -
          - - ## ADMIN MENU - ${admin_menu()} -
        • - ## if you're a admin of any groups, show admin menu for it - % elif c.rhodecode_user.groups_admin: -
        • - ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')} - <%def name="admin_menu_simple()"> -
            -
          • ${h.link_to(_('repository groups'),h.url('repos_groups'),class_='repos_groups')}
          • -
          - - ## ADMIN MENU - ${admin_menu_simple()} -
        • - % endif -
        -
      • -
      • - - - ${_('Followers')} - - ${c.repository_followers} - + %endif +
      • + + ${_('Search')} + +
      • + % if h.HasPermissionAll('hg.admin')('access admin main page'): +
      • + + ${_('Admin')} + + ${admin_menu()}
      • -
      • - - - ${_('Forks')} - - ${c.repository_forks} - -
      • -
      • - - - ${_('Pull requests')} - - ${c.repository_pull_requests} - -
      • - ${usermenu()} - - %else: - ##ROOT MENU - %if c.rhodecode_user.username != 'default': -
      • - - - ${_('Journal')} - - ${_('Journal')} - -
      • - %else: -
      • - - - ${_('Public journal')} - - ${_('Public journal')} - -
      • - %endif -
      • - - - ${_('Search')} - - ${_('Search')} - -
      • - % if h.HasPermissionAll('hg.admin')('access admin main page'): -
      • - - - ${_('Admin')} - - ${_('Admin')} - - ${admin_menu()} -
      • - % elif c.rhodecode_user.groups_admin: -
      • - - - ${_('Admin')} - - ${_('Admin')} - - ${admin_menu_simple()} -
      • - % endif - ${usermenu()} - %endif + % elif c.rhodecode_user.groups_admin: +
      • + + ${_('Admin')} + + ${admin_menu_simple()} +
      • + % endif + ${usermenu()} - + + + // 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 line_count) + line_count = m; + } + } + set_canvas(100); + + var r = new BranchRenderer(); + r.render(jsdata,100,line_count); + + }); + %else: ${_('There are no changes yet')} %endif diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/changeset/changeset.html --- a/rhodecode/templates/changeset/changeset.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/changeset/changeset.html Mon Mar 11 17:09:43 2013 +0100 @@ -7,10 +7,6 @@ <%def name="breadcrumbs_links()"> - ${h.link_to(_(u'Home'),h.url('/'))} - » - ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)} - » ${_('changeset')} - r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)} @@ -19,6 +15,7 @@ <%def name="main()"> +${self.context_bar('changelog')}
        diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/files/files.html --- a/rhodecode/templates/files/files.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/files/files.html Mon Mar 11 17:09:43 2013 +0100 @@ -5,11 +5,7 @@ <%def name="breadcrumbs_links()"> - ${h.link_to(_(u'Home'),h.url('/'))} - » - ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)} - » - ${_('files')} + ${_('Files')} %if c.file: @ r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)} %endif @@ -20,6 +16,7 @@ <%def name="main()"> + ${self.context_bar('files')}
        diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/followers/followers.html --- a/rhodecode/templates/followers/followers.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/followers/followers.html Mon Mar 11 17:09:43 2013 +0100 @@ -6,17 +6,14 @@ <%def name="breadcrumbs_links()"> - ${h.link_to(_(u'Home'),h.url('/'))} - » - ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)} - » - ${_('followers')} + ${_('Followers')} <%def name="page_nav()"> ${self.menu('followers')} <%def name="main()"> +${self.context_bar('followers')}
        diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/forks/forks.html --- a/rhodecode/templates/forks/forks.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/forks/forks.html Mon Mar 11 17:09:43 2013 +0100 @@ -6,17 +6,14 @@ <%def name="breadcrumbs_links()"> - ${h.link_to(_(u'Home'),h.url('/'))} - » - ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)} - » - ${_('forks')} + ${_('Forks')} <%def name="page_nav()"> ${self.menu('forks')} <%def name="main()"> +${self.context_bar('forks')}
        diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/index_base.html --- a/rhodecode/templates/index_base.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/index_base.html Mon Mar 11 17:09:43 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...')}", } diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/pullrequests/pullrequest_show_all.html --- a/rhodecode/templates/pullrequests/pullrequest_show_all.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/pullrequests/pullrequest_show_all.html Mon Mar 11 17:09:43 2013 +0100 @@ -5,15 +5,11 @@ <%def name="breadcrumbs_links()"> - ${h.link_to(_(u'Home'),h.url('/'))} - » - ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)} - » - ${_('pull requests')} + ${_('Pull requests')} <%def name="main()"> - +${self.context_bar('showpullrequest')}
        diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/search/search.html --- a/rhodecode/templates/search/search.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/search/search.html Mon Mar 11 17:09:43 2013 +0100 @@ -11,13 +11,9 @@ <%def name="breadcrumbs_links()"> %if c.repo_name: - ${h.link_to(_(u'Home'),h.url('/'))} - » - ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)} - » - ${_('search')} + ${_('Search')} %else: - ${_('search in all repositories')} + ${_('Search in all repositories')} %endif %if c.cur_query: » @@ -33,7 +29,7 @@ %endif <%def name="main()"> - + ${self.context_bar('options')}
        diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/shortlog/shortlog.html --- a/rhodecode/templates/shortlog/shortlog.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/shortlog/shortlog.html Mon Mar 11 17:09:43 2013 +0100 @@ -7,16 +7,12 @@ <%def name="breadcrumbs_links()"> - ${h.link_to(_(u'Home'),h.url('/'))} - » - ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)} - » %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))} » ${c.file_history} %else: - ${_('shortlog')} + ${_('Shortlog')} %endif @@ -24,6 +20,7 @@ ${self.menu('shortlog')} <%def name="main()"> + ${self.context_bar('options')}
        diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/summary/summary.html --- a/rhodecode/templates/summary/summary.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/summary/summary.html Mon Mar 11 17:09:43 2013 +0100 @@ -5,11 +5,7 @@ <%def name="breadcrumbs_links()"> - ${h.link_to(_(u'Home'),h.url('/'))} - » - ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)} - » - ${_('summary')} + ${_('Summary')} <%def name="page_nav()"> @@ -22,6 +18,7 @@ <%def name="main()"> + ${self.context_bar('summary')} <% summary = lambda n:{False:'summary-short'}.get(n) %> @@ -43,30 +40,6 @@
        -
        - %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 -
        - %if c.rhodecode_user.username != 'default': - %if c.following: - - - %else: - - %endif -
        - - - -
        - %endif: ## locking icon %if c.rhodecode_db_repo.enable_locking: @@ -96,7 +69,7 @@ ##FORK %if c.dbrepo.fork: -
        +
        -
        +
        +
        +
          +
        • + + ${_('Followers')} + ${c.repository_followers} + +
        • +
        • + + ${_('Forks')} + ${c.repository_forks} + +
        • +
        • + %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 +
        • +
        • + %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 +
        • + %if c.rhodecode_user.username != 'default': +
        • + Calculate Repository Size + +
        • + %endif +
        +
        diff -r 7174ee850baa -r 6e8027c2f49c rhodecode/templates/tags/tags.html --- a/rhodecode/templates/tags/tags.html Sun Mar 10 22:53:25 2013 +0100 +++ b/rhodecode/templates/tags/tags.html Mon Mar 11 17:09:43 2013 +0100 @@ -8,17 +8,14 @@ <%def name="breadcrumbs_links()"> - ${h.link_to(_(u'Home'),h.url('/'))} - » - ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)} - » - ${_('tags')} + ${_('Tags')} <%def name="page_nav()"> ${self.menu('tags')} <%def name="main()"> +${self.context_bar('switch-to')}