var FieldGroupEditors = [] $('document').ready(function(){ $('.dafieldgroup').each(function(index, element){ FieldGroupEditors.push(new daFieldGroupEditor(element)); }); }); function daFieldGroupEditor(element){ var self = this; self.element = element; self.$element = $(element); self.nextitemindex = self.$element.find('.dafieldgroupitem').length; var editorData = {}; self.$element.find('.dafieldgroupitems').sortable({ axis: 'y', handle: '.handle', start: function(event, ui) { editorData = {}; // reset var $editors = ui.item.find(".richeditor"); var id; $editors.each(function(i) { id = $(this).attr('id') editorData[id] = CKEDITOR.instances[id].getData(); CKEDITOR.instances[id].destroy(); }); }, stop: function(event, ui) { $.each(editorData, function(k, v) { initRichEditor($('#' + k)); //CKEDITOR.instances[k].setHTML(v); }); } }); self.updateTitles = function() { var rowcount = 0; self.$element.find('.dafieldgroupitem').each(function(i) { rowcount ++; var titlearr = []; $(this).find('[data-usefortitle]').each(function(j) { if($(this).prop('tagName').toLowerCase() == 'select') { titlearr.push($('#' + $(this).attr('id') + ' option:selected').text()); } else if($(this).hasClass('richeditor')) { var html = $(this).val(); titlearr.push(html.replace(/<\/?[^>]+(>|$)/g, "")); } else { titlearr.push($(this).val()); } }); title = titlearr.join(' '); if(title.trim()) { $(this).find('.panel-title').html(title.trim().substring(0,72)); } else { $(this).find('.panel-title').html('Item ' + rowcount); } }); }; self.updateTitles(); $('[data-usefortitle]').blur(self.updateTitles); self.addItem = function(){ $(self.element).find('.noentries').remove(); var id = 'form_' + $(self.element).attr('data-groupname') + '_row_' + String(self.nextitemindex); var html = [ '
No entries
'); } } $(self.element).find('.dafieldgroupaddbtn').on('click' , self.addItem); $(self.element).on('click' , '.removeitem' , self.removeItem); self.tryShowNoEntries(); }