public function getCMSFields()
 {
     $fields = singleton('DataObject')->getCMSFields();
     $fields->addFieldsToTab('Root.Main', array(new ReadonlyField('SubmittedBy', 'Submitted By'), new ReadonlyField('IPAddress', 'IP Address'), new ReadonlyField('Created', 'Time Submitted'), new ReadonlyField('StatusMessages'), $field = new GridField('Values', 'Responses', $this->Values(), new GridFieldConfig_FlexiFormSubmissionValues())));
     $field->addExtraClass('flexiform');
     return $fields;
 }
 /**
  * @param GridField $field
  */
 public function getHTMLFragments($field)
 {
     VersionedGridFieldExtensions::include_requirements();
     $field->addExtraClass('ss-versioned-gridfield-orderable');
     $field->setAttribute('data-url-reorder', $field->Link('reorder'));
     $field->setAttribute('data-url-movetopage', $field->Link('movetopage'));
 }
 /**
  * @param GridField $field
  */
 public function getHTMLFragments($field)
 {
     self::include_requirements();
     // set ajax urls / vars
     $field->addExtraClass('ss-gridfield-blockenhancements');
     //		$field->setAttribute('data-url-area-assignment', $field->Link('area_assignment'));
     $field->setAttribute('data-url-blocktype-assignment', $field->Link('blocktype_assignment'));
     //		$field->setAttribute('data-block-area-none-title', Config::inst()->get(get_class(), 'unassigned_area_description'));
     // add no-chozen to dropdown
     //        $field->getConfig()->getComponentByType('GridFieldAddNewMultiClass')->
     //        $field->getConfig()->getComponentByType('GridFieldDetailForm')->setAttribute('data-project-dir', project());
 }
    public function getCMSFields()
    {
        $fields = parent::getCMSFields();
        $fields->removeByName('Order');
        $fields->removeByName('ProcessInfo');
        $fields->removeByName('StopStageID');
        $fields->removeByName('StopButton');
        $fields->removeByName('ContinueButton');
        $fields->removeByName('DecisionPoint');
        $fields->removeByName('CaseFinal');
        $fields->insertBefore(new LiteralField('StageTitle', '<h3 class="process-info-header">
			<span class="step-label">
				<span class="flyout">3</span><span class="arrow"></span>
				<span class="title">Stage Settings</span>
			</span>
		</h3>'), 'Title');
        $caseFinalMap = ProcessCase::get()->filter(array('ParentProcessID' => $this->ParentID))->map("ID", "Title")->toArray();
        asort($caseFinalMap);
        $case = ListboxField::create('CaseFinal', 'Final step for these Cases')->setMultiple(true)->setSource($caseFinalMap)->setAttribute('data-placeholder', _t('ProcessAdmin.Cases', 'Cases', 'Placeholder text for a dropdown'));
        $fields->insertAfter($case, 'Title');
        $fields->insertAfter($group = new CompositeField($label = new LabelField('switchLabel', 'Act as Decision Point'), new CheckboxField('DecisionPoint', '')), 'ParentID');
        $group->addExtraClass("field special process-noborder");
        $label->addExtraClass("left");
        $fields->dataFieldByName('Content')->setRows(10);
        if ($this->ID > 0) {
            $fields->addFieldToTab('Root.Main', new LiteralField('SaveRecord', '<p></p>'));
            $fields->addFieldToTab('Root.Main', $processInfo = new CompositeField($grid = new GridField('ProcessInfo', 'Information for this stage', $this->ProcessInfo()->sort(array('TypeID' => 'ASC', 'ProcessCaseID' => 'ASC', 'LinksToAnotherStageID' => 'ASC')), $gridConfig = GridFieldConfig_RelationEditor::create())));
            $gridConfig->addComponent(new GridFieldSortableRows('Order'));
            $processInfo->addExtraClass('process-spacing');
            $grid->addExtraClass('toggle-grid');
        } else {
            $fields->addFieldToTab('Root.Main', new LiteralField('SaveRecord', '<p class="message info">Save this stage to add info</p>'));
        }
        $fields->insertBefore(new LiteralField('StageTitleInfo', '<h3 class="process-info-header">
				<span class="step-label">
					<span class="flyout">4</span><span class="arrow"></span>
					<span class="title">Information</span>
				</span>
			</h3>'), 'SaveRecord');
        $stopStage = ProcessStopStage::get();
        if ($stopStage) {
            $fields->insertBefore($inner = new CompositeField(new LiteralField('Decision', '<h3>Decision Point</h3>'), new LiteralField('ExplainStop', '<label class="right">Choose a stop stage if you would like this stage to act as a decision point</label>'), $stop = new DropdownField('StopStageID', 'Stop Stage', $stopStage->map('ID', 'Title')), $continue = new TextField('ContinueButton', 'Button: Continue (e.g. "Yes")'), new TextField('StopButton', 'Button: Stop (e.g. "No")')), 'ProcessInfo');
            $stop->setEmptyString('No stop after this stage');
            $inner->addExtraClass('message special toggle-decide');
            $continue->addExtraClass('process-noborder');
            $stop->addExtraClass('process-noborder');
        }
        return $fields;
    }
 public function getEditForm($id = null, $fields = null)
 {
     $report = $this->reportObject;
     if ($report) {
         $fields = $report->getCMSFields();
     } else {
         // List all reports
         $fields = new FieldList();
         $gridFieldConfig = GridFieldConfig::create()->addComponents(new GridFieldToolbarHeader(), new GridFieldSortableHeader(), new GridFieldDataColumns(), new GridFieldFooter());
         $gridField = new GridField('Reports', false, $this->Reports(), $gridFieldConfig);
         $columns = $gridField->getConfig()->getComponentByType('GridFieldDataColumns');
         $columns->setDisplayFields(array('title' => _t('ReportAdmin.ReportTitle', 'Title')));
         $columns->setFieldFormatting(array('title' => '<a href=\\"$Link\\" class=\\"cms-panel-link\\">$value ($Count)</a>'));
         $gridField->addExtraClass('all-reports-gridfield');
         $fields->push($gridField);
     }
     $actions = new FieldList();
     $form = new Form($this, "EditForm", $fields, $actions);
     $form->addExtraClass('cms-edit-form cms-panel-padded center ' . $this->BaseCSSClasses());
     $form->loadDataFrom($this->request->getVars());
     $this->extend('updateEditForm', $form);
     return $form;
 }
Ejemplo n.º 6
0
	public function getEditForm($id = null, $fields = null) {
		$fields = new FieldList();
		
		$report = $this->reportObject;

		if($report) {
			// List all reports
			$gridFieldConfig = GridFieldConfig::create()->addComponents(
				new GridFieldToolbarHeader(),
				new GridFieldSortableHeader(),
				new GridFieldDataColumns(),
				new GridFieldPaginator(),
				new GridFieldPrintButton(),
				new GridFieldExportButton()
			);
			$gridField = new GridField('Report',$report->title(), $report->sourceRecords(array(), null, null), $gridFieldConfig);
			$columns = $gridField->getConfig()->getComponentByType('GridFieldDataColumns');
			$displayFields = array();
			$fieldCasting = array();
			$fieldFormatting = array();
			
			// Parse the column information
			foreach($report->columns() as $source => $info) {
				if(is_string($info)) $info = array('title' => $info);
				
				if(isset($info['formatting'])) $fieldFormatting[$source] = $info['formatting'];
				if(isset($info['csvFormatting'])) $csvFieldFormatting[$source] = $info['csvFormatting'];
				if(isset($info['casting'])) $fieldCasting[$source] = $info['casting'];

				if(isset($info['link']) && $info['link']) {
					$link = singleton('CMSPageEditController')->Link('show');
					$fieldFormatting[$source] = '<a href=\"' . $link . '/$ID\">$value</a>';
				}

				$displayFields[$source] = isset($info['title']) ? $info['title'] : $source;
			}
			$columns->setDisplayFields($displayFields);
			$columns->setFieldCasting($fieldCasting);
			$columns->setFieldFormatting($fieldFormatting);

			$fields->push($gridField);
		} else {
			// List all reports
			$gridFieldConfig = GridFieldConfig::create()->addComponents(
				new GridFieldToolbarHeader(),
				new GridFieldSortableHeader(),
				new GridFieldDataColumns(),
				new GridFieldFooter()
			);
			$gridField = new GridField('Reports','Reports', $this->Reports(), $gridFieldConfig);
			$columns = $gridField->getConfig()->getComponentByType('GridFieldDataColumns');
			$columns->setDisplayFields(array(
				'title' => 'Title',
			));
			$columns->setFieldFormatting(array(
				'title' => '<a href=\"$Link\" class=\"cms-panel-link\">$value</a>'
			));
			$gridField->addExtraClass('all-reports-gridfield');
			$fields->push($gridField);
		}

		$actions = new FieldList();
		$form = new Form($this, "EditForm", $fields, $actions);
		$form->addExtraClass('cms-edit-form cms-panel-padded center ' . $this->BaseCSSClasses());

		$this->extend('updateEditForm', $form);

		return $form;
	}
 /**
  * Returns a GridField of messages
  * @return CMSForm
  */
 public function ListForm()
 {
     $fields = new FieldList();
     $gridFieldConfig = GridFieldConfig::create()->addComponents(new GridFieldToolbarHeader(), new GridFieldSortableHeader(), new GridFieldDataColumns(), new GridFieldFooter());
     $gridField = new GridField('SearchResults', _t('MandrillAdmin.SearchResults', 'Search Results'), $this->Messages(), $gridFieldConfig);
     $columns = $gridField->getConfig()->getComponentByType('GridFieldDataColumns');
     $columns->setDisplayFields(array('date' => _t('MandrillAdmin.MessageDate', 'Date'), 'state' => _t('MandrillAdmin.MessageStatus', 'Status'), 'sender' => _t('MandrillAdmin.MessageSender', 'Sender'), 'email' => _t('MandrillAdmin.MessageEmail', 'Email'), 'subject' => _t('MandrillAdmin.MessageSubject', 'Subject'), 'opens' => _t('MandrillAdmin.MessageOpens', 'Opens'), 'clicks' => _t('MandrillAdmin.MessageClicks', 'Clicks')));
     $columns->setFieldFormatting(array('subject' => function ($value, &$item) {
         return sprintf('<a href="%s" class="cms-panel-link" data-pjax-target="Content">%s</a>', Convert::raw2xml($item->Link), $value);
     }, 'state' => function ($value, &$item) {
         $color = MandrillMessage::getColorForState($value);
         return sprintf('<span style="color:%s">%s</span>', $color, $value);
     }));
     $gridField->addExtraClass('all-messages-gridfield');
     $fields->push($gridField);
     $actions = new FieldList();
     $form = CMSForm::create($this, "ListForm", $fields, $actions)->setHTMLID('Form_ListForm');
     $form->setResponseNegotiator($this->getResponseNegotiator());
     return $form;
 }
Ejemplo n.º 8
0
 public function getEditForm($id = null, $fields = null)
 {
     $report = $this->reportObject;
     if ($report) {
         $fields = $report->getCMSFields();
     } else {
         // List all reports
         $fields = new FieldList();
         $gridFieldConfig = GridFieldConfig::create()->addComponents(new GridFieldToolbarHeader(), new GridFieldSortableHeader(), new GridFieldDataColumns(), new GridFieldFooter());
         $gridField = new GridField('Reports', false, $this->Reports(), $gridFieldConfig);
         $columns = $gridField->getConfig()->getComponentByType('GridFieldDataColumns');
         $columns->setDisplayFields(array('title' => _t('ReportAdmin.ReportTitle', 'Title')));
         $columns->setFieldFormatting(array('title' => function ($value, &$item) {
             return sprintf('<a href="%s" class="cms-panel-link">%s</a>', Convert::raw2xml($item->Link), Convert::raw2xml($value));
         }));
         $gridField->addExtraClass('all-reports-gridfield');
         $fields->push($gridField);
     }
     $actions = new FieldList();
     $form = CMSForm::create($this, "EditForm", $fields, $actions)->setHTMLID('Form_EditForm');
     $form->setResponseNegotiator($this->getResponseNegotiator());
     $form->addExtraClass('cms-edit-form cms-panel-padded center ' . $this->BaseCSSClasses());
     $form->loadDataFrom($this->request->getVars());
     $this->extend('updateEditForm', $form);
     return $form;
 }
 /**
  * Attributes for the element containing the content returned by {@link getColumnContent()}.
  *
  * @param  \GridField $gridField
  * @param  \DataObject $record displayed in this row
  * @param  string $columnName
  *
  * @return array
  */
 public function getColumnAttributes($gridField, $record, $columnName)
 {
     \Requirements::css(SS_MWM_DIR . '/thirdparty/font-awesome/font-awesome.min.css');
     Utilities::include_requirements();
     $gridField->addExtraClass('ss-gridfield-editable-rows');
     if ($this->disableToggleStateSave) {
         $gridField->addExtraClass('ss-gridfield-editable-rows_disableToggleState');
     }
     if ($this->cacheToggleStateSave) {
         $gridField->addExtraClass('ss-gridfield-editable-rows_allowCachedToggles');
     }
     $this->workingGrid = $gridField;
     return ['data-link' => $this->Link('load', $record->ID), 'class' => 'ss-gridfield-editable-row--icon-holder'];
 }
 /**
  * @param GridField $field
  */
 public function getHTMLFragments($field)
 {
     if (!$field->getConfig()->getComponentByType('GridFieldOrderableRows')) {
         user_error("GridFieldGroupable requires a GridFieldOrderableRows component", E_USER_WARNING);
     }
     self::include_requirements();
     // set ajax urls / vars
     $field->addExtraClass('ss-gridfield-groupable');
     $field->setAttribute('data-url-group-assignment', $field->Link('group_assignment'));
     // setoptions [groupUnassignedName, groupFieldLabel, groupField, groupsAvailable]
     $field->setAttribute('data-groupable-unassigned', $this->getOption('groupUnassignedName'));
     $field->setAttribute('data-groupable-role', $this->getOption('groupFieldLabel'));
     $field->setAttribute('data-groupable-itemfield', $this->getOption('groupField'));
     $field->setAttribute('data-groupable-groups', json_encode($this->getOption('groupsAvailable')));
 }
 /**
  * @param GridField $field
  */
 public function getHTMLFragments($field)
 {
     GridFieldExtensions::include_requirements();
     $field->addExtraClass('ss-gridfield-orderable');
     $field->setAttribute('data-immediate-update', (string) (int) $this->immediateUpdate);
     $field->setAttribute('data-url-reorder', $field->Link('reorder'));
     $field->setAttribute('data-url-movetopage', $field->Link('movetopage'));
 }