diff --git a/docs/changelog.rst b/docs/changelog.rst --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -46,6 +46,7 @@ news larger repositories. - implements #214 added support for downloading subrepos in download menu. - Added basic API for direct operations on rhodecode via JSON +- Implemented advanced hook management fixes ----- diff --git a/docs/setup.rst b/docs/setup.rst --- a/docs/setup.rst +++ b/docs/setup.rst @@ -345,6 +345,22 @@ Directory :: All other LDAP settings will likely be site-specific and should be appropriately configured. + + +Hook management +--------------- + +Hooks can be managed in similar way to this used in .hgrc files. +To access hooks setting click `advanced setup` on Hooks section of Mercurial +Settings in Admin. + +There are 4 built in hooks that cannot be changed (only enable/disable by +checkboxes on previos section). +To add another custom hook simply fill in first section with +. and the second one with hook path. Example hooks +can be found at *rhodecode.lib.hooks*. + + Setting Up Celery ----------------- diff --git a/rhodecode/public/css/style.css b/rhodecode/public/css/style.css --- a/rhodecode/public/css/style.css +++ b/rhodecode/public/css/style.css @@ -250,9 +250,13 @@ height:40px; clear:both; position:relative; background:#003367 url("../images/header_inner.png") repeat-x; -border-bottom:2px solid #fff; margin:0; padding:0; +box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); +-webkit-border-radius: 4px 4px 4px 4px; +-khtml-border-radius: 4px 4px 4px 4px; +-moz-border-radius: 4px 4px 4px 4px; +border-radius: 4px 4px 4px 4px; } #header #header-inner #home a { @@ -290,7 +294,7 @@ position:relative; float:right; list-style-type:none; list-style-position:outside; -margin:10px 5px 0 0; +margin:6px 5px 0 0; padding:0; } @@ -311,8 +315,12 @@ overflow:hidden; color:#FFF; font-weight:700; text-decoration:none; -background:#369 url("../images/quick_l.png") no-repeat top left; +background:#369; padding:0; +-webkit-border-radius: 4px 4px 4px 4px; +-khtml-border-radius: 4px 4px 4px 4px; +-moz-border-radius: 4px 4px 4px 4px; +border-radius: 4px 4px 4px 4px; } #header #header-inner #quick li span.short { @@ -325,7 +333,6 @@ right:0; height:1%; display:block; float:left; -background:url("../images/quick_r.png") no-repeat top right; border-left:1px solid #3f6f9f; margin:0; padding:10px 12px 8px 10px; @@ -340,7 +347,6 @@ padding:10px 12px 8px; top:0; left:0; border-left:none; -background:url("../images/quick_l.png") no-repeat top left; border-right:1px solid #2e5c89; padding:8px 8px 4px; } @@ -355,18 +361,16 @@ padding:9px 4px 4px; } #header #header-inner #quick li a:hover { -background:#4e4e4e url("../images/quick_l_selected.png") no-repeat top left; +background:#4e4e4e no-repeat top left; } #header #header-inner #quick li a:hover span { border-left:1px solid #545454; -background:url("../images/quick_r_selected.png") no-repeat top right; } #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; -background:url("../images/quick_l_selected.png") no-repeat top left; } #header #header-inner #quick ul { @@ -617,6 +621,12 @@ overflow:hidden; background:#fff; margin:0 0 10px; padding:0 0 10px; +-webkit-border-radius: 4px 4px 4px 4px; +-khtml-border-radius: 4px 4px 4px 4px; +-moz-border-radius: 4px 4px 4px 4px; +border-radius: 4px 4px 4px 4px; +box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); + } #content div.box-left { @@ -1034,55 +1044,13 @@ margin:0; padding:0 0 0 8px; } -div.form div.fields div.field div.highlight .ui-button { -background:#4e85bb url("../images/button_highlight.png") repeat-x; -border-top:1px solid #5c91a4; -border-left:1px solid #2a6f89; -border-right:1px solid #2b7089; -border-bottom:1px solid #1a6480; -color:#FFF; -margin:0; -padding:6px 12px; -} - -div.form div.fields div.field div.highlight .ui-state-hover { -background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x; -border-top:1px solid #78acbf; -border-left:1px solid #34819e; -border-right:1px solid #35829f; -border-bottom:1px solid #257897; -color:#FFF; -margin:0; -padding:6px 12px; -} - -#content div.box div.form div.fields div.buttons div.highlight input.ui-button { -background:#4e85bb url("../images/button_highlight.png") repeat-x; -border-top:1px solid #5c91a4; -border-left:1px solid #2a6f89; -border-right:1px solid #2b7089; -border-bottom:1px solid #1a6480; -color:#fff; -margin:0; -padding:6px 12px; -} - -#content div.box div.form div.fields div.buttons div.highlight input.ui-state-hover { -background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x; -border-top:1px solid #78acbf; -border-left:1px solid #34819e; -border-right:1px solid #35829f; -border-bottom:1px solid #257897; -color:#fff; -margin:0; -padding:6px 12px; -} #content div.box table { width:100%; border-collapse:collapse; margin:0; padding:0; +border: 1px solid #eee; } #content div.box table th { @@ -1341,7 +1309,11 @@ margin:-10px 0 0; #footer div#footer-inner { background:url("../images/header_inner.png") repeat-x scroll 0 0 #003367; -border-top:2px solid #FFFFFF; +box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); +-webkit-border-radius: 4px 4px 4px 4px; +-khtml-border-radius: 4px 4px 4px 4px; +-moz-border-radius: 4px 4px 4px 4px; +border-radius: 4px 4px 4px 4px; } #footer div#footer-inner p { @@ -1422,16 +1394,32 @@ height: 150px; position: absolute; margin-left: -16px; width: 281px; -border-radius: 0 0 8px 8px; +-webkit-border-radius: 0px 0px 4px 4px; +-khtml-border-radius: 0px 0px 4px 4px; +-moz-border-radius: 0px 0px 4px 4px; +border-radius: 0px 0px 4px 4px; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); } #quick_login .password_forgoten{ padding-right:10px; -padding-top:10px; +padding-top:0px; float:left; } - +#quick_login .password_forgoten a{ + font-size: 10px +} + +#quick_login .register{ +padding-right:10px; +padding-top:5px; +float:left; +} + +#quick_login .register a{ + font-size: 10px +} #quick_login div.form div.fields{ padding-top: 2px; padding-left:10px; @@ -1465,18 +1453,7 @@ clear:both; overflow:hidden; text-align:right; margin:0; -padding:10px 14px 0; -} - -#quick_login div.form div.fields div.buttons input.ui-button{ -background:#e5e3e3 url("../images/button.png") repeat-x; -border-top:1px solid #DDD; -border-left:1px solid #c6c6c6; -border-right:1px solid #DDD; -border-bottom:1px solid #c6c6c6; -color:#515151; -margin:0; -padding:4px 10px; +padding:10px 14px 3px 5px; } #quick_login div.form div.links { @@ -1534,13 +1511,6 @@ margin:0; padding:10px 0 0 150px; } -#register div.form div.fields div.buttons div.highlight input.ui-button { -background:url("../images/button_highlight.png") repeat-x scroll 0 0 #4E85BB; -color:#FFF; -border-color:#5C91A4 #2B7089 #1A6480 #2A6F89; -border-style:solid; -border-width:1px; -} #register div.form div.activation_msg { padding-top:4px; @@ -1904,6 +1874,9 @@ div.browserblock .search_activate #filte vertical-align: sub; border: 1px solid; padding:2px; + -webkit-border-radius: 4px 4px 4px 4px; + -khtml-border-radius: 4px 4px 4px 4px; + -moz-border-radius: 4px 4px 4px 4px; border-radius: 4px 4px 4px 4px; background: url("../images/button.png") repeat-x scroll 0 0 #E5E3E3; border-color: #DDDDDD #DDDDDD #C6C6C6 #C6C6C6; @@ -2343,7 +2316,7 @@ padding:2px 2px 0; -webkit-border-radius: 6px; -khtml-border-radius: 6px; -moz-border-radius: 6px; -borderradius: 6px; +border-radius: 6px; } @@ -2351,7 +2324,7 @@ div.gravatar img { -webkit-border-radius: 4px; -khtml-border-radius: 4px; -moz-border-radius: 4px; -borderradius: 4px; +border-radius: 4px; } #header,#content,#footer { @@ -2359,7 +2332,6 @@ min-width:978px; } #content { -min-height:100%; clear:both; overflow:hidden; padding:14px 10px; @@ -2374,14 +2346,8 @@ border-left:1px solid #316293; border:1px solid #316293; } -#content div.box div.title div.search div.button input.ui-button { -background:#4e85bb url("../images/button_highlight.png") repeat-x; -border:1px solid #316293; -border-left:none; -color:#FFF; -} - -#content div.box input.ui-button-small { + +input.ui-button-small { background:#e5e3e3 url("../images/button.png") repeat-x; border-top:1px solid #DDD; border-left:1px solid #c6c6c6; @@ -2390,45 +2356,41 @@ border-bottom:1px solid #c6c6c6; color:#515151; outline:none; margin:0; -} - -#content div.box input.ui-button-small-blue { +-webkit-border-radius: 4px 4px 4px 4px; +-khtml-border-radius: 4px 4px 4px 4px; +-moz-border-radius: 4px 4px 4px 4px; +border-radius: 4px 4px 4px 4px; +box-shadow: 0 1px 0 #ececec; +cursor: pointer; +} + +input.ui-button-small:hover { +background:#b4b4b4 url("../images/button_selected.png") repeat-x; +border-top:1px solid #ccc; +border-left:1px solid #bebebe; +border-right:1px solid #b1b1b1; +border-bottom:1px solid #afafaf; +} + +input.ui-button-small-blue { background:#4e85bb url("../images/button_highlight.png") repeat-x; border-top:1px solid #5c91a4; border-left:1px solid #2a6f89; border-right:1px solid #2b7089; border-bottom:1px solid #1a6480; color:#fff; -} - -#content div.box input.ui-button-small submit,button{ +-webkit-border-radius: 4px 4px 4px 4px; +-khtml-border-radius: 4px 4px 4px 4px; +-moz-border-radius: 4px 4px 4px 4px; +border-radius: 4px 4px 4px 4px; +box-shadow: 0 1px 0 #ececec; cursor: pointer; } -#content div.box div.title div.search div.button input.ui-state-hover { -background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x; -border:1px solid #316293; -border-left:none; -color:#FFF; -} - -#content div.box div.form div.fields div.field div.highlight .ui-button { -background:#4e85bb url("../images/button_highlight.png") repeat-x; -border-top:1px solid #5c91a4; -border-left:1px solid #2a6f89; -border-right:1px solid #2b7089; -border-bottom:1px solid #1a6480; -color:#fff; -} - -#content div.box div.form div.fields div.field div.highlight .ui-state-hover { -background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x; -border-top:1px solid #78acbf; -border-left:1px solid #34819e; -border-right:1px solid #35829f; -border-bottom:1px solid #257897; -color:#fff; -} +input.ui-button-small-blue:hover { + +} + ins,div.options a:hover { text-decoration:none; @@ -2562,7 +2524,7 @@ font-weight:700; margin:0; } -div.form div.fields div.field div.button .ui-button,#content div.box div.form div.fields div.buttons input.ui-button { +input.ui-button { background:#e5e3e3 url("../images/button.png") repeat-x; border-top:1px solid #DDD; border-left:1px solid #c6c6c6; @@ -2572,18 +2534,20 @@ color:#515151; outline:none; margin:0; padding:6px 12px; -} - -div.form div.fields div.field div.button .ui-state-hover,#content div.box div.form div.fields div.buttons input.ui-state-hover { +-webkit-border-radius: 4px 4px 4px 4px; +-khtml-border-radius: 4px 4px 4px 4px; +-moz-border-radius: 4px 4px 4px 4px; +border-radius: 4px 4px 4px 4px; +box-shadow: 0 1px 0 #ececec; +cursor: pointer; +} + +input.ui-button:hover { background:#b4b4b4 url("../images/button_selected.png") repeat-x; border-top:1px solid #ccc; border-left:1px solid #bebebe; border-right:1px solid #b1b1b1; border-bottom:1px solid #afafaf; -color:#515151; -outline:none; -margin:0; -padding:6px 12px; } div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight { @@ -2610,16 +2574,6 @@ margin:6px 0 0; padding:0; } -#content div.box div.action div.button input.ui-button,#login div.form div.fields div.buttons input.ui-button,#register div.form div.fields div.buttons input.ui-button { -background:#e5e3e3 url("../images/button.png") repeat-x; -border-top:1px solid #DDD; -border-left:1px solid #c6c6c6; -border-right:1px solid #DDD; -border-bottom:1px solid #c6c6c6; -color:#515151; -margin:0; -padding:6px 12px; -} #content div.box div.action div.button input.ui-state-hover,#login div.form div.fields div.buttons input.ui-state-hover,#register div.form div.fields div.buttons input.ui-state-hover { background:#b4b4b4 url("../images/button_selected.png") repeat-x; diff --git a/rhodecode/templates/admin/users/user_edit_my_account.html b/rhodecode/templates/admin/users/user_edit_my_account.html --- a/rhodecode/templates/admin/users/user_edit_my_account.html +++ b/rhodecode/templates/admin/users/user_edit_my_account.html @@ -141,11 +141,11 @@ ${_('public')} + src="${h.url('/images/icons/arrow_divide.png')}"/> %endif - ${("r%s:%s") % (h.get_changeset_safe(repo['repo'],'tip').revision,h.short_id(h.get_changeset_safe(repo['repo'],'tip').raw_id))} - ${_('private')} + ${("r%s:%s") % (repo['rev'],h.short_id(repo['tip']))} + ${_('private')} ${h.form(url('repo_settings_delete', repo_name=repo['name']),method='delete')} ${h.submit('remove_%s' % repo['name'],'',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")} diff --git a/rhodecode/templates/base/base.html b/rhodecode/templates/base/base.html --- a/rhodecode/templates/base/base.html +++ b/rhodecode/templates/base/base.html @@ -29,7 +29,13 @@
-
${h.link_to(_('Forgot password ?'),h.url('reset_password'))}
${h.submit('sign_in','Sign In',class_="ui-button")} +
${h.link_to(_('Forgot password ?'),h.url('reset_password'))}
+
+ %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')(): + ${h.link_to(_("Don't have an account ?"),h.url('register'))} + %endif +
+ ${h.submit('sign_in','Sign In',class_="ui-button")}
@@ -63,7 +69,7 @@ %endif -
+
@@ -95,7 +101,7 @@