CRM-13997 CRM-13863 - Use CRM.loadPage for ajax tabs
[civicrm-core.git] / templates / CRM / common / TabHeader.tpl
1 {*
2 +--------------------------------------------------------------------+
3 | CiviCRM version 4.4 |
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 {literal}
52 cj(function($) {
53 var tabSettings = {};
54 {/literal}{if $selectedTab}
55 var selectedTab = "{$selectedTab}";
56 tabSettings.active = $('#tab_' + selectedTab).prevAll().length;
57 {/if}{literal}
58 $("#mainTabContainer")
59 .on('tabsbeforeactivate',
60 function(e, ui) {
61 // Warn of unsaved changes - requires formNavigate.tpl to be included in each tab
62 if (!global_formNavigate) {
63 var message = '{/literal}{ts escape="js" 1='%1'}Your changes in the <em>%1</em> tab have not been saved.{/ts}{literal}';
64 CRM.alert(ts(message, {1: ui.oldTab.text()}), '{/literal}{ts escape="js"}Unsaved Changes{/ts}{literal}', 'warning');
65 global_formNavigate = true;
66 }
67 })
68 .on('tabsbeforeload',
69 function(e, ui) {
70 // Use civicrm ajax wrappers rather than the default $.load
71 if (!ui.tab.data("loaded")) {
72 CRM.loadPage($('a', ui.tab).attr('href'), {
73 target: ui.panel
74 })
75 }
76 ui.tab.data("loaded", true);
77 e.preventDefault();
78 })
79 .tabs(tabSettings);
80 });
81 {/literal}
82 </script>
83