openstackweb/marketplace/code/ui/admin/TrainingServiceAdminUI.php
2014-10-31 16:59:18 -03:00

84 lines
2.6 KiB
PHP

<?php
/**
* Copyright 2014 Openstack Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
/**
* Class TrainingServiceAdminUI
*/
class TrainingServiceAdminUI extends DataExtension {
private static $searchable_fields = array('Name');
/**
* @param FieldList $fields
* @return FieldList|void
*/
public function updateCMSFields(FieldList $fields) {
$oldFields = $fields->toArray();
foreach($oldFields as $field){
$fields->remove($field);
}
$fields->push(new LiteralField("Title","<h2>Training</h2>"));
$fields->push(new TextField("Name","Name"));
$fields->push(new HtmlEditorField("Overview","Overview"));
$fields->push(new CheckboxField("Active","Active"));
$types = TrainingCourseType::get();
$levels = TrainingCourseLevel::get();
$companies = Company::get();
if($companies){
$fields->push(new DropdownField(
'CompanyID',
'Company',
$companies->map("ID", "Name", "Please Select a Company")));
}
if($types && $levels && $this->owner->ID>0){
$config = GridFieldConfig_RecordEditor::create();
$courses = new GridField('Courses','Courses',$this->owner->Courses(),$config);
$fields->push($courses);
}
else{
$fields->push(new LiteralField("Warning","** You can not add any Training Course until you create some Training Course Levels and Training Course Types!."));
}
return $fields;
}
function getCMSValidator()
{
return $this->getValidator();
}
function getValidator()
{
$validator= new RequiredFields(array('Name','Overview','CompanyID'));
return $validator;
}
/**
* @param FieldList $fields
*/
public function updateSummaryFields(&$fields) {
$extra_fields = $this->extraStatics();
if(isset($extra_fields['summary_fields'])){
$summary_fields = $extra_fields['summary_fields'];
// if summary_fields were passed in numeric array,
// convert to an associative array
if($summary_fields && array_key_exists(0, $summary_fields)) {
$summary_fields = array_combine(array_values($summary_fields), array_values($summary_fields));
}
if($summary_fields) $fields = $summary_fields;
}
}
}