28 ultimix.multiple_line.CreateMultypleLineControl =
function( Object )
30 jQuery( Object ).wrap(
'<div></div>' );
31 jQuery( Object ).css(
'display' ,
'none' );
43 ultimix.multiple_line.GetElementCode =
function( Control , Object )
45 var Template = Control.html();
49 eval(
'var Data = ' +
jQuery( Object ).html() );
50 Template =
ultimix.string_utilities.print_record( Template , Data );
63 ultimix.multiple_line.ReviseDeleteButtons =
function( Selector )
65 var Container =
jQuery( Selector ).parent();
67 var Lines =
jQuery( Container ).find(
'table.multiple_line_single_line' );
69 if( Lines.length == 1 )
71 Lines.find(
'span.multiple_line_delete_button' ).html(
' ' );
75 Lines.find(
'span.multiple_line_delete_button' ).html(
ultimix.multiple_line.CreateDelButton( Selector ) );
88 ultimix.multiple_line.OnAddElement =
function( Button , Selector )
90 ultimix.multiple_line.AddLineForSelector(
91 Selector ,
false ,
jQuery( Button ).parents(
'table.multiple_line_single_line' )
94 ultimix.multiple_line.ReviseDeleteButtons( Selector );
106 ultimix.multiple_line.OnDelElement =
function( Button , Selector )
108 jQuery( Button ).parents(
'table.multiple_line_single_line' ).remove();
110 var Control =
jQuery( Selector );
113 if(
jQuery( Control ).attr(
'ondeleteline' ) )
115 eval(
jQuery( Control ).attr(
'ondeleteline' ) );
118 ultimix.multiple_line.ReviseDeleteButtons( Selector );
130 ultimix.multiple_line.GetAddButtonTemplate =
function( Selector )
132 var CustomTemplate =
jQuery( Selector ).find(
'.add_button_template' ).first();
134 if( CustomTemplate.length == 0 )
138 "<span class=\"multiple_line_add_button\"><a class=\"pointer\" style=\"text-decoration: none; " +
139 "font-weight: bold;\" onclick=\"ultimix.multiple_line.OnAddElement( this , '" + Selector +
140 "' );\">+</a></span>"
145 CustomTemplate = CustomTemplate.html();
147 CustomTemplate =
ultimix.string_utilities.StrReplace(
'[selector]' , Selector , CustomTemplate );
149 return( CustomTemplate );
160 ultimix.multiple_line.CreateAddButton =
function( Selector )
163 ultimix.multiple_line.GetAddButtonTemplate( Selector )
176 ultimix.multiple_line.GetDeleteButtonTemplate =
function( Selector )
178 var CustomTemplate =
jQuery( Selector ).find(
'.delete_button_template' ).first();
180 if( CustomTemplate.length == 0 )
184 "<span class=\"multiple_line_delete_button\"><a class=\"pointer\" style=\"text-decoration: none; " +
185 "font-weight: bold;\" onclick=\"ultimix.multiple_line.OnDelElement( this , '" +
186 Selector +
"' );\">-</a></span>"
191 CustomTemplate = CustomTemplate.html();
193 CustomTemplate =
ultimix.string_utilities.StrReplace(
'[selector]' , Selector , CustomTemplate );
195 return( CustomTemplate );
206 ultimix.multiple_line.CreateDelButton =
function( Selector )
209 ultimix.multiple_line.GetDeleteButtonTemplate( Selector )
226 ultimix.multiple_line.AppendLine =
function( Selector , Line , AfterLine )
228 var Container =
jQuery( Selector ).parent();
229 var Code =
'<table class="multiple_line_single_line"><tr><td style="width: 10px; font-family:' +
230 'Courier New;">' +
ultimix.multiple_line.CreateAddButton( Selector ) +
'</td><td style="width: 10px; ' +
231 'font-family: Courier New;">' +
ultimix.multiple_line.CreateDelButton( Selector ) +
'</td><td style="width: ' +
232 '100%;">' + Line +
'</td></tr></table>';
233 var AddedLine =
false;
236 jQuery( AfterLine ).after( Code );
237 AddedLine =
jQuery( AfterLine ).next();
241 jQuery( Container ).append( Code );
242 AddedLine =
jQuery( Container ).find(
'table.multiple_line_single_line' ).last();
244 jQuery( AddedLine ).find(
'.add_button_template,.delete_button_template' ).remove();
245 ultimix.multiple_line.ReviseDeleteButtons( Selector );
262 ultimix.multiple_line.AddLineInDOM =
function( Selector , Object , AfterLine )
264 var Control =
jQuery( Selector );
267 var Line =
ultimix.multiple_line.GetElementCode( Control , Object );
268 var AddedLine =
ultimix.multiple_line.AppendLine( Selector , Line , AfterLine );
271 jQuery( Object ).remove();
279 jQuery( Object ).replaceWith(
280 ultimix.get_string(
'dom_element' ) +
' "' +
jQuery( Object ).attr(
'control' ) +
'" ' +
281 ultimix.get_string(
'was_not_found' )
295 ultimix.multiple_line.OnAddLine =
function( AddedLine , Data )
297 for( FieldName in Data )
299 var Element =
jQuery( AddedLine ).find(
'[name^=' + FieldName +
']' );
300 if( Element.prop(
'tagName' ) ==
'TEXTAREA' )
302 Element.html( Data[ FieldName ] );
306 Element.val( Data[ FieldName ] );
322 ultimix.multiple_line.TriggerOnAddEvent =
function( Selector , AddedLine , Data )
324 var Control =
jQuery( Selector );
327 if(
jQuery( Control ).attr(
'onaddline' ) )
329 eval(
jQuery( Control ).attr(
'onaddline' ) +
'( AddedLine , Data );' );
333 eval(
'ultimix.multiple_line.OnAddLine( AddedLine , Data );' );
348 ultimix.multiple_line.AddLineForSelector =
function( Selector , Object , AfterLine )
350 if( Object &&
jQuery( Object ).html() )
352 eval(
'var Data = ' +
jQuery( Object ).html() );
356 eval(
'var Data = {}' );
359 var AddedLine =
ultimix.multiple_line.AddLineInDOM( Selector , Object , AfterLine );
361 ultimix.multiple_line.TriggerOnAddEvent( Selector , AddedLine , Data );
371 ultimix.multiple_line.AddLine =
function( Object )
373 ultimix.multiple_line.AddLineForSelector(
jQuery( Object ).attr(
'control' ) , Object );
383 ultimix.multiple_line.AddLineInEmptyControl =
function( Control )
385 if(
jQuery( Control ).find(
'table.multiple_line_single_line' ).length == 0 )
387 ultimix.multiple_line.AddLineForSelector(
jQuery( Control ).children().first().attr(
'control' ) );
399 jQuery(
'.multiple_line_template' ).each(
400 function( Index , Object )
402 ultimix.multiple_line.CreateMultypleLineControl( Object );
405 jQuery(
'.multiple_line_element' ).each(
406 function( Index , Object )
408 ultimix.multiple_line.AddLine( Object );
411 jQuery(
'.multiple_line_template' ).each(
412 function( Index , Object )
414 ultimix.multiple_line.AddLineInEmptyControl(
jQuery( Object ).parent() );