xref: /webtrees/resources/views/admin/map-import-form.phtml (revision 0cfbe4b03376cf2989ba4b31e304164a193b151c)
1<?php
2
3use Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel;
4use Fisharebest\Webtrees\I18N;
5use Fisharebest\Webtrees\View;
6
7?>
8
9<?= view('components/breadcrumbs', ['links' => [route(ControlPanel::class) => I18N::translate('Control panel'), route('map-data')  => I18N::translate('Geographic data'), $title]]) ?>
10
11<h3><?= $title ?></h3>
12
13<form method="post" action="<?= e(route('locations-import-action')) ?>" id="upload_form" enctype="multipart/form-data">
14    <?= csrf_field() ?>
15
16    <!-- Server file -->
17    <div class="row form-group">
18        <label class="col-form-label col-sm-4" for="serverfile">
19            <?= I18N::translate('A file on the server') ?>
20        </label>
21        <div class="col-sm-8">
22            <div class="input-group" dir="ltr">
23                <div class="input-group-prepend">
24                            <span class="input-group-text">
25                                <?= e($data_folder) ?>places/
26                            </span>
27                </div>
28                <select id="serverfile" name="serverfile" class="form-control">
29                    <option selected value=""></option>
30                    <?php foreach ($files as $file) : ?>
31                        <option value="<?= e($file) ?>">
32                            <?= e($file) ?>
33                        </option>
34                    <?php endforeach ?>
35                </select>
36            </div>
37        </div>
38    </div>
39
40    <!-- local file -->
41    <div class="row form-group">
42        <label class="col-form-label col-sm-4" for="localfile">
43            <?= I18N::translate('A file on your computer') ?>
44        </label>
45        <div class="col-sm-8">
46            <input id="localfile" type="file" name="localfile" class="form-control-file">
47        </div>
48    </div>
49
50    <!-- CLEAR DATABASE -->
51    <fieldset class="form-group">
52        <div class="row">
53            <legend class="col-form-label col-sm-4">
54                <?= I18N::translate('Delete all existing geographic data before importing the file.') ?>
55            </legend>
56            <div class="col-sm-8">
57                <?= view('components/radios-inline', ['name' => 'cleardatabase', 'options' => [I18N::translate('no'), I18N::translate('yes')], 'selected' => 0]) ?>
58            </div>
59        </div>
60    </fieldset>
61
62    <!-- Import options -->
63    <fieldset class="form-group">
64        <div class="row">
65            <legend class="col-form-label col-sm-4" for="import-options">
66                <?= I18N::translate('Import') ?>
67            </legend>
68            <div class="col-sm-8">
69                <?= view('components/select', ['name' => 'import-options', 'selected' => '', 'options' => ['addupdate' => I18N::translate('Add new, and update existing records'), 'add' => I18N::translate('Only add new records'), 'update' => I18N::translate('Only update existing records')]]) ?>
70            </div>
71        </div>
72    </fieldset>
73
74    <!-- SAVE BUTTON -->
75    <div class="row form-group">
76        <div class="offset-sm-4 col-sm-8">
77            <button type="submit" class="btn btn-primary">
78                <?= view('icons/save') ?>
79                <?= I18N::translate('continue') ?>
80            </button>
81        </div>
82    </div>
83</form>
84
85<?php View::push('javascript') ?>
86    <script>
87        $('#upload_form').on('submit', function(e) {
88            let self = this;
89            e.preventDefault();
90            if($('input[name="cleardatabase"]:checked').val() === '1') {
91                if (!confirm('<?= I18N::translate('Really delete all geographic data?') ?> ')) {
92                    return false;
93                }
94            }
95            self.submit();
96        });
97    </script>
98<?php View::endpush() ?>
99