diff --git a/Core/Frameworks/Baikal/Model/Calendar.php b/Core/Frameworks/Baikal/Model/Calendar.php index dfd0b02..c3e261d 100644 --- a/Core/Frameworks/Baikal/Model/Calendar.php +++ b/Core/Frameworks/Baikal/Model/Calendar.php @@ -162,6 +162,18 @@ class Calendar extends \Flake\Core\Model\Db { ) ))); + $oMorpho->add(new \Formal\Element\Text(array( + "prop" => "calendarcolor", + "label" => "Calendar color", + "validation" => "color", + "popover" => array( + "title" => "Calendar color", + "content" => "This is the color that will be displayed in your CalDAV client.
". + "Must be supplied in format '#RRGGBBAA' (alpha channel optional) with hexadecimal values.
". + "This value is optional.", + ) + ))); + $oMorpho->add(new \Formal\Element\Text(array( "prop" => "description", "label" => "Description" diff --git a/Core/Frameworks/Formal/Form.php b/Core/Frameworks/Formal/Form.php index d9ff63a..5283b2b 100644 --- a/Core/Frameworks/Formal/Form.php +++ b/Core/Frameworks/Formal/Form.php @@ -314,6 +314,14 @@ class Form { return TRUE; } + + public function validateColor($sValue, \Formal\Form\Morphology $oMorpho, \Formal\Element $oElement) { + if(!empty($sValue) && !preg_match("/^#[a-fA-F0-9]{6}([a-fA-F0-9]{2})?$/", $sValue)) { + return "" . $oElement->option("label") . " is not a valid color with format '#RRGGBB' or '#RRGGBBAA' in hexadecimal values."; + } + + return TRUE; + } public function postValue($sPropName) { $aData = \Flake\Util\Tools::POST("data");