rs-pro/rails_admin_settings

View on GitHub
app/views/rails_admin/main/_setting_value.html.haml

Summary

Maintainability
Test Coverage
- if ['string', 'integer', 'float', 'phone', 'email', 'address', 'url', 'domain'].include?(@object.type)
  = form.text_field :raw, :value => field.value
- if @object.type == 'boolean'
  = form.check_box :raw, {:value => field.value}, 'true', 'false'
- if @object.type == 'color'
  = form.text_field :raw, :value => field.value, 'data-color' => true, style: "background-color: ##{field.value}"
- elsif %w(text simple_format simple_format_raw strip_tags yaml json phones).include?( @object.type )
  = form.text_area :raw, :value => field.value, :rows => 10, :cols => 80
- elsif @object.type == 'code' || @object.type == 'sanitize_code'
  :ruby
    js_data = {
      csspath: asset_path('ckeditor/plugins/codemirror/css/codemirror.min.css'),
      jspath: asset_path('ckeditor/plugins/codemirror/js/codemirror.min.js'),
      options:  {
        mode: 'htmlmixed',
        theme: 'monokai',
        lineNumbers: true
      },
      locations: {
        mode: asset_path('ckeditor/plugins/codemirror/js/codemirror.mode.htmlmixed.min.js'),
        theme: asset_path('ckeditor/plugins/codemirror/theme/monokai.css')
      }
    }

  = form.text_area field.method_name, field.html_attributes.reverse_merge(data: { richtext: 'codemirror', options: js_data.to_json }).reverse_merge({ value: field.form_value })
- elsif @object.type == 'html' || @object.type == 'sanitized' || @object.type == 'sanitize'
  - if form.respond_to?(:cktext_area)
    = javascript_include_tag "ckeditor/init"
    = form.cktext_area :raw, :value => field.value, :rows => 10, :cols => 80
  - elsif Object.const_defined?('Rich')
    = form.text_area :raw, :value => field.value, :rows => 10, :cols => 80

    = javascript_include_tag "rich/base.js"
    :javascript
      var instance = CKEDITOR.instances['#{form.dom_id(field)}'];
      if(instance) { CKEDITOR.remove(instance); }
      CKEDITOR.replace('#{form.dom_id(field)}', #{Rich.options().to_json.html_safe});
  - else
    .alert.alert-error
      = t('admin.settings.no_ckeditor_detected')
    = form.text_area :raw, :value => field.value, :rows => 10, :cols => 80