1jQuery(function() {
2    "use strict";
3    var $groupInput = jQuery('#plugin__approve_group_input');
4    if ($groupInput.length === 0) return;
5
6    var $form = $groupInput.closest('form');
7    var $select = $form.find('select');
8
9    //Add option to select a group
10    var label = LANG['plugins']['approve']['group_option_label'];
11    if (label === '') {
12        label = 'Group:';
13    }
14    var $groupOption = jQuery('<option value="">' + label + '</option>')
15        .insertAfter($select.find('option:first-child'));
16
17    $groupInput.hide();
18    $select.on('change', function() {
19        var $option = $select.find(':selected');
20        if ($option.is($groupOption)) {
21            $groupInput.val('@');
22            $groupInput.show();
23        } else {
24            $groupInput.val('');
25            $groupInput.hide();
26        }
27    });
28
29});
30
31jQuery(function() {
32    "use strict";
33    if (! ('approve' in JSINFO)) return false;
34    if (JSINFO['approve']['prettyprint'] !== true) return false;
35
36    //hide in print
37    jQuery('#dokuwiki__header').addClass('plugin__approve_noprint');
38
39    var $h1 = jQuery("#dokuwiki__content h1:first");
40    if ($h1.length > 0) {
41        var h1 = $h1[0].childNodes[0].nodeValue;
42        $h1.addClass('plugin__approve_noprint');
43    } else {
44        //if no header use page title
45        var h1 = jQuery("#dokuwiki__header h1:first span").text();
46    }
47
48    var $img = jQuery("#dokuwiki__header img").clone();
49    var $table = jQuery('<table id="plugin__approve_printheader">')
50        .css({
51            'table-layout': 'fixed',
52            'border-collapse': 'collapse',
53            'border': '0',//eliminate default border
54            'width':'100%',
55            'margin-bottom': '10px'
56        });
57
58    var $tr = jQuery("<tr>").appendTo($table);
59
60    var cells = [];
61
62    cells.push(jQuery("<td>").append($img));
63
64    var $print_header = jQuery('<h1>').text(h1);
65    cells.push(jQuery("<td>").append($print_header));
66
67    if ('status' in JSINFO['approve']) {
68        var status = JSINFO['approve']['status'];
69        var lang = JSINFO['approve']['lang'];
70
71
72        var date = JSINFO['approve']['date'];
73        var author = JSINFO['approve']['author'];
74        var approver = JSINFO['approve']['approver'];
75
76        if (status === 'approved') {
77            var version = JSINFO['approve']['version'];
78            var status_html = lang['approved'] + ' (' + lang['version'] + ': ' + version + ')';
79        } else if (status === 'ready for approval') {
80            var status_html =	lang['marked_ready_for_approval'];
81        } else {
82            var status_html =	lang['draft'];
83        }
84
85        var author_html = '';
86        if (author) {
87            author_html = author+'<br>';
88        }
89
90        var approver_html = '';
91        if (approver) {
92            approver_html = JSINFO['approve']['lang']['approver'] + ': ' + approver + '<br>';
93        }
94
95        cells.push(jQuery("<td>")
96            .html('<p style="text-align:left">'+
97                status_html+'<br>'+
98                author_html+
99                date.replace(' ', '&nbsp;')+'<br>'+
100                approver_html +
101            '</p>'));
102
103
104        cells[0].css('width', '25%');
105        cells[1].css('width', '50%');
106        cells[2].css('width', '25%');
107
108    } else {
109        cells[0].css('width', '25%');
110        cells[1].css('width', '75%');
111    }
112
113
114    for (var cell in cells) {
115        var $td = cells[cell];
116        $td.css({
117            'border':'1px solid #000',
118            'border-top':'0',
119            'text-align': 'center',
120            'vertical-align': 'middle'
121        });
122        $tr.append($td);
123    }
124
125    $tr.children().first().css('border-left', '0');
126    $tr.children().last().css('border-right', '0');
127
128    $table.prependTo("body");
129});
130