/** * @return Form */ public function InviteForm() { Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js'); Requirements::javascript(THIRDPARTY_DIR . '/jquery-metadata/jquery.metadata.js'); Requirements::javascript(SAPPHIRE_DIR . '/javascript/jquery_improvements.js'); Requirements::javascript('eventmanagement/javascript/EventInvitationField_invite.js'); if ($times = $this->form->getRecord()->DateTimes()) { $times = $times->map('ID', 'Summary'); } else { $times = array(); } // Get past date times attached to the parent calendar, so we can get // all registered members from them. $past = DataObject::get('RegisterableDateTime', sprintf('"CalendarID" = %d AND "StartDate" < \'%s\'', $this->form->getRecord()->CalendarID, date('Y-m-d'))); if ($past) { $pastTimes = array(); foreach ($past->groupBy('EventID') as $value) { $pastTimes[$value->First()->EventTitle()] = $value->map('ID', 'Summary'); } } else { $pastTimes = array(); } $fields = new Tab('Main', new HeaderField('Select A Date/Time To Invite To'), new DropdownField('TimeID', '', $times, null, null, true), new HeaderField('AddPeopleHeader', 'Add People To Invite From'), new SelectionGroup('AddPeople', array('From a member group' => $group = new DropdownField('GroupID', '', DataObject::get('Group')->map(), null, null, true), 'From a past event' => $time = new GroupedDropdownField('PastTimeID', '', $pastTimes, null, null, true))), new HeaderField('EmailsToSendHeader', 'People To Send Invite To'), $emails = new TableField('Emails', 'EventInvitation', array('Name' => 'Name', 'Email' => 'Email Address'), array('Name' => 'TextField', 'Email' => 'TextField'))); $group->addExtraClass(sprintf("{ link: '%s' }", $this->Link('loadfromgroup'))); $time->addExtraClass(sprintf("{ link: '%s' }", $this->Link('loadfromtime'))); $emails->setCustomSourceItems(new DataObjectSet()); $fields = new FieldSet(new TabSet('Root', $fields)); $validator = new RequiredFields('TimeID'); return new Form($this, 'InviteForm', $fields, new FieldSet(new FormAction('doInvite', 'Invite')), $validator); }
function getCMSFields() { $fields = parent::getCMSFields(); $fieldList = array("ZoneID" => "Zone", "WeightMin" => "WeightMin", "WeightMax" => "WeightMax", "VolumeMin" => "VolumeMin", "VolumeMax" => "VolumeMax", "ValueMin" => "ValueMin", "ValueMax" => "ValueMax", "QuantityMin" => "QuantityMin", "QuantityMax" => "QuantityMax", "Rate" => "Rate"); $fieldTypes = array("ZoneID" => "ZoneSelectField", "WeightMin" => "TextField", "WeightMax" => "TextField", "VolumeMin" => "TextField", "VolumeMax" => "TextField", "ValueMin" => "TextField", "ValueMax" => "TextField", "QuantityMin" => "TextField", "QuantityMax" => "TextField", "Rate" => "TextField"); $fields->fieldByName('Root')->removeByName("Rates"); if ($this->isInDB()) { $tablefield = new TableField("Rates", "ZonedShippingRate", $fieldList, $fieldTypes); $tablefield->setCustomSourceItems($this->Rates()); $fields->addFieldToTab("Root.Main", $tablefield); } return $fields; }
function getCMSFields() { $fields = parent::getCMSFields(); $fieldList = array("Country" => "Country", "State" => "State", "City" => "City", "PostalCode" => "PostCode", "WeightMin" => "WeightMin", "WeightMax" => "WeightMax", "VolumeMin" => "VolumeMin", "VolumeMax" => "VolumeMax", "ValueMin" => "ValueMin", "ValueMax" => "ValueMax", "QuantityMin" => "QuantityMin", "QuantityMax" => "QuantityMax", "Rate" => "Rate"); $fieldTypes = array_merge(RegionRestriction::get_table_field_types(), array("WeightMin" => "TextField", "WeightMax" => "TextField", "VolumeMin" => "TextField", "VolumeMax" => "TextField", "ValueMin" => "TextField", "ValueMax" => "TextField", "QuantityMin" => "TextField", "QuantityMax" => "TextField", "Rate" => "TextField")); $fields->fieldByName('Root')->removeByName("Rates"); if ($this->isInDB()) { $tablefield = new TableField("Rates", "TableShippingRate", $fieldList, $fieldTypes); $tablefield->setCustomSourceItems($this->Rates()); $fields->addFieldToTab("Root.Main", $tablefield); } return $fields; }
function getCMSFields() { $fields = parent::getCMSFields(); $fieldList = array_merge(RegionRestriction::$field_labels, array('Rate' => 'Rate', 'Name' => 'Name')); $fieldTypes = array_merge(RegionRestriction::get_table_field_types(), array('Rate' => 'TextField', 'Name' => 'TextField')); $fields->fieldByName("Root")->removeByName('TaxRates'); //remove tax rates tab if ($this->isInDB()) { $tablefield = new TableField("TaxRates", "TaxRate", $fieldList, $fieldTypes); $tablefield->setCustomSourceItems($this->TaxRates()); $fields->addFieldsToTab("Root.Main", array(new LabelField("TaxRatesHelp", "Enter tax class rates for specific regions. Rates should be entered in decimal form, for example 0.05 = 5%."), $tablefield)); } return $fields; }