Admin Runique
Documentation / Admin Runique / Référence des blocs — admin

Référence des blocs — admin

Les clés à passer à .block(…), .block_stylesheet(…), .global_block(…) et .global_block_stylesheet(…). Le fonctionnement est décrit dans Surcharge.

Les clés à passer à .block(…), .block_stylesheet(…), .global_block(…) et .global_block_stylesheet(…). Le fonctionnement est décrit dans Surcharge.

use runique::admin::template::{Block, GlobalBlock, Page};

Le template de Runique de chaque bloc est le meilleur point de départ : copiez-le dans vos templates et modifiez-le. Il se trouve dans les sources du crate, sous templates/ (pour un crate installé depuis crates.io : ~/.cargo/registry/src/*/runique-<version>/templates/).


Blocs des pages d'un modèle — `Block`

Remplaçables pour tous les modèles (AdminTemplate) ou pour un seul (ModelTemplates).

Clé RustNom (dev_block)PageTemplate de RuniqueFeuille de Runique
Block::ListTablelist_tablelisteadmin/blocks/list/table.htmlcss/admin/blocks/list.css
Block::ListFilterslist_filterslisteadmin/blocks/list/filters.html—
Block::ListSearchlist_searchlisteadmin/blocks/list/search.html—
Block::ListPaginationlist_paginationlisteadmin/blocks/list/pagination.html—
Block::ListBulklist_bulklisteadmin/blocks/list/bulk.html—
Block::Kebabkebabliste (menu de chaque ligne)admin/blocks/common/kebab.html—
Block::DetailFieldsdetail_fieldsdétailadmin/blocks/detail/fields.htmlcss/admin/blocks/detail.css
Block::DetailActionsdetail_actionsdétailadmin/blocks/detail/actions.html—
Block::DetailGroupsdetail_groupsdétailadmin/blocks/detail/groups.htmlcss/admin/blocks/rights.css
Block::DetailTransferdetail_transferdétailadmin/blocks/detail/transfer.html—
Block::FormFieldsform_fieldscréation, éditionadmin/blocks/form/fields.html—
Block::FormActionsform_actionscréation, éditionadmin/blocks/form/actions.html—
Block::DeleteWarningdelete_warningsuppressionadmin/blocks/delete/warning.html—
Block::DeleteActionsdelete_actionssuppressionadmin/blocks/delete/actions.html—

FormFields et FormActions sont partagés par la création et l'édition : les remplacer change les deux pages.

Blocs du layout et des pages sans modèle — `GlobalBlock`

Remplaçables pour tous seulement (AdminTemplate).

Clé RustNom (dev_block)PageTemplate de RuniqueFeuille de Runique
GlobalBlock::Sidebarsidebartoutes sauf la connexionadmin/blocks/layout/sidebar.html—
GlobalBlock::Topbartopbartoutes sauf la connexion (droite de la barre du haut : thème, retour au site, déconnexion)admin/blocks/layout/topbar_actions.html—
GlobalBlock::DashboardTabledashboard_tabletableau de bordadmin/blocks/dashboard/table.htmlcss/admin/blocks/dashboard.css
GlobalBlock::DashboardGroupsdashboard_groupstableau de bordadmin/blocks/dashboard/my_groups.html—
GlobalBlock::HistoryTablehistory_tablehistoriqueadmin/blocks/history/table.html—
GlobalBlock::HistoryFiltershistory_filtershistoriqueadmin/blocks/history/filters.html—
GlobalBlock::HistoryActionBadgehistory_action_badgehistorique, entrée de l'historiqueadmin/blocks/history/action_badge.html—
GlobalBlock::RightsTablerights_tabledroitsadmin/blocks/rights/table.html—

Rappel : quand un bloc a une feuille chez Runique, block_stylesheet / global_block_stylesheet la remplace ; sinon la vôtre s'ajoute.


Pages — `Page`

Utilisé par ModelTemplates::page, page_stylesheet (global et par modèle).

Clé RustRemplacement globalPar modèle
Page::Login.with_loginnon
Page::Dashboard.with_dashboardnon
Page::List.with_listoui
Page::Create.with_createoui
Page::Edit.with_editoui
Page::Detail.with_detailoui
Page::Delete.with_deleteoui
Page::History.with_historynon
Page::HistoryDiff.with_history_diffnon
Page::Rightsnonnon
Page::Transfernonnon

Blocs Tera des templates de Runique

Une page qui étend un template de Runique peut redéfinir ses {% block %} Tera (à ne pas confondre avec les blocs dev_block ci-dessus). Utilisez {{ super() }} pour garder le contenu d'origine et ajouter autour.

TemplateBlocs Tera
admin/admin_template.htmllang, title, extra_css, layout, sidebar, topbar, messages, content, extra_js, footer
admin_base.htmlremplit extra_css (feuilles de style), sidebar, topbar (contient breadcrumb), extra_js
admin/list.htmltitle, breadcrumb, content, list_header, extra_css, extra_js
admin/list_partial.htmllist_search, list_group_action, list_table, list_pagination, list_filters
admin/create.htmltitle, breadcrumb, content, create_header, create_form, create_form_fields, create_form_actions, extra_js
admin/edit.htmltitle, breadcrumb, content, edit_header, edit_form, edit_form_fields, edit_form_actions, extra_js
admin/detail.htmltitle, breadcrumb, content, detail_header, detail_actions, detail_table, detail_groups, detail_transfer
admin/delete.htmltitle, breadcrumb, content, delete_header, delete_warning, delete_actions
admin/dashboard.htmltitle, breadcrumb, content, dashboard_header, dashboard_groups, dashboard_stats, dashboard_table
admin/history.htmltitle, breadcrumb, content, history_header, history_filters, history_table, history_pagination
admin/history_diff.htmltitle, breadcrumb, content, history_entry_header, history_entry_changes

Pour changer un seul bloc, préférez .block(…) : il ne dépend pas de la structure de la page et peut viser un seul modèle.


Thème CSS — variables

Toutes les feuilles de l'admin lisent les variables de css/admin/variables.css. Le thème par défaut est sombre (:root) ; le thème clair est défini sous [data-theme="light"], posé sur <html> par le bouton de thème. Une feuille qui change le thème doit donc redéfinir les deux.

Cette feuille est toujours chargée, même sur une page remplacée avec page_stylesheet.

GroupeVariables
Fonds--bg-main, --bg-card, --bg-sidebar, --bg-input, --bg-hover, --bg-active, --overlay
Texte--text-main, --text-muted, --text-sidebar, --label, --on-accent
Accent--accent, --accent-hover, --accent-light, --accent-gradient, --focus-ring
États--success, --success-light, --danger, --danger-light, --danger-border, --danger-ring, --warning, --warning-light, --info, --info-light
Bordures et ombres--border, --border-light, --radius-sm, --radius, --radius-lg, --shadow-sm, --shadow, --shadow-lg
Tailles--sidebar-width, --sidebar-collapsed, --topbar-height, --content-max, --control-height, --control-height-sm
Polices--font-sans, --font-mono
Empilement--z-sticky, --z-dropdown, --z-bar, --z-sidebar, --z-drawer, --z-overlay, --z-modal
Divers--transition

Il n'y a pas de méthode dédiée pour une feuille de thème. Elle se charge sur toutes les pages (sauf la connexion) en l'attachant à un bloc présent partout et sans feuille chez Runique :

.templates(|t| t.global_block_stylesheet(GlobalBlock::Topbar, "css/admin/theme.css"))
/* static/css/admin/theme.css */
:root {
  --accent: #e11d48;
  --accent-hover: #be123c;
}
[data-theme="light"] {
  --accent: #be123c;
  --accent-hover: #9f1239;
}

Elle est chargée après les feuilles de Runique : à spécificité égale, ses valeurs l'emportent.

Les classes CSS utilisées par les templates de Runique sont listées dans la référence des classes CSS.


Revenir au sommaire

SectionDescription
Surcharge templatesBloc, CSS, page : comment déclarer
Clés de contexteVariables injectées par le backend
Sommaire templateSommaire templates