/** * Place the print button in a <p> tag below the field * * @param GridField * * @return array */ public function getHTMLFragments($gridField) { $button = new GridField_FormAction($gridField, 'print', _t('TableListField.Print', 'Print'), 'print', null); $button->setAttribute('data-icon', 'grid_print'); $button->addExtraClass('gridfield-button-print'); return array($this->targetFragment => '<p class="grid-print-button">' . $button->Field() . '</p>'); }
/** * * @param GridField $gridField * @return string - HTML */ public function getHTMLFragments($gridField) { $searchState = $gridField->State->GridFieldSearchRelation; $dataClass = $gridField->getList()->dataClass(); $forTemplate = new ArrayData(array()); $forTemplate->Fields = new ArrayList(); $searchFields = $this->getSearchFields() ? $this->getSearchFields() : $this->scaffoldSearchFields($dataClass); $value = $this->findSingleEntry($gridField, $searchFields, $searchState, $dataClass); $searchField = new TextField('gridfield_relationsearch', _t('GridField.RelationSearch', "Relation search"), $value); // Apparently the data-* needs to be double qouted for the jQuery.meta data plugin $searchField->setAttribute('data-search-url', '\'' . Controller::join_links($gridField->Link('search') . '\'')); $searchField->setAttribute('placeholder', $this->getPlaceholderText($dataClass)); $searchField->addExtraClass('relation-search no-change-track'); $findAction = new GridField_FormAction($gridField, 'gridfield_relationfind', _t('GridField.Find', "Find"), 'find', 'find'); $findAction->setAttribute('data-icon', 'relationfind'); $addAction = new GridField_FormAction($gridField, 'gridfield_relationadd', _t('GridField.LinkExisting', "Link Existing"), 'addto', 'addto'); $addAction->setAttribute('data-icon', 'chain--plus'); // If an object is not found, disable the action if (!is_int($gridField->State->GridFieldAddRelation)) { $addAction->setReadonly(true); } $forTemplate->Fields->push($searchField); $forTemplate->Fields->push($findAction); $forTemplate->Fields->push($addAction); return array($this->targetFragment => $forTemplate->renderWith($this->itemClass)); }
/** * Place the export button in a <p> tag below the field */ public function getHTMLFragments($gridField) { $button = new GridField_FormAction($gridField, 'export', _t('TableListField.CSVEXPORT', 'Export to CSV'), 'export', null); $button->setAttribute('data-icon', 'download-csv'); $button->addExtraClass('no-ajax'); return array($this->targetFragment => '<p class="grid-csv-button">' . $button->Field() . '</p>'); }
public function getHTMLFragments($gridField) { $model = Injector::inst()->create($gridField->getModelClass()); $parent = SiteTree::get()->byId(Controller::curr()->currentPageID()); if (!$model->canCreate()) { return array(); } $children = $this->getAllowedChildren($parent); if (count($children) > 1) { $pageTypes = DropdownField::create("PageType", "Page Type", $children, $model->defaultChild()); $pageTypes->setFieldHolderTemplate("GridFieldSiteTreeAddNewButton_holder")->addExtraClass("gridfield-dropdown no-change-track"); if (!$this->buttonName) { $this->buttonName = _t('GridFieldSiteTreeAddNewButton.AddMultipleOptions', 'Add new', "Add button text for multiple options."); } } else { $keys = array_keys($children); $pageTypes = HiddenField::create('PageType', 'Page Type', $keys[0]); if (!$this->buttonName) { $this->buttonName = _t('GridFieldSiteTreeAddNewButton.Add', 'Add new {name}', 'Add button text for a single option.', array($children[$keys[0]])); } } $state = $gridField->State->GridFieldSiteTreeAddNewButton; $state->currentPageID = $parent->ID; $state->pageType = $parent->defaultChild(); $addAction = new GridField_FormAction($gridField, 'add', $this->buttonName, 'add', 'add'); $addAction->setAttribute('data-icon', 'add')->addExtraClass("no-ajax ss-ui-action-constructive dropdown-action"); $forTemplate = new ArrayData(array()); $forTemplate->Fields = new ArrayList(); $forTemplate->Fields->push($pageTypes); $forTemplate->Fields->push($addAction); Requirements::css(LUMBERJACK_DIR . "/css/lumberjack.css"); Requirements::javascript(LUMBERJACK_DIR . "/javascript/GridField.js"); return array($this->targetFragment => $forTemplate->renderWith("GridFieldSiteTreeAddNewButton")); }
public function getHTMLFragments($gridField) { $button = new GridField_FormAction($gridField, 'syncwithyoutube', _t('GridFieldSyncYoutubeVideos.CTA', 'Sync with Youtube'), 'syncwithyoutube', null); $button->setAttribute('data-icon', 'accept'); $button->addExtraClass('no-ajax'); return array($this->targetFragment => '<p class="grid-csv-button">' . $button->Field() . '<br><br></p>'); }
/** * Place the export button in a <p> tag below the field */ public function getHTMLFragments($gridField) { $btnLabel = _t('Hail', 'Fetch {type}', ['type' => singleton($gridField->getModelClass())->i18n_plural_name()]); $button = new GridField_FormAction($gridField, 'fetchhail', $btnLabel, 'fetchhail', null); $button->setAttribute('data-icon', 'fetchHail'); // $button->addExtraClass('ss-ui-action-constructive'); return array($this->targetFragment => $button->Field()); }
/** * Get the html/css button and upload field to perform import. */ public function getHTMLFragments($gridField) { $button = new GridField_FormAction($gridField, 'import', _t('TableListField.CSVIMPORT', 'Import from CSV'), 'import', null); $button->setAttribute('data-icon', 'drive-upload'); $button->addExtraClass('no-ajax'); $uploadfield = $this->getUploadField($gridField); $data = array('Button' => $button, 'UploadField' => $uploadfield); $importerHTML = ArrayData::create($data)->renderWith("GridFieldImporter"); Requirements::javascript('importexport/javascript/GridFieldImporter.js'); return array($this->targetFragment => $importerHTML); }
public function getColumnContent($gridField, $record, $columnName) { Requirements::javascript(POSTMARK_RELATIVE_PATH . '/javascript/Messages.js'); Requirements::css(POSTMARK_RELATIVE_PATH . '/css/GridFieldPostmarkMessageButton.css'); $field = GridField_FormAction::create($gridField, 'MessageCustomer' . $record->ID, false, "message", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-pencil gird-field-message')->setAttribute('title', 'Message')->setAttribute('data-icon', 'envelope')->setDescription('Send Message'); return $field->Field(); }
/** * * @param \GridField $gridField * @param \DataObject $record * @param string $columnName * @return string|null - the HTML for the column */ public function getColumnContent($gridField, $record, $columnName) { if (!$record instanceof \Payment) { return null; } if (!$record->canRefund()) { return null; } \Requirements::css('omnipay-ui/css/omnipay-ui-cms.css'); \Requirements::javascript('omnipay-ui/javascript/omnipay-ui-cms.js'); \Requirements::add_i18n_javascript('omnipay-ui/javascript/lang'); $infoText = ''; switch (GatewayInfo::refundMode($record->Gateway)) { case GatewayInfo::MULTIPLE: $infoText = 'MultiRefundInfo'; break; case GatewayInfo::PARTIAL: $infoText = 'SingleRefundInfo'; break; case GatewayInfo::FULL: $infoText = 'FullRefundInfo'; break; } /** @var \Money $money */ $money = $record->dbObject('Money'); /** @var \GridField_FormAction $field */ $field = \GridField_FormAction::create($gridField, 'RefundPayment' . $record->ID, false, 'refundpayment', array('RecordID' => $record->ID))->addExtraClass('gridfield-button-refund payment-dialog-button')->setAttribute('title', _t('GridFieldRefundAction.Title', 'Refund Payment'))->setAttribute('data-icon', 'button-refund')->setAttribute('data-dialog', json_encode(array('maxAmount' => $money->Nice(), 'maxAmountNum' => $money->getAmount(), 'hasAmountField' => $record->canRefund(null, true), 'infoTextKey' => $infoText, 'buttonTextKey' => 'RefundAmount')))->setDescription(_t('GridFieldRefundAction.Description', 'Refund a captured payment')); return $field->Field(); }
public function getColumnContent($gridField, $record, $columnName) { $link = $gridField->getForm()->getController()->Link("edit"); $target = $gridField->getForm()->getRecord(); $field = GridField_FormAction::create($gridField, 'Select' . $record->ID, 'Select', "doselect", array("RecordClassName" => $record->ClassName, "RecordID" => $record->ID, "TargetClassName" => $target->ClassName, "TargetID" => $target->ID, "Redirect" => $link))->addExtraClass("ss-ui-action-constructive"); return $field->Field(); }
/** * Returns a map where the keys are fragment names and the values are pieces of HTML to add to these fragments. * @param GridField $gridField Grid Field Reference * @return Array Map where the keys are fragment names and the values are pieces of HTML to add to these fragments. */ public function getHTMLFragments($gridField) { $dataList = $gridField->getList(); if (class_exists('UnsavedRelationList') && $dataList instanceof UnsavedRelationList) { return array(); } $state = $gridField->State->GridFieldSortableRows; if (!is_bool($state->sortableToggle)) { $state->sortableToggle = false; } //Ensure user can edit if (!singleton($gridField->getModelClass())->canEdit()) { return array(); } //Sort order toggle $sortOrderToggle = GridField_FormAction::create($gridField, 'sortablerows-toggle', 'sorttoggle', 'sortableRowsToggle', null)->addExtraClass('sortablerows-toggle'); $sortOrderSave = GridField_FormAction::create($gridField, 'sortablerows-savesort', 'savesort', 'saveGridRowSort', null)->addExtraClass('sortablerows-savesort'); //Sort to Page Action $sortToPage = GridField_FormAction::create($gridField, 'sortablerows-sorttopage', 'sorttopage', 'sortToPage', null)->addExtraClass('sortablerows-sorttopage'); $data = array('SortableToggle' => $sortOrderToggle, 'SortOrderSave' => $sortOrderSave, 'SortToPage' => $sortToPage, 'Checked' => $state->sortableToggle == true ? ' checked = "checked"' : '', 'List' => $dataList); $forTemplate = new ArrayData($data); //Inject Requirements $custom = Config::inst()->get('GridFieldSortableRows', 'Base'); $base = $custom ?: SORTABLE_GRIDFIELD_BASE; Requirements::css($base . '/css/GridFieldSortableRows.css'); Requirements::javascript($base . '/javascript/GridFieldSortableRows.js'); $args = array('Colspan' => count($gridField->getColumns()), 'ID' => $gridField->ID(), 'DisableSelection' => $this->disable_selection); $fragments = array('header' => $forTemplate->renderWith('GridFieldSortableRows', $args)); if ($gridField->getConfig()->getComponentByType('GridFieldPaginator')) { $fragments['after'] = $forTemplate->renderWith('GridFieldSortableRows_paginator'); } return $fragments; }
/** * * @param GridField $gridField * @param DataObject $record * @param string $columnName * @return string - the HTML for the column */ public function getColumnContent($gridField, $record, $columnName) { if ($this->removeRelation) { $field = GridField_FormAction::create($gridField, 'UnlinkRelation' . $record->ID, false, "unlinkrelation", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-unlink')->setAttribute('title', _t('GridAction.UnlinkRelation', "Unlink"))->setAttribute('data-icon', 'chain--minus'); } else { if (!$record->canDelete()) { return; } $field = GridField_FormAction::create($gridField, 'DeleteRecord' . $record->ID, false, "deleterecord", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-delete')->setAttribute('title', _t('GridAction.Delete', "Delete"))->setAttribute('data-icon', 'cross-circle')->setDescription(_t('GridAction.DELETE_DESCRIPTION', 'Delete')); } //add a class to the field to if it is the last gridfield in the list $numberOfRelations = $record->Pages()->Count(); $field->addExtraClass('dms-delete')->setAttribute('data-pages-count', $numberOfRelations)->removeExtraClass('gridfield-button-delete'); //remove the base gridfield behaviour //set a class telling JS what kind of warning to display when clicking the delete button if ($numberOfRelations > 1) { $field->addExtraClass('dms-delete-link-only'); } else { $field->addExtraClass('dms-delete-last-warning'); } //set a class to show if the document is hidden if ($record->isHidden()) { $field->addExtraClass('dms-document-hidden'); } return $field->Field(); }
/** * @param GridField $gridField * @param DataObject $record * @param string $columnName * @return string - the HTML for the column */ public function getColumnContent($gridField, $record, $columnName) { if (!$record->canDelete()) { return; } $field = GridField_FormAction::create($gridField, 'SoftDeleteRecord' . $record->ID, false, "softdeleterecord", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-delete')->setAttribute('title', _t('GridAction.Delete', "Delete"))->setAttribute('data-icon', 'cross-circle')->setDescription(_t('GridAction.DELETE_DESCRIPTION', 'Delete')); return $field->Field(); }
public function getColumnContent($gridField, $record, $columnName) { if (!$record->canCreate()) { return; } $field = GridField_FormAction::create($gridField, 'CopyRecord' . $record->ID, false, "copyrecord", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-copy')->setAttribute('title', _t('GridAction.Copy', "Copy"))->setDescription(_t('GridAction.COPY_DESCRIPTION', 'Copy')); return $field->Field(); }
public function getColumnContent($gridField, $record, $columnName) { $template = $gridField->getList()->byID($record->ID); $title = 'Clone Template'; $icon = 'drive-upload'; $field = GridField_FormAction::create($gridField, GridFieldCloneSurveyTemplateAction::ACTION_NAME . $record->ID, false, GridFieldCloneSurveyTemplateAction::ACTION_NAME, array('RecordID' => $record->ID))->setAttribute('title', $title)->setAttribute('data-icon', $icon)->setDescription($title); return $field->Field(); }
/** * * @param GridField $gridField * @param DataObject $record * @param string $columnName * @return string - the HTML for the column */ public function getColumnContent($gridField, $record, $columnName) { if (!$record->IsDeletedFromStage && $record->canDelete() && !$record->isPublished()) { $field = GridField_FormAction::create($gridField, 'DeleteFromStage' . $record->ID, false, "deletefromstage", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-deletedraft')->setAttribute('title', _t('PublishableGridFieldAction.DELETE', 'Delete draft'))->setAttribute('data-icon', 'decline')->setDescription(_t('PublishableGridFieldAction.DELETE_DESC', 'Remove this item from the draft site')); return $field->Field(); } return; }
public function getHTMLFragments($gridField) { Requirements::css(FindManyManyDropdown_PATH . '/css/FindManyManyDropdown.css'); Requirements::javascript(FindManyManyDropdown_PATH . '/javascript/FindManyManyDropdownForm.js'); $targetFragment = 'before'; if ($gridField->getConfig()->getComponentByType('GridFieldButtonRow')) { $targetFragment = 'buttons-before-right'; } $dataClass = $gridField->list->dataClass; $dropdownOptions = new DropdownField('gridfield_relationdropdown', 'Please choose an object', Dataobject::get($dataClass)->map("ID", "Title")); $dropdownOptions->setEmptyString('Select:'); $addAction = new GridField_FormAction($gridField, 'gridfield_relationadd', _t('GridField.LinkExisting', "Link Existing"), 'addDDto', 'addDDto'); $addAction->setAttribute('data-icon', 'chain--plus'); $forTemplate = new ArrayData(array()); $forTemplate->Fields = new ArrayList(); $forTemplate->Fields->push($dropdownOptions); $forTemplate->Fields->push($addAction); return array($targetFragment => $forTemplate->renderWith('FindManyManyDropdownForm')); }
public function getColumnContent($gridField, $record, $columnName) { if (!$record->canEdit()) { return; } $member = $gridField->getList()->byID($record->ID); $title = $member->Active ? "Deactivate Member" : "Activate Member"; $icon = $member->Active ? 'accept' : 'accept_disabled'; $field = GridField_FormAction::create($gridField, 'activatemember' . $record->ID, false, "activatemember", array('RecordID' => $record->ID))->setAttribute('title', $title)->setAttribute('data-icon', $icon)->setDescription($title); return $field->Field(); }
public function getColumnContent($gridField, $record, $columnName) { if (!$record->canEdit()) { return; } $summit_event = $gridField->getList()->byID($record->ID); $title = $summit_event->Published ? "Unpublish Event" : "Publish Event"; $icon = $summit_event->Published ? 'accept' : 'accept_disabled'; $field = GridField_FormAction::create($gridField, 'publishsummitevent' . $record->ID, false, "publishsummitevent", array('RecordID' => $record->ID))->setAttribute('title', $title)->setAttribute('data-icon', $icon)->setDescription($title); return $field->Field(); }
/** * @inheritdoc * * Create the split button with all the export options. * * @param GridField $gridField * @return array */ public function getHTMLFragments($gridField) { // Set up the split button $splitButton = new SplitButton('Export', 'Export'); $splitButton->setAttribute('data-icon', 'download-csv'); // XLSX option $button = new GridField_FormAction($gridField, 'xlsxexport', _t('firebrandhq.EXCELEXPORT', 'Export to Excel (XLSX)'), 'xlsxexport', null); $button->addExtraClass('no-ajax'); $splitButton->push($button); // XLS option $button = new GridField_FormAction($gridField, 'xlsexport', _t('firebrandhq.EXCELEXPORT', 'Export to Excel (XLS)'), 'xlsexport', null); $button->addExtraClass('no-ajax'); $splitButton->push($button); // CSV option $button = new GridField_FormAction($gridField, 'csvexport', _t('firebrandhq.EXCELEXPORT', 'Export to CSV'), 'csvexport', null); $button->addExtraClass('no-ajax'); $splitButton->push($button); // Return the fragment return array($this->targetFragment => $splitButton->Field()); }
/** * {@inheritDoc} */ public function getColumnContent($gridField, $record, $columnName) { if (!$record->canEdit()) { return; } if ($record->isPublished()) { $field = GridField_FormAction::create($gridField, 'UnPublish' . $record->ID, false, "unpublish", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-unpublish')->setAttribute('title', _t('SiteTree.BUTTONUNPUBLISH', 'Unpublish'))->setAttribute('data-icon', 'unpublish')->setDescription(_t('News.BUTTONUNPUBLISHDESC', 'Unpublish news item')); } else { $field = GridField_FormAction::create($gridField, 'Publish' . $record->ID, false, "publish", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-publish')->setAttribute('title', _t('SiteTree.BUTTONSAVEPUBLISH', 'Save & Publish'))->setAttribute('data-icon', 'accept')->setDescription(_t('News.BUTTONUNPUBLISHDESC', 'Publish news item')); } return $field->Field(); }
public function getHTMLFragments($gridField) { $singleton = singleton($gridField->getModelClass()); if (!$singleton->canCreate() || !singleton('SiteTree')->canCreate()) { return []; } if (!$this->buttonName) { // provide a default button name, can be changed by calling {@link setButtonName()} on this component $this->buttonName = _t('Link.COPY_CHILDREN_FROM_ROOT', 'Copy children from root'); } return [$this->targetFragment => \GridField_FormAction::create($gridField, 'CopyChildrenFromRoot-' . \Convert::raw2att($this->urlSegment), $this->buttonName, $this->urlSegment, [])->addExtraClass('gridfield-button-copyChildrenFromRoot')->setAttribute('title', $this->buttonName)->setDescription($this->buttonName)->Field()]; }
public function getColumnContent($gridField, $record, $columnName) { if (!$record->canEdit()) { return; } $member = $gridField->getList()->byID($record->ID); $allowed = !$member->isFoundationMember(); $title = $allowed ? "Make this user a Foundation Member" : "Foundation Member"; $icon = $allowed ? 'chain--exclamation' : 'chain-unchain'; $field = GridField_FormAction::create($gridField, 'becomefoundationmember' . $record->ID, false, "becomefoundationmember", array('RecordID' => $record->ID))->setAttribute('title', $title)->setAttribute('data-icon', $icon)->setDescription($title); $field->setDisabled(!$allowed); return $field->Field(); }
/** * * @param GridField $gridField * @param DataObject $record * @param string $columnName * @return string - the HTML for the column */ public function getColumnContent($gridField, $record, $columnName) { // Disable the export icon if current user doesn't have access to view CMS Security settings if (!Permission::check('CMS_ACCESS_SecurityAdmin')) { return ''; } $field = GridField_FormAction::create($gridField, 'ExportRecord' . $record->ID, false, "exportrecord", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-export')->setAttribute('title', _t('GridAction.Export', "Export"))->setAttribute('data-icon', 'export')->setDescription(_t('GridAction.EXPORT_DESCRIPTION', 'Export')); $segment1 = Director::baseURL(); $segment2 = Config::inst()->get('AdvancedWorkflowAdmin', 'url_segment'); $segment3 = $record->getClassName(); $fields = new ArrayData(array('Link' => Controller::join_links($segment1, 'admin', $segment2, $segment3, 'export', $record->ID))); return $field->Field()->renderWith('GridField_ExportAction', $fields); }
public function getHTMLFragments($gridField) { $singleton = singleton($gridField->getModelClass()); $record = $gridField->Form && $gridField->Form->Record ? $gridField->Form->Record : null; if (!$singleton->canCreate() || !singleton('SiteTree')->canCreate() || !$record || !$record->SiteTreeID) { return []; } if (!$this->buttonName) { // provide a default button name, can be changed by calling {@link setButtonName()} on this component $this->buttonName = _t('Link.COPY_CHILDREN_FROM_CURRENT_PAGE', 'Copy children from {title}', ['title' => $record->SiteTree()->Title]); } return [$this->targetFragment => \GridField_FormAction::create($gridField, 'CopyChildrenFromCurrentPage-' . \Convert::raw2att($this->urlSegment), $this->buttonName, $this->urlSegment, [])->addExtraClass('gridfield-button-copyChildrenFromCurrentPage')->setAttribute('title', $this->buttonName)->setDescription($this->buttonName)->Field()]; }
/** * Adds the HTML to the GridField that includes options for the mock data as well as the action button * * @param GridField * @return array */ public function getHTMLFragments($gridField) { Requirements::javascript(MOCK_DATAOBJECTS_DIR . '/javascript/mock_dataobjects.js'); Requirements::css(MOCK_DATAOBJECTS_DIR . '/css/mock_dataobjects.css'); $forTemplate = new ArrayData(array()); $forTemplate->Colspan = count($gridField->getColumns()); $forTemplate->CountField = TextField::create('mockdata[Count]', '', '10')->setAttribute('maxlength', 2)->setAttribute('size', 2); $forTemplate->RelationsField = new CheckboxField('mockdata[IncludeRelations]', '', false); $forTemplate->DownloadsField = new CheckboxField('mockdata[DownloadImages]', '', false); $forTemplate->Cancel = GridField_FormAction::create($gridField, 'cancel', _t('MockData.CANCEL', 'Cancel'), 'cancel', null)->setAttribute('id', 'action_mockdata_cancel' . $gridField->getModelClass())->addExtraClass('mock-data-generator-btn cancel'); $forTemplate->Action = GridField_FormAction::create($gridField, 'mockdata', _t('MockData.CREATE', 'Create'), 'mockdata', null)->addExtraClass('mock-data-generator-btn create ss-ui-action-constructive')->setAttribute('id', 'action_mockdata_' . $gridField->getModelClass()); return array('before' => $forTemplate->renderWith('MockDataGenerator')); }
/** * * @param GridField $gridField * @param DataObject $record * @param string $columnName * @return string - the HTML for the column */ public function getColumnContent($gridField, $record, $columnName) { $return = ''; if ($record->canPublish()) { if (!$record->IsDeletedFromStage && (!$record->isPublished() || $record->IsModifiedOnStage)) { $field = GridField_FormAction::create($gridField, 'Publish' . $record->ID, false, "publish", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-publish')->setAttribute('title', _t('SiteTree.BUTTONSAVEPUBLISH', 'Save & Publish'))->setAttribute('data-icon', 'accept')->setDescription(_t('PublishableGridFieldAction.BUTTONUNPUBLISHDESC', 'Save this item to the published site')); $return .= $field->Field(); } elseif ($record->isPublished() && $record->canDeleteFromLive()) { $field = GridField_FormAction::create($gridField, 'UnPublish' . $record->ID, false, "unpublish", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-unpublish')->setAttribute('title', _t('SiteTree.BUTTONUNPUBLISH', 'Unpublish'))->setAttribute('data-icon', 'unpublish')->setDescription(_t('SiteTree.BUTTONUNPUBLISHDESC', 'Remove this item from the published site')); $return .= $field->Field(); } } return $return; }
public function getColumnContent($gridField, $record, $columnName) { if (!$record->canEdit()) { return; } $field = new CompositeField(); if (!$record instanceof ElementVirtualLinked) { $field->push(GridField_FormAction::create($gridField, 'UnlinkRelation' . $record->ID, false, "unlinkrelation", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-unlink')->setAttribute('title', _t('GridAction.UnlinkRelation', "Unlink"))->setAttribute('data-icon', 'chain--minus')); } if ($record->canDelete() && $record->VirtualClones()->count() == 0) { $field->push(GridField_FormAction::create($gridField, 'DeleteRecord' . $record->ID, false, "deleterecord", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-delete')->setAttribute('title', _t('GridAction.Delete', "Delete"))->setAttribute('data-icon', 'cross-circle')->setDescription(_t('GridAction.DELETE_DESCRIPTION', 'Delete'))); } return $field->Field(); }
/** * {@inheritdoc} */ public function getColumnContent($gridField, $record, $columnName) { if (!$record->canEdit()) { return; } $field = ""; if (!$record->IsSpam || !$record->Moderated) { $field .= GridField_FormAction::create($gridField, 'CustomAction' . $record->ID . 'Spam', 'Spam', 'spam', array('RecordID' => $record->ID))->Field(); } if ($record->IsSpam || !$record->Moderated) { $field .= GridField_FormAction::create($gridField, 'CustomAction' . $record->ID . 'Approve', 'Approve', 'approve', array('RecordID' => $record->ID))->Field(); } return $field; }
public function getHTMLFragments($gridField) { $fields = new ArrayList(); $state = $gridField->State->UserFormsGridField; $selectedField = $state->filter; $selectedValue = $state->value; // show dropdown of all the fields available from the submitted form fields // that have been saved. Takes the titles from the currently live form. $columnField = new DropdownField('FieldNameFilter', ''); $columnField->setSource($this->columns); $columnField->setEmptyString(_t('UserFormsGridFieldFilterHeader.FILTERSUBMISSIONS', 'Filter Submissions..')); $columnField->setHasEmptyDefault(true); $columnField->setValue($selectedField); $valueField = new TextField('FieldValue', '', $selectedValue); $columnField->addExtraClass('ss-gridfield-sort'); $columnField->addExtraClass('no-change-track'); $valueField->addExtraClass('ss-gridfield-sort'); $valueField->addExtraClass('no-change-track'); $valueField->setAttribute('placeholder', _t('UserFormsGridFieldFilterHeader.WHEREVALUEIS', 'where value is..')); $fields->push(new FieldGroup(new CompositeField($columnField, $valueField))); $fields->push(new FieldGroup(new CompositeField($start = new DateField('StartFilter', 'From'), $end = new DateField('EndFilter', 'Till')))); foreach (array($start, $end) as $date) { $date->setConfig('showcalendar', true); $date->setConfig('dateformat', 'y-mm-dd'); $date->setConfig('datavalueformat', 'y-mm-dd'); $date->addExtraClass('no-change-track'); } $end->setValue($state->end); $start->setValue($state->start); $fields->push($actions = new FieldGroup(GridField_FormAction::create($gridField, 'filter', false, 'filter', null)->addExtraClass('ss-gridfield-button-filter')->setAttribute('title', _t('GridField.Filter', "Filter"))->setAttribute('id', 'action_filter_' . $gridField->getModelClass() . '_' . $columnField), GridField_FormAction::create($gridField, 'reset', false, 'reset', null)->addExtraClass('ss-gridfield-button-close')->setAttribute('title', _t('GridField.ResetFilter', "Reset"))->setAttribute('id', 'action_reset_' . $gridField->getModelClass() . '_' . $columnField))); $actions->addExtraClass('filter-buttons'); $actions->addExtraClass('no-change-track'); $forTemplate = new ArrayData(array('Fields' => $fields)); return array('header' => $forTemplate->renderWith('GridFieldFilterHeader_Row')); }