xref: /template/sprintdoc/js/meta-box.js (revision 2b6ae420f675f73b81c315de9633a60eb17d3b06)
1(function ($, spc) {
2
3    var toggleTabs = function () {
4
5        var $metaBox = $('#spr__meta-box'),
6            $tabLinks = $metaBox.find('.meta-tabs').find('a'),
7            $tabPanels = $metaBox.find('.meta-content').find('.tab-pane');
8
9            try {
10                $tabLinks.each(function () {
11                    $(this).on("click", function (e) {
12                        e.preventDefault();
13                        var $link = $(this),
14                            $li = $link.closest('li'),
15                            $panel = $($link.attr('href'));
16
17                        /* close panel */
18                        if($li.hasClass('active')){
19                            //reset
20                            resetTabs($tabLinks,$tabPanels);
21
22                        /* close panel */
23                        }else{
24                            //reset
25                            resetTabs($tabLinks,$tabPanels);
26                            //current state
27                            $li.addClass('active');
28                            $link.attr('aria-expanded','true');
29                            $panel.addClass('active').attr('aria-hidden','false');
30                        }
31
32                    });
33                });
34
35
36            } catch (err) {
37                //alert('err');
38            }
39        },
40        resetTabs = function($tabLinks,$tabPanels){
41            $tabLinks.closest('li').removeClass('active');
42            $tabLinks.attr('aria-expanded','false');
43            $tabPanels.removeClass('active').attr('aria-hidden','true');
44        },
45        findJiraTickets = function(){
46            var $tickets = $('#dokuwiki__content').find('a.jiralink');
47            if($tickets.length >0){
48                var $panel = $('#spr__tab-jira'),
49                    $num = $('a[href="#spr__tab-jira"]').find('.num');
50
51                if($panel.length > 0 && $num.length > 0){
52                    $num.empty().append($tickets.length);
53                    $panel.find('> div').empty().append('<ul></ul>');
54                    var $ul = $panel.find('ul');
55                    $tickets.each(function (){
56                        var $ticket = $(this).clone();
57                        $ul.prepend('<li></li>');
58                        $ul.find('li:first-child').append($ticket);
59                    });
60                }
61            }
62        },
63        findSitemap = function(){
64            var $panel =  $('#spr__tab-toc'),
65                $toc = $panel.find('ul'),
66                $num = $('a[href="#spr__tab-toc"]').find('.num');
67            if($toc.length == 0){
68                $panel.append('<div><p>'+LANG.template.sprintdoc.meta_box_toc_none+'</p></div>');
69            }else{
70                $num.empty().append('1');
71            }
72        };
73
74    $(function () {
75        toggleTabs();
76        findJiraTickets();
77        findSitemap();
78    });
79
80})(jQuery, spc);
81
82