diff --git a/lib/WebGUI/Asset/Wobject/SQLForm.pm b/lib/WebGUI/Asset/Wobject/SQLForm.pm index 8afe58087..002f255ee 100644 --- a/lib/WebGUI/Asset/Wobject/SQLForm.pm +++ b/lib/WebGUI/Asset/Wobject/SQLForm.pm @@ -1852,7 +1852,7 @@ my $databaseName = $self->session->form->process("database$joinNumber"); $processed->{"table$joinNumber"} = $tableName; -my @columns = $self->dbLink->db->buildArray("describe $databaseName.$tableName"); +my @columns = $dbLink->db->buildArray("describe $databaseName.$tableName"); if (isIn('__deleted', @columns) && isIn('__archived', @columns)) { push(@columnConstraints, "table$joinNumber.__deleted=0 and table$joinNumber.__archived=0") if ($joinNumber == 1); $fingerprint{$joinNumber} = 1; @@ -1879,8 +1879,8 @@ my $joinBDatabaseName; push(@error, $i18n->get('efs right join column error').$joinNumber."."); } if ($joinATableName && $joinBTableName && - isIn($joinAColumnName, $self->dbLink->db->buildArray("describe $joinADatabaseName.$joinATableName")) && - isIn($joinBColumnName, $self->dbLink->db->buildArray("describe $joinBDatabaseName.$joinBTableName"))) { + isIn($joinAColumnName, $dbLink->db->buildArray("describe $joinADatabaseName.$joinATableName")) && + isIn($joinBColumnName, $dbLink->db->buildArray("describe $joinBDatabaseName.$joinBTableName"))) { if ($self->session->form->process("joinFunction$joinNumber") eq 'difference') { my $subSelect = "select $joinAColumnName from $joinADatabaseName.$joinATableName"; $subSelect .= " where __deleted=0 and __archived=0" if ($joinAIsSQLForm); @@ -2227,6 +2227,7 @@ sub _getFormElement { $fieldParameters->{name} = $field->{fieldName}; $fieldParameters->{value} = $fieldValue; $fieldParameters->{options} = $field->{options} if ($field->{hasOptions}); + $fieldParameters->{options}->{''} = '-leave empty-' if (!$field->{isRequired}); $fieldParameters->{multiple} = $field->{multipleAllowed} == 1; $fieldParameters->{$field->{widthParam}} = $field->{formFieldWidth} if ($field->{formFieldWidth}); $fieldParameters->{$field->{heightParam}} = $field->{formFieldHeight} if ($field->{formFieldHeight}); @@ -2288,7 +2289,8 @@ param 'viewOnly' is set to a non-zero value. =cut sub www_editRecord { - my ($recordId, $fieldType, $canEditRecord, @fields, $properties, $f, $field, @fieldParameters, $cmd, $var, @formLoop, $formElement, $numberOfFields, $i18n); + my ($recordId, $fieldType, $canEditRecord, @fields, $properties, $f, $field, @fieldParameters, $cmd, $var, @formLoop, + $formElement, $numberOfFields, $i18n, $recordControls); my $self = shift; my $errors = shift || []; @@ -2366,6 +2368,18 @@ sub www_editRecord { $f->submit; push(@formLoop, {'field.formElement' => WebGUI::Form::submit($self->session)}); } + + if ($self->_canEditRecord) { + unless ($properties->{__deleted}) { + $recordControls = $self->session->icon->delete('func=deleteRecord'.';rid='.$properties->{__recordId},$self->get("url"), + $i18n->get('_psq confirm delete message', 'Asset_SQLForm')); + $recordControls .= $self->session->icon->edit('func=editRecord;rid='.$properties->{__recordId},$self->get("url")); + $recordControls .= $self->session->icon->copy('func=editRecord;rid=new;copyRecordId='.$properties->{__recordId},$self->get("url")); + } + + $var->{'record.controls'} = $recordControls; + } + $var->{formHeader} = WebGUI::Form::formHeader($self->session). WebGUI::Form::hidden($self->session, {name=>'func', value=>'editRecordSave'}). @@ -3201,10 +3215,25 @@ my @fields = $self->session->db->buildArray("select distinct fieldId from SQLFor $self->session->scratch->set('SQLForm_'.$self->getId.'searchInTrash', $searchInTrash); $self->session->scratch->set('SQLForm_'.$self->getId.'searchType', 'or'); - - tie %searchInTrashOptions, "Tie::IxHash"; %searchInTrashOptions = (0 => 'Only normal', 1 => 'Only trash', 2 => 'Normal and trash'); + + my $elementCounter = 0; + my $searchInFormElement = '
| '; + $searchInFormElement .= WebGUI::Form::Checkbox($self->session, { + -name => 'searchIn', + -value => $_, + -checked=> WebGUI::Utility::isIn($_, @searchIn), + }); + $searchInFormElement .= " $searchableFields{$_} | "; + $searchInFormElement .= '
| '; + $searchInFormElement .= ' All'; + $searchInFormElement .= ' |
managementLinks
A string of links to all of the
-management functions.
record.controls
+Delete, edit and copy buttons for theis record. Only available if the user is
+allowed to edit the record.