public function getCMSFields() { $summit_id = isset($_REQUEST['SummitID']) ? $_REQUEST['SummitID'] : Summit::ActiveSummitID(); Requirements::javascript('summit/javascript/SummitPushNotification.js'); $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main'))); $f->addFieldToTab('Root.Main', $txt = new TextareaField('Message', 'Message')); $txt->setAttribute('required', 'true'); $f->addFieldToTab('Root.Main', $ddl_channel = new DropdownField('Channel', 'Channel', singleton('SummitPushNotification')->dbObject('Channel')->enumValues())); $f->addFieldToTab('Root.Main', $ddl_events = new DropdownField('EventID', 'Event', SummitEvent::get()->filter(['Published' => 1, 'SummitID' => $summit_id])->sort('Title', 'ASC')->Map('ID', 'FormattedTitle'))); $f->addFieldToTab('Root.Main', $ddl_groups = new DropdownField('GroupID', 'Group', Group::get()->sort('Title', 'ASC')->Map('ID', 'Title'))); $f->addFieldToTab('Root.Main', new HiddenField('SummitID', 'SummitID')); $ddl_channel->setEmptyString('--SELECT A CHANNEL--'); $ddl_channel->setAttribute('required', 'true'); $ddl_events->setEmptyString('--SELECT AN EVENT--'); $ddl_events->addExtraClass('hidden'); $ddl_groups->setEmptyString('--SELECT A GROUP--'); $ddl_groups->addExtraClass('hidden'); $config = GridFieldConfig_RelationEditor::create(50); $config->removeComponentsByType('GridFieldAddExistingAutocompleter'); $config->removeComponentsByType('GridFieldAddNewButton'); $config->addComponent($auto_completer = new CustomGridFieldAddExistingAutocompleter('buttons-before-right')); $auto_completer->setResultsFormat('$Title ($Email)'); $recipients = new GridField('Recipients', 'Member Recipients', $this->Recipients(), $config); $f->addFieldToTab('Root.Main', $recipients); return $f; }
public function getCMSFields() { $fields = parent::getCMSFields(); $survey_id = isset($_REQUEST['survey_template_id']) ? intval($_REQUEST['survey_template_id']) : $this->TargetSurveyID; $current_template = SurveyTemplate::get()->byID($survey_id); $templates = SurveyTemplate::get()->exclude('ID', $survey_id); $allowed_templates = array(); foreach ($templates as $template) { if ($template->ClassName !== $current_template->ClassName) { continue; } $text = $template->Title; if ($template instanceof EntitySurveyTemplate) { $text = $template->Parent()->Title . ' - ' . $text; } $allowed_templates[$template->ID] = $text; } $fields->addFieldToTab('Root.Main', $ddl_template = new DropdownField('OriginSurveyID', 'Origin Survey', $allowed_templates)); $ddl_template->setEmptyString('-- select a survey template --'); $fields->addFieldToTab('Root.Main', $ddl_fields = new DropdownField('OriginFieldID', 'Origin Field')); if (intval($this->OriginFieldID) > 0) { $ddl_fields->setAttribute('data-value', $this->OriginFieldID); } return $fields; }
/** * Returns a drop-down field configured from an api.listPackages call. * * NB commented code is for if they (checkfront) get events and items returning at same * time for packages via API at the moment can be one or the other depedning on the package * 'parent' or 'group' type. * * @param CheckfrontAPIPackagesResponse $apiResponse * @param SS_HTTPRequest $request * @param string $name * * @return DropdownField */ protected function makePackageSelectorField(CheckfrontAPIPackagesResponse $apiResponse, SS_HTTPRequest $request, $name = self::PackageIDFieldName) { $options = $this->getAvailablePackagesMap($apiResponse); $field = new DropdownField($name, $this->getFieldLabel($name), $options, $request->postVar($name)); // $field->addExtraClass(self::PackageSelector); $field->setAttribute('placeholder', $this->getFieldLabel($name, 'FieldEmptyString')); $field->setEmptyString($this->getFieldLabel($name, 'FieldEmptyString')); return $field; }
/** * {@inheritdoc} */ public function getColumnContent($gridField, $record, $columnName) { if ($columnName === 'MergeAction' && $record->{$this->childMethod}()->Count() > 0) { $dropdown = new DropdownField('Target', 'Target', $this->records->exclude('ID', $record->ID)->map()); $dropdown->setAttribute('id', 'Target_' . $record->ID); $prefix = strtolower($this->parentMethod . '-' . $this->childMethod); $action = GridFieldFormAction::create($gridField, 'MergeAction' . $record->ID, 'Move', 'merge', array('record' => $record->ID, 'target' => $prefix . '-target-record-' . $record->ID)); $action->setExtraAttributes(array('data-target' => $prefix . '-target-record-' . $record->ID)); return $dropdown->Field() . $action->Field() . '<a title="Move posts to" class="MergeActionReveal">move posts to</a>'; } return null; }
public function getHTMLFragments($grid) { $classes = $this->getClasses($grid); if (!count($classes)) { return array(); } GridFieldExtensions::include_requirements(); $field = new DropdownField(sprintf('%s[ClassName]', __CLASS__), '', $classes, $this->defaultClass); $field->setAttribute('id', uniqid()); if (Config::inst()->get('GridFieldAddNewMultiClass', 'showEmptyString')) { $field->setEmptyString(_t('GridFieldExtensions.SELECTTYPETOCREATE', '(Select type to create)')); } $field->addExtraClass('no-change-track'); $data = new ArrayData(array('Title' => $this->getTitle(), 'Link' => Controller::join_links($grid->Link(), 'add-multi-class', '{class}'), 'ClassField' => $field)); return array($this->getFragment() => $data->renderWith('GridFieldAddNewMultiClass')); }
/** * Get the form used to create a new provider * * @return Form */ public function AddForm() { $classes = ClassInfo::subclassesFor(self::$tree_class); array_shift($classes); foreach ($classes as $key => $class) { if (!singleton($class)->canCreate()) { unset($classes[$key]); } $classes[$key] = FormField::name_to_label($class); } $fields = new FieldList(new HiddenField("ParentID"), new HiddenField("Locale", 'Locale', i18n::get_locale()), $type = new DropdownField("ProviderType", "", $classes)); $type->setAttribute('style', 'width:150px'); $actions = new FieldList(FormAction::create("addprovider", _t('ExternalContent.CREATE', "Create"))->addExtraClass('ss-ui-action-constructive')->setAttribute('data-icon', 'accept')->setUseButtonTag(true)); $form = new Form($this, "AddForm", $fields, $actions); $form->addExtraClass('cms-edit-form ' . $this->BaseCSSClasses()); $this->extend('updateEditForm', $form); return $form; }
/** * Create form fields to represent all of the properties on the {@link Omnipay\Common\CreditCard} object. * The form fields are split up into relevent sections to help with adding/removing fields as needed. * * @return FieldList */ protected function getCreditCardFields() { $fields = new FieldList(); $tabindex = 1; // Create personal detail fields $firstNameTextField = new TextField('FirstName', _t('OmnipayableForm.FIRSTNAME', 'First name')); $firstNameTextField->setAttribute('tabindex', $tabindex++); $lastNameTextField = new TextField('LastName', _t('OmnipayableForm.LASTNAME', 'Last name')); $lastNameTextField->setAttribute('tabindex', $tabindex++); $companyTextField = new TextField('Company', _t('OmnipayableForm.COMPANY', 'Company')); $companyTextField->setAttribute('tabindex', $tabindex++); $emailEmailField = new EmailField('Email', _t('OmnipayableForm.EMAIL', 'Email')); $emailEmailField->setAttribute('tabindex', $tabindex++); // Create personal details group $personalFieldGroup = new FieldGroup(); $personalFieldGroup->setName('PersonalDetails'); $personalFieldGroup->setTitle(_t('OmnipayableForm.PERSONALDETAILS', 'Personal Detials')); // Add basic fields to personal details group $personalFieldGroup->push($firstNameTextField); $personalFieldGroup->push($lastNameTextField); $personalFieldGroup->push($companyTextField); $personalFieldGroup->push($emailEmailField); // Add personal details group to fields $fields->push($personalFieldGroup); // Create credit card detail fields $numberCreditCardField = new CreditCardField('Number', _t('OmnipayableForm.NUMBER', 'Card number')); $numberCreditCardField->setAttribute('tabindex', $tabindex++); $cvvTextField = new TextField('Cvv', _t('OmnipayableForm.CVV', 'Security number')); $cvvTextField->setAttribute('tabindex', $tabindex += 3); $expiryMonthDropdownField = new DropdownField('ExpiryMonth', _t('OmnipayableForm.EXPIRYMONTH', 'Expiry month'), $this->getMonths()); $expiryMonthDropdownField->setAttribute('tabindex', $tabindex++); $expiryMonthDropdownField->setHasEmptyDefault(true); $expiryYearDropdownField = new DropdownField('ExpiryYear', _t('OmnipayableForm.EXPIRYYEAR', 'Expiry year'), $this->getYears(20)); $expiryYearDropdownField->setAttribute('tabindex', $tabindex++); $expiryYearDropdownField->setHasEmptyDefault(true); $startMonthDropdownField = new DropdownField('StartMonth', _t('OmnipayableForm.STARTMONTH', 'Start month'), $this->getMonths()); $startMonthDropdownField->setAttribute('tabindex', $tabindex++); $startMonthDropdownField->setHasEmptyDefault(true); $startYearDropdownField = new DropdownField('StartYear', _t('OmnipayableForm.STARTYEAR', 'Start year'), $this->getYears(-20)); $startYearDropdownField->setAttribute('tabindex', $tabindex++); $startYearDropdownField->setHasEmptyDefault(true); $issueNumberTextField = new TextField('IssueNumber', _t('OmnipayableForm.ISSUENUMBER', 'Issue number')); $issueNumberTextField->setAttribute('tabindex', $tabindex++); $typeDropdownField = new DropdownField('Type', _t('OmnipayableForm.TYPE', 'Card type'), $this->getCreditCardTypes()); $typeDropdownField->setAttribute('tabindex', $tabindex++); $typeDropdownField->setHasEmptyDefault(true); $expiryDateFieldGroup = new FieldGroup(); $expiryDateFieldGroup->push($expiryMonthDropdownField); $expiryDateFieldGroup->push($expiryYearDropdownField); $startDateFieldGroup = new FieldGroup(); $startDateFieldGroup->push($startMonthDropdownField); $startDateFieldGroup->push($startYearDropdownField); // Create credit card details group $creditCardFieldGroup = new FieldGroup(); $creditCardFieldGroup->setName('CardDetails'); $creditCardFieldGroup->setTitle(_t('OmnipayableForm.CREDITCARDDETAILS', 'Card Detials')); // Add credit card fields to credit card details group $creditCardFieldGroup->push($numberCreditCardField); $creditCardFieldGroup->push($cvvTextField); $creditCardFieldGroup->push($expiryDateFieldGroup); $creditCardFieldGroup->push($startDateFieldGroup); $creditCardFieldGroup->push($issueNumberTextField); $creditCardFieldGroup->push($typeDropdownField); // Add credit card details group to fields $fields->push($creditCardFieldGroup); // Create billing address fields $billingAddress1TextField = new TextField('BillingAddress1', _t('OmnipayableForm.BILLINGADDRESS1', 'Address 1')); $billingAddress1TextField->setAttribute('tabindex', $tabindex++); $billingAddress2TextField = new TextField('BillingAddress2', _t('OmnipayableForm.BILLINGADDRESS2', 'Address 2')); $billingAddress2TextField->setAttribute('tabindex', $tabindex++); $billingCity = new TextField('BillingCity', _t('OmnipayableForm.BILLINGCITY', 'City')); $billingCity->setAttribute('tabindex', $tabindex++); $billingPostcode = new TextField('BillingPostcode', _t('OmnipayableForm.BILLINGPOSTCODE', 'Postcode')); $billingPostcode->setAttribute('tabindex', $tabindex++); $billingState = new TextField('BillingState', _t('OmnipayableForm.BILLINGSTATE', 'State')); $billingState->setAttribute('tabindex', $tabindex++); $billingCountry = new CountryDropdownField('BillingCountry', _t('OmnipayableForm.BILLINGCOUNTRY', 'Country')); $billingCountry->setAttribute('tabindex', $tabindex++); $billingPhone = new PhoneNumberField('BillingPhone', _t('OmnipayableForm.BILLINGPHONE', 'Phone')); $billingPhone->setAttribute('tabindex', $tabindex++); // Create billing details group $billingFieldGroup = new FieldGroup(); $billingFieldGroup->setName('BillingAddress'); $billingFieldGroup->setTitle(_t('OmnipayableForm.BILLING', 'Billing Address')); // Add billiing fields to billing group $billingFieldGroup->push($billingAddress1TextField); $billingFieldGroup->push($billingAddress2TextField); $billingFieldGroup->push($billingCity); $billingFieldGroup->push($billingPostcode); $billingFieldGroup->push($billingState); $billingFieldGroup->push($billingCountry); $billingFieldGroup->push($billingPhone); // Add billing details group to fields $fields->push($billingFieldGroup); // Create shipping address fields $shippingAddress1TextField = new TextField('ShippingAddress1', _t('OmnipayableForm.SHIPPINGADDRESS1', 'Address 1')); $shippingAddress1TextField->setAttribute('tabindex', $tabindex++); $shippingAddress2TextField = new TextField('ShippingAddress2', _t('OmnipayableForm.SHIPPINGADDRESS2', 'Address 2')); $shippingAddress2TextField->setAttribute('tabindex', $tabindex++); $shippingCity = new TextField('ShippingCity', _t('OmnipayableForm.SHIPPINGCITY', 'City')); $shippingCity->setAttribute('tabindex', $tabindex++); $shippingPostcode = new TextField('ShippingPostcode', _t('OmnipayableForm.SHIPPINGPOSTCODE', 'Postcode')); $shippingPostcode->setAttribute('tabindex', $tabindex++); $shippingState = new TextField('ShippingState', _t('OmnipayableForm.SHIPPINGSTATE', 'State')); $shippingState->setAttribute('tabindex', $tabindex++); $shippingCountry = new CountryDropdownField('ShippingCountry', _t('OmnipayableForm.SHIPPINGCOUNTRY', 'Country')); $shippingCountry->setAttribute('tabindex', $tabindex++); $shippingPhone = new PhoneNumberField('ShippingPhone', _t('OmnipayableForm.SHIPPINGPHONE', 'Phone')); $shippingPhone->setAttribute('tabindex', $tabindex++); // Create shipping details group $shippingFieldGroup = new FieldGroup(); $shippingFieldGroup->setName('ShippingAddress'); $shippingFieldGroup->setTitle(_t('OmnipayableForm.SHIPPING', 'Shipping Address')); // Add billiing fields to shipping group $shippingFieldGroup->push($shippingAddress1TextField); $shippingFieldGroup->push($shippingAddress2TextField); $shippingFieldGroup->push($shippingCity); $shippingFieldGroup->push($shippingPostcode); $shippingFieldGroup->push($shippingState); $shippingFieldGroup->push($shippingCountry); $shippingFieldGroup->push($shippingPhone); // Add shipping details group to fields $fields->push($shippingFieldGroup); return $fields; }
public function ArchiveUnitDropdown() { $months = array(); $months['1'] = _t('filterablearchive.JANUARY', 'Januari'); $months['2'] = _t('filterablearchive.FEBRUARY', 'Februari'); $months['3'] = _t('filterablearchive.MARCH', 'Maart'); $months['4'] = _t('filterablearchive.APRIL', 'April'); $months['5'] = _t('filterablearchive.MAY', 'Mei'); $months['6'] = _t('filterablearchive.JUNE', 'Juni'); $months['7'] = _t('filterablearchive.JULY', 'Juli'); $months['8'] = _t('filterablearchive.AUGUST', 'Augustus'); $months['9'] = _t('filterablearchive.SEPTEMBER', 'September'); $months['10'] = _t('filterablearchive.OCTOBER', 'Oktober'); $months['11'] = _t('filterablearchive.NOVEMBER', 'November'); $months['12'] = _t('filterablearchive.DECEMBER', 'December'); // build array with available archive 'units' $items = $this->owner->getItems(); //$dateField = $this->owner->getFilterableArchiveConfigValue('managed_object_date_field'); $dateField = Config::inst()->get($this->owner->className, 'managed_object_date_field'); $itemArr = array(); foreach ($items as $item) { if (!$item->{$dateField}) { continue; } $dateObj = DBField::create_field('Date', strtotime($item->{$dateField})); // add month if not yet in array; if ($this->owner->ArchiveUnit == 'day') { $arrkey = $dateObj->Format('Y/m/d/'); $arrval = $dateObj->Format('d ') . $months[$dateObj->Format('n')] . $dateObj->Format(' Y'); } elseif ($this->owner->ArchiveUnit == 'month') { $arrkey = $dateObj->Format('Y/m/'); $arrval = $months[$dateObj->Format('n')] . $dateObj->Format(' Y'); } else { $arrkey = $dateObj->Format('Y/'); $arrval = $dateObj->Format('Y'); } if (!array_key_exists($arrkey, $itemArr)) { $itemArr[$arrkey] = $arrval; } } $DrDown = new DropdownField('archiveunits', '', $itemArr); $DrDown->setEmptyString(_t('filterablearchive.FILTER', 'Filter items')); $DrDown->addExtraClass("dropdown form-control"); // specific to the 'archive' action defined by FilterableArchiveHolder_ControllerExtension (if available) $ctrl = Controller::curr(); $activeUnit = ""; if ($ctrl::has_extension("FilterableArchiveHolder_ControllerExtension")) { if ($cYear = $ctrl->getArchiveYear()) { $activeUnit .= "{$cYear}/"; } if ($cMonth = $ctrl->getArchiveMonth()) { $activeUnit .= str_pad("{$cMonth}/", 3, "0", STR_PAD_LEFT); } if ($cDay = $ctrl->getArchiveDay()) { $activeUnit .= str_pad("{$cDay}/", 3, "0", STR_PAD_LEFT); } } $DrDown->setValue($activeUnit); // again, tie this to the 'archive' action; $DrDown->setAttribute('onchange', "location = '{$this->owner->AbsoluteLink()}date/'+this.value;"); return $DrDown; }