xref: /dokuwiki/inc/Ui/PageDraft.php (revision bde2a644b7f10af4f4d8a7ca52281cd954538ea9)
1<?php
2
3namespace dokuwiki\Ui;
4
5use dokuwiki\Form\Form;
6
7/**
8 * DokuWiki Page Draft Interface
9 *
10 * @package dokuwiki\Ui
11 */
12class PageDraft extends Ui
13{
14    /**
15     * Display the Page Draft Form
16     * ask the user about how to handle an exisiting draft
17     *
18     * @author   Andreas Gohr <andi@splitbrain.org>
19     *
20     * @triggers HTMLFORM_DRAFT_OUTPUT
21     * @return void
22     */
23    public function show()
24    {
25        global $INFO;
26        global $ID;
27        global $lang;
28
29        $draft = new \dokuwiki\Draft($ID, $INFO['client']);
30        $text  = $draft->getDraftText();
31
32        // print intro
33        print p_locale_xhtml('draft');
34
35        (new Diff($text, false))->show();
36
37        // create the draft form
38        $form = new Form(['id' => 'dw__editform']);
39        $form->addTagOpen('div')->addClass('no');
40        $form->setHiddenField('id', $ID);
41        $form->setHiddenField('date', $draft->getDraftDate());
42        $form->setHiddenField('wikitext', $text);
43
44        $form->addTagOpen('div')->id('draft__status');
45        $form->addHTML($draft->getDraftMessage());
46        $form->addTagClose('div');
47        $form->addButton('do[recover]',  $lang['btn_recover'] )->attrs(['type' => 'submit', 'tabindex' => '1']);
48        $form->addButton('do[draftdel]', $lang['btn_draftdel'])->attrs(['type' => 'submit', 'tabindex' => '2']);
49        $form->addButton('do[show]',     $lang['btn_cancel']  )->attrs(['type' => 'submit', 'tabindex' => '3']);
50        $form->addTagClose('div');
51
52        // print form that might be modified by HTMLFORM_DRAFT_OUTPUT event handlers
53        print $form->toHTML('draft');
54    }
55
56}
57