Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #912 from chillu/pulls/7980

BUG Remove .ss-tabset class from CMS tabs to prevent rogue ajax load (#7...
  • Loading branch information...
commit 7d095a12e9e1a21ae27f8822da04c7adcd8ca61b 2 parents f861ff9 + bcbf463
@sminnee sminnee authored
View
4 admin/code/LeftAndMain.php
@@ -1091,7 +1091,9 @@ public function getEditForm($id = null, $fields = null) {
$form->setAttribute('data-pjax-fragment', 'CurrentForm');
// Set this if you want to split up tabs into a separate header row
- // if($form->Fields()->hasTabset()) $form->Fields()->findOrMakeTab('Root')->setTemplate('CMSTabSet');
+ // if($form->Fields()->hasTabset()) {
+ // $form->Fields()->findOrMakeTab('Root')->setTemplate('CMSTabSet');
+ // }
// Add a default or custom validator.
// @todo Currently the default Validator.js implementation
View
8 admin/code/SecurityAdmin.php
@@ -127,7 +127,8 @@ public function getEditForm($id = null, $fields = null) {
// necessary for tree node selection in LeftAndMain.EditForm.js
new HiddenField('ID', false, 0)
);
-
+
+ // Tab nav in CMS is rendered through separate template
$root->setTemplate('CMSTabSet');
// Add roles editing interface
@@ -161,7 +162,10 @@ public function getEditForm($id = null, $fields = null) {
);
$form->addExtraClass('cms-edit-form');
$form->setTemplate($this->getTemplatesWithSuffix('_EditForm'));
- if($form->Fields()->hasTabset()) $form->Fields()->findOrMakeTab('Root')->setTemplate('CMSTabSet');
+ // Tab nav in CMS is rendered through separate template
+ if($form->Fields()->hasTabset()) {
+ $form->Fields()->findOrMakeTab('Root')->setTemplate('CMSTabSet');
+ }
$form->addExtraClass('center ss-tabset cms-tabset ' . $this->BaseCSSClasses());
$form->setAttribute('data-pjax-fragment', 'CurrentForm');
View
8 admin/templates/CMSTabSet.ss
@@ -1,6 +1,10 @@
-<div $AttributesHTML>
- <%-- Tab nav is rendered in CMSEditForm.ss --%>
+<%-- Exclude ".ss-tabset" class to avoid inheriting behaviour --%>
+<%-- The ".cms-tabset" class needs to be manually applied to a container elment, --%>
+<%-- above the level where the tab navigation is placed. --%>
+<%-- Tab navigation is rendered through various templates, --%>
+<%-- e.g. through LeftAndMain_EditForm.ss. --%>
+<div $AttributesHTML>
<% loop Tabs %>
<div $AttributesHTML>
<% if Tabs %>
View
2  forms/TabSet.php
@@ -108,7 +108,7 @@ public function getAttributes() {
$this->attributes,
array(
'id' => $this->id(),
- 'class' => 'ss-tabset ' . $this->extraClass()
+ 'class' => $this->extraClass()
)
);
}
View
2  forms/gridfield/GridFieldDetailForm.php
@@ -340,7 +340,7 @@ public function ItemEditForm() {
$form->setAttribute('data-pjax-fragment', 'CurrentForm Content');
if($form->Fields()->hasTabset()) {
$form->Fields()->findOrMakeTab('Root')->setTemplate('CMSTabSet');
- $form->addExtraClass('ss-tabset cms-tabset');
+ $form->addExtraClass('cms-tabset');
}
$form->Backlink = $this->getBackLink();
View
2  templates/forms/TabSet.ss
@@ -1,4 +1,4 @@
-<div $AttributesHTML>
+<div $getAttributesHTML("class") class="ss-tabset $extraClass">
<ul>
<% loop Tabs %>
<li class="$FirstLast $MiddleString $extraClass"><a href="#$id" id="tab-$id">$Title</a></li>
View
2  tests/forms/FormFieldTest.php
@@ -64,7 +64,7 @@ public function testAttributesHTML() {
$this->assertNotContains('two="2"', $field->getAttributesHTML('one', 'two'));
$this->assertContains('three="3"', $field->getAttributesHTML('one', 'two'));
}
-
+
public function testEveryFieldTransformsReadonlyAsClone() {
$fieldClasses = ClassInfo::subclassesFor('FormField');
foreach($fieldClasses as $fieldClass) {
Please sign in to comment.
Something went wrong with that request. Please try again.