Merge pull request #1434 from totten/master-tabs-warning
[civicrm-core.git] / templates / CRM / common / TabHeader.tpl
1 {*
2 +--------------------------------------------------------------------+
3 | CiviCRM version 4.3 |
4 +--------------------------------------------------------------------+
5 | Copyright CiviCRM LLC (c) 2004-2013 |
6 +--------------------------------------------------------------------+
7 | This file is a part of CiviCRM. |
8 | |
9 | CiviCRM is free software; you can copy, modify, and distribute it |
10 | under the terms of the GNU Affero General Public License |
11 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
12 | |
13 | CiviCRM is distributed in the hope that it will be useful, but |
14 | WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
16 | See the GNU Affero General Public License for more details. |
17 | |
18 | You should have received a copy of the GNU Affero General Public |
19 | License and the CiviCRM Licensing Exception along |
20 | with this program; if not, contact CiviCRM LLC |
21 | at info[AT]civicrm[DOT]org. If you have questions about the |
22 | GNU Affero General Public License or the licensing of CiviCRM, |
23 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
24 +--------------------------------------------------------------------+
25 *}
26
27 {* enclosed all tabs and its content in a block *}
28 {* include wysiwyg related files*}
29 {include file="CRM/common/wysiwyg.tpl" includeWysiwygEditor=true}
30
31 <div class="crm-block crm-content-block">
32 {if $tabHeader and count($tabHeader) gt 1}
33 <div id="mainTabContainer">
34 <ul>
35 {foreach from=$tabHeader key=tabName item=tabValue}
36 <li id="tab_{$tabName}" class="crm-tab-button ui-corner-all {if !$tabValue.valid}disabled{/if}">
37 {if $tabValue.link and $tabValue.active}
38 <a href="{$tabValue.link}" title="{$tabValue.title}{if !$tabValue.valid} ({ts}disabled{/ts}){/if}">{$tabValue.title}</a>
39 {else}
40 <span {if !$tabValue.valid} title="{ts}disabled{/ts}"{/if}>{$tabValue.title}</span>
41 {/if}
42 </li>
43 {/foreach}
44 </ul>
45 </div>
46 {/if}
47 <div class="clear"></div>
48 </div> {* crm-content-block ends here *}
49
50 <script type="text/javascript">
51 var selectedTab = 'EventInfo';
52 {if $selectedTab}selectedTab = "{$selectedTab}";{/if}
53 var spinnerImage = '<img src="{$config->resourceBase}i/loading.gif" style="width:10px;height:10px"/>';
54 {literal}
55
56 cj( function() {
57 var tabIndex = cj('#tab_' + selectedTab).prevAll().length
58 cj("#mainTabContainer").tabs( {
59 selected: tabIndex,
60 spinner: spinnerImage,
61 select: function(event, ui) {
62 // we need to change the action of parent form, so that form submits to correct page
63 var url = ui.tab.href;
64
65 {/literal}{if $config->userSystem->is_drupal}{literal}
66 var actionUrl = url.split( '?' );
67 {/literal}{if $config->cleanURL}{literal}
68 var actualUrl = actionUrl[0];
69 {/literal}{else}{literal}
70 var getParams = actionUrl[1].split( '&' );
71 var actualUrl = actionUrl[0] + '?' + getParams[0];
72 {/literal}{/if}{literal}
73 {/literal}{else}{literal}
74 var actionUrl = url.split( '&' );
75 var actualUrl = actionUrl[0] + '&' + actionUrl[1];
76 {/literal}{/if}{literal}
77
78 if ( !global_formNavigate ) {
79 var message = '{/literal}{ts escape="js"}Are you sure you want to navigate away from this tab?{/ts}' + '\n\n' + '{ts escape="js"}You have unsaved changes.{/ts}' + '\n\n' + '{ts escape="js"}Press OK to continue, or Cancel to stay on the current tab.{/ts}{literal}';
80 if ( !confirm( message ) ) {
81 return false;
82 } else {
83 global_formNavigate = true;
84 }
85 }
86 cj(this).parents("form").attr("action", actualUrl );
87
88 return true;
89 },
90 load: function(event, ui) {
91 if ((typeof(Drupal) != 'undefined') && Drupal.attachBehaviors) {
92 Drupal.attachBehaviors(ui.panel);
93 }
94 cj(ui.panel).trigger('crmFormLoad');
95 // FIXME - decouple scanProfileSelectors and TabHeader
96 if (CRM.scanProfileSelectors) {
97 CRM.scanProfileSelectors();
98 }
99 }
100 });
101 });
102 {/literal}
103 </script>
104