Auto-set DefaultForm for the first form added

When adding the first form to a processor, DefaultForm is now set
automatically without requiring the --main flag. The --main flag
is still available to reassign DefaultForm to a different form.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-02-07 19:31:19 +03:00
parent 43333f1481
commit e3daaf233d
2 changed files with 8 additions and 5 deletions
+2 -2
View File
@@ -25,7 +25,7 @@ allowed-tools:
| ProcessorName | да | — | Имя обработки (должна существовать) | | ProcessorName | да | — | Имя обработки (должна существовать) |
| FormName | да | — | Имя формы | | FormName | да | — | Имя формы |
| Synonym | нет | = FormName | Синоним формы | | Synonym | нет | = FormName | Синоним формы |
| --main | нет | false | Установить как форму по умолчанию | | --main | нет | авто | Установить как форму по умолчанию (автоматически для первой формы) |
| SrcDir | нет | `src` | Каталог исходников | | SrcDir | нет | `src` | Каталог исходников |
## Команда ## Команда
@@ -48,7 +48,7 @@ pwsh -NoProfile -File .claude/skills/epf-add-form/scripts/add-form.ps1 -Processo
## Что модифицируется ## Что модифицируется
- `<SrcDir>/<ProcessorName>.xml` — добавляется `<Form>` в `ChildObjects`, при `--main` обновляется `DefaultForm` - `<SrcDir>/<ProcessorName>.xml` — добавляется `<Form>` в `ChildObjects`, обновляется `DefaultForm` (автоматически если это первая форма, или явно при `--main`)
## Детали ## Детали
@@ -174,8 +174,11 @@ if ($firstTemplate) {
} }
} }
# При -Main обновить DefaultForm # Обновить DefaultForm: явно при -Main, или автоматически если это первая форма
if ($Main) { $existingForms = $childObjects.SelectNodes("md:Form", $nsMgr)
$isFirstForm = ($existingForms.Count -eq 1)
if ($Main -or $isFirstForm) {
$defaultForm = $xmlDoc.SelectSingleNode("//md:DefaultForm", $nsMgr) $defaultForm = $xmlDoc.SelectSingleNode("//md:DefaultForm", $nsMgr)
if ($defaultForm) { if ($defaultForm) {
$defaultForm.InnerText = "ExternalDataProcessor.$ProcessorName.Form.$FormName" $defaultForm.InnerText = "ExternalDataProcessor.$ProcessorName.Form.$FormName"
@@ -197,6 +200,6 @@ Write-Host "[OK] Создана форма: $FormName"
Write-Host " Метаданные: $formMetaPath" Write-Host " Метаданные: $formMetaPath"
Write-Host " Описание: $formXmlPath" Write-Host " Описание: $formXmlPath"
Write-Host " Модуль: $modulePath" Write-Host " Модуль: $modulePath"
if ($Main) { if ($Main -or $isFirstForm) {
Write-Host " DefaultForm обновлён" Write-Host " DefaultForm обновлён"
} }