19 ultimix.tab_control.TabCounter = 1;
20 ultimix.tab_control.AddTabFlag = 0;
21 ultimix.tab_control.AddContentId =
'_unexisting_id';
22 ultimix.tab_control.InitialTabWasDeleted =
new Array();
23 ultimix.tab_control.SelectCreated =
false;
24 ultimix.tab_control.InsertIndex = -1;
25 ultimix.tab_control.AutoSelect =
false;
35 ultimix.tab_control.tab_control_create_setup =
function( ControlId )
37 jQuery(
'#' + ControlId ).tabs(
39 select :
function( event , ui )
41 if(
ultimix.tab_control.AddTabFlag == 0 )
43 jQuery.cookie( ControlId +
'-active-tab-id' , ui.tab.hash.replace(
'#' ,
'' ) );
46 ultimix.tab_control.AddTabFlag = 0;
48 show :
function( event , ui )
50 ultimix.windows.auto_fit_div( ui.panel );
55 ultimix.tab_control.set_add_tab_handler( ControlId );
65 ultimix.tab_control.create_tab =
function( ControlId )
67 var TabId =
'tabs' +
ultimix.tab_control.TabCounter++;
68 jQuery(
'#' + ControlId ).html(
'<ul><li><a href="#' + TabId +
'"></a></li></ul><div id="' + TabId +
'"></div>' );
70 jQuery(
'#' + ControlId ).tabs();
72 ultimix.tab_control.tab_control_create_setup( ControlId );
74 ultimix.tab_control.InitialTabWasDeleted[ ControlId ] =
false;
86 ultimix.tab_control.on_close_tab =
function( ControlId , Tab )
88 var index =
jQuery(
'#' + ControlId ).children(
'ul' ).children(
'li' ).index(
jQuery( Tab ).parent() );
89 jQuery(
'#' + ControlId ).tabs(
'remove' , index );
101 ultimix.tab_control.set_closable =
function( ControlId , TabCursor )
105 var Item =
jQuery(
'#' + ControlId +
'>.ui-tabs-nav>li>a' ).eq( TabCursor );
109 var Item =
jQuery(
'#' + ControlId +
'>.ui-tabs-nav>li>a' ).last();
112 if(
jQuery( Item ).next().length )
114 jQuery( Item ).next().remove();
118 '<span class="ui-icon ui-icon-close" onclick="ultimix.tab_control.on_close_tab( \'' + ControlId +
119 '\' ,
this );
" title="' + ultimix.get_string( 'close_tab
' ) + '"> </span>'
130 ultimix.tab_control.try_auto_select_tab = function( ControlId )
132 if( ultimix.tab_control.AutoSelect == false )
136 var ActiveTabId = jQuery.cookie( ControlId + '-active-tab-id' );
137 ActiveTabId = ActiveTabId ? ActiveTabId : 'tabs1';
139 if( jQuery( '#' + ControlId ).find( '#' + ActiveTabId ).length )
141 var Items = jQuery( '#' + ControlId + '>.ui-tabs-nav>li>a' );
142 for( var i = 0 ; i < Items.length ; i++ )
144 if( jQuery( Items[ i ] ).attr( 'href' ) == '#' + ActiveTabId )
146 jQuery( '#' + ControlId ).tabs( "select
" , i );
147 ultimix.tab_control.AddTabFlag = 0;
160 ultimix.tab_control.set_add_tab_handler = function( ControlId )
162 jQuery( '#' + ControlId ).tabs(
164 function( event , ui )
166 jQuery( ui.panel ).append( jQuery( '#' + ultimix.tab_control.AddContentId ) );
168 if( ultimix.tab_control.SelectCreated )
170 var TabIndex = ultimix.tab_control.count_of_tabs( ControlId ) - 1;
171 TabIndex = ultimix.tab_control.InsertIndex == -1 ? TabIndex : ultimix.tab_control.InsertIndex;
172 jQuery( '#' + ControlId ).tabs( "select
" , TabIndex );
176 ultimix.tab_control.try_auto_select_tab( ControlId );
193 ultimix.tab_control.post_process_tab = function( TabSelector , TabId , Selected )
195 jQuery( TabSelector ).html(
196 ultimix.string_utilities.str_replace( '[tab_id]' , TabId , jQuery( TabSelector ).html() )
201 ultimix.windows.auto_fit_div( jQuery( '#' + ultimix.tab_control.AddContentId ).parent() );
220 ultimix.tab_control.add_simple_tab = function( ControlId , Title , Index , ContentId , Selected )
222 ultimix.tab_control.AddTabFlag = 1;
223 ultimix.tab_control.AddContentId = ContentId;
224 ultimix.tab_control.SelectCreated = Selected;
225 ultimix.tab_control.InsertIndex = Index;
227 var TabId = 'tabs' + ( ultimix.tab_control.TabCounter );
228 var TabSelector = '#tabs' + ( ultimix.tab_control.TabCounter++ );
232 jQuery( '#' + ControlId ).tabs( 'add' , TabSelector , ultimix.get_string( Title ) , Index );
236 jQuery( '#' + ControlId ).tabs( 'add' , TabSelector , ultimix.get_string( Title ) );
239 ultimix.tab_control.post_process_tab( TabSelector , TabId , Selected );
257 ultimix.tab_control.add_simple_tab_from_content = function( ControlId , Title , Index , Content , Selected )
259 var ContentId = "content_
" + ultimix.core.GetCurrentMilliseconds();
261 jQuery( 'body' ).append( '<div id="' + ContentId + '" style=\"height: 100%;\">' + Content + '</div>' );
263 ultimix.tab_control.add_simple_tab( ControlId , Title , Index , ContentId , Selected );
283 ultimix.tab_control.add_tab = function( ControlId , Title , Index , ContentId , Closable , Selected )
285 ultimix.tab_control.add_simple_tab( ControlId , Title , Index , ContentId , Selected );
287 if( ultimix.tab_control.InitialTabWasDeleted[ ControlId ] == false )
289 var TabIndex = ultimix.tab_control.InsertIndex == -1 ? 0 : 1;
290 jQuery( '#' + ControlId ).tabs( 'remove' , TabIndex );
291 ultimix.tab_control.InitialTabWasDeleted[ ControlId ] = true;
296 ultimix.tab_control.set_closable( ControlId );
317 ultimix.tab_control.add_tab_from_content = function( ControlId , Title , Index , Content , Closable , Selected )
319 var ContentId = "content_
" + ultimix.core.GetCurrentMilliseconds();
321 jQuery( 'body' ).append( '<div id="' + ContentId + '" style=\"height: 100%;\">' + Content + '</div>' );
323 ultimix.tab_control.add_tab( ControlId , Title , Index , ContentId , Closable , Selected );
345 ultimix.tab_control.add_iframe_tab = function( ControlId , Title , Index , URL , Closable , Height , Selected )
347 var TabFrameId = ultimix.tab_control.TabCounter++;
349 jQuery( 'body' ).append( '<iframe style="width: 100%; border: 0px; height:
' + Height + ';
" id="tab_frame_
' +
350 TabFrameId + '" src="' + URL + '"></iframe>' );
352 ultimix.tab_control.add_tab( ControlId , Title , Index , "tab_frame_
" + TabFrameId , Closable , Selected )
362 ultimix.tab_control.create_tab_control_from_markup = function( ControlId )
364 jQuery( '#' + ControlId ).tabs();
366 ultimix.tab_control.tab_control_create_setup( ControlId );
384 ultimix.tab_control.create_tab_control_with_tab = function( ParentSelector , ControlId , Title , Content , Closable )
386 /* preparing markup */
387 jQuery( ParentSelector ).append(
388 '<div id="' + ControlId +
389 '"><ul><li><a href="#tabs-1
">' + ultimix.get_string( Title ) + '</a></li></ul><div id="tabs-1
">' +
390 Content + '</div></div>'
394 ultimix.tab_control.create_tab_control_from_markup( ControlId );
398 ultimix.tab_control.set_closable( ControlId );
421 ultimix.tab_control.add_tab_for_existing_control = function( ParentSelector , ControlId , Title , Index , Content ,
422 Closable , Selected )
424 if( jQuery( '#' + ControlId ).length )
427 ultimix.tab_control.add_tab_from_content( ControlId , Title , Index , Content , Closable , Selected );
431 /* control does not exist */
432 ultimix.tab_control.create_tab_control_with_tab( ParentSelector , ControlId , Title , Content , Closable );
457 ultimix.tab_control.add_iframe_tab_for_existing_control = function( ParentSelector , ControlId , Title , Index , URL ,
458 Closable , Height , Selected )
460 if( jQuery( '#' + ControlId ).length )
463 ultimix.tab_control.add_iframe_tab( ControlId , Title , Index , URL , Closable , Height );
467 var ContentId = "content_
" + ultimix.core.GetCurrentMilliseconds();
469 /* control does not exist */
470 var Content = '<iframe style="width: 100%; border: 0px; height:
' + Height + ';
" id="tab_frame_
' +
471 TabFrameId + '" src="' + URL + '"></iframe>';
473 ultimix.tab_control.create_tab_control_with_tab(
474 ParentSelector , ControlId , Title , Content , Closable , Selected
489 ultimix.tab_control.count_of_tabs = function( ControlId )
491 return( jQuery( '#' + ControlId + '>.ui-tabs-nav>li>a' ).length );
505 ultimix.tab_control.get_tab_content_acceptor_success = function( TabId , Data )
510 Content = ultimix.string_utilities.str_replace( '[tab_id]' , TabId , Content );
511 jQuery( Data.CreatedTab ).html( Content );
535 ultimix.tab_control.get_tab_content_acceptor = function( ControlId , Title , Index , Closable , Selected )
537 var Data = { 'CreatedTab' : false };
538 var TabId = 'tabs' + ultimix.tab_control.TabCounter;
542 before_request : function()
544 ultimix.tab_control.add_tab_from_content(
545 ControlId , Title , Index , ultimix.std_dialogs.loading_img_widget() , Closable , Selected
547 Index = Index == -1 ? ultimix.tab_control.count_of_tabs( ControlId ) - 1 : Index;
548 Data.CreatedTab = jQuery( '#' + ControlId ).children( 'div' ).eq( Index );
550 success : ultimix.tab_control.get_tab_content_acceptor_success( TabId , Data )
578 ultimix.tab_control.open_record_in_tab = function( ControlId , Title , Index ,
579 Closable , Selected , ContentProvider , RecordId )
581 var TabId = 'tabs' + ultimix.tab_control.TabCounter;
583 ultimix.tab_control.add_tab_from_content(
584 ControlId , Title , Index , ultimix.std_dialogs.loading_img_widget() , Closable , Selected
587 Index = Index == -1 ? ultimix.tab_control.count_of_tabs( ControlId ) - 1 : Index;
589 ContentProvider( RecordId , jQuery( '#' + ControlId ).children( 'div' ).eq( Index ) );