Class: DrgcmsFormFields::Elfinder

Inherits:
DrgcmsField
  • Object
show all
Defined in:
app/models/drgcms_form_fields/elfinder.rb

Overview

Class for creating ElFinder file manager enabled form field.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.file_manager_url(parent) ⇒ Object

Return html url code required for FileManager icon on CMS menu.



75
76
77
78
79
80
81
82
83
84
# File 'app/models/drgcms_form_fields/elfinder.rb', line 75

def self.file_manager_url(parent)
  url = "/assets/elfinder/elfinder.html?CKEditorFuncNum=1&langCode=#{I18n.locale}"
        
  parent.link_to( parent.fa_icon('archive lg', 
                  title: parent.t('drgcms.file_manager')),
                  '#',
                 { onclick: "window.open('#{url}', 
                  '#{parent.t('drgcms.file_manager')}',
                  'width=700,height=500')"} ) 
end

Instance Method Details

#renderObject

Return code required to render elfinder DRG CMS form field.



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'app/models/drgcms_form_fields/elfinder.rb', line 34

def render
  return ro_standard if @readonly
  set_initial_value
#
 record = record_text_for(@yaml['name'])
 @js << <<EOJS

$('##{record}_#{@yaml['name']}').dblclick(function(){
   $('##{record}_div_#{@yaml['name']}').show();
   var f = $('##{record}_div_#{@yaml['name']}').elfinder({
           url : '/elfinder',
           transport : new elFinderSupportVer1(),
           rememberLastDir: true,
           height: 490,
           docked: false,
           dialog: { width: 400, modal: true },
           lang: '#{I18n.locale}',
           getFileCallback : function(files) {
             console.log(files);
             $('##{record}_#{@yaml['name']}').val(files.url);
             $('##{record}_div_#{@yaml['name']}').hide();
           },
   });
});
EOJS

  @html << @parent.text_field(record, @yaml['name'], @yaml['html'])
  unless @record[@yaml['name']].blank? or @parent.dc_dont?(@yaml['preview'], false)
    @html << 
%Q[<span class="dc-image-preview">
#{@parent.image_tag(@record[@yaml['name']], title: t('drgcms.img_large') ) unless @record[@yaml['name']].match('<i ')}
</span><div id="dc-image-preview"></div>]
  end  
  @html << "<div id='#{record}_div_#{@yaml['name']}'></div>"        
         
  self
end