aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/inc/Ui/PageDraft.php
blob: 967c30b53d553ba04ccb274dd92ec0c21dd27699 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php

namespace dokuwiki\Ui;

use dokuwiki\Draft;
use dokuwiki\Form\Form;

/**
 * DokuWiki Page Draft Interface
 *
 * @package dokuwiki\Ui
 */
class PageDraft extends Ui
{
    /**
     * Display the Page Draft Form
     * ask the user about how to handle an exisiting draft
     *
     * @return void
     * @author   Andreas Gohr <andi@splitbrain.org>
     *
     */
    public function show()
    {
        global $INFO;
        global $lang;

        $draft = new Draft($INFO['id'], $INFO['client']);
        $text = $draft->getDraftText();

        // print intro
        echo p_locale_xhtml('draft');

        // print difference
        (new PageDiff($INFO['id']))->compareWith($text)->preference('showIntro', false)->show();

        // create the draft form
        $form = new Form(['id' => 'dw__editform']);
        $form->addTagOpen('div')->addClass('no');
        $form->setHiddenField('id', $INFO['id']);
        $form->setHiddenField('date', $draft->getDraftDate());
        $form->setHiddenField('wikitext', $text);

        $form->addTagOpen('div')->id('draft__status');
        $form->addHTML($draft->getDraftMessage());
        $form->addTagClose('div');
        $form->addButton('do[recover]', $lang['btn_recover'])->attrs(['type' => 'submit', 'tabindex' => '1']);
        $form->addButton('do[draftdel]', $lang['btn_draftdel'])->attrs(['type' => 'submit', 'tabindex' => '2']);
        $form->addButton('do[show]', $lang['btn_cancel'])->attrs(['type' => 'submit', 'tabindex' => '3']);
        $form->addTagClose('div');

        echo $form->toHTML('Draft');
    }
}