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: d209e3b5fcb31837d359c183df51685f90a6a8d6055754a0a8939f03526b8ac2
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
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
	</p>
{else if $_GET.msg == 'REOPEN'}
	<p class="block confirm">
		L'exercice sélectionné a été réouvert.
	</p>
{/if}

{if count($closed_years)}
<form method="post" action="{$self_url_no_qs}">


<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>









</form>


















{/if}



<h2 class="ruler">Actions destructrices</h2>

<form method="post" action="{$self_url_no_qs}">

<fieldset>
	<legend>Remise à zéro</legend>







<

>

















>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>







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');