Extraction des 7 templates dont le JS n'est PAS interpolé Jinja → 9 fichiers
static/js/*.js (4 243 lignes, -30 % du JS inline : 13 904 → 9 661) :
- agent_panel_1/_2 (bloc de 1 788 L livré sur CHAQUE page), library (1 039),
gitea_workspace (626), _icon_picker_1/_2, _ctx_menu, import, workspaces
- UN fichier par bloc : ordre/timing identiques (pas de defer, attributs
conservés dont data-cfasync), cache-busting via ?v={{ asset_version }}
(source unique A40), scripts externes = 'self' en CSP (pas de nonce requis)
- garde-fou : le script refuse tout bloc contenant {{ ou {%
- vérifs : node --check vert sur les 9, 0 script inline restant dans les
cibles, suite complète 1089/1089
Lint (la moitié « ajouter les templates à eslint » de l'audit) :
- eslint.config.mjs existait (flat v9, sans dépendances npm) mais AUCUN
binaire eslint n'était installé → npm i -g eslint
- `eslint static/js` → 0 erreur, 120 warnings (no-unused-vars 69,
no-empty 36, no-undef 15) sur 8 fichiers = baseline à nettoyer
- les extraits sont couverts d'office par la config (static/js/**/*.js)
Reste A27 : blocs interpolés Jinja (page_editor 2 517, local_workspace 2 031,
base 1 523, database_table 1 323, settings 1 093, realtime 531 ≈ 9 661 L)
→ extraction en 2 temps (config JSON injectée + script statique).
suite **1089/1089** · ruff OK · docs à jour
18 lines
756 B
JavaScript
18 lines
756 B
JavaScript
|
|
(function(){
|
|
var defaultAPI = {
|
|
open: function(){ document.dispatchEvent(new CustomEvent('fd-agent-toggle')); },
|
|
close: function(){ document.dispatchEvent(new CustomEvent('fd-agent-toggle', { detail: { close: true } })); },
|
|
toggle: function(){ document.dispatchEvent(new CustomEvent('fd-agent-toggle')); },
|
|
ask: function(){}, generate: function(){ return Promise.resolve(''); }
|
|
};
|
|
window.fdAgent = window.fdAgent || defaultAPI;
|
|
// Ctrl/Cmd+J — open / close the Agent panel from anywhere.
|
|
document.addEventListener('keydown', function(e){
|
|
if((e.ctrlKey || e.metaKey) && (e.key === 'j' || e.key === 'J')){
|
|
e.preventDefault();
|
|
if(window.fdAgent && window.fdAgent.toggle) window.fdAgent.toggle();
|
|
}
|
|
});
|
|
})();
|