Skip to content

Commit a5b002a

Browse files
committed
feat: Support rich text editing for config variables
* Markdown-supported variables now get the same rich text editor as messages do * The custom_css variable now gets the same rich code editor that the message template does
1 parent 158a996 commit a5b002a

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
function setupCodeMirror() {
22
$('[data-code-mirror-textarea]').each(function(i, element) {
3+
var mode = $(this).data('code-mirror-mode') || 'htmlmixed';
34
var myCodeMirror = CodeMirror.fromTextArea(element, {
45
lineNumbers: true,
5-
mode: 'htmlmixed',
6+
mode: mode,
67
});
7-
myCodeMirror.setSize(null, window.innerHeight - 200);
8+
myCodeMirror.setSize(null, window.innerHeight - 250);
89
});
910
}

app/assets/javascripts/manage/lib/simpleMde.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ function setupSimpleMde() {
44
element: element,
55
forceSync: true,
66
};
7-
if ($(element).data('message-live-preview-base-src')) {
7+
var baseSrc = $(element).data('message-live-preview-base-src');
8+
if (baseSrc) {
89
options['previewRender'] = function(plainText) {
910
var iframe = document.createElement('iframe');
10-
var baseSrc = $(element).data('message-live-preview-base-src');
11+
var baseSrc = baseSrc;
1112
var newSrc = baseSrc + '?body=' + encodeURIComponent(plainText);
1213
iframe.className = 'email-preview-in-simplemde';
1314
iframe.src = newSrc;

app/views/manage/configs/edit.html.haml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
:ruby
2+
text_field_vars = %w()
3+
markdown_field_vars = %w(bus_captain_notes thanks_for_rsvp_message thanks_for_applying_message disclaimer_message)
4+
css_field_vars = %w(custom_css)
5+
16
= render "layouts/manage/page_title", title: "Edit Configuration", subtitle: @config.var do
27
= link_to 'Cancel', manage_configs_path, class: 'btn btn-sm btn-outline-secondary'
38

@@ -9,6 +14,12 @@
914
- if [true, false].include? @config.value
1015
-# = f.input :value, label: @config.var, as: :boolean, 'yes', 'no'
1116
= f.input @config.var.to_sym, as: :radio_buttons, :collection => [['true',true], ['false',false]], label_method: :first, value_method: :last, :prompt => 'Choose one...'
17+
- elsif css_field_vars.include? @config.var
18+
= f.input @config.var.to_sym, as: :text, input_html: { value: @config.value, 'data-code-mirror-textarea': '1', 'data-code-mirror-mode': 'css' }
19+
- elsif markdown_field_vars.include? @config.var
20+
= f.input @config.var.to_sym, as: :text, input_html: { value: @config.value, 'data-simple-mde' => '1' }
21+
- elsif text_field_vars.include? @config.var
22+
= f.input @config.var.to_sym, as: :text, input_html: { value: @config.value }
1223
- else
1324
= f.input @config.var.to_sym, input_html: { value: @config.value }
1425

0 commit comments

Comments
 (0)