@@ -238,111 +238,111 @@ class ValidSystemEmail(formencode.valida
meta.Session.remove()
return value
#===============================================================================
# FORMS
class LoginForm(formencode.Schema):
allow_extra_fields = True
filter_extra_fields = True
username = UnicodeString(
strip=True,
min=3,
min=1,
not_empty=True,
messages={
'empty':_('Please enter a login'),
'tooShort':_('Enter a value %(min)i characters long or more')}
)
password = UnicodeString(
min=8,
'empty':_('Please enter a password'),
#chained validators have access to all data
chained_validators = [ValidAuth]
def UserForm(edit=False, old_data={}):
class _UserForm(formencode.Schema):
username = All(UnicodeString(strip=True, min=3, not_empty=True), ValidUsername(edit, old_data))
username = All(UnicodeString(strip=True, min=1, not_empty=True), ValidUsername(edit, old_data))
if edit:
new_password = All(UnicodeString(strip=True, min=3, not_empty=False), ValidPassword)
new_password = All(UnicodeString(strip=True, min=8, not_empty=False), ValidPassword)
admin = StringBoolean(if_missing=False)
else:
password = All(UnicodeString(strip=True, min=8, not_empty=True), ValidPassword)
active = StringBoolean(if_missing=False)
name = UnicodeString(strip=True, min=3, not_empty=True)
lastname = UnicodeString(strip=True, min=3, not_empty=True)
name = UnicodeString(strip=True, min=1, not_empty=True)
lastname = UnicodeString(strip=True, min=1, not_empty=True)
email = All(Email(not_empty=True), UniqSystemEmail(old_data))
return _UserForm
RegisterForm = UserForm
def PasswordResetForm():
class _PasswordResetForm(formencode.Schema):
email = All(ValidSystemEmail(), Email(not_empty=True))
return _PasswordResetForm
def RepoForm(edit=False, old_data={}):
class _RepoForm(formencode.Schema):
filter_extra_fields = False
repo_name = All(UnicodeString(strip=True, min=1, not_empty=True), ValidRepoName(edit, old_data))
description = UnicodeString(strip=True, min=3, not_empty=True)
description = UnicodeString(strip=True, min=1, not_empty=True)
private = StringBoolean(if_missing=False)
user = All(Int(not_empty=True), ValidRepoUser)
chained_validators = [ValidPerms]
return _RepoForm
def RepoSettingsForm(edit=False, old_data={}):
chained_validators = [ValidPerms, ValidSettings]
def ApplicationSettingsForm():
class _ApplicationSettingsForm(formencode.Schema):
hg_app_title = UnicodeString(strip=True, min=3, not_empty=True)
hg_app_realm = UnicodeString(strip=True, min=3, not_empty=True)
hg_app_title = UnicodeString(strip=True, min=1, not_empty=True)
hg_app_realm = UnicodeString(strip=True, min=1, not_empty=True)
return _ApplicationSettingsForm
def ApplicationUiSettingsForm():
class _ApplicationUiSettingsForm(formencode.Schema):
web_push_ssl = OneOf(['true', 'false'], if_missing='false')
paths_root_path = All(ValidPath(), UnicodeString(strip=True, min=3, not_empty=True))
paths_root_path = All(ValidPath(), UnicodeString(strip=True, min=1, not_empty=True))
hooks_changegroup_update = OneOf(['True', 'False'], if_missing=False)
hooks_changegroup_repo_size = OneOf(['True', 'False'], if_missing=False)
return _ApplicationUiSettingsForm
def DefaultPermissionsForm(perms_choices, register_choices, create_choices):
class _DefaultPermissionsForm(formencode.Schema):
overwrite_default = OneOf(['true', 'false'], if_missing='false')
default_perm = OneOf(perms_choices)
default_register = OneOf(register_choices)
@@ -3143,25 +3143,25 @@ h3.files_location{
border: 1px solid #CCCCCC;
padding:10px;
}
#graph_content .container .wrapper {
width: 600px;
#graph_content .container {
border-bottom: 1px solid #CCCCCC;
border-left: 1px solid #CCCCCC;
border-right: 1px solid #CCCCCC;
min-height: 90px;
min-height: 80px;
overflow: hidden;
font-size:1.2em;
#graph_content .container .left {
float: left;
width: 70%;
padding-left: 5px;
#graph_content .container .right {
float: right;
@@ -3214,32 +3214,32 @@ h3.files_location{
.right .merge img {
vertical-align: bottom;
.right .parent {
font-size: 90%;
font-family: monospace;
.right .logtags .branchtag{
background: #FFFFFF url("../images/icons/arrow_branch.png") no-repeat 130px 9px;
background: #FFFFFF url("../images/icons/arrow_branch.png") no-repeat right 9px;
display:block;
padding:12px 2px 2px 24px;
padding:12px 16px 0px 0px
.right .logtags .tagtag{
background: #FFFFFF url("../images/icons/tag_blue.png") no-repeat 130px 9px;
background: #FFFFFF url("../images/icons/tag_blue.png") no-repeat right 9px;
padding:12px 18px 0px 0px
/* -----------------------------------------------------------
FILE BROWSER
----------------------------------------------------------- */
div.browserblock {
padding: 0px;
border: 1px solid #ccc;
background: #f8f8f8;
font-size: 100%;
line-height: 100%;
@@ -67,27 +67,29 @@
</div>
%if len(cs.parents)>1:
<div class="merge">
${_('merge')}<img alt="merge" src="/images/icons/arrow_join.png"/>
%endif
%for p_cs in reversed(cs.parents):
<div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(p_cs.short_id,
h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.short_id),title=p_cs.message)}
%endfor
<span class="logtags">
<span class="branchtag">${cs.branch}</span>
<span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
${h.link_to(cs.branch,h.url('files_home',repo_name=c.repo_name,revision=cs.short_id))}</span>
%for tag in cs.tags:
<span class="tagtag">${tag}</span>
<span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=cs.short_id))}</span>
</span>
<div class="pagination-wh pagination-left">
${c.pagination.pager('$link_previous ~2~ $link_next')}
Status change: