FEATURE: Add 'Advanced Test' for admin panel.
This commit is contained in:
parent
1a4f592749
commit
56890efd7a
|
@ -0,0 +1,29 @@
|
|||
import { ajax } from "discourse/lib/ajax";
|
||||
import { popupAjaxError } from "discourse/lib/ajax-error";
|
||||
|
||||
export default Ember.Controller.extend({
|
||||
email: null,
|
||||
text: null,
|
||||
elided: null,
|
||||
format: null,
|
||||
|
||||
actions: {
|
||||
run() {
|
||||
this.set("loading", true);
|
||||
|
||||
ajax("/admin/email/advanced-test", {
|
||||
type: "POST",
|
||||
data: { email: this.get("email") }
|
||||
})
|
||||
.then(data => {
|
||||
this.setProperties({
|
||||
text: data.text,
|
||||
elided: data.elided,
|
||||
format: data.format
|
||||
});
|
||||
})
|
||||
.catch(popupAjaxError)
|
||||
.finally(() => this.set("loading", false));
|
||||
}
|
||||
}
|
||||
});
|
|
@ -31,6 +31,7 @@ export default function() {
|
|||
this.route("received");
|
||||
this.route("rejected");
|
||||
this.route("previewDigest", { path: "/preview-digest" });
|
||||
this.route("advancedTest", { path: "/advanced-test" });
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
<p>{{i18n 'admin.email.advanced_test.desc'}}</p>
|
||||
|
||||
<div class='email-advanced-test'>
|
||||
<label for="email">{{i18n 'admin.email.advanced_test.email'}}</label>
|
||||
{{textarea name="email" value=email class="advanced-test"}}
|
||||
<button class='btn' {{action "run"}}>{{i18n 'admin.email.advanced_test.run'}}</button>
|
||||
</div>
|
||||
|
||||
{{#conditional-loading-spinner condition=loading}}
|
||||
|
||||
{{#if format}}
|
||||
<hr/>
|
||||
<div class="text">
|
||||
<h3>{{i18n 'admin.email.advanced_test.text'}}</h3>
|
||||
<pre>{{{text}}}</pre>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
<div class="elided">
|
||||
<h3>{{i18n 'admin.email.advanced_test.elided'}}</h3>
|
||||
<pre>{{{elided}}}</pre>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{/conditional-loading-spinner}}
|
|
@ -1,6 +1,7 @@
|
|||
{{#admin-nav}}
|
||||
{{nav-item route='adminEmail.index' label='admin.email.settings'}}
|
||||
{{nav-item route='adminEmail.previewDigest' label='admin.email.preview_digest'}}
|
||||
{{nav-item route='adminEmail.advancedTest' label='admin.email.advanced_test.title'}}
|
||||
{{nav-item route='adminCustomizeEmailTemplates' label='admin.email.templates'}}
|
||||
{{nav-item route='adminEmail.sent' label='admin.email.sent'}}
|
||||
{{nav-item route='adminEmail.skipped' label='admin.email.skipped'}}
|
||||
|
|
|
@ -83,3 +83,15 @@
|
|||
border-width: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
.email-advanced-test {
|
||||
.admin-controls {
|
||||
display: block;
|
||||
}
|
||||
|
||||
textarea {
|
||||
width: 95%;
|
||||
height: 150px;
|
||||
font-family: monospace;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,6 +89,19 @@ class Admin::EmailController < Admin::AdminController
|
|||
render json: MultiJson.dump(html_content: renderer.html, text_content: renderer.text)
|
||||
end
|
||||
|
||||
def advanced_test
|
||||
params.require(:email)
|
||||
|
||||
receiver = Email::Receiver.new(params['email'])
|
||||
text, elided, format = receiver.select_body
|
||||
|
||||
render json: success_json.merge!(
|
||||
text: text,
|
||||
elided: elided,
|
||||
format: format
|
||||
)
|
||||
end
|
||||
|
||||
def send_digest
|
||||
params.require(:last_seen_at)
|
||||
params.require(:username)
|
||||
|
|
|
@ -3413,6 +3413,13 @@ en:
|
|||
settings: "Settings"
|
||||
templates: "Templates"
|
||||
preview_digest: "Preview Summary"
|
||||
advanced_test:
|
||||
title: "Advanced Test"
|
||||
desc: "See how Discourse processes recieved emails. To be able to correctly process the email, please paste below the whole original email message."
|
||||
email: "Original message"
|
||||
run: "Run Test"
|
||||
text: "Selected Text Body"
|
||||
elided: "Elided Text"
|
||||
sending_test: "Sending test Email..."
|
||||
error: "<b>ERROR</b> - %{server_error}"
|
||||
test_error: "There was a problem sending the test email. Please double-check your mail settings, verify that your host is not blocking mail connections, and try again."
|
||||
|
|
|
@ -159,6 +159,8 @@ Discourse::Application.routes.draw do
|
|||
get "send-digest" => "email#send_digest"
|
||||
get "smtp_should_reject"
|
||||
post "handle_mail"
|
||||
get "advanced-test"
|
||||
post "advanced-test" => "email#advanced_test"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue