Overview
Comment: | Add pagination to virtual documents view, fix [63cd9cc9b96d2eb3340827098de6be5c5dae7e48] |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | stable |
Files: | files | file ages | folders |
SHA3-256: |
3d283a05a5487a5036d413bf216a7998 |
User & Date: | bohwaz on 2021-09-16 16:56:41 |
Other Links: | manifest | tags |
Context
2021-09-16
| ||
17:41 | Fix image tag in file preview, as reported by @Eric. Also fix URL prefix for links in specific contexts in admin. check-in: 9e33c7cafd user: bohwaz tags: trunk, stable | |
16:56 | Add pagination to virtual documents view, fix [63cd9cc9b96d2eb3340827098de6be5c5dae7e48] check-in: 3d283a05a5 user: bohwaz tags: trunk, stable | |
16:32 | Fix [c2d24575a84954ef0718e35e64f1e9ff67be4c5c] search in multiline fields failed check-in: 495331c9bf user: bohwaz tags: trunk, stable | |
Changes
Modified src/templates/docs/index.tpl from [0f3ba54f60] to [fb879e1eb5].
1 2 3 4 5 6 7 8 9 10 11 | <?php use Garradin\Entities\Files\File; ?> {include file="admin/_head.tpl" title="Documents" current="docs"} <nav class="tabs"> <aside> {if $context == File::CONTEXT_DOCUMENTS} {linkbutton shape="search" label="Rechercher" href="search.php" target="_dialog"} {/if} {if $can_mkdir} | | | | | | | | | 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <?php use Garradin\Entities\Files\File; ?> {include file="admin/_head.tpl" title="Documents" current="docs"} <nav class="tabs"> <aside> {if $context == File::CONTEXT_DOCUMENTS} {linkbutton shape="search" label="Rechercher" href="search.php" target="_dialog"} {/if} {if $can_mkdir} {linkbutton shape="plus" label="Nouveau répertoire" target="_dialog" href="!docs/new_dir.php?path=%s"|args:$path} {/if} {if $can_upload} {linkbutton shape="plus" label="Nouveau fichier texte" target="_dialog" href="!docs/new_file.php?path=%s"|args:$path} {linkbutton shape="upload" label="Ajouter un fichier" target="_dialog" href="!common/files/upload.php?p=%s"|args:$path} {/if} </aside> <ul> <li{if $context == File::CONTEXT_DOCUMENTS} class="current"{/if}><a href="./">Documents</a></li> {if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ)} <li{if $context == File::CONTEXT_TRANSACTION} class="current"{/if}><a href="./?path=<?=File::CONTEXT_TRANSACTION?>">Fichiers des écritures</a></li> {/if} {if $session->canAccess($session::SECTION_USERS, $session::ACCESS_READ)} <li{if $context == File::CONTEXT_USER} class="current"{/if}><a href="./?path=<?=File::CONTEXT_USER?>">Fichiers des membres</a></li> {/if} {if $session->canAccess($session::SECTION_WEB, $session::ACCESS_ADMIN)} <li{if $context == File::CONTEXT_SKELETON} class="current"{/if}><a href="./?path=<?=File::CONTEXT_SKELETON?>">Squelettes du site web</a></li> {/if} </ul> </nav> <nav class="breadcrumbs"> {if count($breadcrumbs) > 1} {linkbutton href="?path=%s"|args:$parent_path label="Retour au répertoire parent" shape="left"} {/if} {if $context == File::CONTEXT_TRANSACTION} {if $context_ref} {linkbutton href="!acc/transactions/details.php?id=%d"|args:$context_ref|local_url label="Détails de l'écriture" shape="menu"} {/if} {elseif $context == File::CONTEXT_USER} {if $context_ref} {linkbutton href="!membres/fiche.php?id=%d"|args:$context_ref|local_url label="Fiche du membre" shape="user"} {/if} {else} <ul> {foreach from=$breadcrumbs item="name" key="bc_path"} <li><a href="?path={$bc_path}">{$name}</a></li> {/foreach} </ul> {/if} <aside class="quota"> <h4><b>{$quota_left|size_in_bytes}</b> libres sur <i>{$quota_max|size_in_bytes}</i></h4> <span class="meter"><span style="width: {$quota_percent}%"></span></span> |
︙ | ︙ | |||
94 95 96 97 98 99 100 | {if $file.type == $file::TYPE_DIRECTORY} <tr> {if $can_delete} <td class="check"> {input type="checkbox" name="check[]" value=$file.path} </td> {/if} | | | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | {if $file.type == $file::TYPE_DIRECTORY} <tr> {if $can_delete} <td class="check"> {input type="checkbox" name="check[]" value=$file.path} </td> {/if} <th><a href="?path={$file.path}">{$file.name}</a></th> <td></td> <td>Répertoire</td> <td></td> <td class="actions"> {if $can_write && ($context == File::CONTEXT_SKELETON || $context == File::CONTEXT_DOCUMENTS)} {linkbutton href="!common/files/rename.php?p=%s"|args:$file.path label="Renommer" shape="minus" target="_dialog"} {/if} |
︙ | ︙ | |||
175 176 177 178 179 180 181 | {include file="common/dynamic_list_head.tpl" check=false} {foreach from=$list->iterate() item="item"} <tr> {if $context == File::CONTEXT_TRANSACTION} <td class="num"><a href="{$admin_url}acc/transactions/details.php?id={$item.id}">#{$item.id}</a></td> | | | | | > > | | 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 | {include file="common/dynamic_list_head.tpl" check=false} {foreach from=$list->iterate() item="item"} <tr> {if $context == File::CONTEXT_TRANSACTION} <td class="num"><a href="{$admin_url}acc/transactions/details.php?id={$item.id}">#{$item.id}</a></td> <th><a href="?path={$item.path}">{$item.label}</a></th> <td>{$item.date|date_short}</td> <td>{$item.reference}</td> <td>{$item.year}</td> <td class="actions"> {linkbutton href="!docs/?path=%s"|args:$item.path label="Fichiers" shape="menu"} {linkbutton href="!acc/transactions/details.php?id=%d"|args:$item.id label="Écriture" shape="search"} </td> {else} <td class="num"><a href="{$admin_url}membres/fiche.php?id={$item.id}">#{$item.number}</a></td> <th><a href="?path={$item.path}">{$item.identity}</a></th> <td class="actions"> {linkbutton href="!docs/?path=%s"|args:$item.path label="Fichiers" shape="menu"} {linkbutton href="!membres/fiche.php?id=%d"|args:$item.id label="Fiche membre" shape="user"} </td> {/if} </tr> {/foreach} </tbody> </table> {pagination url=$list->paginationURL() page=$list.page bypage=$list.per_page total=$list->count()} {/if} <p class="actions"> {linkbutton href="!docs/zip.php?path=%s"|args:$path label="Télécharger ce répertoire (ZIP)" shape="download"} </p> </form> {else} <p class="alert block">Il n'y a aucun fichier dans ce répertoire.</p> {/if} {include file="admin/_foot.tpl"} |
Modified src/templates/web/config.tpl from [cbe2f68864] to [6540f9cc0f].
︙ | ︙ | |||
118 119 120 121 122 123 124 | <p class="actions"> Pour les squelettes sélectionnés : <input type="submit" name="reset" value="Réinitialiser" onclick="return confirm('Effacer toute modification locale et restaurer les squelettes d\'installation ?');" /> {csrf_field key="squelettes"} </p> <p> | | | 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | <p class="actions"> Pour les squelettes sélectionnés : <input type="submit" name="reset" value="Réinitialiser" onclick="return confirm('Effacer toute modification locale et restaurer les squelettes d\'installation ?');" /> {csrf_field key="squelettes"} </p> <p> {linkbutton href="!docs/?path=skel" label="Gérer les fichiers de squelettes" shape="folder"} </p> </fieldset> </form> {/if} {include file="admin/_foot.tpl"} |
Modified src/www/admin/common/files/_preview.php from [35c5f4da82] to [cc03d1dcb7].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php namespace Garradin; use Garradin\Files\Files; use Garradin\Entities\Files\File; use Garradin\Web\Render\Render; use Garradin\Web\Web; require_once __DIR__ . '/../../_inc.php'; $page = null; if ($path = qg('f')) { $file = Files::get($path); if (!$file || !$file->checkReadAccess($session)) { throw new UserException('Vous n\'avez pas le droit de lire ce fichier.'); } | > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php namespace Garradin; use Garradin\Files\Files; use Garradin\Entities\Files\File; use Garradin\Web\Render\Render; use Garradin\Web\Web; require_once __DIR__ . '/../../_inc.php'; $page = null; $content = f('content'); if (null == $content) { throw new UserException('Aucun contenu à prévisualiser'); } if ($path = qg('f')) { $file = Files::get($path); if (!$file || !$file->checkReadAccess($session)) { throw new UserException('Vous n\'avez pas le droit de lire ce fichier.'); } |
︙ | ︙ |
Modified src/www/admin/docs/action.php from [a63ecf9df6] to [1987800963].
︙ | ︙ | |||
29 30 31 32 33 34 35 | } unset($file); foreach ($check as $file) { $file->delete(); } | | | | 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 | } unset($file); foreach ($check as $file) { $file->delete(); } }, $csrf_key, '!docs/?path=' . $parent); $form->runIf(f('move') && f('select'), function () use ($check, $session) { foreach ($check as &$file) { $file = Files::get($file); if (!$file || !$file->checkWriteAccess($session) || $file->context() != File::CONTEXT_DOCUMENTS) { throw new UserException('Impossible de déplacer un fichier car vous n\'avez pas le droit de le modifier'); } } $target = f('select'); unset($file); foreach ($check as $file) { $file->move($target); } }, $csrf_key, '!docs/?path=' . $parent); $count = count($check); $extra = compact('parent', 'action', 'check'); $tpl->assign(compact('csrf_key', 'extra', 'action', 'count')); if ($action == 'delete') { |
︙ | ︙ |
Modified src/www/admin/docs/index.php from [8becda408f] to [7fe6a0182d].
1 2 3 4 5 6 7 8 9 10 11 | <?php namespace Garradin; use Garradin\Files\Files; use Garradin\Files\Transactions; use Garradin\Files\Users; use Garradin\Entities\Files\File; require_once __DIR__ . '/_inc.php'; | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php namespace Garradin; use Garradin\Files\Files; use Garradin\Files\Transactions; use Garradin\Files\Users; use Garradin\Entities\Files\File; require_once __DIR__ . '/_inc.php'; $path = trim(qg('path')) ?: File::CONTEXT_DOCUMENTS; $context = Files::getContext($path); $context_ref = Files::getContextRef($path); $list = null; // Specific lists for some contexts if ($context == File::CONTEXT_TRANSACTION) { |
︙ | ︙ |
Modified src/www/admin/docs/new_dir.php from [e00667d877] to [d2c27619fc].
1 2 3 4 5 6 7 8 9 | <?php namespace Garradin; use Garradin\Files\Files; use Garradin\Entities\Files\File; require_once __DIR__ . '/_inc.php'; | | | | 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 | <?php namespace Garradin; use Garradin\Files\Files; use Garradin\Entities\Files\File; require_once __DIR__ . '/_inc.php'; $parent = trim(qg('path')); if (!File::checkCreateAccess(File::CONTEXT_DOCUMENTS, $session)) { throw new UserException('Vous n\'avez pas le droit de créer de répertoire ici.'); } $csrf_key = 'create_dir'; $form->runIf('create', function () use ($parent) { $name = trim(f('name')); File::validatePath($parent . '/' . $name); File::createDirectory($parent, $name); }, $csrf_key, '!docs/?path=' . $parent); $tpl->assign(compact('csrf_key')); $tpl->display('docs/new_dir.tpl'); |
Modified src/www/admin/docs/new_file.php from [ad63719729] to [b548528de7].
1 2 3 4 5 6 7 8 9 | <?php namespace Garradin; use Garradin\Files\Files; use Garradin\Entities\Files\File; require_once __DIR__ . '/_inc.php'; | | | | 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 | <?php namespace Garradin; use Garradin\Files\Files; use Garradin\Entities\Files\File; require_once __DIR__ . '/_inc.php'; $parent = trim(qg('path')); if (!File::checkCreateAccess(File::CONTEXT_DOCUMENTS, $session)) { throw new UserException('Vous n\'avez pas le droit de créer de répertoire ici.'); } $csrf_key = 'create_file'; $form->runIf('create', function () use ($parent) { $name = trim(f('name')); if (!strpos($name, '.')) { $name .= '.skriv'; } File::validatePath($parent . '/' . $name); $name = File::filterName($name); $file = File::createAndStore($parent, $name, null, ''); }, $csrf_key, '!docs/?path=' . $parent); $tpl->assign(compact('csrf_key')); $tpl->display('docs/new_file.tpl'); |
Modified src/www/admin/docs/zip.php from [a9aa6c6682] to [21577262c1].
1 2 3 4 5 6 7 8 9 10 11 | <?php namespace Garradin; use Garradin\Files\Files; use Garradin\Files\Transactions; use Garradin\Files\Users; use Garradin\Entities\Files\File; require_once __DIR__ . '/_inc.php'; | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php namespace Garradin; use Garradin\Files\Files; use Garradin\Files\Transactions; use Garradin\Files\Users; use Garradin\Entities\Files\File; require_once __DIR__ . '/_inc.php'; $path = trim(qg('path')) ?: File::CONTEXT_DOCUMENTS; $name = preg_replace('/[^\p{L}_-]+/i', '_', $path); $name = sprintf('%s - Fichiers - %s.zip', Config::getInstance()->get('nom_asso'), $name); header('Content-type: application/zip'); header(sprintf('Content-Disposition: attachment; filename="%s"', $name)); Files::zip($path, $session); |