diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2022-02-15 09:59:01 +0000 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2022-02-18 08:43:18 +0000 |
| commit | 1c6adce825f16611bd8b75a22114302de4b41cfe (patch) | |
| tree | 637405c351f9c4f686d5b88bc3c9b3b3092d0be1 /resources/views/admin | |
| parent | 6f6acc7a1debce8fb3392dc3c800623417f681b4 (diff) | |
| download | webtrees-1c6adce825f16611bd8b75a22114302de4b41cfe.tar.gz webtrees-1c6adce825f16611bd8b75a22114302de4b41cfe.tar.bz2 webtrees-1c6adce825f16611bd8b75a22114302de4b41cfe.zip | |
Fix: #1663 - add support for ANSEL encoding
Diffstat (limited to 'resources/views/admin')
| -rw-r--r-- | resources/views/admin/gedcom-export-options.phtml | 73 | ||||
| -rw-r--r-- | resources/views/admin/trees-export.phtml | 87 | ||||
| -rw-r--r-- | resources/views/admin/trees-import.phtml | 161 |
3 files changed, 179 insertions, 142 deletions
diff --git a/resources/views/admin/gedcom-export-options.phtml b/resources/views/admin/gedcom-export-options.phtml new file mode 100644 index 0000000000..56b7d66bfc --- /dev/null +++ b/resources/views/admin/gedcom-export-options.phtml @@ -0,0 +1,73 @@ +<?php + +use Fisharebest\Webtrees\Auth; +use Fisharebest\Webtrees\Encodings\ANSEL; +use Fisharebest\Webtrees\Encodings\ASCII; +use Fisharebest\Webtrees\Encodings\UTF16BE; +use Fisharebest\Webtrees\Encodings\UTF8; +use Fisharebest\Webtrees\I18N; + +?> + +<div class="row mb-3"> + <label class="col-sm-3" for="format"> + <?= I18N::translate('Format') ?> + </label> + + <div class="col-sm-9"> + <div class="form-check"> + <input class="form-check-input" type="radio" name="format" id="format-gedcom" value="gedcom" checked="checked"> + + <label class="form-check-label" for="format-gedcom"> + <?= I18N::translate('GEDCOM') ?> + </label> + </div> + + <div class="form-check"> + <input class="form-check-input" type="radio" name="format" id="format-zip" value="zip"> + + <label class="form-check-label" for="format-zip"> + <?= /* I18N: ZIP = file format */ I18N::translate('ZIP (includes media files)') ?> + </label> + </div> + </div> +</div> + +<div class="row mb-3"> + <label class="col-sm-3" for="encoding"> + <?= I18N::translate('Character encoding') ?> + </label> + + <div class="col-sm-9"> + <?= view('components/select', ['name' => 'encoding', 'id' => 'encoding', 'selected' => UTF8::NAME, 'options' => [UTF8::NAME => 'UTF-8', UTF16BE::NAME => 'UNICODE (UTF16-BE)', ANSEL::NAME => 'ANSEL', ASCII::NAME => 'ASCII', 'CP1252' => 'ANSI (CP1252)']]) ?> + </div> +</div> + +<div class="row mb-3"> + <label class="col-sm-3" for="line_endings"> + <?= I18N::translate('Line endings') ?> + </label> + + <div class="col-sm-9"> + <?= view('components/radios-inline', ['name' => 'line_endings', 'options' => ['CRLF' => 'CR/LF (windows)', 'LF' => 'LF (unix)'], 'selected' => 'CRLF']) ?> + </div> +</div> + +<div class="row mb-3"> + <label class="col-sm-3" for="privacy"> + <?= I18N::translate('Apply privacy settings') ?> + </label> + + <div class="col-sm-9"> + <?php if (Auth::isAdmin()) : ?> + <?= view('components/radios-inline', ['name' => 'privacy', 'options' => ['none' => I18N::translate('None'), 'gedadmin' => I18N::translate('Manager'), 'user' => I18N::translate('Member'), 'visitor' => I18N::translate('Visitor')], 'selected' => 'none']) ?> + <?php elseif (Auth::isManager($tree)) : ?> + <?= view('components/radios-inline', ['name' => 'privacy', 'options' => ['gedadmin' => I18N::translate('Manager'), 'user' => I18N::translate('Member'), 'visitor' => I18N::translate('Visitor')], 'selected' => 'gedadmin']) ?> + <?php elseif (Auth::isMember($tree)) : ?> + <?= view('components/radios-inline', ['name' => 'privacy', 'options' => ['user' => I18N::translate('Member'), 'visitor' => I18N::translate('Visitor')], 'selected' => 'user']) ?> + <?php else : ?> + <input type="hidden" name="privacy" value="visitor"> + <?php endif ?> + </div> +</div> + diff --git a/resources/views/admin/trees-export.phtml b/resources/views/admin/trees-export.phtml index 0c4c8e215b..401958ddd9 100644 --- a/resources/views/admin/trees-export.phtml +++ b/resources/views/admin/trees-export.phtml @@ -1,5 +1,6 @@ <?php +use Fisharebest\Webtrees\Encodings\UTF8; use Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel; use Fisharebest\Webtrees\Http\RequestHandlers\ExportGedcomClient; use Fisharebest\Webtrees\Http\RequestHandlers\ExportGedcomServer; @@ -20,7 +21,7 @@ use Fisharebest\Webtrees\Tree; <h1><?= $title ?></h1> <div class="row"> - <div class="col-sm-5"> + <div class="col-sm-6"> <div class="card"> <div class="card-header"> <?= I18N::translate('A file on the server') ?> @@ -30,7 +31,7 @@ use Fisharebest\Webtrees\Tree; <?= csrf_field() ?> - <div class="form-group"> + <div class="form-group mb-3"> <label for="filename"><?= I18N::translate('Filename') ?></label> <input type="text" class="form-control" id="filename" name="filename" value="<?= e($filename) ?>"> </div> @@ -45,11 +46,12 @@ use Fisharebest\Webtrees\Tree; </div> </div> - <div class="col-sm-5"> + <div class="col-sm-6"> <div class="card"> <div class="card-header"> <?= I18N::translate('A file on your computer') ?> </div> + <div class="card-body"> <form method="post" action="<?= e(route(ExportGedcomClient::class, ['tree' => $tree->name()])) ?>" class="form form-horizontal"> <?= csrf_field() ?> @@ -58,75 +60,24 @@ use Fisharebest\Webtrees\Tree; <?= I18N::translate('Export preferences') ?> </p> - <div class="form-check"> - <label class="form-check-label"> - <input class="form-check-input" type="checkbox" name="zip"> - <?= I18N::translate('Compress the GEDCOM file') ?> - </label> - <?= view('help/link', ['topic' => 'zip-gedcom']) ?> - </div> - - <div class="form-check"> - <label class="form-check-label"> - <input class="form-check-input" type="checkbox" name="media"> - <?= I18N::translate('Include media (automatically zips files)') ?> - </label> - </div> - - <div class="form-check"> - <label class="form-check-label"> - <input class="form-check-input" type="checkbox" name="convert"> - <?= I18N::translate('Convert from UTF-8 to ISO-8859-1') ?> - </label> - <?= view('help/link', ['topic' => 'iso-8859-1']) ?> - </div> + <?= view('admin/gedcom-export-options', ['tree' => $tree]) ?> <?php if ($tree->getPreference('GEDCOM_MEDIA_PATH')) : ?> - <hr> - - <label> - <input type="checkbox" name="media-path" value="<?= e($tree->getPreference('GEDCOM_MEDIA_PATH')) ?>"> - <?= /* I18N: A media path (e.g. C:\aaa\bbb\ccc\) in a GEDCOM file */ - I18N::translate('Add the GEDCOM media path to filenames') ?> - </label> - <p> - <?= /* I18N: %s is the name of a folder. */ - I18N::translate('Media filenames will be prefixed by %s.', '<code dir="ltr">' . e($tree->getPreference('GEDCOM_MEDIA_PATH')) . '</code>') ?> - </p> - <?php endif ?> - - <hr> - - <fieldset class="form-group"> - <legend class="col-form-label"> - <?= I18N::translate('Apply privacy settings') ?> - </legend> - - <div class="form-check form-check-inline"> - <label> - <input type="radio" name="privatize_export" value="none" checked> - <?= I18N::translate('None') ?> - </label> - </div> - <div class="form-check form-check-inline"> - <label> - <input type="radio" name="privatize_export" value="gedadmin"> - <?= I18N::translate('Manager') ?> - </label> - </div> - <div class="form-check form-check-inline"> - <label> - <input type="radio" name="privatize_export" value="user"> - <?= I18N::translate('Member') ?> - </label> - </div> - <div class="form-check form-check-inline"> - <label> - <input type="radio" name="privatize_export" value="visitor"> - <?= I18N::translate('Visitor') ?> + <div class="row mb-3"> + <label class="col-sm-3" for="media-path"> + <?= /* I18N: A media path (e.g. C:\aaa\bbb\ccc\) in a GEDCOM file */ I18N::translate('Add the GEDCOM media path to filenames') ?> </label> + + <div class="col-sm-9"> + <div class="form-check"> + <input class="form-check-input" type="checkbox" id="media-path" name="media_path"> + <label class="form-check-label" for="media-path"> + <?= /* I18N: %s is the name of a folder. */ I18N::translate('Media filenames will be prefixed by %s.', '<code dir="ltr">' . e($tree->getPreference('GEDCOM_MEDIA_PATH')) . '</code>') ?> + </label> + </div> + </div> </div> - </fieldset> + <?php endif ?> <button type="submit" class="btn btn-primary"> <?= view('icons/download') ?> diff --git a/resources/views/admin/trees-import.phtml b/resources/views/admin/trees-import.phtml index 52d1b6884e..32b8dd36da 100644 --- a/resources/views/admin/trees-import.phtml +++ b/resources/views/admin/trees-import.phtml @@ -4,6 +4,7 @@ use Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel; use Fisharebest\Webtrees\Http\RequestHandlers\ImportGedcomAction; use Fisharebest\Webtrees\Http\RequestHandlers\ManageTrees; use Fisharebest\Webtrees\I18N; +use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\Tree; use Fisharebest\Webtrees\View; use Illuminate\Support\Collection; @@ -31,99 +32,111 @@ use Illuminate\Support\Collection; <input type="hidden" id="gedcom_filename" value="<?= e($default_gedcom_file) ?>"> <?= csrf_field() ?> - <fieldset class="row form-group mb-3"> - <legend class="col-form-label col-sm-3"> - <?= I18N::translate('Select a GEDCOM file to import') ?> - </legend> + <h2><?= I18N::translate('Select a GEDCOM file to import') ?></h2> + + <div class="row form-group mb-3"> + <label class="col-sm-3"> + <input type="radio" name="source" id="import-computer" value="client" checked> + <?= I18N::translate('A file on your computer') ?> + </label> <div class="col-sm-9"> - <div class="row form-group mb-3"> - <label class="col-sm-3"> - <input type="radio" name="source" id="import-computer" value="client" checked> - <?= I18N::translate('A file on your computer') ?> - </label> - <div class="col-sm-9"> - <div class="btn btn-default"> - <input type="file" class="form-control-file" name="tree_name" id="import-computer-file"> - </div> - </div> + <div class="btn btn-default"> + <input type="file" class="form-control-file" name="tree_name" id="import-computer-file"> </div> - <div class="row"> - <label class="col-sm-3" for="import-server-file"> - <input type="radio" name="source" id="import-server" value="server"> - <?= I18N::translate('A file on the server') ?> - </label> - <div class="col-sm-9"> - <div class="input-group" dir="ltr"> + </div> + </div> + + <div class="row"> + <label class="col-sm-3" for="import-server-file"> + <input type="radio" name="source" id="import-server" value="server"> + <?= I18N::translate('A file on the server') ?> + </label> + <div class="col-sm-9"> + <div class="input-group" dir="ltr"> <span class="input-group-text" dir="ltr"> <?= e($data_folder) ?> </span> - <select name="tree_name" class="form-control" dir="ltr" id="import-server-file"> - <option value=""> </option> - <?php foreach ($gedcom_files as $gedcom_file) : ?> - <option value="<?= e($gedcom_file) ?>" <?= $gedcom_file === $default_gedcom_file ? 'selected' : '' ?>> - <?= e($gedcom_file) ?> - </option> - <?php endforeach ?> - <?php if ($gedcom_files->isEmpty()) : ?> - <option disabled selected> - <?= I18N::translate('No GEDCOM files found.') ?> - </option> - <?php endif ?> - </select> - </div> - </div> + <select name="tree_name" class="form-control" dir="ltr" id="import-server-file"> + <option value=""> </option> + <?php foreach ($gedcom_files as $gedcom_file) : ?> + <option value="<?= e($gedcom_file) ?>" <?= $gedcom_file === $default_gedcom_file ? 'selected' : '' ?>> + <?= e($gedcom_file) ?> + </option> + <?php endforeach ?> + <?php if ($gedcom_files->isEmpty()) : ?> + <option disabled selected> + <?= I18N::translate('No GEDCOM files found.') ?> + </option> + <?php endif ?> + </select> </div> </div> - </fieldset> + </div> <hr> - <fieldset class="row form-group mb-3"> - <legend class="col-form-label col-sm-3"> - <?= I18N::translate('Import preferences') ?> - </legend> + <h2><?= I18N::translate('Import preferences') ?></h2> + + <div class="row mb-3"> + <label for="encoding" class="col-sm-3"> + <?= I18N::translate('Character encoding') ?> + </label> + <div class="col-sm-9"> - <label> - <input type="checkbox" name="keep_media" value="1" <?= $tree->getPreference('keep_media') ? 'checked' : '' ?>> - <?= /* I18N: A configuration setting */ I18N::translate('Keep media objects') ?> - </label> - <div class="form-text"> - <?= I18N::translate('If you have created media objects in webtrees, and have subsequently edited this GEDCOM file using genealogy software that deletes media objects, then select this option to merge the current media objects with the new GEDCOM file.') ?> + <?= view('components/select', ['name' => 'encoding', 'selected' => '', 'options' => ['' => I18N::translate('automatic')] + Registry::encodingFactory()->list()]) ?> + </div> + </div> + + <div class="row mb-3"> + <div class="col-sm-3"> + <?= /* I18N: A configuration setting */ I18N::translate('Keep media objects') ?> + </div> + + <div class="col-sm-9"> + <div class="form-check"> + <input type="checkbox" class="form-check-input" name="keep_media" id="keep_media" value="1" <?= $tree->getPreference('keep_media') ? 'checked' : '' ?>> + <label for="keep_media" class="form-check-label"> + <?= I18N::translate('If you have created media objects in webtrees, and have subsequently edited this GEDCOM file using genealogy software that deletes media objects, then select this option to merge the current media objects with the new GEDCOM file.') ?> + </label> </div> - <label> - <input type="checkbox" name="WORD_WRAPPED_NOTES" value="1" <?= $tree->getPreference('WORD_WRAPPED_NOTES') ? 'checked' : '' ?>> - <?= I18N::translate('Add spaces where long lines were wrapped') ?> - </label> - <div class="form-text"> - <?= I18N::translate('If you created this GEDCOM file using genealogy software that omits spaces when splitting long lines, then select this option to reinsert the missing spaces.') ?> + </div> + </div> + + <div class="row mb-3"> + <div class="col-sm-3"> + <?= I18N::translate('Add spaces where long lines were wrapped') ?> + </div> + + <div class="col-sm-9"> + <div class="form-check"> + <input type="checkbox" class="form-check-input" name="WORD_WRAPPED_NOTES" id="WORD_WRAPPED_NOTES" value="1" <?= $tree->getPreference('WORD_WRAPPED_NOTES') ? 'checked' : '' ?>> + <label for="WORD_WRAPPED_NOTES" class="form-check-label"> + <?= I18N::translate('If you created this GEDCOM file using genealogy software that omits spaces when splitting long lines, then select this option to reinsert the missing spaces.') ?> + </label> </div> - <label for="GEDCOM_MEDIA_PATH"> - <?= /* I18N: A media path (e.g. c:\aaa\bbb\ccc\ddd.jpeg) in a GEDCOM file */ I18N::translate('Remove the GEDCOM media path from filenames') ?> - </label> - <input - class="form-control" - dir="ltr" - id="GEDCOM_MEDIA_PATH" - maxlength="255" - name="GEDCOM_MEDIA_PATH" - type="text" - value="<?= e($gedcom_media_path) ?>" - > + </div> + </div> + + <div class="row mb-3"> + <label for="GEDCOM_MEDIA_PATH" class="col-sm-3"> + <?= /* I18N: A media path (e.g. c:\aaa\bbb\ccc\ddd.jpeg) in a GEDCOM file */ I18N::translate('Remove the GEDCOM media path from filenames') ?> + </label> + + <div class="col-sm-9"> + <input class="form-control" dir="ltr" id="GEDCOM_MEDIA_PATH" maxlength="255" name="GEDCOM_MEDIA_PATH" type="text" value="<?= e($gedcom_media_path) ?>"> <div class="form-text"> <?= /* I18N: Help text for the “GEDCOM media path” configuration setting. A “path” is something like “C:\Documents\Genealogy\Photos\John_Smith.jpeg” */ I18N::translate('Some genealogy software creates GEDCOM files that contain media filenames with full paths. These paths will not exist on the web-server. To allow webtrees to find the file, the first part of the path must be removed.') ?> - <?= /* I18N: Help text for the “GEDCOM media path” configuration setting. %s are all folder names */ I18N::translate('For example, if the GEDCOM file contains %1$s and webtrees expects to find %2$s in the media folder, then you would need to remove %3$s.', '<code>C:\\Documents\\family\\photo.jpeg</code>', '<code>family\\photo.jpeg</code>', '<code>C:\\Documents\\</code>') ?> + <?= /* I18N: Help text for the “GEDCOM media path” configuration setting. %s are all folder names */ I18N::translate('For example, if the GEDCOM file contains %1$s and webtrees expects to find %2$s in the media folder, then you would need to remove %3$s.', '<code>C:\\Documents\\family\\photo.jpeg</code>', '<code>family/photo.jpeg</code>', '<code>C:\\Documents\\</code>') ?> </div> </div> - </fieldset> - - <div class="row form-group mb-3"> - <div class="offset-sm-3 col-sm-9"> - <button type="submit" class="btn btn-primary"> - <?= /* I18N: A button label. */ I18N::translate('continue') ?> - </button> - </div> </div> + + <hr> + + <button type="submit" class="btn btn-primary"> + <?= /* I18N: A button label. */ I18N::translate('continue') ?> + </button> </form> <?php View::push('javascript') ?> |
