subreddit: Error on invalid revision.

This commit is contained in:
Andre D
2012-09-25 04:36:28 -05:00
committed by Neil Williams
parent 871ff7eb0c
commit 5fe3cc30de
4 changed files with 13 additions and 13 deletions

View File

@@ -1274,11 +1274,9 @@ class ApiController(RedditController, OAuth2ResourceController):
form.set_html('#conflict_diff', e.htmldiff)
form.find('.errors').show()
return
except ValueError:
# Revision does not belong to page
return
except tdb_cassandra.NotFound:
# Previous revision not found
except (tdb_cassandra.NotFound, ValueError):
c.errors.add(errors.BAD_REVISION, field="prevstyle")
form.has_errors("prevstyle", errors.BAD_REVISION)
return
jquery.apply_stylesheet(stylesheet_contents_parsed)
if op == 'preview':
@@ -1478,6 +1476,7 @@ class ApiController(RedditController, OAuth2ResourceController):
sponsor_text, sponsor_url, sponsor_name, **kw):
def apply_wikid_field(sr, form, pagename, value, prev, field, error):
id_field_name = 'prev_%s_id' % field
try:
wikipage = wiki.WikiPage.get(sr, pagename)
except tdb_cassandra.NotFound:
@@ -1487,7 +1486,7 @@ class ApiController(RedditController, OAuth2ResourceController):
setattr(sr, field, value)
if not wr:
return True
setattr(sr, "prev_" + field + "_id", str(wikipage.revision))
setattr(sr, id_field_name, str(wikipage.revision))
ModAction.create(sr, c.user, 'wikirevise', details=wiki.modactions.get(pagename))
return True
except ConflictException as e:
@@ -1495,14 +1494,11 @@ class ApiController(RedditController, OAuth2ResourceController):
form.has_errors(field, errors.CONFLICT)
form.parent().set_html('.status', error)
form.find('#%s_conflict_box' % field).show()
form.set_inputs(**{'prev_%s_id' % field: e.new_id, '%s_conflict_old' % field: e.your, field: e.new})
form.set_inputs(**{id_field_name: e.new_id, '%s_conflict_old' % field: e.your, field: e.new})
form.set_html('#%s_conflict_diff' % field, e.htmldiff)
except ValueError:
# Revision does not belong to page
pass
except tdb_cassandra.NotFound:
# Previous revision not found
pass
except (tdb_cassandra.NotFound, ValueError):
c.errors.add(errors.BAD_REVISION, field=id_field_name)
form.has_errors(id_field_name, errors.BAD_REVISION)
return False
# the status button is outside the form -- have to reset by hand

View File

@@ -92,6 +92,7 @@ error_list = dict((
('NO_LINKS', _("that reddit only allows text posts")),
('TOO_OLD', _("that's a piece of history now; it's too late to reply to it")),
('BAD_CSS_NAME', _('invalid css name')),
('BAD_REVISION', _('invalid revision ID')),
('TOO_MUCH_FLAIR_CSS', _('too many flair css classes')),
('BAD_FLAIR_TARGET', _('not a valid flair target')),
('OAUTH2_INVALID_CLIENT', _('invalid client id')),

View File

@@ -99,6 +99,8 @@
<input type="hidden" name="prev_description_id" value="${thing.site.prev_description_id}"/>
${error_field("TOO_LONG", "prev_public_description_id")}
${error_field("TOO_LONG", "prev_description_id")}
${error_field("BAD_REVISION", "prev_public_description_id")}
${error_field("BAD_REVISION", "prev_description_id")}
%endif
<%utils:line_field title="${_('language')}">

View File

@@ -43,6 +43,7 @@
<h2>${_("stylesheet")}</h2>
<input type="hidden" name="prevstyle" value="${thing.site.prev_stylesheet}"/>
${error_field("TOO_LONG", "prevstyle")}
${error_field("BAD_REVISION", "prevstyle")}
<div class="sheets">
<div style="width: 100%" class="col">
<div>