fix button editor validation feedback
This commit is contained in:
@@ -4356,14 +4356,20 @@ shortcutWrap.addView(scBody);
|
|||||||
delete newBtn.launchUserId;
|
delete newBtn.launchUserId;
|
||||||
|
|
||||||
var isValid = true;
|
var isValid = true;
|
||||||
|
var validationMessage = "";
|
||||||
|
function markInvalid(inputObj, msg) {
|
||||||
|
isValid = false;
|
||||||
|
if (!validationMessage) validationMessage = String(msg || "请补全必填项");
|
||||||
|
try { if (inputObj && inputObj.setError) inputObj.setError(String(msg || "必填")); } catch(eMark) { safeLog(null, 'e', "catch " + String(eMark)); }
|
||||||
|
}
|
||||||
|
|
||||||
if (newBtn.type === "shell") {
|
if (newBtn.type === "shell") {
|
||||||
var c = inputShell.getValue();
|
var c = inputShell.getValue();
|
||||||
if (!c) { inputShell.setError("请输入命令"); isValid=false; }
|
if (!c) { markInvalid(inputShell, "请输入命令"); }
|
||||||
else { inputShell.setError(null); newBtn.cmd = c; newBtn.cmd_b64 = encodeBase64Utf8(c); newBtn.root = true; }
|
else { inputShell.setError(null); newBtn.cmd = c; newBtn.cmd_b64 = encodeBase64Utf8(c); newBtn.root = true; }
|
||||||
} else if (newBtn.type === "app") {
|
} else if (newBtn.type === "app") {
|
||||||
var p = inputPkg.getValue();
|
var p = inputPkg.getValue();
|
||||||
if (!p) { inputPkg.setError("请输入包名"); isValid=false; }
|
if (!p) { markInvalid(inputPkg, "请输入包名"); }
|
||||||
else { inputPkg.setError(null); newBtn.pkg = p; }// # 保存:启动用户ID(可选)
|
else { inputPkg.setError(null); newBtn.pkg = p; }// # 保存:启动用户ID(可选)
|
||||||
try {
|
try {
|
||||||
var au = inputAppLaunchUser.getValue();
|
var au = inputAppLaunchUser.getValue();
|
||||||
@@ -4376,20 +4382,20 @@ try {
|
|||||||
|
|
||||||
} else if (newBtn.type === "broadcast") {
|
} else if (newBtn.type === "broadcast") {
|
||||||
var a = inputAction.getValue();
|
var a = inputAction.getValue();
|
||||||
if (!a) { inputAction.setError("请输入 Action"); isValid=false; }
|
if (!a) { markInvalid(inputAction, "请输入 Action"); }
|
||||||
else { inputAction.setError(null); newBtn.action = a; }
|
else { inputAction.setError(null); newBtn.action = a; }
|
||||||
|
|
||||||
var ex = inputExtras.getValue();
|
var ex = inputExtras.getValue();
|
||||||
if (ex) {
|
if (ex) {
|
||||||
try { newBtn.extras = JSON.parse(ex); inputExtras.setError(null); }
|
try { newBtn.extras = JSON.parse(ex); inputExtras.setError(null); }
|
||||||
catch(e) { inputExtras.setError("JSON 格式错误"); isValid=false; }
|
catch(e) { markInvalid(inputExtras, "JSON 格式错误"); }
|
||||||
}
|
}
|
||||||
} else if (newBtn.type === "shortcut") {
|
} else if (newBtn.type === "shortcut") {
|
||||||
var sp = inputScPkg.getValue();
|
var sp = inputScPkg.getValue();
|
||||||
var sid = inputScId.getValue();
|
var sid = inputScId.getValue();
|
||||||
if (!sp) { inputScPkg.setError("请输入包名"); isValid=false; }
|
if (!sp) { markInvalid(inputScPkg, "请先选择快捷方式"); }
|
||||||
else { inputScPkg.setError(null); newBtn.pkg = sp; }
|
else { inputScPkg.setError(null); newBtn.pkg = sp; }
|
||||||
if (!sid) { inputScId.setError("请输入 shortcutId"); isValid=false; }
|
if (!sid) { markInvalid(inputScId, "请先选择快捷方式"); }
|
||||||
else { inputScId.setError(null); newBtn.shortcutId = sid; }
|
else { inputScId.setError(null); newBtn.shortcutId = sid; }
|
||||||
// # 保存:同时保存 intentUri/userId,供 JavaScript(startActivityAsUser) 脚本使用(锁定主/分身)
|
// # 保存:同时保存 intentUri/userId,供 JavaScript(startActivityAsUser) 脚本使用(锁定主/分身)
|
||||||
try { if (scSelectedIntentUri && scSelectedIntentUri.length > 0) newBtn.intentUri = String(scSelectedIntentUri); } catch(eSIU2) { safeLog(null, 'e', "catch " + String(eSIU2)); }
|
try { if (scSelectedIntentUri && scSelectedIntentUri.length > 0) newBtn.intentUri = String(scSelectedIntentUri); } catch(eSIU2) { safeLog(null, 'e', "catch " + String(eSIU2)); }
|
||||||
@@ -4399,7 +4405,10 @@ try {
|
|||||||
// # 保存:快捷方式仅使用 JavaScript 执行(取消 Shell/兜底)
|
// # 保存:快捷方式仅使用 JavaScript 执行(取消 Shell/兜底)
|
||||||
newBtn.shortcutRunMode = "js";
|
newBtn.shortcutRunMode = "js";
|
||||||
}
|
}
|
||||||
if (!isValid) return;
|
if (!isValid) {
|
||||||
|
try { self.toast(validationMessage || "请补全必填项"); } catch(eToastInvalid) {}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -54,8 +54,8 @@
|
|||||||
"size": 22308
|
"size": 22308
|
||||||
},
|
},
|
||||||
"th_14_panels.js": {
|
"th_14_panels.js": {
|
||||||
"sha256": "ad0db8e379445b83fd3c86d335b12f084498e1dd876550039a25a9c9d7e12803",
|
"sha256": "312d8b017a7f378abb091919062e26f7076ddf22930bcf1c50a7f5bcbfead76c",
|
||||||
"size": 294962
|
"size": 295444
|
||||||
},
|
},
|
||||||
"th_15_extra.js": {
|
"th_15_extra.js": {
|
||||||
"sha256": "11294f672edc0cf85cc662211d73a234301c252f2fa062e8c4b52a2cd3fd8c74",
|
"sha256": "11294f672edc0cf85cc662211d73a234301c252f2fa062e8c4b52a2cd3fd8c74",
|
||||||
@@ -68,5 +68,5 @@
|
|||||||
},
|
},
|
||||||
"keyId": "toolhub-targets-2026-rsa3072",
|
"keyId": "toolhub-targets-2026-rsa3072",
|
||||||
"schema": 2,
|
"schema": 2,
|
||||||
"version": 20260521210640
|
"version": 20260521211541
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
X1m1Kq0cC137nSen7CwXEodW4fD29TnwczflnH6hXlmwSfOw8+GaNx/kOqfUWxOwxJF7AlzBBOh8bxpc8iVq2SuPfm4qIz4SwW38YSGzTu0gFBNjO9DH1woN33rt3RhIEN2uYQCIef8W8JbtZkcgjS9sOnC42thixgdzmxZkaZPVnw3siIL9bdKyzKNTiro++A4ZRjf3rSuv4cGJ38kBqOu0w0D/dR7S+/iiSqGL710cEJtWXnfgzFcLzewOACUc7XfWT9k3dJraqc/OuvgIQUIuToIaPzIccxBoSppW7OlYXpc4EdR2vspMjlIjyMsaOMn2B3LxCK+BLqp6l0iCQ8HNkHIKlTzk9Fgzz86USf0DwrW7/SNNYNUkyepHnk13O6Dx9CE3j96Qb4V8nKK4HGvMUAg2MRx5yEvbqmgN2P6ogi55OfAlR2kXdhCeMkrpB0wPKg5AtJ0l/d7uJzKgys1vAaXACN6NzSJVSOyVq16qBgk5yH2sD6M/AQ8ykZdn
|
R14Kh/NL3HE8ntJrip1pAXBuU9e/y+EHQlFOonPb06+VGFNcQVJlph0Cb8wQf6zUMjhmFGsWrW8Bml8PNQUD8ngqOJb8cdpobnfvPYJ/slXIdIV/+5S1i5syJM4Ht06nnSfx3Ck6TWueny8sfPnjH2VEORSX9JGuifOcf9ZTmBEvSoLWA3Dl6S2FS+289vod8Dtpxd9+at4cWcragSxta8GKMqlqp4BQYN8Zt89iELAjkKLELoe2tMtutyLci4uA4dZZemoUDhuM7qBa+M9xGoYwIxXUoogHug8ZpKM6RC3+TDYP0fPeEdnfomqjeIXA3zEsR6mipWcftOhplB2gQ+RazuGhMQsf7yb/gNnoh1y/YXdRuvyPoIqcZwv5w7QNSpzMidg1BB/F7OAK+Np2qLJIJfkYxtw7bsEJtzC/pkts49g8IREVNaGZKkl6Uea6LzLVO0RUxBLQwnBLshgcNrHmGULCrYU4u+Un31Fo+h+zzzAGl8Yqo3bkZTW8IxCJ
|
||||||
|
|||||||
Reference in New Issue
Block a user