/**
  * @inheritdoc
  */
 public function insertAfter($field, $insertBefore)
 {
     return $this->tab->insertAfter($field, $insertBefore);
 }
 /**
  * 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');
         }
     }
 }