public function updateCMSFields(FieldList $fields)
 {
     $tabName = 'Root.Pricing';
     if (class_exists("DataObjectOneFieldUpdateController")) {
         $link = DataObjectOneFieldUpdateController::popup_link($this->owner->ClassName, "Price", $where = "", $sort = "Price ASC ", $linkText = "Check all prices...");
         $fields->AddFieldToTab($tabName, new HeaderField("MetaTitleFixesHeader", "Quick review", 3));
         $fields->AddFieldToTab($tabName, new LiteralField("MetaTitleFixes", $link . ".<br /><br /><br />"));
     }
     // move price field under new 'Pricing' tab
     //		$priceField = $fields->fieldByName('Root.Details.Price');
     //		$fields->remove($priceField);
     $fields->addFieldsToTab($tabName, array(new HeaderField("ComplexPricesHeader", "Alternative Pricing", 3), new LiteralField("ComplexPricesExplanation", "<p>Please enter <i>alternative</i> pricing below. You can enter a price per <a href=\"admin/security/\">security group</a> and/or per country.</p>"), $this->complexPricesHasManyTable()));
 }
 function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $dos = WebPortfolioWhatWeDidDescriptor::get();
     if ($dos->count() && $this->ID) {
         $dosArray = $dos->map()->toArray();
         $fields->addFieldsToTab("Root.WhatWeDid", array(new CheckboxSetField("WhatWeDid", "Select work done", $dosArray), new TextField("AddWhatWeDid", "Add a job")));
     }
     if (class_exists("DataObjectOneFieldUpdateController")) {
         $link = DataObjectOneFieldUpdateController::popup_link($ClassName = $this->ClassName, $FieldName = "Favourites", $where = '', $sort = 'Favourites DESC', $linkText = 'Select Favourites');
         $fields->addFieldToTab("Root.Main", new LiteralField("SelectFavourites", $link), "Favourites");
     }
     return $fields;
 }
 function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->removeByName("Code");
     if ($this->ID) {
         $dos = WebPortfolioWhatWeDidDescriptor::get()->exclude(array("ID" => $this->ID));
         if ($dos->count()) {
             $dosArray = array("" => "--- do not merge ---");
             $dosArray += $dos->map("ID", "Name")->toArray();
             $fields->addFieldToTab("Root.Merge", new DropdownField("MergeID", "Merge <i>{$this->Name}</i> into:", $dosArray));
         }
     }
     $dos = WebPortfolioItem::get();
     if ($dos->count() && $this->ID) {
         $dosArray = $dos->map()->toArray();
         $fields->addFieldsToTab("Root.WebPortfolioItem", array(new CheckboxSetField("WebPortfolioItem", "Carried out for", $dosArray)));
     }
     if (class_exists("DataObjectOneFieldUpdateController")) {
         $link = DataObjectOneFieldUpdateController::popup_link($ClassName = $this->ClassName, $FieldName = "Description", $where = '', $sort = 'Description DESC', $linkText = 'Edit Description');
         $fields->addFieldToTab("Root.Main", new LiteralField("EditDescription", $link), "Description");
     }
     return $fields;
 }
 protected function getFormField($obj, $fieldName)
 {
     if (!self::$field) {
         self::$field = $obj->dbObject($fieldName)->scaffoldFormField($obj->Title);
     }
     return self::$field;
 }
 /**
  * standard SS method
  */
 function updateCMSFields(FieldList $fields)
 {
     $tabName = singleton("ProductVariation")->plural_name();
     $fields->addFieldToTab('Root', $tab = new Tab($tabName, new GridField("VariationAttributes", singleton("ProductAttributeType")->plural_name(), $this->owner->VariationAttributes(), $variationAttributesConfig = GridFieldConfig_RecordEditor::create()), $this->owner->getVariationsTable(), new CreateEcommerceVariations_Field('VariationMaker', '', $this->owner->ID)));
     $variationAttributesConfig->removeComponentsByType("GridFieldAddNewButton");
     $variations = $this->owner->Variations();
     if ($variations && $variations->Count()) {
         $productVariationName = singleton("ProductVariation")->plural_name();
         $fields->addFieldToTab('Root.Details', new LabelField('variationspriceinstructions', sprintf(_t("ProductVariation.PRICE_EXPLANATION", 'Price - Because you have one or more variations, you can vary the price in the <strong>%s</strong> tab. You set the default price here.'), $productVariationName)));
         $link = EcommerceProductVariationTaskDeleteVariations::create_link($this->owner);
         if ($link) {
             $tab->insertAfter(new LiteralField("DeleteVariations", "<p class=\"bad message\"><a href=\"{$link}\"  class=\"action ss-ui-button\" id=\"DeleteEcommerceVariationsInner\" data-confirm=\"" . Convert::raw2att(_t("Product.ARE_YOU_SURE_YOU_WANT_TO_DELETE_ALL_VARIATIONS", "are you sure you want to delete all variations from this product? ")) . "\">" . _t("Product.DELETE_ALL_VARIATIONS_FROM", "Delete all variations from <i>") . $this->owner->Title . "</i>" . "</a></p>"), 'ProductVariations');
         }
         if (class_exists('DataObjectOneFieldUpdateController')) {
             $linkForAllowSale = DataObjectOneFieldUpdateController::popup_link('ProductVariation', 'AllowPurchase', "ProductID = {$this->owner->ID}", '', _t("ProductVariation.QUICK_UPDATE_VARIATION_ALLOW_PURCHASE", 'for sale'));
             $linkForPrice = DataObjectOneFieldUpdateController::popup_link('ProductVariation', 'Price', "ProductID = {$this->owner->ID}", '', _t("ProductVariation.QUICK_UPDATE_VARIATION_PRICES", 'prices'));
             $linkForProductCodes = DataObjectOneFieldUpdateController::popup_link('ProductVariation', 'InternalItemID', "ProductID = {$this->owner->ID}", '', _t("ProductVariation.QUICK_UPDATE_VARIATION_PRODUCT_CODES", 'product codes'));
             $tab->insertAfter(new LiteralField('QuickActions', '<p class="message good">' . _t("ProductVariation.QUICK_UPDATE", 'Quick update') . ': ' . "<span class=\"action ss-ui-button\">{$linkForAllowSale}</span> " . "<span class=\"action ss-ui-button\">{$linkForPrice}</span>" . "<span class=\"action ss-ui-button\">{$linkForProductCodes}</span>" . "</p>"), 'ProductVariations');
         }
     }
 }