protected function AddInsertColumns(Grid $grid) { // // Edit column for name field // $editor = new TextEdit('name_edit'); $editor->SetSize(50); $editor->SetMaxLength(100); $editColumn = new CustomEditColumn('Name', 'name', $editor, $this->dataset); $editColumn->SetInsertDefaultValue($this->RenderText('%CURRENT_USER_NAME%')); $validator = new RequiredValidator(StringUtils::Format($this->GetLocalizerCaptions()->GetMessageString('RequiredValidationMessage'), $this->RenderText($editColumn->GetCaption()))); $editor->GetValidatorCollection()->AddValidator($validator); $this->ApplyCommonColumnEditProperties($editColumn); $grid->AddInsertColumn($editColumn); // // Edit column for task_id field // $editor = new MultiLevelComboBoxEditor('task_id_edit', $this->CreateLinkBuilder()); $dataset0 = new TableDataset(new MyConnectionFactory(), GetConnectionOptions(), '`project`'); $field = new IntegerField('project_id', null, null, true); $field->SetIsNotNull(true); $dataset0->AddField($field, true); $field = new IntegerField('programm_id'); $dataset0->AddField($field, false); $field = new StringField('project_name'); $dataset0->AddField($field, false); $field = new DateField('date_start'); $dataset0->AddField($field, false); $field = new DateField('date_end'); $dataset0->AddField($field, false); $field = new IntegerField('approved_budget'); $dataset0->AddField($field, false); $field = new StringField('notes'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $field = new StringField('priority'); $dataset0->AddField($field, false); $field = new StringField('lead'); $dataset0->AddField($field, false); $field = new StringField('level_of_service'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $field = new StringField('multi_year'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $field = new StringField('public_engagement'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $field = new StringField('year'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $field = new StringField('approved'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $field = new StringField('progress'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $field = new IntegerField('staff_id'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $field = new IntegerField('dept_id'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $field = new IntegerField('budget_spent'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $field = new IntegerField('admin_flag'); $field->SetIsNotNull(true); $dataset0->AddField($field, false); $editor->AddLevel($dataset0, 'project_id', 'project_name', $this->RenderText('Project'), null); $dataset1 = new TableDataset(new MyConnectionFactory(), GetConnectionOptions(), '`task`'); $field = new IntegerField('task_id', null, null, true); $field->SetIsNotNull(true); $dataset1->AddField($field, true); $field = new IntegerField('project_id'); $dataset1->AddField($field, false); $field = new StringField('assigned_to'); $dataset1->AddField($field, false); $field = new DateField('date_start'); $dataset1->AddField($field, false); $field = new DateField('date_end'); $dataset1->AddField($field, false); $field = new StringField('task_name'); $dataset1->AddField($field, false); $field = new StringField('notes'); $field->SetIsNotNull(true); $dataset1->AddField($field, false); $field = new IntegerField('hrs'); $dataset1->AddField($field, false); $field = new StringField('wo'); $dataset1->AddField($field, false); $field = new IntegerField('staff_id'); $dataset1->AddField($field, false); $dataset1->SetOrderBy('task_name', GetOrderTypeAsSQL(otAscending)); $editor->AddLevel($dataset1, 'task_id', 'task_name', $this->RenderText('Task'), new ForeignKeyInfo('project_id', 'project_id')); $editColumn = new MultiLevelLookupEditColumn('Task', 'task_id', $editor, $this->dataset); $validator = new RequiredValidator(StringUtils::Format($this->GetLocalizerCaptions()->GetMessageString('RequiredValidationMessage'), $this->RenderText($editColumn->GetCaption()))); $editor->GetValidatorCollection()->AddValidator($validator); $this->ApplyCommonColumnEditProperties($editColumn); $grid->AddInsertColumn($editColumn); // // Edit column for hours field // $editor = new SpinEdit('hours_edit'); $editColumn = new CustomEditColumn('Hours', 'hours', $editor, $this->dataset); $editColumn->SetInsertDefaultValue($this->RenderText('7')); $validator = new RequiredValidator(StringUtils::Format($this->GetLocalizerCaptions()->GetMessageString('RequiredValidationMessage'), $this->RenderText($editColumn->GetCaption()))); $editor->GetValidatorCollection()->AddValidator($validator); $validator = new NumberValidator(StringUtils::Format($this->GetLocalizerCaptions()->GetMessageString('NumberValidationMessage'), $this->RenderText($editColumn->GetCaption()))); $editor->GetValidatorCollection()->AddValidator($validator); $this->ApplyCommonColumnEditProperties($editColumn); $grid->AddInsertColumn($editColumn); // // Edit column for notes field // $editor = new TextAreaEdit('notes_edit', 50, 8); $editColumn = new CustomEditColumn('Notes', 'notes', $editor, $this->dataset); $editColumn->SetAllowSetToNull(true); $this->ApplyCommonColumnEditProperties($editColumn); $grid->AddInsertColumn($editColumn); // // Edit column for date field // $editor = new DateTimeEdit('date_edit', false, 'Y-m-d', GetFirstDayOfWeek()); $editColumn = new CustomEditColumn('Date', 'date', $editor, $this->dataset); $editColumn->SetInsertDefaultValue($this->RenderText('%CURRENT_DATE%')); $validator = new RequiredValidator(StringUtils::Format($this->GetLocalizerCaptions()->GetMessageString('RequiredValidationMessage'), $this->RenderText($editColumn->GetCaption()))); $editor->GetValidatorCollection()->AddValidator($validator); $this->ApplyCommonColumnEditProperties($editColumn); $grid->AddInsertColumn($editColumn); if ($this->GetSecurityInfo()->HasAddGrant()) { $grid->SetShowAddButton(true); $grid->SetShowInlineAddButton(false); } else { $grid->SetShowInlineAddButton(false); $grid->SetShowAddButton(false); } }