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();