From 14713b0ec7ed93ca45578da069ad4e19a7d8addf Mon Sep 17 00:00:00 2001
From: Frederic Guillot <fred@kanboard.net>
Date: Sat, 28 May 2016 19:48:22 -0400
Subject: Rename all models

---
 app/Model/ColorModel.php | 228 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 228 insertions(+)
 create mode 100644 app/Model/ColorModel.php

(limited to 'app/Model/ColorModel.php')

diff --git a/app/Model/ColorModel.php b/app/Model/ColorModel.php
new file mode 100644
index 00000000..9e69dda2
--- /dev/null
+++ b/app/Model/ColorModel.php
@@ -0,0 +1,228 @@
+<?php
+
+namespace Kanboard\Model;
+
+use Kanboard\Core\Base;
+
+/**
+ * Color model
+ *
+ * @package  Kanboard\Model
+ * @author   Frederic Guillot
+ */
+class ColorModel 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)',
+        ),
+        'brown' => array(
+            'name' => 'Brown',
+            'background' => '#d7ccc8',
+            'border' => '#4e342e',
+        ),
+        'deep_orange' => array(
+            'name' => 'Deep Orange',
+            'background' => '#ffab91',
+            'border' => '#e64a19',
+        ),
+        'dark_grey' => array(
+            'name' => 'Dark Grey',
+            'background' => '#cfd8dc',
+            'border' => '#455a64',
+        ),
+        'pink' => array(
+            'name' => 'Pink',
+            'background' => '#f48fb1',
+            'border' => '#d81b60',
+        ),
+        'teal' => array(
+            'name' => 'Teal',
+            'background' => '#80cbc4',
+            'border' => '#00695c',
+        ),
+        'cyan' => array(
+            'name' => 'Cyan',
+            'background' => '#b2ebf2',
+            'border' => '#00bcd4',
+        ),
+        'lime' => array(
+            'name' => 'Lime',
+            'background' => '#e6ee9c',
+            'border' => '#afb42b',
+        ),
+        'light_green' => array(
+            'name' => 'Light Green',
+            'background' => '#dcedc8',
+            'border' => '#689f38',
+        ),
+        'amber' => array(
+            'name' => 'Amber',
+            'background' => '#ffe082',
+            'border' => '#ffa000',
+        ),
+    );
+
+    /**
+     * Find a color id from the name or the id
+     *
+     * @access public
+     * @param  string  $color
+     * @return string
+     */
+    public function find($color)
+    {
+        $color = strtolower($color);
+
+        foreach ($this->default_colors as $color_id => $params) {
+            if ($color_id === $color) {
+                return $color_id;
+            } elseif ($color === strtolower($params['name'])) {
+                return $color_id;
+            }
+        }
+
+        return '';
+    }
+
+    /**
+     * Get color properties
+     *
+     * @access public
+     * @param  string  $color_id
+     * @return array
+     */
+    public function getColorProperties($color_id)
+    {
+        if (isset($this->default_colors[$color_id])) {
+            return $this->default_colors[$color_id];
+        }
+
+        return $this->default_colors[$this->getDefaultColor()];
+    }
+
+    /**
+     * Get available colors
+     *
+     * @access public
+     * @param  bool $prepend
+     * @return array
+     */
+    public function getList($prepend = false)
+    {
+        $listing = $prepend ? array('' => t('All colors')) : array();
+
+        foreach ($this->default_colors as $color_id => $color) {
+            $listing[$color_id] = t($color['name']);
+        }
+
+        return $listing;
+    }
+
+    /**
+     * Get the default color
+     *
+     * @access public
+     * @return string
+     */
+    public function getDefaultColor()
+    {
+        return $this->configModel->get('default_color', 'yellow');
+    }
+
+    /**
+     * Get the default colors
+     *
+     * @access public
+     * @return array
+     */
+    public function getDefaultColors()
+    {
+        return $this->default_colors;
+    }
+
+    /**
+     * Get border color from string
+     *
+     * @access public
+     * @param  string   $color_id   Color id
+     * @return string
+     */
+    public function getBorderColor($color_id)
+    {
+        $color = $this->getColorProperties($color_id);
+        return $color['border'];
+    }
+
+    /**
+     * Get background color from the color_id
+     *
+     * @access public
+     * @param  string   $color_id   Color id
+     * @return string
+     */
+    public function getBackgroundColor($color_id)
+    {
+        $color = $this->getColorProperties($color_id);
+        return $color['background'];
+    }
+
+    /**
+     * Get CSS stylesheet of all colors
+     *
+     * @access public
+     * @return string
+     */
+    public function getCss()
+    {
+        $buffer = '';
+
+        foreach ($this->default_colors as $color => $values) {
+            $buffer .= 'div.color-'.$color.' {';
+            $buffer .= 'background-color: '.$values['background'].';';
+            $buffer .= 'border-color: '.$values['border'];
+            $buffer .= '}';
+            $buffer .= 'td.color-'.$color.' { background-color: '.$values['background'].'}';
+        }
+
+        return $buffer;
+    }
+}
-- 
cgit v1.2.3