From 5bc3ebfd4331351aeb84c528896f616cef2f024e Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Mon, 24 Mar 2008 09:43:40 +0000 Subject: [PATCH] fixed: DataForm will create fields with duplicate names but doesn't use them separately --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Wobject/DataForm.pm | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 396a21355..dbbcfde7f 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -15,6 +15,7 @@ - fixed: Collaboration System threads can return other object types when asked for replies - fixed: Able to cut or trash system assets - fixed: Can't purge uncommitted assets if not using its version tag + - fixed: DataForm will create fields with duplicate names but doesn't use them separately 7.5.7 - fixed: HttpProxy mixes original site's content encoding with WebGUI's diff --git a/lib/WebGUI/Asset/Wobject/DataForm.pm b/lib/WebGUI/Asset/Wobject/DataForm.pm index 67e1176bb..8dd6123c2 100644 --- a/lib/WebGUI/Asset/Wobject/DataForm.pm +++ b/lib/WebGUI/Asset/Wobject/DataForm.pm @@ -1068,6 +1068,13 @@ sub www_editFieldSave { my $name = $self->session->url->urlize($form->process("name") || $form->process("label")); $name =~ s/\-//g; $name =~ s/\///g; + my $exists = 1; + while ($exists) { + $exists = $self->session->db->quickScalar('SELECT DataForm_fieldId FROM DataForm_field WHERE assetId=? AND name=?', [$self->getId, $name]); + if ($exists) { + $name =~ s/(\d+|)$/$1 + 1/e; # increment number at the end of the name + } + } $self->setCollateral("DataForm_field","DataForm_fieldId",{ DataForm_fieldId=>$form->process("fid"), width=>$form->process("width", 'integer'),