fix: menu direct par action, plus de choix intermediaire

Chaque action est un item de menu separe : "Imposer un livret",
"Delivretiser", etc. Un clic = une action. Seul le creep est
demande via app.response. Corrige aussi "doc is not defined".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jules Dubois
2026-06-25 19:09:38 +02:00
parent a603c6d919
commit fd92b80350
2 changed files with 23 additions and 106 deletions

View File

@@ -236,63 +236,12 @@ try {
});
} catch (e) {}
try {
app.addMenuItem({
cName: "CDImpLivret",
cUser: "Livret / Delivretiser",
cParent: "ImpositionPro",
cExec: "try{CDImp.Livret.lancer();}catch(e){app.alert('Erreur: '+e);}",
cEnable: "event.rc = true;",
nPos: 0
});
} catch (e) {}
try {
app.addMenuItem({
cName: "CDImpNUp",
cUser: "N-Up / Step and Repeat",
cParent: "ImpositionPro",
cExec: "if(CDImp.NUp&&CDImp.NUp.lancer)CDImp.NUp.lancer();",
cEnable: "event.rc = true;",
nPos: 1
});
} catch (e) {}
try {
app.addMenuItem({
cName: "CDImpDecoupe",
cUser: "Decoupe et reassemblage",
cParent: "ImpositionPro",
cExec: "if(CDImp.Decoupe&&CDImp.Decoupe.lancer)CDImp.Decoupe.lancer();",
cEnable: "event.rc = true;",
nPos: 2
});
} catch (e) {}
try {
app.addMenuItem({
cName: "CDImpMarges",
cUser: "Marges et cadrages",
cParent: "ImpositionPro",
cExec: "if(CDImp.Marges&&CDImp.Marges.lancer)CDImp.Marges.lancer();",
cEnable: "event.rc = true;",
nPos: 3
});
} catch (e) {}
try {
app.addMenuItem({
cName: "CDImpReperes",
cUser: "Reperes et numerotation",
cParent: "ImpositionPro",
cExec: "if(CDImp.Reperes&&CDImp.Reperes.lancer)CDImp.Reperes.lancer();",
cEnable: "event.rc = true;",
nPos: 4
});
} catch (e) {}
try {
app.addMenuItem({
cName: "CDImpAuto",
cUser: "Automatisation",
cParent: "ImpositionPro",
cExec: "if(CDImp.Auto&&CDImp.Auto.lancer)CDImp.Auto.lancer();",
cEnable: "event.rc = true;",
nPos: 5
});
} catch (e) {}
try { app.addMenuItem({ cName: "CDImpImposerLivret", cUser: "Imposer un livret", cParent: "ImpositionPro", cExec: "try{CDImp.Livret.imposer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 0 }); } catch(e){}
try { app.addMenuItem({ cName: "CDImpDelivretiser", cUser: "Delivretiser", cParent: "ImpositionPro", cExec: "try{CDImp.Livret.delivretiser();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 1 }); } catch(e){}
try { app.addMenuItem({ cName: "CDImpSep1", cUser: "-", cParent: "ImpositionPro", cExec: "", nPos: 2 }); } catch(e){}
try { app.addMenuItem({ cName: "CDImpNUp", cUser: "N-Up / Step and Repeat", cParent: "ImpositionPro", cExec: "try{CDImp.NUp.lancer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 3 }); } catch(e){}
try { app.addMenuItem({ cName: "CDImpDecoupe", cUser: "Decoupe et reassemblage", cParent: "ImpositionPro", cExec: "try{CDImp.Decoupe.lancer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 4 }); } catch(e){}
try { app.addMenuItem({ cName: "CDImpMarges", cUser: "Marges et cadrages", cParent: "ImpositionPro", cExec: "try{CDImp.Marges.lancer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 5 }); } catch(e){}
try { app.addMenuItem({ cName: "CDImpReperes", cUser: "Reperes et numerotation", cParent: "ImpositionPro", cExec: "try{CDImp.Reperes.lancer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 6 }); } catch(e){}
try { app.addMenuItem({ cName: "CDImpSep2", cUser: "-", cParent: "ImpositionPro", cExec: "", nPos: 7 }); } catch(e){}
try { app.addMenuItem({ cName: "CDImpAuto", cUser: "Automatisation", cParent: "ImpositionPro", cExec: "try{CDImp.Auto.lancer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 8 }); } catch(e) {}

View File

@@ -179,12 +179,7 @@ CDImp.Livret.construireDocument = function (srcDoc, planches, creepMm) {
* @param {Doc} doc document imposes (planches doubles), document actif si omis
*/
CDImp.Livret.delivretiser = function (doc) {
try {
doc = CDImp.Util.getDocActif(doc);
} catch (e) {
CDImp.Util.erreur(e.toString());
return;
}
var nPlanches = doc.numPages;
if (nPlanches % 2 !== 0) {
@@ -239,45 +234,23 @@ CDImp.Livret.delivretiser = function (doc) {
// -----------------------------------------------------------------------
// Point d'entree du module (appele depuis le panneau principal, Module 1)
// -----------------------------------------------------------------------
CDImp.Livret.lancer = function (doc) {
try {
doc = CDImp.Util.getDocActif(doc);
} catch (e) {
app.alert("Veuillez ouvrir un document PDF.");
return;
}
CDImp.Livret.imposer = function () {
var doc = CDImp.Util.getDocActif();
var nPages = doc.numPages;
var reste = nPages % 4;
var info = "Document : " + nPages + " pages";
var info = "Document : " + nPages + " pages.";
if (reste !== 0) {
info += " (pas multiple de 4, " + (4 - reste) + " page(s) blanche(s) seront ajoutees a la fin)";
info += "\n" + (4 - reste) + " page(s) blanche(s) seront ajoutees a la fin.";
}
var saisie = app.response({
cQuestion: info + "\n\nTapez une commande :\n I = Imposer (creer un livret)\n D = Delivretiser\n I,creep = Imposer avec chasse en mm (ex: I,0.5)\n\nExemples : I ou I,0.3 ou D",
cTitle: "Livret / Delivretiser",
cDefault: "I"
cQuestion: info + "\n\nCompensation de chasse (creep) en mm par feuille :\n(0 = aucune)",
cTitle: "Imposer un livret",
cDefault: "0"
});
if (!saisie) return;
saisie = saisie.toUpperCase().replace(/\s/g, "");
if (saisie === "D") {
CDImp.Livret.delivretiser(doc);
return;
}
var creepMm = 0;
if (saisie.indexOf(",") !== -1) {
var parts = saisie.split(",");
saisie = parts[0];
creepMm = parseFloat(parts[1]) || 0;
}
if (saisie !== "I") {
app.alert("Commande non reconnue. Tapez I ou D.");
return;
}
if (saisie === null) return;
var creepMm = parseFloat(saisie) || 0;
if (reste !== 0) {
CDImp.Livret.ajouterPagesBlanches(doc, 4 - reste, "fin");
@@ -285,19 +258,14 @@ CDImp.Livret.lancer = function (doc) {
}
var planches = CDImp.Livret.calculerOrdre(nPages);
var destDoc;
try {
destDoc = CDImp.Livret.construireDocument(doc, planches, creepMm);
} catch (e) {
app.alert("Erreur lors de la construction du livret : " + e.toString());
return;
}
var destDoc = CDImp.Livret.construireDocument(doc, planches, creepMm);
if (CDImp.Auto && CDImp.Auto.enregistrerDerniereAction) {
CDImp.Auto.enregistrerDerniereAction("Livret.imposer", { creepMm: creepMm });
}
app.alert("Livret cree avec succes (" + planches.length + " planches).\nPensez a l'enregistrer sous un nouveau nom.");
CDImp.Util.info("Livret cree avec succes (" + planches.length + " planches).\nPensez a l'enregistrer (Ctrl+S) sous un nouveau nom.");
};