/**
  *
  * @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();
 }
 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();
 }
 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->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();
 }
 /**
  *
  * @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 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)
 {
     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();
 }
 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 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()];
 }
 /**
  * {@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());
     $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()];
 }
 /**
  *
  * @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);
 }
 /**
  * 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'));
 }
 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();
 }
 public function getHTMLFragments($gridField)
 {
     $submission = $this->getSubmission($gridField);
     if (!$submission) {
         throw new Exception('Unable to find "SubmittedForm".');
     }
     $missingFields = $submission->MissingValues();
     if (!$missingFields) {
         return;
     }
     $button = GridField_FormAction::create($gridField, $this->actionName, '(' . count($missingFields) . ') Add Missing Fields', $this->actionName, null);
     $button->setAttribute('data-icon', 'add')->addExtraClass('new new-link ui-button-text-icon-primary ss-ui-action-constructive usersubmissionholder-add-missing-fields');
     return array($this->targetFragment => $button->Field());
 }
Пример #19
0
 /**
  * {@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 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();
 }
 /**
  *
  * @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;
 }
 /**
  *
  * @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->canVoid()) {
         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');
     /** @var \GridField_FormAction $field */
     $field = \GridField_FormAction::create($gridField, 'VoidPayment' . $record->ID, false, 'voidpayment', array('RecordID' => $record->ID))->addExtraClass('gridfield-button-void payment-dialog-button')->setAttribute('title', _t('GridFieldVoidAction.Title', 'Void Payment'))->setAttribute('data-icon', 'button-void')->setAttribute('data-dialog', json_encode(array('maxAmount' => $record->dbObject('Money')->Nice(), 'hasAmountField' => false, 'infoTextKey' => 'VoidInfo', 'buttonTextKey' => 'VoidPayment')))->setDescription(_t('GridFieldVoidAction.Description', 'Void an authorized payment'));
     return $field->Field();
 }
 public function getHTMLFragments($gridField)
 {
     $singleton = singleton($gridField->getModelClass());
     if (!$singleton->canEdit() && !$singleton->canCreate()) {
         return [];
     }
     if (!$this->buttonName) {
         if ($this->publish && $singleton->hasExtension('Versioned')) {
             $this->buttonName = _t('GridField.SAVE_ALL_AND_PUBLISH', 'Save all and publish');
         } else {
             $this->buttonName = _t('GridField.SAVE_ALL', 'Save all');
         }
     }
     $button = \GridField_FormAction::create($gridField, $this->actionName, $this->buttonName, $this->actionName, null);
     $button->setAttribute('data-icon', 'disk')->addExtraClass('new new-link ui-button-text-icon-primary');
     return [$this->targetFragment => $button->Field()];
 }
 public function getHTMLFragments($gridField)
 {
     if (!$this->checkDataType($gridField->getList())) {
         return;
     }
     $forTemplate = new ArrayData(array());
     $forTemplate->Fields = new ArrayList();
     $columns = $gridField->getColumns();
     $filterArguments = $gridField->State->GridFieldFilterHeader->Columns->toArray();
     $currentColumn = 0;
     foreach ($columns as $columnField) {
         $currentColumn++;
         $metadata = $gridField->getColumnMetadata($columnField);
         $title = $metadata['title'];
         $fields = new FieldGroup();
         if ($title && $gridField->getList()->canFilterBy($columnField)) {
             $value = '';
             if (isset($filterArguments[$columnField])) {
                 $value = $filterArguments[$columnField];
             }
             $field = new TextField('filter[' . $gridField->getName() . '][' . $columnField . ']', '', $value);
             $field->addExtraClass('ss-gridfield-sort');
             $field->addExtraClass('no-change-track');
             $field->setAttribute('placeholder', _t('GridField.FilterBy', "Filter by ") . _t('GridField.' . $metadata['title'], $metadata['title']));
             $fields->push($field);
             $fields->push(GridField_FormAction::create($gridField, 'reset', false, 'reset', null)->addExtraClass('ss-gridfield-button-reset')->setAttribute('title', _t('GridField.ResetFilter', "Reset"))->setAttribute('id', 'action_reset_' . $gridField->getModelClass() . '_' . $columnField));
         }
         if ($currentColumn == count($columns)) {
             $fields->push(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));
             $fields->push(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));
             $fields->addExtraClass('filter-buttons');
             $fields->addExtraClass('no-change-track');
         }
         $forTemplate->Fields->push($fields);
     }
     return array('header' => $forTemplate->renderWith('GridFieldFilterHeader_Row'));
 }
