diff --git a/src/dfeed/web/web/posting.d b/src/dfeed/web/web/posting.d
index 70b49a6..43ae9a0 100644
--- a/src/dfeed/web/web/posting.d
+++ b/src/dfeed/web/web/posting.d
@@ -280,11 +280,31 @@ string discussionSend(UrlParameters clientVars, Headers headers)
action = "send";
}
+ bool lint() {
+ foreach (rule; lintRules)
+ if ("lint-ignore-" ~ rule.id !in draft.serverVars && rule.check(draft))
+ {
+ PostError error;
+ error.message = _!"Warning:" ~ " " ~ rule.shortDescription();
+ error.extraHTML ~= ` `;
+ if (!lintDetails)
+ error.extraHTML ~= ` `;
+ if (rule.canFix(draft))
+ error.extraHTML ~= ` `;
+ if (lintDetails)
+ error.extraHTML ~= `
` ~ rule.longDescription() ~ `
`;
+ discussionPostForm(draft, null, error);
+ return false;
+ }
+ return true;
+ }
+
switch (action)
{
case "save":
{
- discussionPostForm(draft);
+ if (lint())
+ discussionPostForm(draft);
// Show preview
auto post = draftToPost(draft, headers, ip);
post.compile();
@@ -296,21 +316,8 @@ string discussionSend(UrlParameters clientVars, Headers headers)
userSettings.name = aaGet(clientVars, "name");
userSettings.email = aaGet(clientVars, "email");
- foreach (rule; lintRules)
- if ("lint-ignore-" ~ rule.id !in draft.serverVars && rule.check(draft))
- {
- PostError error;
- error.message = _!"Warning:" ~ " " ~ rule.shortDescription();
- error.extraHTML ~= ` `;
- if (!lintDetails)
- error.extraHTML ~= ` `;
- if (rule.canFix(draft))
- error.extraHTML ~= ` `;
- if (lintDetails)
- error.extraHTML ~= `` ~ rule.longDescription() ~ `
`;
- discussionPostForm(draft, null, error);
- return null;
- }
+ if (!lint())
+ return null;
auto now = Clock.currTime();