├── .github
├── FUNDING.yml
├── dependabot.yml
├── linters
│ ├── .eslintrc.json
│ ├── .htmlhintrc
│ ├── .markdownlint.json
│ ├── .stylelintrc.json
│ ├── .yaml-lint.yml
│ ├── php.ini
│ └── phpcs.xml
└── workflows
│ ├── linter.yml
│ ├── php-compatibility-7.4.yaml
│ ├── php-compatibility-8.0.yaml
│ └── php-compatibility-8.2.yaml
├── Assets
├── css
│ └── color-manager.css
└── icons
│ ├── color-palette.svg
│ ├── colour-palette.svg
│ ├── font-size-color.svg
│ ├── palette-print-bordered.svg
│ └── palette-print.svg
├── Controller
└── ColorManagerController.php
├── Helper
└── CustomColorHelper.php
├── INSTALL.md
├── LICENSE
├── Locale
├── ColorManager-Translation-Table.xlsx
├── de_DE
│ └── translations.php
├── en_GB
│ └── translations.php
└── translations-starter-template.php
├── Model
└── ColorModelExt.php
├── Plugin.php
├── README.md
├── Releases
├── ColorManager-2.0.zip
├── ColorManager-2.1.zip
├── ColorManager-2.5.zip
├── ColorManager-2.6.zip
├── ColorManager-3.0.zip
├── ColorManager-3.1.zip
├── ColorManager-3.2.zip
├── ColorManager-3.5.zip
├── ColorManager-3.6.zip
├── ColorManager-3.7.zip
├── KBColours-1.0.zip
└── KBColours-1.1.zip
├── Template
├── config
│ ├── add_custom_color.php
│ ├── colors.php
│ └── sidebar.php
└── layout
│ └── css_ext.php
├── changelog.md
├── screenshot-automatic-action-dropdown-list.png
├── screenshot-automatic-action-interface.png
├── screenshot-default-task-dropdown-list.png
├── screenshot-settings-custom-palette-empty.png
├── screenshot-settings-custom-palette.png
├── screenshot-settings-default-palette.png
├── screenshot-settings-extended-palette.png
└── screenshot-settings-text-palette.png
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # These are supported funding model platforms
3 |
4 | github: aljawaid
5 | ko_fi: aljawaid
6 | custom: ["https://paypal.me/aljawaid", "https://www.buymeacoffee.com/aljawaid"]
7 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Set Update Schedule for GitHub Actions
3 |
4 | version: 2
5 | updates:
6 |
7 | - package-ecosystem: "github-actions"
8 | directory: "/"
9 | schedule:
10 | # Check for updates to GitHub Actions every week
11 | interval: "weekly"
12 | time: "09:00"
13 | # Use Greenwich Mean Time (UTC +01:00)
14 | timezone: "Europe/London"
15 | # Add assignees
16 | assignees:
17 | - "aljawaid"
18 |
--------------------------------------------------------------------------------
/.github/linters/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "commonjs": true,
5 | "jquery": true,
6 | "es2021": true
7 | },
8 | "root": true,
9 | "extends": "eslint:recommended",
10 | "ignorePatterns": ["clipboard-*.min.js", "**/vendor/*.js"],
11 | "globals": {
12 | "ClipboardJS": "readonly"
13 | },
14 | "rules": {
15 | "no-undef": "warn"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/.github/linters/.htmlhintrc:
--------------------------------------------------------------------------------
1 | {
2 | "attr-unsafe-chars": true,
3 | "attr-lowercase": true,
4 | "attr-no-unnecessary-whitespace": true,
5 | "attr-value-double-quotes": true,
6 | "attr-value-not-empty": false,
7 | "attr-no-duplication": true,
8 | "attr-whitespace": true,
9 | "alt-require": true,
10 | "doctype-first": true,
11 | "tagname-lowercase": true,
12 | "tagname-specialchars": true,
13 | "tag-pair": true,
14 | "tag-self-close": false,
15 | "empty-tag-not-self-closed": true,
16 | "src-not-empty": true,
17 | "href-abs-or-rel": false,
18 | "spec-char-escape": true,
19 | "style-disabled": false,
20 | "inline-style-disabled": false,
21 | "inline-script-disabled": false,
22 | "space-tab-mixed-disabled": "tab",
23 | "id-class-ad-disabled": true,
24 | "id-unique": true,
25 | "id-class-value": "dash",
26 | "html-lang-require": true,
27 | "doctype-first": true,
28 | "doctype-html5": true,
29 | "title-require": true,
30 | "head-script-disabled": true
31 | }
32 |
--------------------------------------------------------------------------------
/.github/linters/.markdownlint.json:
--------------------------------------------------------------------------------
1 | {
2 | "MD007": {
3 | "description": "MD007/ul-indent - Unordered list indentation",
4 | "type": [
5 | "boolean",
6 | "object"
7 | ],
8 | "default": true,
9 | "properties": {
10 | "indent": {
11 | "description": "Spaces for indent",
12 | "type": "integer",
13 | "minimum": 1,
14 | "default": 4
15 | },
16 | "start_indented": {
17 | "description": "Whether to indent the first level of the list",
18 | "type": "boolean",
19 | "default": false
20 | },
21 | "start_indent": {
22 | "description": "Spaces for first level indent (when start_indented is set)",
23 | "type": "integer",
24 | "minimum": 1,
25 | "default": 4
26 | }
27 | },
28 | "additionalProperties": false
29 | },
30 | "ul-indent": {
31 | "$ref": "#/properties/MD007"
32 | },
33 | "MD033": false,
34 | "MD013": false,
35 | "MD036": false,
36 | "MD012": false,
37 | "MD032": false
38 | }
39 |
--------------------------------------------------------------------------------
/.github/linters/.stylelintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "stylelint-config-standard",
3 | "rules": {
4 | "no-extra-semicolons": true,
5 | "number-leading-zero": "never",
6 | "shorthand-property-no-redundant-values": null,
7 | "comment-whitespace-inside": [
8 | "always",
9 | {
10 | "severity": "warning"
11 | }
12 | ],
13 | "font-family-name-quotes": "always-where-recommended",
14 | "font-weight-notation": "named-where-possible",
15 | "font-family-no-missing-generic-family-keyword": [
16 | true,
17 | {
18 | "ignoreFontFamilies": ["FontAwesome"],
19 | "severity": "warning"
20 | }
21 | ],
22 | "color-no-invalid-hex": true,
23 | "color-hex-case": "upper",
24 | "color-hex-length": [
25 | "long",
26 | {
27 | "severity": "warning"
28 | }
29 | ],
30 | "alpha-value-notation": "number",
31 | "value-list-comma-newline-after": null,
32 | "length-zero-no-unit": true,
33 | "no-descending-specificity": null,
34 | "string-quotes": "double",
35 | "selector-type-case": "lower",
36 | "selector-class-pattern": null,
37 | "selector-id-pattern": [
38 | "([A-Z][a-z0-9]+)((\\d)|([A-Z0-9][a-z0-9]+))*([A-Z])?",
39 | {
40 | "message": "Expected CSS Selector ID pattern to be CamelCase",
41 | "severity": "warning"
42 | }
43 | ],
44 | "value-list-comma-space-after": "always",
45 | "color-function-notation": "legacy",
46 | "number-max-precision": 5,
47 | "value-keyword-case": [
48 | "lower",
49 | {
50 | "ignoreProperties": ["/^(b|B)ackground$/", "text-rendering"]
51 | }
52 | ],
53 | "comment-empty-line-before": [
54 | "always",
55 | {
56 | "except": ["first-nested"],
57 | "ignore": ["after-comment"],
58 | "severity": "warning"
59 | }
60 | ],
61 | "declaration-block-no-redundant-longhand-properties": [
62 | true,
63 | {
64 | "severity": "warning"
65 | }
66 | ],
67 | "property-no-vendor-prefix": null,
68 | "selector-no-vendor-prefix": null,
69 | "at-rule-no-vendor-prefix": null,
70 | "value-no-vendor-prefix": null,
71 | "declaration-no-important": [
72 | true,
73 | {
74 | "message": "Try not to use !important in your declaration",
75 | "severity": "warning"
76 | }
77 | ],
78 | "media-feature-range-notation": null
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/.github/linters/.yaml-lint.yml:
--------------------------------------------------------------------------------
1 | ---
2 | ###########################################
3 | # These are the rules used for #
4 | # linting all the yaml files in the stack #
5 | # NOTE: #
6 | # You can disable line with: #
7 | # # yamllint disable-line #
8 | ###########################################
9 | rules:
10 | braces:
11 | level: warning
12 | min-spaces-inside: 0
13 | max-spaces-inside: 0
14 | min-spaces-inside-empty: 0
15 | max-spaces-inside-empty: 0
16 | brackets:
17 | level: warning
18 | min-spaces-inside: 0
19 | max-spaces-inside: 0
20 | min-spaces-inside-empty: 0
21 | max-spaces-inside-empty: 5
22 | colons:
23 | level: warning
24 | max-spaces-before: 0
25 | max-spaces-after: 1
26 | commas:
27 | level: warning
28 | max-spaces-before: 0
29 | min-spaces-after: 1
30 | max-spaces-after: 1
31 | comments: disable
32 | comments-indentation: disable
33 | document-end: disable
34 | document-start:
35 | level: warning
36 | present: true
37 | empty-lines:
38 | level: warning
39 | max: 2
40 | max-start: 0
41 | max-end: 0
42 | hyphens:
43 | level: warning
44 | max-spaces-after: 1
45 | indentation:
46 | level: warning
47 | spaces: consistent
48 | indent-sequences: true
49 | check-multi-line-strings: false
50 | key-duplicates: enable
51 | line-length: disable
52 | new-line-at-end-of-file: enable
53 | new-lines:
54 | type: unix
55 | trailing-spaces: {}
56 |
--------------------------------------------------------------------------------
/.github/linters/phpcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The default coding standard for usage with GitHub Super-Linter. Extended.
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | warning
13 | 3
14 |
15 |
16 |
17 |
18 |
19 | warning
20 | 3
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | warning
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 | warning
65 |
66 |
67 |
--------------------------------------------------------------------------------
/.github/workflows/linter.yml:
--------------------------------------------------------------------------------
1 | ---
2 | #################################
3 | #################################
4 | ## Super Linter GitHub Actions ##
5 | #################################
6 | #################################
7 | name: Code Scan
8 |
9 | #
10 | # Documentation:
11 | # https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions
12 | # Save the contents of this file as '.github/workflows/linter.yml'
13 | #
14 |
15 | #############################
16 | # Start the job on all push #
17 | #############################
18 | on:
19 | push:
20 | # branches-ignore: [master, main]
21 | # Remove the line above to run when pushing to master
22 | pull_request:
23 | branches: [master, main]
24 |
25 | ###############
26 | # Set the Job #
27 | ###############
28 | jobs:
29 | build:
30 | # Name the Job
31 | name: Check Code
32 | # Set the agent to run on
33 | runs-on: ubuntu-latest
34 |
35 | ############################################
36 | # Grant status permission for MULTI_STATUS #
37 | ############################################
38 | permissions:
39 | contents: read
40 | packages: read
41 | statuses: write
42 |
43 | ##################
44 | # Load all steps #
45 | ##################
46 | steps:
47 | ##########################
48 | # Checkout the code base #
49 | ##########################
50 | - name: Checkout Code
51 | uses: actions/checkout@v4
52 | with:
53 | # Full git history is needed to get a proper
54 | # list of changed files within `super-linter`
55 | # We will set fetch-depth: 0 to fetch all history for all branches
56 | # If you hadn't done this, only a single commit would be fetched.
57 | fetch-depth: 0
58 |
59 | ################################
60 | # Run Linter against code base #
61 | ################################
62 | - name: Lint Code Base
63 | uses: github/super-linter/slim@v5
64 | # https://github.com/marketplace/actions/super-linter#environment-variables
65 | env:
66 | # Change to 'true' to scan all files, 'false' for new or edited files
67 | VALIDATE_ALL_CODEBASE: false
68 | # Change to 'master' if your main branch differs
69 | DEFAULT_BRANCH: master
70 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71 | CSS_FILE_NAME: .stylelintrc.json
72 | LINTER_RULES_PATH: .github/linters
73 | MARKDOWN_CONFIG_FILE: .markdownlint.json
74 | PHP_CONFIG_FILE: php.ini
75 | YAML_CONFIG_FILE: .yaml-lint.yml
76 | JAVASCRIPT_ES_CONFIG_FILE: .eslintrc.json
77 | FILTER_REGEX_EXCLUDE: (Releases.*|Screenshots.*)
78 | # ACTIONS_RUNNER_DEBUG: true
79 | # CREATE_LOG_FILE: true
80 | # LOG_FILE: code-linter.log
81 | # LOG_LEVEL: WARN
82 | ACTIONS_STEP_DEBUG: true
83 | IGNORE_GITIGNORED_FILES: true
84 | SUPPRESS_POSSUM: true
85 | VALIDATE_CSS: true
86 | VALIDATE_GITHUB_ACTIONS: true
87 | VALIDATE_GITLEAKS: true
88 | VALIDATE_HTML: true
89 | # VALIDATE_JAVA: true
90 | VALIDATE_JAVASCRIPT_ES: true
91 | # VALIDATE_JAVASCRIPT_STANDARD: true
92 | VALIDATE_JSON: true
93 | VALIDATE_MARKDOWN: true
94 | VALIDATE_PHP: true
95 | VALIDATE_PHP_BUILTIN: true
96 | VALIDATE_PHP_PHPCS: true
97 | # VALIDATE_PHP_PHPSTAN: true
98 | # VALIDATE_PHP_PSALM: true
99 | # VALIDATE_SHELL_SHFMT: true
100 | # VALIDATE_SQL: true
101 | # VALIDATE_SQLFLUFF: true
102 | VALIDATE_XML: true
103 | VALIDATE_YAML: true
104 |
--------------------------------------------------------------------------------
/.github/workflows/php-compatibility-7.4.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | ####################################################
3 | ################ PHP Compatibility #################
4 | ######## Save the contents of this file as #########
5 | ## '.github/workflows/php-compatibility-7.4.yaml' ##
6 | ####################################################
7 | name: PHP 7.4
8 |
9 | on:
10 | push:
11 | pull_request:
12 | branches: [master, main]
13 |
14 | permissions:
15 | contents: read
16 |
17 | jobs:
18 | setup:
19 | name: Scan Code
20 | runs-on: ubuntu-latest
21 | permissions:
22 | contents: read # for checkout to fetch code
23 | security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
24 |
25 | steps:
26 | - name: Checkout Code
27 | uses: actions/checkout@v4
28 |
29 | - name: PHP Setup
30 | uses: shivammathur/setup-php@v2
31 | with:
32 | php-version: '7.4-'
33 | ini-values: short_open_tag=On
34 | coverage: none
35 |
36 | - name: Run PHP Compatibility 7.4
37 | uses: pantheon-systems/phpcompatibility-action@v1
38 | with:
39 | test-versions: '7.4-'
40 | # Specify directories to check
41 | paths: ${{ github.workspace }}/Plugin.php ${{ github.workspace }}/Controller/ ${{ github.workspace }}/Locale/ ${{ github.workspace }}/Helper/ ${{ github.workspace }}/Model/ ${{ github.workspace }}/Template/
42 |
--------------------------------------------------------------------------------
/.github/workflows/php-compatibility-8.0.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | ####################################################
3 | ################ PHP Compatibility #################
4 | ######## Save the contents of this file as #########
5 | ## '.github/workflows/php-compatibility-8.0.yaml' ##
6 | ####################################################
7 | name: PHP 8.0
8 |
9 | on:
10 | push:
11 | pull_request:
12 | branches: [master, main]
13 |
14 | permissions:
15 | contents: read
16 |
17 | jobs:
18 | setup:
19 | name: Scan Code
20 | runs-on: ubuntu-latest
21 | permissions:
22 | contents: read # for checkout to fetch code
23 | security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
24 |
25 | steps:
26 | - name: Checkout Code
27 | uses: actions/checkout@v4
28 |
29 | - name: PHP Setup
30 | uses: shivammathur/setup-php@v2
31 | with:
32 | php-version: '8.0-'
33 | ini-values: short_open_tag=On
34 | coverage: none
35 |
36 | - name: Run PHP Compatibility 8.0
37 | uses: pantheon-systems/phpcompatibility-action@v1
38 | with:
39 | test-versions: '8.0-'
40 | # Specify directories to check
41 | paths: ${{ github.workspace }}/Plugin.php ${{ github.workspace }}/Controller/ ${{ github.workspace }}/Locale/ ${{ github.workspace }}/Helper/ ${{ github.workspace }}/Model/ ${{ github.workspace }}/Template/
42 |
--------------------------------------------------------------------------------
/.github/workflows/php-compatibility-8.2.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | ####################################################
3 | ################ PHP Compatibility #################
4 | ######## Save the contents of this file as #########
5 | ## '.github/workflows/php-compatibility-8.2.yaml' ##
6 | ####################################################
7 | name: PHP 8.2
8 |
9 | on:
10 | push:
11 | pull_request:
12 | branches: [master, main]
13 |
14 | permissions:
15 | contents: read
16 |
17 | jobs:
18 | setup:
19 | name: Scan Code
20 | runs-on: ubuntu-latest
21 | permissions:
22 | contents: read # for checkout to fetch code
23 | security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
24 |
25 | steps:
26 | - name: Checkout Code
27 | uses: actions/checkout@v4
28 |
29 | - name: PHP Setup
30 | uses: shivammathur/setup-php@v2
31 | with:
32 | php-version: '8.2-'
33 | ini-values: short_open_tag=On
34 | coverage: none
35 |
36 | - name: Run PHP Compatibility 8.2
37 | uses: pantheon-systems/phpcompatibility-action@v1
38 | with:
39 | test-versions: '8.2-'
40 | # Specify directories to check
41 | paths: ${{ github.workspace }}/Plugin.php ${{ github.workspace }}/Controller/ ${{ github.workspace }}/Locale/ ${{ github.workspace }}/Helper/ ${{ github.workspace }}/Model/ ${{ github.workspace }}/Template/
42 |
--------------------------------------------------------------------------------
/Assets/css/color-manager.css:
--------------------------------------------------------------------------------
1 | /* KANBOARD PLUGIN - CSS FILE */
2 |
3 | :root {
4 | --pp-blue: #007AC9;
5 | --pp-blue-alt: #00ADFF;
6 | --pp-red: #B71234;
7 | --pp-red-alt: #DA004C;
8 | --pp-red-alt-2: #AE003D;
9 | --pp-black: #000000;
10 | --pp-light-grey: #8F8F8F;
11 | --pp-grey: #4D4D4D;
12 | --pp-white: #FFFFFF;
13 | --pp-green: #2EA02E;
14 | --pp-green-dark: #055D20;
15 | --pp-orange: #FF6500;
16 | --border-radius-color-manager: 3px;
17 | --button-blue-gradient: linear-gradient(to bottom, #7892C2 80%, #476E9E 100%);
18 | --blue-border-gradient-match: #476E9E;
19 | --header-page-margin-color-manager: 5px 15px 50px 15px;
20 | --page-margin-color-manager: 0 15px 0 15px;
21 | --title-margin-color-manager: 0 15px 0 15px;
22 | --button-background-delete: #D05C84;
23 | --link-color-primary: #3366CC;
24 | --blue-icon-dark: #034CA6;
25 | --panel-background-color-manager: #EEEEEE;
26 | --box-shadow-color-manager: 1px 1px 1px 0 #000000;
27 | --transition-color-manager: ease-in-out all .3s;
28 | }
29 |
30 | .pp-blue { color: var(--pp-blue); fill: var(--pp-blue); }
31 | .pp-blue-alt { color: var(--pp-blue-alt); fill: var(--pp-blue-alt); }
32 | .pp-red { color: var(--pp-red); fill: var(--pp-red); }
33 | .pp-red-alt { color: var(--pp-red-alt); fill: var(--pp-red-alt); }
34 | .pp-red-alt-2 { color: var(--pp-red-alt-2); fill: var(--pp-red-alt-2); }
35 | .pp-black { color: var(--pp-black); fill: var(--pp-black); }
36 | .pp-light-grey { color: var(--pp-light-grey); fill: var(--pp-light-grey); }
37 | .pp-grey { color: var(--pp-grey); fill: var(--pp-grey); }
38 | .pp-white { color: var(--pp-white); fill: var(--pp-white); }
39 | .pp-green { color: var(--pp-green); fill: var(--pp-green); }
40 | .pp-dark-green { color: var(--pp-green-dark); fill: var(--pp-green-dark); }
41 | .pp-orange { color: var(--pp-orange); fill: var(--pp-orange); }
42 |
43 | .display-none, .d-none { display: none;}
44 |
45 | .font-weight-bold { font-weight: bold; }
46 |
47 | .text-center { text-align: center; }
48 |
49 | .relative { position: relative; }
50 |
51 | .color-manager-page-header {
52 | margin: var(--header-page-margin-color-manager);
53 | }
54 |
55 | .color-manager-page-header h2, .color-manager-section h3 {
56 | font-weight: bold;
57 | }
58 |
59 | .color-manager-page-header h2 svg {
60 | vertical-align: sub;
61 | height: 1em;
62 | margin-right: 3px;
63 | }
64 |
65 | .color-manager-section {
66 | margin-top: 20px;
67 | }
68 |
69 | .color-manager-section .cm-section-desc {
70 | margin-bottom: 15px;
71 | }
72 |
73 | .color-manager-section .cm-section-desc-info-panel {
74 | margin-bottom: 15px;
75 | width: fit-content;
76 | }
77 |
78 | .color-manager-section .cm-section-desc-info-panel i {
79 | color: var(--blue-icon-dark);
80 | margin-right: 3px;
81 | }
82 |
83 | .color-manager-section-icon-title {
84 | width: 1.2em;
85 | vertical-align: text-bottom;
86 | content: url("data:image/svg+xml,%3Csvg version='1.1' id='' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 512 512' xml:space='preserve'%3E%3Cg%3E%3Crect x='398.515' y='366.845' style='fill:%23D4145A;' width='95.01' height='95.01'/%3E%3Crect x='303.505' y='366.845' style='fill:%23D4145A;' width='95.01' height='95.01'/%3E%3C/g%3E%3Crect x='208.495' y='366.845' style='fill:%239E005D;' width='95.01' height='95.01'/%3E%3Crect x='113.485' y='366.845' style='fill:%2393278F;' width='95.01' height='95.01'/%3E%3Crect x='18.474' y='366.845' style='fill:%23662D91;' width='95.01' height='95.01'/%3E%3Crect x='398.515' y='271.835' style='fill:%230087CE;' width='95.01' height='95.01'/%3E%3Crect x='303.505' y='271.835' style='fill:%23008FD0;' width='95.01' height='95.01'/%3E%3Crect x='208.495' y='271.835' style='fill:%230098D2;' width='95.01' height='95.01'/%3E%3Crect x='113.485' y='271.835' style='fill:%2300A4D4;' width='95.01' height='95.01'/%3E%3Crect x='18.474' y='271.835' style='fill:%2300B4D7;' width='95.01' height='95.01'/%3E%3Crect x='398.515' y='176.825' style='fill:%23595E62;' width='95.01' height='95.01'/%3E%3Crect x='303.505' y='176.825' style='fill:%237E8488;' width='95.01' height='95.01'/%3E%3Crect x='208.495' y='176.825' style='fill:%23AFB6BB;' width='95.01' height='95.01'/%3E%3Crect x='113.485' y='176.825' style='fill:%23E7ECED;' width='95.01' height='95.01'/%3E%3Crect x='18.474' y='176.825' style='fill:%23F1F2F2;' width='95.01' height='95.01'/%3E%3Crect x='398.515' y='81.814' style='fill:%23FFD311;' width='95.01' height='95.01'/%3E%3Crect x='303.505' y='81.814' style='fill:%23FDB51E;' width='95.01' height='95.01'/%3E%3Cg%3E%3Cpolygon style='fill:%23ED1C24;' points='303.505,81.814 303.505,176.825 208.495,176.825 208.495,81.814 240.165,81.814 '/%3E%3Crect x='113.485' y='81.814' style='fill:%23ED1C24;' width='95.01' height='95.01'/%3E%3C/g%3E%3Crect x='18.474' y='81.814' style='fill:%23C1272D;' width='95.01' height='95.01'/%3E%3Cg%3E%3Cpolygon style='fill:%23364853;' points='493.526,461.856 493.526,504.082 18.474,504.082 18.474,461.856 113.485,461.856 208.495,461.856 303.505,461.856 398.515,461.856 '/%3E%3Cpolygon style='fill:%23364853;' points='240.165,7.918 240.165,81.814 208.495,81.814 113.485,81.814 18.474,81.814 18.474,7.918 '/%3E%3C/g%3E%3Cpath d='M248.082,73.897V0H10.557v512h490.887V73.897H248.082z M311.423,453.938v-79.175h79.175v79.175H311.423z M311.423,358.928 v-79.175h79.175v79.175H311.423z M200.577,184.742v79.175h-79.175v-79.175H200.577z M200.577,279.753v79.175h-79.175v-79.175 H200.577z M216.412,279.753h79.175v79.175h-79.175V279.753z M311.423,263.918v-79.175h79.175v79.175H311.423z M295.588,263.918 h-79.175v-79.175h79.175V263.918z M200.577,168.907h-79.175V89.732h79.175V168.907z M121.402,374.763h79.175v79.175h-79.175V374.763 z M216.412,374.763h79.175v79.175h-79.175V374.763z M390.598,89.732v79.175h-79.175V89.732H390.598z M295.588,168.907h-79.175 V89.732h79.175V168.907z M26.392,15.835h205.856v58.062H26.392V15.835z M26.392,89.732h79.175v79.175H26.392V89.732z M26.392,184.742h79.175v79.175H26.392V184.742z M26.392,279.753h79.175v79.175H26.392V279.753z M26.392,374.763h79.175v79.175 H26.392V374.763z M485.608,496.165H26.392v-26.392h459.217V496.165z M406.433,453.938v-79.175h79.175v79.175H406.433z M406.433,358.928v-79.175h79.175v79.175H406.433z M406.433,263.918v-79.175h79.175v79.175H406.433z M406.433,168.907V89.732h79.175 v79.175H406.433z'/%3E%3Cg%3E%3Crect x='44.866' y='36.948' style='fill:%23FFFFFF;' width='47.505' height='15.835'/%3E%3Crect x='108.206' y='36.948' style='fill:%23FFFFFF;' width='105.567' height='15.835'/%3E%3Crect x='44.866' y='110.845' style='fill:%23FFFFFF;' width='21.113' height='15.835'/%3E%3Crect x='234.887' y='110.845' style='fill:%23FFFFFF;' width='21.113' height='15.835'/%3E%3Crect x='234.887' y='205.856' style='fill:%23FFFFFF;' width='21.113' height='15.835'/%3E%3Crect x='329.897' y='205.856' style='fill:%23FFFFFF;' width='21.113' height='15.835'/%3E%3Crect x='139.876' y='300.866' style='fill:%23FFFFFF;' width='21.113' height='15.835'/%3E%3Crect x='44.866' y='395.876' style='fill:%23FFFFFF;' width='21.113' height='15.835'/%3E%3Crect x='329.897' y='395.876' style='fill:%23FFFFFF;' width='21.113' height='15.835'/%3E%3Crect x='424.907' y='300.866' style='fill:%23FFFFFF;' width='21.113' height='15.835'/%3E%3Crect x='424.907' y='110.845' style='fill:%23FFFFFF;' width='21.113' height='15.835'/%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3C/svg%3E%0A");
87 | }
88 |
89 | .color-manager-section-icon-default {
90 | width: 1.2em;
91 | vertical-align: text-bottom;
92 | content: url("data:image/svg+xml,%3Csvg height='800px' width='800px' version='1.1' id='' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 512 512' xml:space='preserve'%3E%3Cpath style='fill:%23FFCE47;' d='M433.479,205.747c75.09,43.351,100.812,139.37,57.461,214.46s-139.37,100.812-214.46,57.461 c-7.304-4.21-14.135-8.93-20.48-14.074l31.824-170.903l123.221-97.645C418.677,197.97,426.175,201.537,433.479,205.747z'/%3E%3Cpath style='fill:%23FF4181;' d='M78.521,205.747c-75.09,43.351-100.812,139.37-57.461,214.46s139.37,100.812,214.46,57.461 c7.304-4.21,14.135-8.93,20.48-14.074l-31.824-170.903l-123.221-97.645C93.323,197.97,85.825,201.537,78.521,205.747z'/%3E%3Cpath style='fill:%234EB9FF;' d='M412.999,170.271c0,8.432-0.667,16.707-1.953,24.775L256,256.196l-155.046-61.15 c-1.286-8.068-1.953-16.343-1.953-24.775c0-86.713,70.298-156.999,156.999-156.999S412.999,83.557,412.999,170.271z'/%3E%3Cpath style='fill:%23FF755C;' d='M312.09,316.957H199.91C191.21,371.482,211.933,427.9,256,463.594 C300.066,427.9,320.789,371.482,312.09,316.957z'/%3E%3Cpath style='fill:%2385C250;' d='M256,219.797l56.09,97.16c51.577-19.74,90.086-65.906,98.955-121.911 C358.098,174.724,298.865,185,256,219.797z'/%3E%3Cpath style='fill:%233B8BC0;' d='M100.954,195.046c8.869,56.005,47.379,102.171,98.955,121.911l56.09-97.16 C213.134,185,153.902,174.724,100.954,195.046z'/%3E%3Cpath style='fill:%23174461;' d='M292.981,263.208c9.876,17.119,16.173,35.331,19.109,53.748 c-17.423,6.661-36.326,10.313-56.09,10.313s-38.667-3.652-56.09-10.313c2.936-18.418,9.233-36.629,19.109-53.749 c9.876-17.107,22.494-31.667,36.981-43.411C270.486,231.542,283.105,246.101,292.981,263.208z'/%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3C/svg%3E%0A");
93 | }
94 |
95 | .color-manager-section-icon-extended {
96 | width: 1.2em;
97 | vertical-align: text-bottom;
98 | content: url("data:image/svg+xml,%3Csvg height='800px' width='800px' version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 512 512' xml:space='preserve'%3E%3Cpath style='fill:%23FFCE47;' d='M425.484,207.989c71.707,41.398,96.27,133.092,54.873,204.799s-133.092,96.27-204.799,54.873 c-6.975-4.02-13.498-8.527-19.558-13.44l30.391-163.204l117.67-93.246C411.349,200.562,418.51,203.968,425.484,207.989z'/%3E%3Cpath style='fill:%23FF4181;' d='M86.516,207.989c-71.707,41.398-96.27,133.092-54.873,204.799s133.092,96.27,204.799,54.873 c6.975-4.02,13.498-8.527,19.558-13.44L225.61,291.016l-117.67-93.246C100.652,200.562,93.491,203.968,86.516,207.989z'/%3E%3Cpath style='fill:%234EB9FF;' d='M405.927,174.111c0,8.052-0.637,15.954-1.865,23.659L256,256.165L107.939,197.77 c-1.228-7.705-1.865-15.607-1.865-23.659c0-82.807,67.131-149.926,149.926-149.926S405.927,91.304,405.927,174.111z'/%3E%3Cpath style='fill:%23FF755C;' d='M309.564,314.189H202.437C194.13,366.258,213.919,420.134,256,454.221 C298.082,420.134,317.871,366.258,309.564,314.189z'/%3E%3Cpath style='fill:%2385C250;' d='M256,221.406l53.563,92.783c49.253-18.851,86.028-62.937,94.498-116.419 C353.499,178.363,296.935,188.176,256,221.406z'/%3E%3Cpath style='fill:%233B8BC0;' d='M107.939,197.77c8.47,53.482,45.244,97.568,94.498,116.419L256,221.406 C215.066,188.176,158.502,178.363,107.939,197.77z'/%3E%3Cpath style='fill:%23174461;' d='M291.315,262.862c9.431,16.348,15.444,33.739,18.248,51.327c-16.638,6.361-34.689,9.848-53.563,9.848 s-36.925-3.487-53.563-9.848c2.804-17.588,8.817-34.979,18.248-51.327c9.431-16.337,21.481-30.24,35.315-41.456 C269.834,232.621,281.884,246.525,291.315,262.862z'/%3E%3Cpath style='fill:%2301121C;' d='M431.278,197.952c-4.786-2.763-9.656-5.251-14.592-7.472c0.545-5.385,0.825-10.847,0.825-16.373 c0-89.057-72.454-161.509-161.509-161.509S94.49,85.05,94.49,174.107c0,5.527,0.28,10.988,0.825,16.373 c-4.936,2.221-9.807,4.709-14.592,7.472C3.598,242.48-22.922,341.452,21.607,418.578c21.57,37.361,56.4,64.086,98.07,75.252 c13.915,3.728,28.034,5.573,42.065,5.573c27.986,0,55.607-7.34,80.492-21.708c4.767-2.752,9.357-5.722,13.767-8.892 c4.41,3.17,9,6.141,13.767,8.892c24.887,14.369,52.504,21.709,80.492,21.708c14.027,0,28.152-1.845,42.065-5.573 c41.67-11.166,76.5-37.891,98.07-75.252C534.922,341.454,508.403,242.48,431.278,197.952z M117.663,174.107 c0-76.279,62.058-138.337,138.337-138.337s138.338,62.057,138.338,138.337c0,2.746-0.089,5.471-0.248,8.178 c-47.63-13.335-98.629-3.807-138.089,24.587c-39.459-28.395-90.46-37.921-138.089-24.587 C117.753,179.578,117.663,176.853,117.663,174.107z M295.102,373.628c-6.8,25.377-20.343,47.788-39.103,65.264 c-18.759-17.477-32.303-39.887-39.103-65.264c-3.901-14.559-5.392-29.384-4.538-44.006c13.887,3.902,28.523,5.995,43.641,5.995 s29.754-2.094,43.641-5.995C300.494,344.245,299.003,359.068,295.102,373.628z M256,312.445c-14.005,0-27.529-2.099-40.28-5.988 c3.066-13.101,8.08-25.821,14.998-37.803c6.992-12.111,15.562-22.754,25.286-31.844c9.723,9.088,18.287,19.735,25.278,31.844 c6.917,11.98,11.932,24.702,14.998,37.803C283.529,310.346,270.006,312.445,256,312.445z M193.993,297.744 c-36.201-18.23-63.353-51.89-72.747-92.294c39.706-12.071,82.455-5.374,116.351,16.888c-10.296,10.06-19.404,21.666-26.945,34.73 C203.186,270,197.621,283.669,193.993,297.744z M301.35,257.068c-7.543-13.065-16.652-24.672-26.949-34.733 c22.675-14.893,49.312-22.821,76.354-22.821c13.379,0,26.855,1.949,39.998,5.944c-9.396,40.4-36.547,74.058-72.746,92.287 C314.38,283.669,308.815,270,301.35,257.068z M230.647,457.627c-32,18.476-69.28,23.383-104.974,13.82 c-35.692-9.563-65.524-32.454-83.999-64.454C3.535,340.933,26.249,256.16,92.309,218.02c2.379-1.373,4.783-2.658,7.207-3.874 c12.258,47.886,45.974,87.27,90.254,107.259c-1.96,19.275-0.418,38.946,4.746,58.221c7.621,28.444,22.498,53.697,43.053,73.725 C235.311,454.833,233.006,456.266,230.647,457.627z M470.326,406.993c-18.475,32.001-48.308,54.891-83.999,64.454 c-35.694,9.564-72.973,4.655-104.974-13.82c-2.359-1.363-4.662-2.793-6.922-4.276c20.555-20.028,35.432-45.28,43.053-73.725 c5.165-19.275,6.707-38.946,4.746-58.221c44.277-19.988,77.992-59.37,90.252-107.253c2.424,1.217,4.83,2.496,7.208,3.869 C485.751,256.16,508.465,340.933,470.326,406.993z'/%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3C/svg%3E%0A");
99 | }
100 |
101 | .color-manager-section-icon-text {
102 | width: 1.3em;
103 | vertical-align: text-bottom;
104 | content: url("data:image/svg+xml,%3Csvg width='800px' height='800px' viewBox='0 0 73 73' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='container' transform='translate(2.000000, 2.000000)' fill='%23FFFFFF' fill-rule='nonzero' stroke='%23023A5F' stroke-width='2'%3E%3Crect id='mask' x='-1' y='-1' width='71' height='71' rx='14'%3E%3C/rect%3E%3C/g%3E%3Cg id='text' transform='translate(10.000000, 10.000000)' fill-rule='nonzero'%3E%3Cpath d='M42.5740686,5.85930588 L42.5740686,41.0138941 C42.5740686,41.8743647 41.8757157,42.5727176 41.0152451,42.5727176 L5.86065686,42.5727176 C5.00018627,42.5727176 4.30183333,41.8743647 4.30183333,41.0138941 L4.30183333,5.85930588 C4.30183333,4.99883529 5.00018627,4.30048235 5.86065686,4.30048235 L41.0152451,4.30048235 C41.8757157,4.30048235 42.5740686,4.99883529 42.5740686,5.85930588 Z' id='' fill='%233EC3FF'%3E%3C/path%3E%3Cpath d='M42.5740686,5.85930588 L42.5740686,41.0138941 C42.5740686,41.8743647 41.8757157,42.5727176 41.0152451,42.5727176 L23.437951,42.5727176 L23.437951,4.30048235 L41.0152451,4.30048235 C41.8757157,4.30048235 42.5740686,4.99883529 42.5740686,5.85930588 Z' id='' fill='%230789E0'%3E%3C/path%3E%3Cpolygon id='' fill='%23FFFFFF' points='7.41948039 7.41812941 39.4564216 7.41812941 39.4564216 39.4550706 7.41948039 39.4550706'%3E%3C/polygon%3E%3Cpolygon id='' fill='%23BFEBFF' points='23.437951 7.41812941 39.4564216 7.41812941 39.4564216 39.4550706 23.437951 39.4550706'%3E%3C/polygon%3E%3Cpath d='M32.8958529,15.3743647 L32.8958529,18.599051 C32.8958529,19.4595216 32.1975,20.1578745 31.3370294,20.1578745 C30.4755196,20.1578745 29.7782059,19.4595216 29.7782059,18.599051 L29.7782059,16.9331882 L24.9967745,16.9331882 L24.9967745,29.9400118 L26.0806765,29.9400118 C26.9421863,29.9400118 27.6395,30.6383647 27.6395,31.4988353 C27.6395,32.3593059 26.9421863,33.0576588 26.0806765,33.0576588 L20.7941863,33.0576588 C19.9337157,33.0576588 19.2353627,32.3593059 19.2353627,31.4988353 C19.2353627,30.6383647 19.9337157,29.9400118 20.7941863,29.9400118 L21.8791275,29.9400118 L21.8791275,16.9331882 L17.0976961,16.9331882 L17.0976961,18.599051 C17.0976961,19.4595216 16.3993431,20.1578745 15.5388725,20.1578745 C14.678402,20.1578745 13.980049,19.4595216 13.980049,18.599051 L13.980049,15.3743647 C13.980049,14.5128549 14.678402,13.8155412 15.5388725,13.8155412 L31.3370294,13.8155412 C32.1975,13.8155412 32.8958529,14.5128549 32.8958529,15.3743647 Z' id='' fill='%23435D7A'%3E%3C/path%3E%3Cpath d='M32.8958529,15.3743647 L32.8958529,18.599051 C32.8958529,19.4595216 32.1975,20.1578745 31.3370294,20.1578745 C30.4755196,20.1578745 29.7782059,19.4595216 29.7782059,18.599051 L29.7782059,16.9331882 L24.9967745,16.9331882 L24.9967745,29.9400118 L26.0806765,29.9400118 C26.9421863,29.9400118 27.6395,30.6383647 27.6395,31.4988353 C27.6395,32.3593059 26.9421863,33.0576588 26.0806765,33.0576588 L23.437951,33.0576588 L23.437951,13.8155412 L31.3370294,13.8155412 C32.1975,13.8155412 32.8958529,14.5128549 32.8958529,15.3743647 Z' id='' fill='%232D3E53'%3E%3C/path%3E%3Cpath d='M5.86076078,0 C2.62994314,0 0.00135098039,2.62848824 0.00135098039,5.8594098 C0.00135098039,9.09033137 2.62983922,11.7187157 5.86076078,11.7187157 C9.09168235,11.7187157 11.7200667,9.09022745 11.7200667,5.8594098 C11.7200667,2.62859216 9.09157843,0 5.86076078,0 Z' id='' fill='%23FD3186'%3E%3C/path%3E%3Cpath d='M8.60210784,5.85930588 C8.60210784,7.37136471 7.37271569,8.60075686 5.86065686,8.60075686 C4.34859804,8.60075686 3.11920588,7.37136471 3.11920588,5.85930588 C3.11920588,4.34724706 4.34859804,3.1178549 5.86065686,3.1178549 C7.37271569,3.1178549 8.60210784,4.34724706 8.60210784,5.85930588 Z' id='' fill='%23FFFFFF'%3E%3C/path%3E%3Cpath d='M41.0148294,0 C37.7839078,0 35.1554196,2.62848824 35.1554196,5.8594098 C35.1554196,9.09033137 37.7839078,11.7187157 41.0148294,11.7187157 C44.245751,11.7187157 46.8742392,9.09022745 46.8742392,5.8594098 C46.8742392,2.62859216 44.245751,0 41.0148294,0 Z' id='' fill='%23C7318B'%3E%3C/path%3E%3Cpath d='M43.7566961,5.85930588 C43.7566961,7.37136471 42.5262647,8.60075686 41.0152451,8.60075686 C39.5031863,8.60075686 38.2727549,7.37136471 38.2727549,5.85930588 C38.2727549,4.34724706 39.5031863,3.1178549 41.0152451,3.1178549 C42.5262647,3.1178549 43.7566961,4.34724706 43.7566961,5.85930588 Z' id='' fill='%23FFFFFF'%3E%3C/path%3E%3Cpath d='M5.86076078,35.1540686 C2.62994314,35.1540686 0.00135098039,37.7825569 0.00135098039,41.0134784 C0.00135098039,44.2444 2.62983922,46.8728882 5.86076078,46.8728882 C9.09168235,46.8728882 11.7200667,44.2444 11.7200667,41.0134784 C11.7200667,37.7825569 9.09157843,35.1540686 5.86076078,35.1540686 Z' id='' fill='%23FD3186'%3E%3C/path%3E%3Cpath d='M8.60210784,41.0138941 C8.60210784,42.5249137 7.37271569,43.7553451 5.86065686,43.7553451 C4.34859804,43.7553451 3.11920588,42.5249137 3.11920588,41.0138941 C3.11920588,39.5018353 4.34859804,38.2714039 5.86065686,38.2714039 C7.37271569,38.2714039 8.60210784,39.5018353 8.60210784,41.0138941 Z' id='' fill='%23FFFFFF'%3E%3C/path%3E%3Cpath d='M48.9351078,36.6212333 L46.234602,39.3217392 C45.784102,39.7722392 45.784102,40.5011451 46.234602,40.9516451 L52.6079039,47.3249471 C53.0575725,47.7746157 53.0575725,48.5050804 52.6071765,48.9555804 L50.7802353,50.7823137 L39.4564216,41.5778765 C39.4564216,41.5778765 32.4621882,32.9595569 32.7098333,32.7119118 C32.9574784,32.4642667 33.3168392,32.3268824 33.7025961,32.3878843 L48.2979647,34.6673 C49.228998,34.8120627 49.6022843,35.9539529 48.9351078,36.6212333 Z' id='' fill='%23FFA84A'%3E%3C/path%3E%3Cpath d='M32.7098333,32.7119118 L50.7802353,50.7823137 L48.953398,52.609151 C48.5037294,53.0588196 47.7732647,53.0588196 47.3234922,52.609151 L40.9501902,46.235849 C40.4997941,45.7854529 39.7700569,45.7861804 39.3202843,46.235849 L36.619051,48.9370824 C35.952602,49.6035314 34.8098804,49.2309725 34.6651176,48.2999392 L32.385598,33.7045706 C32.3248039,33.3189176 32.4621882,32.9595569 32.7098333,32.7119118 Z' id='' fill='%23FFEB95'%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A");
105 | }
106 |
107 | .color-manager-section-icon-custom {
108 | width: 1.2em;
109 | vertical-align: text-bottom;
110 | content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='' viewBox='0 0 252.667 252.667' xml:space='preserve' width='200px' height='200px' fill='%23000000' stroke='%23000000' stroke-width='0'%3E%3Cg id='' stroke-width='0'/%3E%3Ccircle style='fill:%2314aab1;' cx='126.333' cy='126.333' r='126.333'/%3E%3Cpath style='fill:%23f7fc1d;' d='M215.664,37.002c-49.336-49.336-129.326-49.336-178.662,0l89.331,89.331L215.664,37.002z'/%3E%3Cpath style='fill:%23740181;' d='M126.334,0C94.002,0,61.67,12.334,37.002,37.002l89.331,89.331L126.334,0z'/%3E%3Cpath style='fill:%23F8B242;' d='M37.002,215.664c49.336,49.336,129.326,49.336,178.662,0l-89.331-89.331L37.002,215.664z'/%3E%3Cpath style='fill:%23D09838;' d='M37.003,215.664c24.668,24.668,57.331,37.002,89.331,37.002V126.333L37.003,215.664z'/%3E%3Cpath style='fill:%23E45527;' d='M215.664,37.002l-89.331,89.331l89.331,89.331C265.001,166.328,265.001,86.338,215.664,37.002z'/%3E%3C/svg%3E%0A");
111 | }
112 |
113 | .cm-section-desc-info-panel {
114 | border-radius: var(--border-radius-color-manager);
115 | padding: 8px 35px 8px 10px;
116 | margin-top: 10px;
117 | margin-bottom: 15px;
118 | border: 1px solid var(--blue-icon-dark);
119 | color: var(--color-primary);
120 | background-color: #FCFCFC;
121 | overflow: auto;
122 | }
123 |
124 | .colour-section {
125 | margin-bottom: 20px;
126 | }
127 |
128 | .colour-section ul {
129 | position: relative;
130 | }
131 |
132 | .colour-section ul li {
133 | list-style-type: none;
134 | display: inline-block;
135 | margin-right: 40px;
136 | margin-bottom: 10px;
137 | margin-top: 10px;
138 | }
139 |
140 | .colour-wrapper {
141 | border: 1px solid currentcolor;
142 | padding: 5px;
143 | min-width: 150px;
144 | width: auto;
145 | margin: 5px;
146 | display: inline-block;
147 | border-radius: var(--border-radius-color-manager);
148 | position: relative;
149 | vertical-align: middle;
150 | box-sizing: content-box;
151 | }
152 |
153 | .delete-icon-wrapper {
154 | position: absolute;
155 | right: 0;
156 | top: 0;
157 | padding: 2px 0 2px 3px;
158 | background-color: var(--pp-white);
159 | border-bottom-left-radius: var(--border-radius-color-manager);
160 | border-left: 1px solid;
161 | border-bottom: 1px solid;
162 | opacity: 0;
163 | transition: var(--transition-color-manager);
164 | }
165 |
166 | .colour-wrapper:hover .delete-icon-wrapper {
167 | opacity: 1;
168 | }
169 |
170 | .colour-boxes {
171 | margin: auto;
172 | display: block;
173 | text-align: center;
174 | }
175 |
176 | .colour-name {
177 | text-align: left;
178 | font-weight: 600;
179 | display: block;
180 | font-size: .85em;
181 | }
182 |
183 | .colour-background {
184 | text-align: left;
185 | display: block;
186 | }
187 |
188 | .colour-background span, .colour-border span, .colour-font span {
189 | display: block;
190 | font-size: .8em;
191 | margin-top: 5px;
192 | }
193 |
194 | .colour-background code, .colour-border code, .colour-font code {
195 | display: block;
196 | width: fit-content;
197 | margin: 3px 0 0 0 !important;
198 | color: var(--pp-black) !important;
199 | background-color: rgb(179, 179, 179) !important;
200 | text-rendering: optimizelegibility;
201 | font-family: monospace !important;
202 | letter-spacing: .06rem;
203 | padding: 1px 3px 3px 3px !important;
204 | border-radius: var(--border-radius-color-manager);
205 | font-size: .9em !important;
206 | }
207 |
208 | .colour-border {
209 | text-align: left;
210 | display: block;
211 | }
212 |
213 | .colour-font {
214 | text-align: left;
215 | display: block;
216 | }
217 |
218 | .default-box-colour {
219 | padding: 2px 10px;
220 | border-radius: var(--border-radius-color-manager);
221 | border: 1px solid var(--pp-black);
222 | box-shadow: var(--box-shadow-color-manager);
223 | margin-left: 5px;
224 | }
225 |
226 | .color-manager-note {
227 | font-size: .8em;
228 | font-style: italic;
229 | }
230 |
231 | li.color-manager-note > a.note-link {
232 | font-weight: 600;
233 | }
234 |
235 | .colour-total-count, .colour-total-count-section {
236 | font-size: .6em;
237 | vertical-align: super;
238 | margin-left: 5px;
239 | padding: 1px 4px 1px 4px;
240 | border-radius: var(--border-radius-color-manager);
241 | color: var(--pp-white);
242 | }
243 |
244 | .colour-total-count {
245 | background-color: var(--pp-green-dark);
246 | }
247 |
248 | .colour-total-count-section {
249 | background-color: var(--blue-icon-dark);
250 | }
251 |
252 | div.color-picker-square {
253 | border-left-width: 5px !important;
254 | }
255 |
256 | .add-colour-btn {
257 | padding: 2px 8px 1px 5px;
258 | background: var(--pp-white);
259 | border: 2px solid var(--pp-green);
260 | position: absolute;
261 | right: 0;
262 | font-size: 1.1em;
263 | border-radius: var(--border-radius-color-manager);
264 | }
265 |
266 | .add-colour-btn a {
267 | transition: var(--transition-color-manager);
268 | }
269 |
270 | .color-manager-section .add-colour-btn a:hover {
271 | color: var(--pp-green) !important;
272 | }
273 |
274 | .add-colour-btn svg {
275 | vertical-align: text-top;
276 | width: 1.1em;
277 | height: 1.1em;
278 | }
279 |
280 | .colour-boxes .add-colour-btn {
281 | position: initial;
282 | font-size: 1em;
283 | margin-left: 1em;
284 | }
285 |
286 | .colour-boxes .no-colours {
287 | margin: 2em auto;
288 | color: var(--pp-grey);
289 | font-style: italic;
290 | }
291 |
292 | .select2-container--default .select2-results > #select2-form-color_id-results.select2-results__options {
293 | font-size: .85em;
294 | }
295 |
--------------------------------------------------------------------------------
/Assets/icons/color-palette.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Assets/icons/colour-palette.svg:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
30 |
32 |
33 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
--------------------------------------------------------------------------------
/Assets/icons/font-size-color.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Assets/icons/palette-print-bordered.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
17 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/Assets/icons/palette-print.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/Controller/ColorManagerController.php:
--------------------------------------------------------------------------------
1 | helper->layout->config for config settings menu sidebar
23 | * Use: $this->helper->layout->plugin for plugin menu sidebar
24 | * @access public
25 | */
26 |
27 | public function show()
28 | {
29 | $this->response->html($this->helper->layout->config('colorManager:config/colors', array(
30 | 'title' => t('Settings') . ' ⥂ ' . t('Color Manager'),
31 | )));
32 | }
33 |
34 | public function add()
35 | {
36 | $errors = [];
37 | $values = [];
38 |
39 | $this->response->html($this->helper->layout->config('colorManager:config/add_custom_color', [
40 | 'errors' => $errors,
41 | 'values' => $values,
42 | 'title' => t('Custom Colors') . ' > ' . t('Add Color'),
43 | ]));
44 | }
45 |
46 | public function remove()
47 | {
48 | $key = $this->request->getStringParam('key');
49 | $errors = [];
50 | $values = [];
51 |
52 | $custom_colors = $this->configModel->get('kbcolour_ids', '');
53 | if ($custom_colors == '') {
54 | $custom_colors_array = array();
55 | } else {
56 | $custom_colors_array = explode(',', $custom_colors);
57 | }
58 | if (($k = array_search($key, $custom_colors_array)) !== false) {
59 | unset($custom_colors_array[$k]);
60 | }
61 | if (is_array($custom_colors_array)) {
62 | $custom_colors_string = implode(',', $custom_colors_array);
63 | } else {
64 | $custom_colors_string = $color_id;
65 | }
66 | $this->configModel->save(['kbcolour_ids' => $custom_colors_string]);
67 |
68 | $this->configModel->remove('kbcolour_name_' . $key);
69 | $this->configModel->remove('kbcolour_backgroundcolor_' . $key);
70 | $this->configModel->remove('kbcolour_bordercolor_' . $key);
71 |
72 | $this->response->redirect($this->helper->url->to('ColorManagerController', 'show', ['plugin' => 'ColorManager', 'url' => t('color-manager')]));
73 | }
74 |
75 | public function save()
76 | {
77 | $errors = [];
78 | $values = [];
79 |
80 | if ($this->request->isPost()) {
81 | $values = $this->request->getValues();
82 | if (isset($values['color_name'])) {
83 | $color_id = str_replace(' ', '_', strtolower($values['color_name']));
84 | $custom_colors = $this->configModel->get('kbcolour_ids', '');
85 | if ($custom_colors == '') {
86 | $custom_colors_array = array();
87 | } else {
88 | $custom_colors_array = explode(',', $custom_colors);
89 | }
90 | array_push($custom_colors_array, $color_id);
91 | $custom_colors_array = array_unique($custom_colors_array);
92 | if (is_array($custom_colors_array)) {
93 | $custom_colors_string = implode(',', $custom_colors_array);
94 | } else {
95 | $custom_colors_string = $color_id;
96 | }
97 | $this->configModel->save(['kbcolour_ids' => $custom_colors_string]);
98 | $this->configModel->save(['kbcolour_name_' . $color_id => $values['color_name']]);
99 | $this->configModel->save(['kbcolour_backgroundcolor_' . $color_id => $values['background_color']]);
100 | $this->configModel->save(['kbcolour_bordercolor_' . $color_id => $values['border_color']]);
101 | }
102 | }
103 |
104 | $this->response->redirect($this->helper->url->to('ColorManagerController', 'show', ['plugin' => 'ColorManager', 'url' => t('color-manager')]));
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/Helper/CustomColorHelper.php:
--------------------------------------------------------------------------------
1 | ' . $this->colorModelExt->getCssExt() . '';
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/INSTALL.md:
--------------------------------------------------------------------------------
1 | # Plugin Installation
2 |
3 | - **Install via the [Kanboard](https://github.com/kanboard/kanboard "Kanboard - Kanban Project Management Software") Plugin Directory**
4 | - _Go to:_
5 | - Kanboard: `Plugins` ⥂ `Plugin Directory`
6 | - _or with [PluginManager](https://github.com/aljawaid/PluginManager "A Kanboard plugin") installed:_
7 | - Kanboard: `Settings` ⥂ `Plugins` ⥂ `Plugin Directory`
8 | - **Install via the [Releases](../master/Releases/ "A copy of each release is saved in the folder") folder**
9 | - A copy of each release is saved in the `/Releases` folder of the repository
10 | - Simply extract the `.zip` file into the `/plugins` directory
11 | - **Install via [GitHub](https://github.com/ "Find the correct plugin from the list of repositories")**
12 | - Download the `.zip` file and decompress everything under the directory `/plugins`
13 | - The folder inside the `.zip` must not contain any branch names and must be exact case (matching the plugin name)
14 |
15 | _Note: The `/plugins` folder is case-sensitive._
16 |
17 | - **Install using Git CLI**
18 | - `git clone` (_or ftp upload_) and extract the `.zip` file into this folder: `.\plugins\` (must be exact case)
19 |
20 | ---
21 |
22 | Read the full [**Changelog**](../master/changelog.md "See changes") or view the [**README**](../master/README.md "View README")
23 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 aljawaid
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Locale/ColorManager-Translation-Table.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Locale/ColorManager-Translation-Table.xlsx
--------------------------------------------------------------------------------
/Locale/de_DE/translations.php:
--------------------------------------------------------------------------------
1 | 'Eine neue Möglichkeit, Farben in Kanboard voll auszuschöpfen. Wählen Sie aus 3 Farbpaletten oder erstellen Sie Ihre eigene. Wählen Sie in allen Paletten aus über 85 Farben, die zu Ihrem Arbeitsablauf über die Benutzeroberfläche passen.',
8 | //
9 | // ColorManagerContoller.php
10 | //
11 | 'Settings' => 'Einstellungen',
12 | 'Color Manager' => 'Farbmanagement',
13 | 'Custom Colors' => 'Eigene Farben',
14 | 'Add Color' => 'Farbe hinzufügen',
15 | //
16 | // config/add_custom_color.php
17 | //
18 | 'Color Name' => 'Name der Farbe',
19 | 'Background Color' => 'Hintergrundfarbe',
20 | 'Border Color' => 'Rahmenfarbe',
21 | 'Save Color' => 'Farbe speichern',
22 | //
23 | // config/colors.php
24 | //
25 | 'Available Colors' => 'Verfügbare Farben',
26 | 'Default Color Palette' => 'Standard Farbpalette',
27 | 'These colors are part of the core. Pastel styles make these colors universal across all features of the application.' => 'Diese Farben sind Bestandteil des Kanboard Cores. Pasteltöne sorgen dafür, dass diese universell für alle Bereiche der Applikation verwendet werden können.',
28 | 'Task Color' => 'Task Farbe',
29 | 'Change the default color in' => 'Ändere die Standardfarbe zu',
30 | 'Project Settings' => 'Projekteinstellungen',
31 | 'Go to Project Settings' => 'Geh zu den Projekteinstellungen',
32 | 'Extended Color Palette' => 'Erweitert Farbpalette',
33 | 'This palette shows a collection of colors different to those in the default palette.' => 'Diese Palette enthält eine Auswahl von Farben die sich von denen der Standard Palette unterscheiden.',
34 | 'Colors are named based on their common color name.' => 'Die Farben werden auf der Grundlage ihres allgemeinen Farbnamens benannt.',
35 | 'Text Color Palette' => 'Text Farbpalette',
36 | 'This palette shows a collection of colors different to those in the default palette and enhances colors from the extended palette. This palette primarily uses alternative colors for text. These colors are particularly suitable for tags and categories.' => 'Diese Palette zeigt eine Sammlung von Farben, die sich von denen in der Standardpalette unterscheiden, und verbessert Farben aus der erweiterten Palette. Diese Palette verwendet hauptsächlich alternative Farben für Text. Diese Farben eignen sich besonders gut für Tags und Kategorien.',
37 | 'Colors are named based on their common color name. Names are preceded by their text color.' => 'Die Farben werden auf der Grundlage ihres allgemeinen Farbnamens benannt. Namen wird ihre Textfarbe vorangestellt.',
38 | 'Text Color' => 'Textfarbe',
39 | 'Add to this palette' => 'Zu dieser Palette hinzufügen',
40 | 'Custom Color Palette' => 'Benutzerdefinierte Farbpalette',
41 | 'This palette shows all user created colors. These colors are unique to your application.' => 'Diese Palette zeigt alle vom Benutzer erstellten Farben. Diese Farben sind individuell für Ihre Anwendung.',
42 | 'Color names matching colors in other palettes will override those colors. Duplicate color names will not be created.' => 'Farbnamen, die mit Farben in anderen Paletten übereinstimmen, setzen diese Farben außer Kraft. Doppelte Farbnamen werden nicht erstellt.',
43 | 'Delete Color' => 'Farbe löschen',
44 | 'This palette is empty' => 'Diese Palette ist leer',
45 | //
46 | // model/ColorModelExt.php /// COLOR NAMES
47 | //
48 | 'Aqua' => 'Aqua',
49 | 'Amber' => 'Bernstein',
50 | 'Beige' => 'Beige',
51 | 'Blood Red' => 'Blutrot',
52 | 'Blood Red on Pale Orange' => 'Blutrot auf Hellorange',
53 | 'Blue Grey' => 'Blau Grau',
54 | 'Bright Green' => 'Hellgrün',
55 | 'Bright Red' => 'Helles Rot',
56 | 'Bright White' => 'Helles Weiß',
57 | 'Bright Yellow' => 'Helles Gelb',
58 | 'Classic Silver' => 'Klassisches Silber',
59 | 'Copper' => 'Kupfer',
60 | 'Cream' => 'Creme',
61 | 'Crimson' => 'Karminrot',
62 | 'Dark Brown' => 'Dunkelbraun',
63 | 'Dark Brown on Cream' => 'Dunkelbraun auf Creme',
64 | 'Dark Gold' => 'Dunkelgold',
65 | 'Dark Green on Lime Green' => 'Dunkelgrün auf Limette Grün',
66 | 'Dark Pink' => 'Dunkelrosa',
67 | 'Dark Red' => 'Dunkelrot',
68 | 'Deep Amber' => 'Tiefes Bernstein',
69 | 'Deep Blue on Aqua' => 'Tiefblau auf Aqua',
70 | 'Deep Green' => 'Tiefgrün',
71 | 'Deep Grey' => 'Tiefes Grau',
72 | 'Deep Purple' => 'Tiefes Violett',
73 | 'Dim Grey' => 'Abm Grau',
74 | 'Dirty Green' => 'Schmutziges Grün',
75 | 'Dirty Yellow' => 'Schmutziges Gelb',
76 | 'Grey on Black' => 'Grau auf Schwarz',
77 | 'Gold' => 'Gold',
78 | 'Khaki' => 'Khaki',
79 | 'Lime Green' => 'Limonengrün',
80 | 'Lint' => 'Fussel',
81 | 'Magenta' => 'Magenta',
82 | 'Maroon on Classic Silver' => 'Kastanienbraun auf klassischem Silber',
83 | 'Mint Green' => 'Minzgrün',
84 | 'Olive' => 'Olivgrün',
85 | 'Orange on Black' => 'Orange auf Schwarz',
86 | 'Pale Blue' => 'Blassblau',
87 | 'Pale Orange' => 'Blass Orange',
88 | 'Pale Purple' => 'Blassviolett',
89 | 'Peach' => 'Pfirsich',
90 | 'Pumpkin Orange' => 'Kürbis Orange',
91 | 'Red on Black' => 'Rot auf Schwarz',
92 | 'Red Orange' => 'Rot Orange',
93 | 'Royal Blue' => 'Königlich Blau',
94 | 'Scarlet' => 'Scharlachrot',
95 | 'White' => 'Weiß',
96 | 'White on Black' => 'Weiß auf Schwarz',
97 | 'White on Blood Red' => 'Weiß auf Blutrot',
98 | 'White on Blue Grey' => 'Weiß auf Blau Grau',
99 | 'White on Bright Red' => 'Weiß auf Helles Rot',
100 | 'White on Copper' => 'Weiß auf Kupfer',
101 | 'White on Dark Brown' => 'Weiß auf Dunkelbraun',
102 | 'White on Dark Red' => 'Weiß auf Dunkelrot',
103 | 'White on Dark Teal' => 'Weiß auf Dunkles Türkis',
104 | 'White on Deep Blue' => 'Weiß auf Dunkelblau',
105 | 'White on Deep Green' => 'Weiß auf Deep Green',
106 | 'White on Deep Grey' => 'Weiß auf Tiefgrau',
107 | 'White on Deep Purple' => 'Weiß auf Tiefes Violett',
108 | 'White on Dim Grey' => 'Weiß auf schwachem Grau',
109 | 'White on Lime Green' => 'Weiß auf Lindgrün',
110 | 'White on Green' => 'Weiß auf Grün',
111 | 'White on Maroon' => 'Weiß auf Kastanienbraun',
112 | 'White on Olive' => 'Weiß auf Olive',
113 | 'White on Peach' => 'Weiß auf Pfirsich',
114 | 'White on Purple' => 'Weiß auf Violett',
115 | 'White on Red Orange' => 'Weiß auf Rotorange',
116 | 'White on Royal Blue' => 'Weiß auf Königlich Blau',
117 | 'White on Scarlet' => 'Weiß auf Scharlachrot',
118 | 'Yellow Green' => 'Gelbgrün'
119 | );
120 |
--------------------------------------------------------------------------------
/Locale/en_GB/translations.php:
--------------------------------------------------------------------------------
1 | 'A new way to utilise colors to their full potential in Kanboard. Choose from 3 color palettes or create your own. Across all palettes, choose from over 85 colors to match your workflow across the interface.',
8 | //
9 | // ColorManagerContoller.php
10 | //
11 | 'Settings' => 'Settings',
12 | 'Color Manager' => 'Colour Manager',
13 | 'Custom Colors' => 'Custom Colours',
14 | 'Add Color' => 'Add Colour',
15 | //
16 | // config/add_custom_color.php
17 | //
18 | 'Color Name' => 'Colour Name',
19 | 'Background Color' => 'Background Colour',
20 | 'Border Color' => 'Border Colour',
21 | 'Save Color' => 'Save Colour',
22 | //
23 | // config/colors.php
24 | //
25 | 'Available Colors' => 'Available Colours',
26 | 'Default Color Palette' => 'Default Colour Palette',
27 | 'These colors are part of the core. Pastel styles make these colors universal across all features of the application.' => 'These colours are part of the core. Pastel styles make these colours universal across all features of the application.',
28 | 'Task Color' => 'Task Colour',
29 | 'Change the default color in' => 'Change the default colour in',
30 | 'Project Settings' => 'Project Settings',
31 | 'Go to Project Settings' => 'Go to Project Settings',
32 | 'Extended Color Palette' => 'Extended Colour Palette',
33 | 'This palette shows a collection of colors different to those in the default palette.' => 'This palette shows a collection of colours different to those in the default palette.',
34 | 'Colors are named based on their common color name.' => 'Colours are named based on their common colour name.',
35 | 'Text Color Palette' => 'Text Colour Palette',
36 | 'This palette shows a collection of colors different to those in the default palette and enhances colors from the extended palette. This palette primarily uses alternative colors for text. These colors are particularly suitable for tags and categories.' => 'This palette shows a collection of colours different to those in the default palette and enhances colours from the extended palette. This palette primarily uses alternative colours for text. These colours are particularly suitable for tags and categories.',
37 | 'Colors are named based on their common color name. Names are preceded by their text color.' => 'Colours are named based on their common colour name. Names are preceded by their text colour.',
38 | 'Text Color' => 'Text Colour',
39 | 'Add to this palette' => 'Add to this palette',
40 | 'Custom Color Palette' => 'Custom Colour Palette',
41 | 'This palette shows all user created colors. These colors are unique to your application.' => 'This palette shows all user created colours. These colours are unique to your application.',
42 | 'Color names matching colors in other palettes will override those colors. Duplicate color names will not be created.' => 'Colour names matching colours in other palettes will override those colours. Duplicate colour names will not be created.',
43 | 'Delete Color' => 'Delete Colour',
44 | 'This palette is empty' => 'This palette is empty',
45 | //
46 | // model/ColorModelExt.php /// COLOR NAMES
47 | //
48 | 'Aqua' => 'Aqua',
49 | 'Beige' => 'Beige',
50 | 'Blood Red' => 'Blood Red',
51 | 'Blood Red on Pale Orange' => 'Blood Red on Pale Orange',
52 | 'Blue Grey' => 'Blue Grey',
53 | 'Bright Green' => 'Bright Green',
54 | 'Bright Red' => 'Bright Red',
55 | 'Bright White' => 'Bright White',
56 | 'Bright Yellow' => 'Bright Yellow',
57 | 'Classic Silver' => 'Classic Silver',
58 | 'Copper' => 'Copper',
59 | 'Cream' => 'Cream',
60 | 'Crimson' => 'Crimson',
61 | 'Dark Brown' => 'Dark Brown',
62 | 'Dark Brown on Cream' => 'Dark Brown on Cream',
63 | 'Dark Gold' => 'Dark Gold',
64 | 'Dark Green on Lime Green' => 'Dark Green on Lime Green',
65 | 'Dark Pink' => 'Dark Pink',
66 | 'Dark Red' => 'Dark Red',
67 | 'Deep Amber' => 'Deep Amber',
68 | 'Deep Blue on Aqua' => 'Deep Blue on Aqua',
69 | 'Deep Green' => 'Deep Green',
70 | 'Deep Grey' => 'Deep Grey',
71 | 'Deep Purple' => 'Deep Purple',
72 | 'Dim Grey' => 'Dim Grey',
73 | 'Dirty Green' => 'Dirty Green',
74 | 'Dirty Yellow' => 'Dirty Yellow',
75 | 'Gold' => 'Gold',
76 | 'Grey on Black' => 'Grey on Black',
77 | 'Khaki' => 'Khaki',
78 | 'Lime Green' => 'Lime Green',
79 | 'Lint' => 'Lint',
80 | 'Magenta' => 'Magenta',
81 | 'Maroon on Classic Silver' => 'Maroon on Classic Silver',
82 | 'Mint Green' => 'Mint Green',
83 | 'Olive' => 'Olive',
84 | 'Orange on Black' => 'Orange on Black',
85 | 'Pale Blue' => 'Pale Blue',
86 | 'Pale Orange' => 'Pale Orange',
87 | 'Pale Purple' => 'Pale Purple',
88 | 'Peach' => 'Peach',
89 | 'Pumpkin Orange' => 'Pumpkin Orange',
90 | 'Red on Black' => 'Red on Black',
91 | 'Red Orange' => 'Red Orange',
92 | 'Royal Blue' => 'Royal Blue',
93 | 'Scarlet' => 'Scarlet',
94 | 'White' => 'White',
95 | 'White on Black' => 'White on Black',
96 | 'White on Blood Red' => 'White on Blood Red',
97 | 'White on Blue Grey' => 'White on Blue Grey',
98 | 'White on Bright Red' => 'White on Bright Red',
99 | 'White on Copper' => 'White on Copper',
100 | 'White on Dark Brown' => 'White on Dark Brown',
101 | 'White on Dark Red' => 'White on Dark Red',
102 | 'White on Dark Teal' => 'White on Dark Teal',
103 | 'White on Deep Blue' => 'White on Deep Blue',
104 | 'White on Deep Green' => 'White on Deep Green',
105 | 'White on Deep Grey' => 'White on Deep Grey',
106 | 'White on Deep Purple' => 'White on Deep Purple',
107 | 'White on Dim Grey' => 'White on Dim Grey',
108 | 'White on Lime Green' => 'White on Lime Green',
109 | 'White on Green' => 'White on Green',
110 | 'White on Maroon' => 'White on Maroon',
111 | 'White on Olive' => 'White on Olive',
112 | 'White on Peach' => 'White on Peach',
113 | 'White on Purple' => 'White on Purple',
114 | 'White on Red Orange' => 'White on Red Orange',
115 | 'White on Royal Blue' => 'White on Royal Blue',
116 | 'White on Scarlet' => 'White on Scarlet',
117 | 'Yellow Green' => 'Yellow Green',
118 | );
119 |
--------------------------------------------------------------------------------
/Locale/translations-starter-template.php:
--------------------------------------------------------------------------------
1 | '',
8 | //
9 | // ColorManagerContoller.php
10 | //
11 | 'Settings' => '',
12 | 'Color Manager' => '',
13 | 'Custom Colors' => '',
14 | 'Add Color' => '',
15 | //
16 | // config/add_custom_color.php
17 | //
18 | 'Color Name' => '',
19 | 'Background Color' => '',
20 | 'Border Color' => '',
21 | 'Save Color' => '',
22 | //
23 | // config/colors.php
24 | //
25 | 'Available Colors' => '',
26 | 'Default Color Palette' => '',
27 | 'These colors are part of the core. Pastel styles make these colors universal across all features of the application.' => '',
28 | 'Task Color' => '',
29 | 'Change the default color in' => '',
30 | 'Project Settings' => '',
31 | 'Go to Project Settings' => '',
32 | 'Extended Color Palette' => '',
33 | 'This palette shows a collection of colors different to those in the default palette.' => '',
34 | 'Colors are named based on their common color name.' => '',
35 | 'Text Color Palette' => '',
36 | 'This palette shows a collection of colors different to those in the default palette and enhances colors from the extended palette. This palette primarily uses alternative colors for text. These colors are particularly suitable for tags and categories.' => '',
37 | 'Colors are named based on their common color name. Names are preceded by their text color.' => '',
38 | 'Text Color' => '',
39 | 'Add to this palette' => '',
40 | 'Custom Color Palette' => '',
41 | 'This palette shows all user created colors. These colors are unique to your application.' => '',
42 | 'Color names matching colors in other palettes will override those colors. Duplicate color names will not be created.' => '',
43 | 'Delete Color' => '',
44 | 'This palette is empty' => '',
45 | //
46 | // model/ColorModelExt.php /// COLOR NAMES
47 | //
48 | 'Aqua' => '',
49 | 'Beige' => '',
50 | 'Blood Red' => '',
51 | 'Blood Red on Pale Orange' => '',
52 | 'Blue Grey' => '',
53 | 'Bright Green' => '',
54 | 'Bright Red' => '',
55 | 'Bright White' => '',
56 | 'Bright Yellow' => '',
57 | 'Classic Silver' => '',
58 | 'Copper' => '',
59 | 'Cream' => '',
60 | 'Crimson' => '',
61 | 'Dark Brown' => '',
62 | 'Dark Brown on Cream' => '',
63 | 'Dark Gold' => '',
64 | 'Dark Green on Lime Green' => '',
65 | 'Dark Pink' => '',
66 | 'Dark Red' => '',
67 | 'Deep Amber' => '',
68 | 'Deep Blue on Aqua' => '',
69 | 'Deep Green' => '',
70 | 'Deep Grey' => '',
71 | 'Deep Purple' => '',
72 | 'Dim Grey' => '',
73 | 'Dirty Green' => '',
74 | 'Dirty Yellow' => '',
75 | 'Gold' => '',
76 | 'Grey on Black' => '',
77 | 'Khaki' => '',
78 | 'Lime Green' => '',
79 | 'Lint' => '',
80 | 'Magenta' => '',
81 | 'Maroon on Classic Silver' => '',
82 | 'Mint Green' => '',
83 | 'Olive' => '',
84 | 'Orange on Black' => '',
85 | 'Pale Blue' => '',
86 | 'Pale Orange' => '',
87 | 'Pale Purple' => '',
88 | 'Peach' => '',
89 | 'Pumpkin Orange' => '',
90 | 'Red on Black' => '',
91 | 'Red Orange' => '',
92 | 'Royal Blue' => '',
93 | 'Scarlet' => '',
94 | 'White' => '',
95 | 'White on Black' => '',
96 | 'White on Blood Red' => '',
97 | 'White on Blue Grey' => '',
98 | 'White on Bright Red' => '',
99 | 'White on Copper' => '',
100 | 'White on Dark Brown' => '',
101 | 'White on Dark Red' => '',
102 | 'White on Dark Teal' => '',
103 | 'White on Deep Blue' => '',
104 | 'White on Deep Green' => '',
105 | 'White on Deep Grey' => '',
106 | 'White on Deep Purple' => '',
107 | 'White on Dim Grey' => '',
108 | 'White on Lime Green' => '',
109 | 'White on Green' => '',
110 | 'White on Maroon' => '',
111 | 'White on Olive' => '',
112 | 'White on Peach' => '',
113 | 'White on Purple' => '',
114 | 'White on Red Orange' => '',
115 | 'White on Royal Blue' => '',
116 | 'White on Scarlet' => '',
117 | 'Yellow Green' => '',
118 | );
119 |
--------------------------------------------------------------------------------
/Model/ColorModelExt.php:
--------------------------------------------------------------------------------
1 | array(
17 | 'name' => 'Aqua',
18 | 'background' => '#1FE1E7',
19 | 'border' => '#1FE1E7',
20 | ),
21 | 'beige' => array(
22 | 'name' => 'Beige',
23 | 'background' => '#B59F84',
24 | 'border' => '#A29380',
25 | ),
26 | 'blood_red' => array(
27 | 'name' => 'Blood Red',
28 | 'background' => '#700000',
29 | 'border' => '#700000',
30 | 'font' => '#000000',
31 | ),
32 | 'blue_grey' => array(
33 | 'name' => 'Blue Grey',
34 | 'background' => '#5C7890',
35 | 'border' => '#405364',
36 | ),
37 | 'bright_green' => array(
38 | 'name' => 'Bright Green',
39 | 'background' => '#00E11A',
40 | 'border' => '#04B318',
41 | ),
42 | 'bright_red' => array(
43 | 'name' => 'Bright Red',
44 | 'background' => '#F00000',
45 | 'border' => '#000000',
46 | 'font' => '#000000',
47 | ),
48 | 'bright_white' => array(
49 | 'name' => 'Bright White',
50 | 'background' => '#FFFFFF',
51 | 'border' => '#FFFFFF',
52 | 'font' => '#000000',
53 | ),
54 | 'bright_yellow' => array(
55 | 'name' => 'Bright Yellow',
56 | 'background' => '#F7FF00',
57 | 'border' => '#FFE407',
58 | ),
59 | 'classic_silver' => array(
60 | 'name' => 'Classic Silver',
61 | 'background' => '#B1B8BA',
62 | 'border' => '#B1B8BA',
63 | ),
64 | 'copper' => array(
65 | 'name' => 'Copper',
66 | 'background' => '#B77729',
67 | 'border' => '#38240C',
68 | ),
69 | 'cream' => array(
70 | 'name' => 'Cream',
71 | 'background' => '#FDE7A6',
72 | 'border' => '#FDD662',
73 | ),
74 | 'crimson' => array(
75 | 'name' => 'Crimson',
76 | 'background' => '#DC143C',
77 | 'border' => '#800000',
78 | ),
79 | 'dark_brown' => array(
80 | 'name' => 'Dark Brown',
81 | 'background' => '#65463E',
82 | 'border' => '#332623',
83 | ),
84 | 'dark_gold' => array(
85 | 'name' => 'Dark Gold',
86 | 'background' => '#DBA40E',
87 | 'border' => '#8E6A08',
88 | ),
89 | 'dark_red' => array(
90 | 'name' => 'Dark Red',
91 | 'background' => '#951313',
92 | 'border' => '#DC143C',
93 | ),
94 | 'dark_pink' => array(
95 | 'name' => 'Dark Pink',
96 | 'background' => '#8C6070',
97 | 'border' => '#F48FB1',
98 | ),
99 | 'deep_amber' => array(
100 | 'name' => 'Deep Amber',
101 | 'background' => '#F0AD4E',
102 | 'border' => '#BD7309',
103 | ),
104 | 'deep_green' => array(
105 | 'name' => 'Deep Green',
106 | 'background' => '#0A7029',
107 | 'border' => '#024015',
108 | ),
109 | 'deep_grey' => array(
110 | 'name' => 'Deep Grey',
111 | 'background' => '#868B8E',
112 | 'border' => '#646464',
113 | ),
114 | 'deep_purple' => array(
115 | 'name' => 'Deep Purple',
116 | 'background' => '#8E44AD',
117 | 'border' => '#610288',
118 | ),
119 | 'dim_grey' => array(
120 | 'name' => 'Dim Grey',
121 | 'background' => '#6A6A6A',
122 | 'border' => '#000000',
123 | 'font' => '#000000',
124 | ),
125 | 'dirty_green' => array(
126 | 'name' => 'Dirty Green',
127 | 'background' => '#5CB85C',
128 | 'border' => '#367936',
129 | ),
130 | 'dirty_yellow' => array(
131 | 'name' => 'Dirty Yellow',
132 | 'background' => '#D1D100',
133 | 'border' => '#6C6C0F',
134 | ),
135 | 'gold' => array(
136 | 'name' => 'Gold',
137 | 'background' => '#F8D210',
138 | 'border' => '#A48900',
139 | ),
140 | 'khaki' => array(
141 | 'name' => 'Khaki',
142 | 'background' => '#A88C6A',
143 | 'border' => '#755024',
144 | ),
145 | 'lime_green' => array(
146 | 'name' => 'Lime Green',
147 | 'background' => '#63B83E',
148 | 'border' => '#39771E',
149 | ),
150 | 'lint' => array(
151 | 'name' => 'Lint',
152 | 'background' => '#BACC81',
153 | 'border' => '#99A869',
154 | ),
155 | 'magenta' => array(
156 | 'name' => 'Magenta',
157 | 'background' => '#FF00FF',
158 | 'border' => '#B904B9',
159 | ),
160 | 'mint_green' => array(
161 | 'name' => 'Mint Green',
162 | 'background' => '#2CF760',
163 | 'border' => '#BDF4CB',
164 | ),
165 | 'olive' => array(
166 | 'name' => 'Olive',
167 | 'background' => '#5E7345',
168 | 'border' => '#252D1C',
169 | ),
170 | 'pale_blue' => array(
171 | 'name' => 'Pale Blue',
172 | 'background' => '#90ADC6',
173 | 'border' => '#646464',
174 | ),
175 | 'pale_orange' => array(
176 | 'name' => 'Pale Orange',
177 | 'background' => '#FFA500',
178 | 'border' => '#000000',
179 | 'font' => '#000000',
180 | ),
181 | 'pale_purple' => array(
182 | 'name' => 'Pale Purple',
183 | 'background' => '#A16AE8',
184 | 'border' => '#6B3AAA',
185 | ),
186 | 'peach' => array(
187 | 'name' => 'Peach',
188 | 'background' => '#FC4F46',
189 | 'border' => '#F22B2B',
190 | ),
191 | 'pumpkin_orange' => array(
192 | 'name' => 'Pumpkin Orange',
193 | 'background' => '#FF6D36',
194 | 'border' => '#F05216',
195 | ),
196 | 'red_orange' => array(
197 | 'name' => 'Red Orange',
198 | 'background' => '#FF3F00',
199 | 'border' => '#FF3F00',
200 | ),
201 | 'royal_blue' => array(
202 | 'name' => 'Royal Blue',
203 | 'background' => '#1953BE',
204 | 'border' => '#1953BE',
205 | 'font' => '#000000',
206 | ),
207 | 'scarlet' => array(
208 | 'name' => 'Scarlet',
209 | 'background' => '#AE0000',
210 | 'border' => '#6A0303',
211 | ),
212 | 'white' => array(
213 | 'name' => 'White',
214 | 'background' => '#FFFFFF',
215 | 'border' => '#EEEEEE',
216 | ),
217 | 'yellow_green' => array(
218 | 'name' => 'Yellow Green',
219 | 'background' => '#C8DF52',
220 | 'border' => '#A5BB32',
221 | ),
222 | );
223 |
224 |
225 | protected $text_colors = array(
226 | 'blood_red_on_pale_orange' => array(
227 | 'name' => 'Blood Red on Pale Orange',
228 | 'background' => '#FFA500',
229 | 'border' => '#000000',
230 | 'font' => '#700000',
231 | ),
232 | 'dark_brown_on_cream' => array(
233 | 'name' => 'Dark Brown on Cream',
234 | 'background' => '#FDE7A6',
235 | 'border' => '#FDD662',
236 | 'font' => '#846101',
237 | ),
238 | 'dark_green_on_lime_green' => array(
239 | 'name' => 'Dark Green on Lime Green',
240 | 'background' => '#63B83E',
241 | 'border' => '#39771E',
242 | 'font' => '#013311',
243 | ),
244 | 'deep_blue_on_aqua' => array(
245 | 'name' => 'Deep Blue on Aqua',
246 | 'background' => '#1FE1E7',
247 | 'border' => '#1FE1E7',
248 | 'font' => '#0000FF',
249 | ),
250 | 'grey_on_black' => array(
251 | 'name' => 'Grey on Black',
252 | 'background' => '#000000',
253 | 'border' => '#B5B5B5',
254 | 'font' => '#B5B5B5',
255 | ),
256 | 'maroon_on_classic_silver' => array(
257 | 'name' => 'Maroon on Classic Silver',
258 | 'background' => '#B1B8BA',
259 | 'border' => '#B1B8BA',
260 | 'font' => '#800000',
261 | ),
262 | 'orange_on_black' => array(
263 | 'name' => 'Orange on Black',
264 | 'background' => '#000000',
265 | 'border' => '#000000',
266 | 'font' => '#FFA500',
267 | ),
268 | 'red_on_black' => array(
269 | 'name' => 'Red on Black',
270 | 'background' => '#000000',
271 | 'border' => '#000000',
272 | 'font' => '#F00000',
273 | ),
274 | 'white_on_black' => array(
275 | 'name' => 'White on Black',
276 | 'background' => '#000000',
277 | 'border' => '#000000',
278 | 'font' => '#FFFFFF',
279 | ),
280 | 'white_on_blood_red' => array(
281 | 'name' => 'White on Blood Red',
282 | 'background' => '#700000',
283 | 'border' => '#700000',
284 | 'font' => '#FFFFFF',
285 | ),
286 | 'white_on_blue_grey' => array(
287 | 'name' => 'White on Blue Grey',
288 | 'background' => '#5C7890',
289 | 'border' => '#405364',
290 | 'font' => '#FFFFFF',
291 | ),
292 | 'white_on_bright_red' => array(
293 | 'name' => 'White on Bright Red',
294 | 'background' => '#F00000',
295 | 'border' => '#F00000',
296 | 'font' => '#FFFFFF',
297 | ),
298 | 'white_on_copper' => array(
299 | 'name' => 'White on Copper',
300 | 'background' => '#B77729',
301 | 'border' => '#38240C',
302 | 'font' => '#FFFFFF',
303 | ),
304 | 'white_on_dark_brown' => array(
305 | 'name' => 'White on Dark Brown',
306 | 'background' => '#65463E',
307 | 'border' => '#332623',
308 | 'font' => '#FFFFFF',
309 | ),
310 | 'white_on_dark_red' => array(
311 | 'name' => 'White on Dark Red',
312 | 'background' => '#951313',
313 | 'border' => '#DC143C',
314 | 'font' => '#FFFFFF',
315 | ),
316 | 'white_on_dark_teal' => array(
317 | 'name' => 'White on Dark Teal',
318 | 'background' => '#00695C',
319 | 'border' => '#004038',
320 | 'font' => '#FFFFFF',
321 | ),
322 | 'white_on_deep_blue' => array(
323 | 'name' => 'White on Deep Blue',
324 | 'background' => '#0000FF',
325 | 'border' => '#030373',
326 | 'font' => '#FFFFFF',
327 | ),
328 | 'white_on_deep_green' => array(
329 | 'name' => 'White on Deep Green',
330 | 'background' => '#0A7029',
331 | 'border' => '#024015',
332 | 'font' => '#FFFFFF',
333 | ),
334 | 'white_on_deep_grey' => array(
335 | 'name' => 'White on Deep Grey',
336 | 'background' => '#868B8E',
337 | 'border' => '#646464',
338 | 'font' => '#FFFFFF',
339 | ),
340 | 'white_on_deep_purple' => array(
341 | 'name' => 'White on Deep Purple',
342 | 'background' => '#8E44AD',
343 | 'border' => '#610288',
344 | 'font' => '#FFFFFF',
345 | ),
346 | 'white_on_dim_grey' => array(
347 | 'name' => 'White on Dim Grey',
348 | 'background' => '#6A6A6A',
349 | 'border' => '#000000',
350 | 'font' => '#FFFFFF',
351 | ),
352 | 'white_on_green' => array(
353 | 'name' => 'White on Green',
354 | 'background' => '#06C200',
355 | 'border' => '#015B2A',
356 | 'font' => '#FFFFFF',
357 | ),
358 | 'white_on_lime_green' => array(
359 | 'name' => 'White on Lime Green',
360 | 'background' => '#63B83E',
361 | 'border' => '#39771E',
362 | 'font' => '#FFFFFF',
363 | ),
364 | 'white_on_maroon' => array(
365 | 'name' => 'White on Maroon',
366 | 'background' => '#800000',
367 | 'border' => '#4F0404',
368 | 'font' => '#FFFFFF',
369 | ),
370 | 'white_on_olive' => array(
371 | 'name' => 'White on Olive',
372 | 'background' => '#5E7345',
373 | 'border' => '#252D1C',
374 | 'font' => '#FFFFFF',
375 | ),
376 | 'white_on_peach' => array(
377 | 'name' => 'White on Peach',
378 | 'background' => '#FC4F46',
379 | 'border' => '#F22B2B',
380 | 'font' => '#FFFFFF',
381 | ),
382 | 'white_on_purple' => array(
383 | 'name' => 'White on Purple',
384 | 'background' => '#9700FD',
385 | 'border' => '#24003C',
386 | 'font' => '#FFFFFF',
387 | ),
388 | 'white_on_red_orange' => array(
389 | 'name' => 'White on Red Orange',
390 | 'background' => '#FF3F00',
391 | 'border' => '#FF3F00',
392 | 'font' => '#FFFFFF',
393 | ),
394 | 'white_on_royal_blue' => array(
395 | 'name' => 'White on Royal Blue',
396 | 'background' => '#1953BE',
397 | 'border' => '#1953BE',
398 | 'font' => '#FFFFFF',
399 | ),
400 | 'white_on_scarlet' => array(
401 | 'name' => 'White on Scarlet',
402 | 'background' => '#AE0000',
403 | 'border' => '#6A0303',
404 | 'font' => '#FFFFFF',
405 | ),
406 | );
407 |
408 | // phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
409 | private function custom_colors()
410 | {
411 | // phpcs:enable
412 | $custom_colors = $this->configModel->get('kbcolour_ids', '');
413 | $custom_colors_array = explode(',', $custom_colors);
414 | $new_colors = [];
415 |
416 | if ($this->configModel->get('kbcolour_ids', '') != '') {
417 | foreach ($custom_colors_array as $color_id) {
418 | $new_color = array(
419 | $color_id => array(
420 | 'name' => $this->configModel->get('kbcolour_name_' . $color_id, ''),
421 | 'background' => $this->configModel->get('kbcolour_backgroundcolor_' . $color_id, ''),
422 | 'border' => $this->configModel->get('kbcolour_bordercolor_' . $color_id, ''),
423 | ),
424 | );
425 | $new_colors = array_merge($new_colors, $new_color);
426 | }
427 |
428 | return $new_colors;
429 | }
430 |
431 | return $new_colors;
432 | }
433 |
434 | public function getAllColors()
435 | {
436 | $combine_colors = array_merge($this->default_colors, $this->static_colors, $this->text_colors, $this->custom_colors());
437 | return $combine_colors;
438 | }
439 |
440 | public function getCustomColors()
441 | {
442 | if ($this->configModel->get('kbcolour_ids', '') != '') {
443 | return $this->custom_colors();
444 | }
445 |
446 | return array();
447 | }
448 |
449 | public function getStaticColors()
450 | {
451 | return $this->static_colors;
452 | }
453 |
454 | public function getTextColors()
455 | {
456 | return $this->text_colors;
457 | }
458 |
459 | public function getStaticList()
460 | {
461 | $listing = array();
462 |
463 | foreach ($this->static_colors as $color_id => $color) {
464 | $listing[$color_id] = t($color['name']);
465 | }
466 |
467 | return $listing;
468 | }
469 |
470 | public function getTextColorList()
471 | {
472 | $listing = array();
473 |
474 | foreach ($this->text_colors as $color_id => $color) {
475 | $listing[$color_id] = t($color['name']);
476 | }
477 |
478 | return $listing;
479 | }
480 |
481 | public function getCssExt()
482 | {
483 | $buffer = '';
484 |
485 | if ($this->configModel->get('kbcolour_ids', '') != '') {
486 | foreach ($this->custom_colors() as $color => $values) {
487 | $buffer .= '.task-board.color-' . $color . ', .task-summary-container.color-' . $color . ', .color-picker-square.color-' . $color . ', .task-board-category.color-' . $color . ', .table-list-category.color-' . $color . ', .task-tag.color-' . $color . ', .action-color-' . $color . ' {';
488 | $buffer .= 'background-color: ' . $values['background'] . ';';
489 | $buffer .= 'border-color: ' . $values['border'] . ';';
490 | $buffer .= '}';
491 | $buffer .= 'td.color-' . $color . ' { background-color: ' . $values['background'] . '; }';
492 | $buffer .= '.table-list-row.color-' . $color . ' { border-left: 5px solid ' . $values['border'] . '; }';
493 | $buffer .= 'select#form-default_color option[value="' . $color . '"], option[value="' . $color . '"] {';
494 | $buffer .= 'background-color: ' . $values['background'] . ';';
495 | $buffer .= 'border-color: ' . $values['border'] . ';';
496 | $buffer .= '}';
497 | }
498 | }
499 | foreach ($this->text_colors as $color => $values) {
500 | $buffer .= '.task-board.color-' . $color . ', .task-summary-container.color-' . $color . ', .color-picker-square.color-' . $color . ', .task-board-category.color-' . $color . ', .table-list-category.color-' . $color . ', .task-tag.color-' . $color . ', .action-color-' . $color . ' {';
501 | $buffer .= 'background-color: ' . $values['background'] . ';';
502 | $buffer .= 'border-color: ' . $values['border'] . ';';
503 | if (isset($values['font'])) {
504 | $buffer .= 'color: ' . $values['font'] . '; position: relative; }';
505 | $buffer .= 'select#form-default_color option[value="' . $color . '"], option[value="' . $color . '"] {';
506 | $buffer .= 'color: ' . $values['font'] . ';';
507 | }
508 | $buffer .= '}';
509 | if (isset($values['font'])) {
510 | $buffer .= '.color-picker-square.color-' . $color . ':before { content: "\2609"; text-align: center; display: block; position: absolute; margin-top: -4px; margin-left: 1px; }';
511 | $buffer .= '.task-summary-container.color-' . $color . ' .task-summary-columns .task-summary-column { color: ' . $values['font'] . '; }';
512 | $buffer .= '.task-summary-container.color-' . $color . ' .task-summary-columns .task-summary-column span, .action-color-' . $color . ' { color: ' . $values['font'] . '; }';
513 | }
514 | $buffer .= 'td.color-' . $color . ' { background-color: ' . $values['background'] . '; }';
515 | $buffer .= '.table-list-row.color-' . $color . ' { border-left: 5px solid ' . $values['border'] . '; }';
516 | $buffer .= 'select#form-default_color option[value="' . $color . '"], option[value="' . $color . '"] {';
517 | $buffer .= 'background-color: ' . $values['background'] . ';';
518 | $buffer .= 'border-color: ' . $values['border'] . ';';
519 | $buffer .= '}';
520 | }
521 | foreach ($this->static_colors as $color => $values) {
522 | $buffer .= '.task-board.color-' . $color . ', .task-summary-container.color-' . $color . ', .color-picker-square.color-' . $color . ', .task-board-category.color-' . $color . ', .table-list-category.color-' . $color . ', .task-tag.color-' . $color . ', .action-color-' . $color . ' {';
523 | $buffer .= 'background-color: ' . $values['background'] . ';';
524 | $buffer .= 'border-color: ' . $values['border'] . ';';
525 | if (isset($values['font'])) {
526 | $buffer .= 'color: ' . $values['font'] . '; position: relative; }';
527 | $buffer .= 'select#form-default_color option[value="' . $color . '"], option[value="' . $color . '"] {';
528 | $buffer .= 'color: ' . $values['font'] . ';';
529 | }
530 | $buffer .= '}';
531 | if (isset($values['font'])) {
532 | $buffer .= '.color-picker-square.color-' . $color . ':before { content: "\2609"; text-align: center; display: block; position: absolute; margin-top: -4px; margin-left: 1px; }';
533 | $buffer .= '.task-summary-container.color-' . $color . ' .task-summary-columns .task-summary-column { color: ' . $values['font'] . '; }';
534 | $buffer .= '.task-summary-container.color-' . $color . ' .task-summary-columns .task-summary-column span, .action-color-' . $color . ' { color: ' . $values['font'] . '; }';
535 | }
536 | $buffer .= 'td.color-' . $color . ' { background-color: ' . $values['background'] . '; }';
537 | $buffer .= '.table-list-row.color-' . $color . ' { border-left: 5px solid ' . $values['border'] . '; }';
538 | $buffer .= 'select#form-default_color option[value="' . $color . '"], option[value="' . $color . '"] {';
539 | $buffer .= 'background-color: ' . $values['background'] . ';';
540 | $buffer .= 'border-color: ' . $values['border'] . ';';
541 | $buffer .= '}';
542 | }
543 | foreach ($this->default_colors as $color => $values) {
544 | $buffer .= 'select#form-default_color option[value="' . $color . '"], option[value="' . $color . '"], .action-color-' . $color . ' {';
545 | $buffer .= 'background-color: ' . $values['background'] . ';';
546 | $buffer .= 'border-color: ' . $values['border'] . ';';
547 | $buffer .= '}';
548 | }
549 |
550 | return $buffer;
551 | }
552 | }
553 |
--------------------------------------------------------------------------------
/Plugin.php:
--------------------------------------------------------------------------------
1 | hook->on('template:layout:css', array('template' => 'plugins/ColorManager/Assets/css/color-manager.css'));
16 |
17 | // Views - Add Menu Item - Template Hook
18 | // - Override name should start lowercase e.g. pluginNameExampleCamelCase
19 | $this->template->hook->attach('template:config:sidebar', 'colorManager:config/sidebar');
20 | $this->template->hook->attach('template:layout:bottom', 'colorManager:layout/css_ext');
21 |
22 | // Extra Page - Routes
23 | // - Example: $this->route->addRoute('/my/custom/route', 'MyController', 'show', 'PluginNameExampleStudlyCaps');
24 | // - Must have the corresponding action in the matching controller
25 | $this->route->addRoute('/settings/color-manager', 'ColorManagerController', 'show', 'ColorManager');
26 |
27 | $this->helper->register('customColorHelper', '\Kanboard\Plugin\ColorManager\Helper\CustomColorHelper');
28 |
29 | $this->hook->on('model:color:get-list', function (&$listing) {
30 | $new_colors = [];
31 | $custom_colors = $this->configModel->get('kbcolour_ids', '');
32 | $custom_colors_array = explode(',', $custom_colors);
33 |
34 | if ($custom_colors != '') {
35 | foreach ($custom_colors_array as $val) {
36 | $new_color = array(
37 | $val => array(
38 | 'name' => $this->configModel->get('kbcolour_name_' . $val, ''),
39 | ),
40 | );
41 | $new_colors = array_merge($new_colors, $new_color);
42 | }
43 |
44 | $new_list = array();
45 | foreach ($new_colors as $color_id => $color) {
46 | $new_list[$color_id] = t($color['name']);
47 | }
48 | }
49 |
50 | $staticColors = $this->colorModelExt->getStaticList();
51 |
52 | $textColors = $this->colorModelExt->getTextColorList();
53 |
54 | $listing = array_merge($listing, $staticColors, $textColors, isset($new_list) ? $new_list : array());
55 |
56 | array_multisort($listing, SORT_ASC, SORT_NATURAL | SORT_FLAG_CASE);
57 |
58 | return $listing;
59 | });
60 | }
61 |
62 | public function onStartup()
63 | {
64 | Translator::load($this->languageModel->getCurrentLanguage(), __DIR__ . '/Locale');
65 | }
66 |
67 | public function getClasses()
68 | {
69 | return [
70 | 'Plugin\ColorManager\Model' => [
71 | 'ColorModelExt',
72 | ],
73 | ];
74 | }
75 |
76 | public function getPluginName()
77 | {
78 | // Plugin Name MUST be identical to namespace for Plugin Directory to detect updated versions - do not translate the plugin name here
79 | return 'ColorManager';
80 | }
81 |
82 | public function getPluginDescription()
83 | {
84 | return t('A new way to utilise colors to their full potential in Kanboard. Choose from 3 color palettes or create your own. Across all palettes, choose from over 85 colors to match your workflow across the interface.');
85 | }
86 |
87 | public function getPluginAuthor()
88 | {
89 | return 'aljawaid';
90 | }
91 |
92 | public function getPluginVersion()
93 | {
94 | return '3.7.0';
95 | }
96 |
97 | public function getCompatibleVersion()
98 | {
99 | // Examples: '>=1.0.37' '<1.0.37' '<=1.0.37'
100 | // Tested on KB v1.2.32+ from plugin v3.7.0
101 | return '>=1.2.20';
102 | }
103 |
104 | public function getPluginHomepage()
105 | {
106 | return 'https://github.com/aljawaid/ColorManager';
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
ColorManager
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | A new way to utilise colors to their full potential in Kanboard. Choose from 3 color palettes or create your own. Combining all palettes, choose from **over 85 colors** to match your workflow across the interface.
35 |
36 | [↓ Bottom ] [→ Next ] [↑ Top ]
37 |
38 | ## Features
39 |
40 | - New dedicated settings page
41 | - Show color values as box examples
42 | - Show total color counts
43 | - Sort all colors alphabetically
44 | - Pretty URL `mydomain.com/settings/color-manager`
45 |
46 | **Default Color Palette**
47 | - Contains the 16 default application colors
48 | - Show default color example instead of just the color name _(in Project Settings)_
49 | - Display CSS properties for each color (background color, border color)
50 |
51 | **Extended Color Palette**
52 | - **_Contains 40 new rich colors_**
53 | - Perfect for tasks
54 | - Includes variations of `white`
55 | - Display CSS properties for each color (background color, border color)
56 |
57 | **Text Color Palette**
58 | - **_Contains 30 new vibrant colors_**
59 | - Perfect for tags and categories
60 | - Includes variations of `black`
61 | - Extended colors with matching or contrasting text color
62 | - Display CSS properties for each color (background color, border color, font color)
63 |
64 | **Custom Color Palette**
65 | - Create your own favorite colors
66 | - Display CSS properties for each color (background color, border color)
67 |
68 | **Dropdown Color Lists**
69 | - Sort colors from all palettes alphabetically
70 | - Show color examples in the task creation dropdown list
71 | - Redesign color square (left color = border, right color = background, centre dot = font color)
72 | - Show color examples in the Automatic Action creation dropdown list
73 | - Show color examples in the Project Settings dropdown list
74 |
75 | [↓ Bottom ] [← Previous ] [→ Next ] [↑ Top ]
76 |
77 | ## Screenshots
78 |
79 | **Kanboard Settings - _Default Color Palette_**
80 |
81 | 
82 |
83 | **Kanboard Settings - _Extended Color Palette_**
84 |
85 | 
86 |
87 | **Kanboard Settings - _Text Color Palette_**
88 |
89 | 
90 |
91 | **Kanboard Settings - _Custom Color Palette_**
92 |
93 | 
94 |
95 | 
96 |
97 | **Project Settings**
98 |
99 | 
100 |
101 | **Automatic Actions - Creation**
102 |
103 | 
104 |
105 | **Automatic Actions** _- compatible with [AutomaticActionUX](https://github.com/aljawaid/AutomaticActionUX)_
106 |
107 | 
108 |
109 | [↓ Bottom ] [← Previous ] [→ Next ] [↑ Top ]
110 |
111 | ## Usage
112 |
113 | Go to `Settings` ⥂ `Color Manager`
114 |
115 | [↓ Bottom ] [← Previous ] [→ Next ] [↑ Top ]
116 |
117 | ## Installation & Compatibility
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 | Installation
136 |
137 | - Install via the **[Kanboard](https://github.com/kanboard/kanboard "Kanboard - Kanban Project Management Software") Plugin Directory** or see [INSTALL.md](../master/INSTALL.md)
138 | - Read the full [**Changelog**](../master/changelog.md "See changes") to see the latest updates
139 |
140 |
141 |
142 | Compatibility
143 |
144 | - Requires [Kanboard](https://github.com/kanboard/kanboard "Kanboard - Kanban Project Management Software") ≥`1.2.20`
145 | - **Other Plugins & Action Plugins**
146 | - _No known issues_
147 | - Compatible with [AutomaticActionUX](https://github.com/aljawaid/AutomaticActionUX), [KanboardCSS](https://github.com/aljawaid/KanboardCSS), [PluginManager](https://github.com/aljawaid/PluginManager), [TagManager](https://github.com/aljawaid/TagManager), [ThemeMaestro](https://github.com/JustFxDev/ThemeMaestro)
148 | - **Core Files & Templates**
149 | - _No template overrides_
150 | - _No database changes_
151 |
152 |
153 |
154 | Translations
155 |
156 | - English (UK), German
157 | - _Starter template available_
158 |
159 |
160 |
161 | [↓ Bottom ] [← Previous ] [→ Next ] [↑ Top ]
162 |
163 | ## Authors & Contributors
164 |
165 | - [@aljawaid](https://github.com/aljawaid) - Author
166 | - [Craig Crosby](https://github.com/creecros) - Contributor
167 | - _Contributors welcome_
168 |
169 | [↓ Bottom ] [← Previous ] [↑ Top ]
170 |
171 | ## License
172 |
173 | - This project is distributed under the [MIT License](../master/LICENSE "Read The MIT license")
174 |
175 | ---
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 | [↑ Top ]
202 |
--------------------------------------------------------------------------------
/Releases/ColorManager-2.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/ColorManager-2.0.zip
--------------------------------------------------------------------------------
/Releases/ColorManager-2.1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/ColorManager-2.1.zip
--------------------------------------------------------------------------------
/Releases/ColorManager-2.5.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/ColorManager-2.5.zip
--------------------------------------------------------------------------------
/Releases/ColorManager-2.6.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/ColorManager-2.6.zip
--------------------------------------------------------------------------------
/Releases/ColorManager-3.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/ColorManager-3.0.zip
--------------------------------------------------------------------------------
/Releases/ColorManager-3.1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/ColorManager-3.1.zip
--------------------------------------------------------------------------------
/Releases/ColorManager-3.2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/ColorManager-3.2.zip
--------------------------------------------------------------------------------
/Releases/ColorManager-3.5.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/ColorManager-3.5.zip
--------------------------------------------------------------------------------
/Releases/ColorManager-3.6.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/ColorManager-3.6.zip
--------------------------------------------------------------------------------
/Releases/ColorManager-3.7.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/ColorManager-3.7.zip
--------------------------------------------------------------------------------
/Releases/KBColours-1.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/KBColours-1.0.zip
--------------------------------------------------------------------------------
/Releases/KBColours-1.1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/Releases/KBColours-1.1.zip
--------------------------------------------------------------------------------
/Template/config/add_custom_color.php:
--------------------------------------------------------------------------------
1 |
4 |
20 |
--------------------------------------------------------------------------------
/Template/config/colors.php:
--------------------------------------------------------------------------------
1 | task->colorModel->getDefaultColors();
3 | $staticColours = $this->task->colorModelExt->getStaticColors();
4 | $textColours = $this->task->colorModelExt->getTextColors();
5 | $customColors = $this->task->colorModelExt->getCustomColors();
6 | $defaultBackground = $this->task->colorModelExt->getAllColors()[$this->task->colorModel->getDefaultColor()]['background'];
7 | $defaultBorder = $this->task->colorModelExt->getAllColors()[$this->task->colorModel->getDefaultColor()]['border'];
8 | $customColours = is_null(count($this->task->colorModelExt->getCustomColors())) ? 0 : count($this->task->colorModelExt->getCustomColors());
9 | ?>
10 |
11 |
257 |
--------------------------------------------------------------------------------
/Template/config/sidebar.php:
--------------------------------------------------------------------------------
1 | app->checkMenuSelection('ColorManagerController', 'show', 'ColorManager') ?>>
2 | = $this->url->link(t('Color Manager'), 'ColorManagerController', 'show', ['plugin' => 'ColorManager']) ?>
3 |
4 |
--------------------------------------------------------------------------------
/Template/layout/css_ext.php:
--------------------------------------------------------------------------------
1 | = $this->customColorHelper->colorCssExt() ?>
2 |
--------------------------------------------------------------------------------
/changelog.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 |
4 | ## v3.7
5 |
6 | _(most recent changes are listed on top):_
7 | - FIX: Multiple PHP Calls
8 | - FIX: Move SVG Icons - exclude from release packages
9 | - FIX: Code Syntax - `ColorModelExt.php`
10 | - FIX: Code Syntax - `ColorManagerController.php`
11 | - FIX: Code Syntax - `ColorModelExt.php`
12 | - FIX: Line Endings - `css_ext.php`
13 | - FIX: Code Syntax - `colors.php`- ignore specific test rules
14 | - FIX: Code Syntax - `Plugin.php`
15 | - FIX: Code Syntax - `ColorManagerController.php`
16 | - FIX: Markdown Syntax - `changelog.md`
17 | - FIX: CSS Code Syntax & Line Endings
18 | - NEW: Add Code Scanning Badges to README.md
19 | - FIX: README Navigation Links for GitHub
20 | - FIX: Code Syntax
21 | - FIX: Markdown Syntax
22 | - FIX: Line Endings
23 | - NEW: Add Footer Badges to README.md
24 | - NEW: Add Section Navigation Links to README.md
25 | - NEW: Add Badges to README.md
26 | - NEW: Add README Page Navigation Links
27 | - FIX: Content Flow for README.md
28 | - Create INSTALL.md
29 |
30 |
31 | ## v3.6
32 |
33 | _(most recent changes are listed on top):_
34 | - FIX: Unix (LF) Line Endings and Tabs > Spaces
35 |
36 |
37 | ## v3.5
38 |
39 | _(most recent changes are listed on top):_
40 | - NEW: Display Actual Colors for Actions in AutomaticActionUX
41 | - FIX: Empty CSS Rulesets
42 | - FIX: README.md links
43 |
44 |
45 | ## v3.2
46 |
47 | _(most recent changes are listed on top):_
48 | - FIX: Rename `white_on_supreme_blue` to `white_on_royal_blue`
49 | - FIX: Rename `supreme_blue` to `royal_blue`
50 |
51 |
52 | ## v3.1
53 |
54 | _(most recent changes are listed on top):_
55 | - FIX: Long Colour Names Show Incorrectly in Select2 Dropdown - fixes #31
56 | - FIX: Translation for `dark_green_on_lime_green`
57 |
58 |
59 | ## v3.0
60 |
61 | _(most recent changes are listed on top):_
62 | - Add `white_on_lime_green` to Text Colour Palette
63 | - Add `white_on_dim_grey` to Text Colour Palette
64 | - Add `white_on_deep_purple` to Text Colour Palette
65 | - Add `dark_green_on_lime` to Text Colour Palette
66 | - Add `dark_brown_on_cream` to Text Colour Palette
67 | - Add `blood_red_on_pale_orange` to Text Colour Palette
68 | - Add `white_on_supreme_blue` to Text Colour Palette
69 | - Add `supreme_blue` to Extended Colour Palette
70 | - Add `white_on_red_orange` to Text Colour Palette
71 | - Add `red_orange` to Extended Colour Palette
72 | - Add `maroon_on_classic_silver` to Text Colour Palette
73 | - Add `classic_silver` to Extended Colour Palette
74 | - Add Compatibility for ThemeMaestro
75 | - Add `white_on_blood_red` to Text Colour Palette
76 | - Add `blood_red` to Extended Colour Palette
77 | - Add `deep_blue_on_aqua` to Text Colour Palette
78 | - Add `aqua` to Extended Colour Palette
79 | - Update Plugin Description Colour Total
80 | - FIX: Colour Boxes - fix width for long colour names
81 | - FIX: Whitespaces in `de_DE`
82 | - Update Screenshots
83 | - NEW: Show Text Colour Code
84 | - Add Anchors and Classes to Palettes
85 | - FIX: Change `white_on_red` to `white_on_bright_red`
86 | - Move `orange_on_black` to Text Color Palette
87 | - Move `grey_on_black` to Text Color Palette
88 | - Move `red_on_black` to Text Color Palette
89 | - FIX: Delete `black_on_yellow` - duplicate to `bright_yellow` as all palette text color is now black
90 | - FIX: Change `black_on_red` to `bright_red`
91 | - FIX: Change `bright_orange` to `pumpkin_orange`
92 | - FIX: Change `black_on_orange` to `pale_orange`
93 | - FIX: Change `black_on_grey` to `dim_grey`
94 | - Move `white_on_scarlet` to Text Color Palette
95 | - UPDATE: Translations for Text Color Palette
96 | - NEW: Add Text Color Palette
97 | - UPDATE: Translations for Text Color Palette
98 | - FIX: Rename Variable
99 | - FIX: Variable Naming to Match Model Function
100 | - Change CSS Class
101 | - FIX: Mention Translation in README.md
102 | - NEW: Make Titles Bolder
103 | - Rename palette
104 | - Sort Colours in Code - colours are now coded alphabetically too
105 | - FIX: Border Colour `red_on_black`
106 | - Add Button `if` statement - show only if palette contains colours, as the button is shown next to the text
107 | - NEW: Show if Custom Colour Palette is Empty
108 |
109 |
110 | ## v2.6
111 |
112 | (most recent changes are listed on top):_
113 | - FIX: Extra Whitespaces in `de_DE`
114 | - Update `de_DE` Colour Names - thanks @JustFxDev
115 |
116 |
117 | ## v2.5
118 |
119 | (most recent changes are listed on top):_
120 | - Better plugin description
121 | - Update mention of total count in description
122 | - NEW: Add 5 New Colours to Extended Palette - closes #20
123 | - Add `magenta` to Extra Colour Palette - #3
124 | - Add `black_on_yellow` to Extra Colour Palette - #3
125 | - Add `black_on_grey` to Extra Colour Palette - #3
126 | - Add `grey_on_black` to Extra Colour Palette - #3
127 | - Add `bright_white` to Extra Colour Palette - requested by @JustFxDev
128 | - NEW: Add Colour Name Translations #22
129 | - FIX: Translations Coding Consistency #21
130 | - FIX: Conflicting Asset Path Between Kanboard Versions
131 | - Translate Colour Name in Tooltip
132 | - NEW: Add `de_DE` Translations #21 - thanks @JustFxDev
133 | - FIX: Remove Unused String
134 | - FIX: `white_on_green` too dark
135 | - FIX: `bright_yellow` not bright enough
136 | - Fixed path to svg icons
137 |
138 |
139 | ## v2.1
140 |
141 | _(most recent changes are listed on top):_
142 | - Revert: Translated Pretty URL - must stick to `mydomain.com/settings/color-manager` as translating causes page rendering issues with other plugins' settings' pages
143 | - FIX: #18 make route static (Bug: Settings Page Overrides Other Plugin Settings Page)
144 |
145 |
146 | ## v2.0
147 |
148 | ### KBColours _becomes_ ColorManager
149 |
150 | #### Reinstall of this plugin is required if upgrading
151 |
152 | _(most recent changes are listed on top):_
153 | - Mention plugin compatibility
154 | - FIX: Task font colours were being ignored
155 | - NEW: #11 #15 Add translated URL - thanks @creecros
156 | - FIX: CSS Transition and Add Variable
157 | - Remove helper modal and manually build modal with svg icon
158 | - Add `white_on_copper` to Extra Colour Palette
159 | - Add `copper` to Extra Colour Palette
160 | - Add `cream` to Extra Colour Palette
161 | - Add `dirty_green` to Extra Colour Palette
162 | - Add `deep_amber` to Extra Colour Palette
163 | - Add `deep_purple` to Extra Colour Palette
164 | - Add `dirty_yellow` to Extra Colour Palette
165 | - Add `white_on_deep_blue` to Extra Colour Palette
166 | - Add `bright_green` to Extra Colour Palette
167 | - Add `bright_orange` to Extra Colour Palette
168 | - Add `white_on_deep_green` to Extra Colour Palette
169 | - Add `deep_green` to Extra Colour Palette
170 | - Add `yellow_green` to Extra Colour Palette
171 | - Add `pale_blue` to Extra Colour Palette
172 | - Add `white_on_black` to Extra Colour Palette
173 | - Add `pale_purple` to Extra Colour Palette
174 | - Add `beige` to Extra Colour Palette
175 | - Add `white_on_green` to Extra Colour Palette
176 | - Add `white_on_deep_grey` to Extra Colour Palette
177 | - Add `deep_grey` to Extra Colour Palette
178 | - Add `white_on_scarlet` to Extra Colour Palette
179 | - Add `scarlet` to Extra Colour Palette
180 | - Add `white_on_olive` to Extra Colour Palette
181 | - Add `olive` to Extra Colour Palette
182 | - Add `white_on_peach` to Extra Colour Palette
183 | - Add `peach` to Extra Colour Palette
184 | - Add `dark_pink` to Extra Colour Palette
185 | - Add `lint` to Extra Colour Palette
186 | - Add `white_on_dark_brown` to Extra Colour Palette
187 | - Add `dark_brown` to Extra Colour Palette
188 | - Add `bright_yellow` to Extra Colour Palette
189 | - Add `white_on_blue_grey` to Extra Colour Palette
190 | - Add `blue_grey` to Extra Colour Palette
191 | - Add `white_on_dark_red` to Extra Colour Palette
192 | - Add `dark_red` to Extra Colour Palette
193 | - Add `lime_green` to Extra Colour Palette
194 | - Add `khaki` to Extra Colour Palette
195 | - Add `black_on_orange` to Extra Colour Palette
196 | - Add `orange_on_black` to Extra Colour Palette
197 | - Add `red_on_black` to Extra Colour Palette
198 | - Add `black_on_red` to Extra Colour Palette
199 | - Add `white_on_red` to Extra Colour Palette
200 | - Add `white_on_purple` to Extra Colour Palette
201 | - Add `white_on_dark_teal` to Extra Colour Palette
202 | - Add Custom Colour Palette Description
203 | - Add Default Colour Palette Description
204 | - Add `dark_gold` colour
205 | - Add Extra Colour Palette Description
206 | - Add Section Icons
207 | - Change Page Title Icon
208 | - Add `en_GB` Translations
209 | - Translate Plugin
210 | - Rename CSS Classes
211 | - Rename CSS Variables
212 | - FIX: CSS Classes Conflict - `.total-count` conflicted with PluginManager
213 | - FIX: Colour Square for Default Colours in Dropdown
214 | - FIX: Font Color in Dropdowns
215 | - Update Plugin Description
216 | - Group CSS
217 | - Rename Model
218 | - Rename Helper
219 | - Rename Add Colour Template
220 | - Rename Controller
221 | - Rename CSS File
222 | - Rename Plugin in Plugin.php
223 | - Translate & Fix Wording
224 | - FIX: #8 Custom Colours Are Not Sorted in Dropdown Lists - colours are now sorted in the lists regardless of titlecase or lowercase
225 | - FIX: Use `isset` instead of just `if`
226 | - NEW: Sort array - thanks @creecros
227 | - Add Tooltip & Class to Delete Colour Icon
228 | - NEW: Show Delete Colour Icon on Hover
229 | - Add 3 Colours - `White on Maroon` `Mint Green` `Gold`
230 | - Remove `maroon` and Add `crimson`
231 | - Add html entity for white text indication in dropdowns
232 | - Add Font Color
233 | - NEW: Sort Colours by Name
234 | - NEW: Add tooltips to colour names
235 | - FIX: FA Icon Name
236 | - FIX: HTML
237 | - FIX: Wording
238 | - FIX: HTML
239 | - FIX: Note
240 | - Add Palette Section Headings #1 #3 #4
241 | - FIX: Total Count Styling
242 | - FIX: Translations
243 | - Add Border Effect to Square Colour Dropdown for All Colours
244 | - NEW: #3 autobuild select css for project settings color definitions - thanks @creecros
245 | - FIX: #3 ability to add custom color and remove, using metadata - thanks @creecros
246 | - Make boxes smaller
247 | - Fix CSS Jumping Side Menu
248 | - FIX: Title
249 | - Add Badge Count
250 | - FIX: Sidebar Translation - WIP #2
251 | - Add Border Highlight for Dropdowns
252 | - Seperate custom and default in config - thanks @creecros
253 | - Add getCustomColors to model - thanks @creecros
254 | - Add helper, model ext, and layout with hook - thanks @creecros
255 | - Add `White`
256 | - NEW: Add Custom Colours Section
257 | - Add total colour count - default + custom
258 | - NEW: Show actual colours in (Automatic Action creation) dropdown list
259 | - NEW: Show Actual Colours in Dropdown List - Show in default colour list... settings > project settings
260 |
261 |
262 | ## v1.1
263 |
264 | _(most recent changes are listed on top):_
265 | - FIX: Faulty code where the automatic actions page was replaced by a blank page (without loss of data)
266 |
267 |
268 | ## v1.0
269 |
270 | _(most recent changes are listed on top):_
271 | - Initial release
272 | - Translations starter template included
273 |
274 | ---
275 |
276 | Read the full [**Changelog**](../master/changelog.md "See changes") or view the [**README**](../master/README.md "View README")
277 |
--------------------------------------------------------------------------------
/screenshot-automatic-action-dropdown-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/screenshot-automatic-action-dropdown-list.png
--------------------------------------------------------------------------------
/screenshot-automatic-action-interface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/screenshot-automatic-action-interface.png
--------------------------------------------------------------------------------
/screenshot-default-task-dropdown-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/screenshot-default-task-dropdown-list.png
--------------------------------------------------------------------------------
/screenshot-settings-custom-palette-empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/screenshot-settings-custom-palette-empty.png
--------------------------------------------------------------------------------
/screenshot-settings-custom-palette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/screenshot-settings-custom-palette.png
--------------------------------------------------------------------------------
/screenshot-settings-default-palette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/screenshot-settings-default-palette.png
--------------------------------------------------------------------------------
/screenshot-settings-extended-palette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/screenshot-settings-extended-palette.png
--------------------------------------------------------------------------------
/screenshot-settings-text-palette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aljawaid/ColorManager/b6cbfff1953ff4b64732389f864260961d651d33/screenshot-settings-text-palette.png
--------------------------------------------------------------------------------