Пример #25
0
	public function getHTMLFragments($gridField) {
		if(!$this->checkDataType($gridField->getList())) return;

		$forTemplate = new ArrayData(array());
		$forTemplate->Fields = new ArrayList;

		$columns = $gridField->getColumns();
		$filterArguments = $gridField->State->GridFieldFilterHeader->Columns->toArray();
		
		$currentColumn = 0;
		foreach($columns as $columnField) {
			$currentColumn++;
			$metadata = $gridField->getColumnMetadata($columnField);
			$title = $metadata['title'];
			if($title && $gridField->getList()->canFilterBy($columnField)) {
				$value = '';
				if(isset($filterArguments[$columnField])) {
					$value = $filterArguments[$columnField];
				}
				$field = new TextField('filter['.$columnField.']', '', $value);
				$field->addExtraClass('ss-gridfield-sort');

				$field = new FieldGroup(
					$field,
					GridField_FormAction::create($gridField, 'filter', false, 'filter', null)
						->addExtraClass('ss-gridfield-button-filter')
						->setAttribute('title', _t('GridField.Filter', "Filter"))
						,
					GridField_FormAction::create($gridField, 'reset', false, 'reset', null)
						->addExtraClass('ss-gridfield-button-reset')
						->setAttribute('title', _t('GridField.ResetFilter', "Reset"))
				);
			} else {
				$field = new LiteralField('', '');
			}

			
			$forTemplate->Fields->push($field);
		}
		
		return array(
			'header' => $forTemplate->renderWith('GridFieldFilterHeader_Row'),
		);
	}
 /**
  *
  * @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) {
         if (!$record->canEdit()) {
             return;
         }
         $field = GridField_FormAction::create($gridField, 'UnlinkRelation' . $record->ID, false, "unlinkrelation", array('RecordID' => $record->ID))->addExtraClass('btn btn--no-text btn--icon-md font-icon-link-broken grid-field__icon-action gridfield-button-unlink')->setAttribute('title', _t('GridAction.UnlinkRelation', "Unlink"));
     } else {
         if (!$record->canDelete()) {
             return;
         }
         $field = GridField_FormAction::create($gridField, 'DeleteRecord' . $record->ID, false, "deleterecord", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-delete btn--icon-md font-icon-trash-bin btn--no-text grid-field__icon-action')->setAttribute('title', _t('GridAction.Delete', "Delete"))->setDescription(_t('GridAction.DELETE_DESCRIPTION', 'Delete'));
     }
     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 ($this->removeRelation) {
         if (!$record->canEdit()) {
             return;
         }
         $field = GridField_FormAction::create($gridField, 'UnlinkRelation' . $record->ID, _t('GridAction.UnlinkRelation', "Unlink"), "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, _t('GridAction.Delete', "Delete"), "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 getHTMLFragments($gridField)
 {
     $this->stockFormats($gridField);
     if (empty($this->formats)) {
         return [];
     }
     Utilities::include_requirements();
     $currentFormat = $this->getFormatState($gridField)->current;
     $formats = ArrayList::create();
     $icon = '<i class="ss-gridfield--format-switcher--button-icon"></i><i class="ss-gridfield--format-switcher--button-icon"></i><i class="ss-gridfield--format-switcher--button-icon"></i>';
     $action = Button::create($gridField, 'unformatted', _t('GridField_FormatSwitcher.' . $this->unformatted['title'], $this->unformatted['title']), $this->urlSegment, $this->unformatted['state']);
     $action->ButtonContent = $icon . $action->Title();
     $action->addExtraClass('ss-gridfield--format-switcher--button ss-gridfield--format-switcher--button_' . $this->unformatted['state']);
     if ($currentFormat == $this->unformatted['state']) {
         $action = $action->addExtraClass('ss-gridfield--format-switcher--button_active active')->performDisabledTransformation();
     }
     $formats->push(ArrayData::create(['Button' => $action]));
     foreach ($this->formats as $formatState => $format) {
         if (is_array($format)) {
             $title = empty($format['title']) ? FormField::name_to_label($formatState) : $format['title'];
         } else {
             if (is_callable($format)) {
                 $title = FormField::name_to_label($formatState);
             } else {
                 $title = $format->getFormatTitle();
             }
         }
         $action = Button::create($gridField, $formatState, $title, $this->urlSegment, $formatState);
         $action->ButtonContent = $icon . $action->Title();
         $action->addExtraClass('ss-gridfield--format-switcher--button ss-gridfield--format-switcher--button_' . str_replace(' ', '-', $formatState));
         if ($formatState == $currentFormat) {
             $action = $action->addExtraClass('ss-gridfield--format-switcher--button_active active')->performDisabledTransformation();
         }
         $formats->push(ArrayData::create(['Button' => $action]));
     }
     return [$this->targetFragment => ArrayData::create(['Formats' => $formats])->renderWith('GridField_FormatSwitcher')];
 }
 /**
  * Returns the columns content for the given GridField, record and column 
  * name.
  *
  * @param GridField  $gridField  GridField to get content for
  * @param DataObject $record     Record to get content for
  * @param string     $columnName Column name to get content for
  * 
  * @return string - the HTML for the column 
  */
 public function getColumnContent($gridField, $record, $columnName)
 {
     $content = '';
     if ($record->canCreate()) {
         $field = GridField_FormAction::create($gridField, 'DuplicateRecord' . $record->ID, false, "duplicaterecord", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-duplicate')->setAttribute('title', _t('GridAction.Duplicate', "Duplicate"))->setAttribute('data-icon', 'addpage')->setDescription(_t('GridAction.DUPLICATE_DESCRIPTION', 'Duplicate'));
         $content = $field->Field();
     }
     return $content;
 }
Пример #30
-1
 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'));
 }