xref: /plugin/approve/script.js (revision ac3d390a3a827d6e16da8f8e7f6a45ced7165111)
1jQuery(function() {
2    "use strict";
3    if (! ('approve' in JSINFO)) return false;
4    if (JSINFO['approve']['prettyprint'] !== true) return false;
5
6    //hide in print
7    jQuery('#dokuwiki__header').addClass('plugin__approve_noprint');
8
9    var $h1 = jQuery("#dokuwiki__content h1:first");
10    if ($h1.length > 0) {
11        var h1 = $h1[0].childNodes[0].nodeValue;
12        $h1.addClass('plugin__approve_noprint');
13    } else {
14        //if no header use page title
15        var h1 = jQuery("#dokuwiki__header h1:first span").text();
16    }
17
18    var $img = jQuery("#dokuwiki__header img").clone();
19    var $table = jQuery('<table id="plugin__approve_printheader">')
20        .css({
21            'table-layout': 'fixed',
22            'border-collapse': 'collapse',
23            'border': '0',//eliminate default border
24            'width':'100%',
25            'margin-bottom': '10px'
26        });
27
28    var $tr = jQuery("<tr>").appendTo($table);
29
30    var cells = [];
31
32    cells.push(jQuery("<td>").append($img));
33
34    var $print_header = jQuery('<h1>').text(h1);
35    cells.push(jQuery("<td>").append($print_header));
36
37    if ('status' in JSINFO['approve']) {
38        var status = JSINFO['approve']['status'];
39        var lang = JSINFO['approve']['lang'];
40
41
42        var date = JSINFO['approve']['date'];
43        var author = JSINFO['approve']['author'];
44        var maintainer = JSINFO['approve']['maintainer'];
45
46        if (status === 'approved') {
47            var version = JSINFO['approve']['version'];
48            var status_html = lang['approved'] + ' (' + lang['version'] + ': ' + version + ')';
49        } else if (status === 'ready for approval') {
50            var status_html =	lang['marked_ready_for_approval'];
51        } else {
52            var status_html =	lang['draft'];
53        }
54
55        var author_html = '';
56        if (author) {
57            author_html = author+'<br>';
58        }
59
60        var maintainer_html = '';
61        if (maintainer) {
62            maintainer_html = JSINFO['approve']['lang']['maintainer'] + ': ' + maintainer + '<br>';
63        }
64
65        cells.push(jQuery("<td>")
66            .html('<p style="text-align:left">'+
67                status_html+'<br>'+
68                author_html+
69                date.replace(' ', '&nbsp;')+'<br>'+
70                maintainer_html +
71            '</p>'));
72
73
74        cells[0].css('width', '25%');
75        cells[1].css('width', '50%');
76        cells[2].css('width', '25%');
77
78    } else {
79        cells[0].css('width', '25%');
80        cells[1].css('width', '75%');
81    }
82
83
84    for (var cell in cells) {
85        var $td = cells[cell];
86        $td.css({
87            'border':'1px solid #000',
88            'border-top':'0',
89            'text-align': 'center',
90            'vertical-align': 'middle'
91        });
92        $tr.append($td);
93    }
94
95    $tr.children().first().css('border-left', '0');
96    $tr.children().last().css('border-right', '0');
97
98    $table.prependTo("body");
99});
100