Overview
Comment: | Allow storage backend migration from web UI |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA3-256: |
d209e3b5fcb31837d359c183df51685f |
User & Date: | bohwaz on 2021-03-15 02:12:42 |
Other Links: | branch diff | manifest | tags |
Context
2021-03-15
| ||
02:24 | Default storage backend is SQLite, not null check-in: 2a0417cb52 user: bohwaz tags: dev | |
02:12 | Allow storage backend migration from web UI check-in: d209e3b5fc user: bohwaz tags: dev | |
01:49 | Add ability to download documents as a ZIP file check-in: 7ed1ebca96 user: bohwaz tags: dev | |
Changes
Modified src/templates/admin/config/advanced/index.tpl from [b3ebdb69a6] to [472b663153].
︙ | ︙ | |||
14 15 16 17 18 19 20 | </p> {else if $_GET.msg == 'REOPEN'} <p class="block confirm"> L'exercice sélectionné a été réouvert. </p> {/if} | < > > > > > > > > > > | > > > > > > > > > > > > > > > > > > | > > | 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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | </p> {else if $_GET.msg == 'REOPEN'} <p class="block confirm"> L'exercice sélectionné a été réouvert. </p> {/if} <form method="post" action="{$self_url_no_qs}"> {if count($closed_years)} <fieldset> <legend>Réouvrir un exercice clôturé</legend> <p class="help"> À utiliser si vous avez clôturé un exercice par erreur. Attention, en comptabilité cette action est normalement exceptionnelle. </p> <p class="alert block"> L'exercice sera réouvert, mais une écriture sera ajoutée au journal général indiquant que celui-ci a été réouvert après clôture. Cette écriture ne peut pas être supprimée. </p> <dl> {input type="select" options=$closed_years label="Exercicer à réouvrir" name="year"} </dl> <p> {csrf_field key="reopen_year"} {button type="submit" name="reopen_ok" label="Réouvrir l'exercice sélectionné" shape="reset"} </p> </fieldset> {/if} {if ENABLE_TECH_DETAILS && $storage_backend != 'SQLite'} <h2 class="ruler">Stockage des fichiers</h2> {if !$quota_used} <fieldset> <legend>Migration de stockage de fichiers</legend> <p class="alert block"> Les fichiers seront <strong>supprimés</strong> de la base de données après avoir été recopiés vers '{$storage_backend}'. </p> <p class="help">Cette opération peut prendre quelques minutes.</p> <p> {csrf_field key="migrate_backend"} {button type="submit" name="migrate_backend_ok" label="Copier tous les fichiers vers %s"|args:$storage_backend shape="right"} </p> </fieldset> {else} <fieldset> <legend>Recopier les fichiers dans la base de données</legend> <p class="alert block"> Les fichiers ne seront pas effacés de {$storage_backend} mais simplement recopiés dans la base de données. </p> <p class="help">Cette opération peut prendre quelques minutes.</p> <p> {csrf_field key="migrate_back"} {button type="submit" name="migrate_back_ok" label="Copier tous les fichiers de %s vers la base de données"|args:$storage_backend shape="right"} </p> </fieldset> {/if} {/if} </form> <h2 class="ruler">Actions destructrices</h2> <form method="post" action="{$self_url_no_qs}"> <fieldset> <legend>Remise à zéro</legend> |
︙ | ︙ |
Modified src/www/admin/config/advanced/index.php from [2748d571f1] to [68a26e2219].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php namespace Garradin; use Garradin\Accounting\Years; require_once __DIR__ . '/../_inc.php'; $form->runIf('reset_ok', function () use ($session) { Install::reset($session, f('passe_verif')); }, 'reset', Utils::getSelfURI(['msg' => 'RESET'])); $form->runIf('reopen_ok', function () use ($session) { $year = Years::get((int) f('year')); $year->reopen($session->getUser()->id); }, 'reopen_year', Utils::getSelfURI(['msg' => 'REOPEN'])); $tpl->assign('closed_years', Years::listClosedAssoc()); $tpl->display('admin/config/advanced/index.tpl'); | > > > > > > > > > > > > > > > > | 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 | <?php namespace Garradin; use Garradin\Accounting\Years; use Garradin\Files\Files; require_once __DIR__ . '/../_inc.php'; $quota_used = Files::getUsedQuota(); $form->runIf('reset_ok', function () use ($session) { Install::reset($session, f('passe_verif')); }, 'reset', Utils::getSelfURI(['msg' => 'RESET'])); $form->runIf('reopen_ok', function () use ($session) { $year = Years::get((int) f('year')); $year->reopen($session->getUser()->id); }, 'reopen_year', Utils::getSelfURI(['msg' => 'REOPEN'])); if (FILE_STORAGE_BACKEND !== 'SQLite' && ENABLE_TECH_DETAILS) { $form->runIf('migrate_backend_ok', function () { Files::migrateStorage('SQLite', FILE_STORAGE_BACKEND, null, FILE_STORAGE_CONFIG); Files::truncateStorage('SQLite'); }, 'migrate_backend', Utils::getSelfURI(['msg' => 'MIGRATION_OK'])); $form->runIf('migrate_back_ok', function () { Files::migrateStorage(FILE_STORAGE_BACKEND, 'SQLite', FILE_STORAGE_CONFIG, null); }, 'migrate_back', Utils::getSelfURI(['msg' => 'MIGRATION_OK'])); } $tpl->assign('closed_years', Years::listClosedAssoc()); $tpl->assign('quota_used', $quota_used); $tpl->assign('storage_backend', FILE_STORAGE_BACKEND); $tpl->display('admin/config/advanced/index.tpl'); |