Add project calendars (merge/refactoring of #490)

This commit is contained in:
Frederic Guillot
2015-01-17 17:11:51 -05:00
parent 4b45b2aa35
commit 84b0f0df90
50 changed files with 1438 additions and 173 deletions

View File

@@ -3,22 +3,68 @@
namespace Model;
/**
* Color model (TODO: model for the future color picker)
* Color model
*
* @package model
* @author Frederic Guillot
*/
class Color extends Base
{
/**
* Default colors
*
* @access private
* @var array
*/
private $default_colors = array(
'yellow' => array(
'name' => 'Yellow',
'background' => 'rgb(245, 247, 196)',
'border' => 'rgb(223, 227, 45)',
),
'blue' => array(
'name' => 'Blue',
'background' => 'rgb(219, 235, 255)',
'border' => 'rgb(168, 207, 255)',
),
'green' => array(
'name' => 'Green',
'background' => 'rgb(189, 244, 203)',
'border' => 'rgb(74, 227, 113)',
),
'purple' => array(
'name' => 'Purple',
'background' => 'rgb(223, 176, 255)',
'border' => 'rgb(205, 133, 254)',
),
'red' => array(
'name' => 'Red',
'background' => 'rgb(255, 187, 187)',
'border' => 'rgb(255, 151, 151)',
),
'orange' => array(
'name' => 'Orange',
'background' => 'rgb(255, 215, 179)',
'border' => 'rgb(255, 172, 98)',
),
'grey' => array(
'name' => 'Grey',
'background' => 'rgb(238, 238, 238)',
'border' => 'rgb(204, 204, 204)',
),
);
/**
* Get available colors
*
* @access public
* @return array
*/
public function getList()
public function getList($prepend = false)
{
return array(
$listing = $prepend ? array('' => t('All colors')) : array();
return $listing + array(
'yellow' => t('Yellow'),
'blue' => t('Blue'),
'green' => t('Green'),
@@ -39,4 +85,57 @@ class Color extends Base
{
return 'yellow'; // TODO: make this parameter configurable
}
/**
* Get Bordercolor from string
*
* @access public
* @param string $color_id Color id
* @return string
*/
public function getBorderColor($color_id)
{
if (isset($this->default_colors[$color_id])) {
return $this->default_colors[$color_id]['border'];
}
return $this->default_colors[$this->getDefaultColor()]['border'];
}
/**
* Get background color from the color_id
*
* @access public
* @param string $color_id Color id
* @return string
*/
public function getBackgroundColor($color_id)
{
if (isset($this->default_colors[$color_id])) {
return $this->default_colors[$color_id]['background'];
}
return $this->default_colors[$this->getDefaultColor()]['background'];
}
/**
* Get CSS stylesheet of all colors
*
* @access public
* @return string
*/
public function getCss()
{
$buffer = '';
foreach ($this->default_colors as $color => $values) {
$buffer .= 'td.color-'.$color.',';
$buffer .= 'div.color-'.$color.' {';
$buffer .= 'background-color: '.$values['background'].';';
$buffer .= 'border-color: '.$values['border'];
$buffer .= '}';
}
return $buffer;
}
}