Skip to content

Commit

Permalink
feat: Support rich text editing for config variables
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
sman591 committed May 30, 2019
1 parent 158a996 commit a5b002a
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 4 deletions.
5 changes: 3 additions & 2 deletions app/assets/javascripts/manage/lib/codeMirror.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
function setupCodeMirror() {
$('[data-code-mirror-textarea]').each(function(i, element) {
var mode = $(this).data('code-mirror-mode') || 'htmlmixed';
var myCodeMirror = CodeMirror.fromTextArea(element, {
lineNumbers: true,
mode: 'htmlmixed',
mode: mode,
});
myCodeMirror.setSize(null, window.innerHeight - 200);
myCodeMirror.setSize(null, window.innerHeight - 250);
});
}
5 changes: 3 additions & 2 deletions app/assets/javascripts/manage/lib/simpleMde.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ function setupSimpleMde() {
element: element,
forceSync: true,
};
if ($(element).data('message-live-preview-base-src')) {
var baseSrc = $(element).data('message-live-preview-base-src');
if (baseSrc) {
options['previewRender'] = function(plainText) {
var iframe = document.createElement('iframe');
var baseSrc = $(element).data('message-live-preview-base-src');
var baseSrc = baseSrc;
var newSrc = baseSrc + '?body=' + encodeURIComponent(plainText);
iframe.className = 'email-preview-in-simplemde';
iframe.src = newSrc;
Expand Down
11 changes: 11 additions & 0 deletions app/views/manage/configs/edit.html.haml
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
:ruby
text_field_vars = %w()
markdown_field_vars = %w(bus_captain_notes thanks_for_rsvp_message thanks_for_applying_message disclaimer_message)
css_field_vars = %w(custom_css)

= render "layouts/manage/page_title", title: "Edit Configuration", subtitle: @config.var do
= link_to 'Cancel', manage_configs_path, class: 'btn btn-sm btn-outline-secondary'

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

Expand Down

0 comments on commit a5b002a

Please sign in to comment.