From fec1c8885c379289e0734058ab4b09d0adcda436 Mon Sep 17 00:00:00 2001 From: Myles Beardsmore Date: Fri, 9 Oct 2015 11:10:33 +1300 Subject: [PATCH] Added option to disable multiple selections. --- code/StringTagField.php | 24 +++++++++++++++++++++++- code/TagField.php | 22 +++++++++++++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/code/StringTagField.php b/code/StringTagField.php index 2de1273..afeecfa 100644 --- a/code/StringTagField.php +++ b/code/StringTagField.php @@ -78,6 +78,24 @@ class StringTagField extends DropdownField { return $this; } + /** + * @return bool + */ + public function getIsMultiple() { + return $this->isMultiple; + } + + /** + * @param bool $isMultiple + * + * @return static + */ + public function setIsMultiple($isMultiple) { + $this->isMultiple = $isMultiple; + + return $this; + } + /** * @return null|DataObject */ @@ -120,6 +138,10 @@ class StringTagField extends DropdownField { $this->setAttribute('multiple', 'multiple'); + if ($this->getIsMultiple()) { + $this->setAttribute('multiple', 'multiple'); + } + if($this->getShouldLazyLoad()) { $this->setAttribute('data-ss-tag-field-suggest-url', $this->getSuggestURL()); } else { @@ -282,7 +304,7 @@ class StringTagField extends DropdownField { return $items; } - + /** * DropdownField assumes value will be a scalar so we must * override validate. This only applies to Silverstripe 3.2+ diff --git a/code/TagField.php b/code/TagField.php index 7a07276..0103aad 100644 --- a/code/TagField.php +++ b/code/TagField.php @@ -80,6 +80,24 @@ class TagField extends DropdownField { return $this; } + /** + * @return bool + */ + public function getIsMultiple() { + return $this->isMultiple; + } + + /** + * @param bool $isMultiple + * + * @return static + */ + public function setIsMultiple($isMultiple) { + $this->isMultiple = $isMultiple; + + return $this; + } + /** * @return bool */ @@ -130,7 +148,9 @@ class TagField extends DropdownField { $this->addExtraClass('ss-tag-field'); - $this->setAttribute('multiple', 'multiple'); + if ($this->getIsMultiple()) { + $this->setAttribute('multiple', 'multiple'); + } if($this->shouldLazyLoad) { $this->setAttribute('data-ss-tag-field-suggest-url', $this->getSuggestURL());