some sqlform fixes
This commit is contained in:
parent
9de3c465a7
commit
31f951e498
2 changed files with 21 additions and 15 deletions
|
|
@ -1,8 +1,9 @@
|
|||
7.0.7
|
||||
- fix: sqlform trunctate search results doesn't work (Martin Kamerbeek /
|
||||
Procolix)
|
||||
- fixed some of bugs in the sqlform concerning file uploads and cross table
|
||||
constraints (Martin Kamerbeek / Procolix)
|
||||
- fixed some of bugs in the sqlform concerning file uploads, cross table
|
||||
constraints and the join selector on non-key/value pair fields (Martin
|
||||
Kamerbeek / Procolix)
|
||||
- fix: Add event does not work WebGUI 7.0.5 in combination with Proxy Caching
|
||||
turned off (Wouter van Oijen / ProcoliX)
|
||||
- When going to an image by it's webgui url in admin mode, you are now shown the image instead of being taken to the edit screen for the image.
|
||||
|
|
|
|||
|
|
@ -1863,8 +1863,21 @@ sub www_editFieldSave {
|
|||
$processed->{joinConstraintColumn} = $self->session->form->process("joinConstraintColumn");
|
||||
$processed->{joinConstraintField} = $self->session->form->process("joinConstraintField");
|
||||
|
||||
# Process fieldType ----------------------------------------------------------------------------
|
||||
my ($dbFieldType, $formFieldType) = $self->session->db->quickArray('select dbFieldType, formFieldType from SQLForm_fieldTypes '.
|
||||
' where fieldTypeId='.$self->session->db->quote($self->session->form->process("fieldType")));
|
||||
if ($dbFieldType && $formFieldType) {
|
||||
$processed->{dbFieldType} = $dbFieldType;
|
||||
$processed->{formFieldType} = $formFieldType;
|
||||
$processed->{fieldType} = $self->session->form->process("fieldType");
|
||||
} else {
|
||||
push(@error, $i18n->get('efs field type error'));
|
||||
}
|
||||
|
||||
# Process the join stuff -----------------------------------------------------------------------
|
||||
if ($self->session->form->process("table1") && !($self->session->form->process("selectField1") && $self->session->form->process("selectField2"))) {
|
||||
if ($allowedFormFieldTypes->{$processed->{formFieldType}}->{hasOptions} &&
|
||||
$self->session->form->process("table1") &&
|
||||
!($self->session->form->process("selectField1") && $self->session->form->process("selectField2"))) {
|
||||
push(@error, $i18n->get('efs join populate error'));
|
||||
}
|
||||
if ($self->session->form->process("table1")) {
|
||||
|
|
@ -1961,17 +1974,6 @@ my $subSelect = "select $joinAColumnName from $joinADatabaseName.$joinATa
|
|||
$processed->{sqlQueryAllOptions} .= " where ".join(' and ', @joinConstraints) if (@joinConstraints);
|
||||
}
|
||||
|
||||
# Process fieldType ----------------------------------------------------------------------------
|
||||
my ($dbFieldType, $formFieldType) = $self->session->db->quickArray('select dbFieldType, formFieldType from SQLForm_fieldTypes '.
|
||||
' where fieldTypeId='.$self->session->db->quote($self->session->form->process("fieldType")));
|
||||
if ($dbFieldType && $formFieldType) {
|
||||
$processed->{dbFieldType} = $dbFieldType;
|
||||
$processed->{formFieldType} = $formFieldType;
|
||||
$processed->{fieldType} = $self->session->form->process("fieldType");
|
||||
} else {
|
||||
push(@error, $i18n->get('efs field type error'));
|
||||
}
|
||||
|
||||
# Check if fulltext search is allowed ----------------------------------------------------------
|
||||
if ($self->session->form->process("useFulltext") && $allowedDbFieldTypes->{$processed->{dbFieldType}}->{supportsFulltext}) {
|
||||
$processed->{useFulltext} = 1;
|
||||
|
|
@ -2515,7 +2517,9 @@ my $fieldConstraint = undef;
|
|||
if ($field->{fieldConstraintType} && $field->{fieldConstraintTarget} ne 'value') {
|
||||
my $sql = $field->{sqlQuery};
|
||||
if ($field->{joinConstraintColumn}) {
|
||||
$sql =~ s/^select/select $field->{fieldConstraintTarget},/;
|
||||
#### This will still fail if a column is called 'from'. It's better to seperate the join construction
|
||||
#### from the column selection. Even better would be giving the contraint settings their own join selector.
|
||||
$sql =~ s/^select .+? from/select $field->{fieldConstraintTarget} from/;
|
||||
if ($sql =~ / where /) {
|
||||
$sql .= ' and ';
|
||||
} else {
|
||||
|
|
@ -2524,6 +2528,7 @@ my $sql = $field->{sqlQuery};
|
|||
$sql .= $field->{joinConstraintColumn} . ' = ' .
|
||||
$self->session->db->quote($self->session->form->process($self->_getFieldProperties($field->{joinConstraintField})->{fieldName}));
|
||||
}
|
||||
|
||||
my @results = $self->session->db->quickArray($sql);
|
||||
$fieldConstraint = $results[0];
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue