summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2019-01-25 19:04:45 +0200
committerGitHub <noreply@github.com>2019-01-25 19:04:45 +0200
commit4a2576fbc200d397bcf7cede45316d9fb7e520dd (patch)
treeeede4ef6e004aed94909ddf02a48ca9bd97742a0
parent542cc75dc4a4bf392cac72345ab013cf59c67ad3 (diff)
parent6e9bad57723919dc3fd63a5748902e9049320603 (diff)
downloadwekan-4a2576fbc200d397bcf7cede45316d9fb7e520dd.tar.gz
wekan-4a2576fbc200d397bcf7cede45316d9fb7e520dd.tar.bz2
wekan-4a2576fbc200d397bcf7cede45316d9fb7e520dd.zip
Merge pull request #2121 from bentiss/color
Color picker in IFTTT
-rw-r--r--client/components/cards/cardDetails.jade12
-rw-r--r--client/components/cards/cardDetails.js3
-rw-r--r--client/components/cards/cardDetails.styl26
-rw-r--r--client/components/rules/actions/cardActions.jade37
-rw-r--r--client/components/rules/actions/cardActions.js50
-rw-r--r--client/components/rules/rules.styl9
-rw-r--r--i18n/en.i18n.json3
-rw-r--r--models/cards.js13
8 files changed, 101 insertions, 52 deletions
diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade
index c1e771cb..25316d04 100644
--- a/client/components/cards/cardDetails.jade
+++ b/client/components/cards/cardDetails.jade
@@ -234,7 +234,7 @@ template(name="cardDetailsActionsPopup")
li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
li: a.js-end-date {{_ 'editCardEndDatePopup-title'}}
li: a.js-spent-time {{_ 'editCardSpentTimePopup-title'}}
- li: a.js-set-card-color {{_ 'setCardColor-title'}}
+ li: a.js-set-card-color {{_ 'setCardColorPopup-title'}}
hr
ul.pop-over-list
li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}}
@@ -337,14 +337,12 @@ template(name="cardMorePopup")
a.js-delete(title="{{_ 'card-delete-notice'}}") {{_ 'delete'}}
template(name="setCardColorPopup")
- p.quiet
- span.clearfix
- label {{_ "select-color"}}
form.edit-label
.palette-colors: each colors
- span.card-label.palette-color.js-palette-color(class="card-details-{{color}}")
- if(isSelected color)
- i.fa.fa-check
+ unless $eq color 'white'
+ span.card-label.palette-color.js-palette-color(class="card-details-{{color}}")
+ if(isSelected color)
+ i.fa.fa-check
button.primary.confirm.js-submit {{_ 'save'}}
button.js-remove-color.negate.wide.right {{_ 'unset-color'}}
diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js
index cc04b830..04620084 100644
--- a/client/components/cards/cardDetails.js
+++ b/client/components/cards/cardDetails.js
@@ -601,6 +601,9 @@ BlazeComponent.extendComponent({
},
isSelected(color) {
+ if (this.currentColor.get() === null) {
+ return color === 'white';
+ }
return this.currentColor.get() === color;
},
diff --git a/client/components/cards/cardDetails.styl b/client/components/cards/cardDetails.styl
index 5a486d84..bf50c071 100644
--- a/client/components/cards/cardDetails.styl
+++ b/client/components/cards/cardDetails.styl
@@ -144,16 +144,20 @@ input[type="submit"].attachment-add-link-submit
card-details-color(background, color...)
background: background !important
if color
- color: color //overwrite text for better visibility
+ color: color !important //overwrite text for better visibility
+
+.card-details-white
+ card-details-color(unset, #000) //Black text for better visibility
+ border: 1px solid #eee
.card-details-green
card-details-color(#3cb500, #ffffff) //White text for better visibility
.card-details-yellow
- card-details-color(#fad900)
+ card-details-color(#fad900, #000) //Black text for better visibility
.card-details-orange
- card-details-color(#ff9f19)
+ card-details-color(#ff9f19, #000) //Black text for better visibility
.card-details-red
card-details-color(#eb4646, #ffffff) //White text for better visibility
@@ -165,7 +169,7 @@ card-details-color(background, color...)
card-details-color(#0079bf, #ffffff) //White text for better visibility
.card-details-pink
- card-details-color(#ff78cb)
+ card-details-color(#ff78cb, #000) //Black text for better visibility
.card-details-sky
card-details-color(#00c2e0, #ffffff) //White text for better visibility
@@ -174,19 +178,19 @@ card-details-color(background, color...)
card-details-color(#4d4d4d, #ffffff) //White text for better visibility
.card-details-lime
- card-details-color(#51e898)
+ card-details-color(#51e898, #000) //Black text for better visibility
.card-details-silver
- card-details-color(#c0c0c0)
+ card-details-color(#c0c0c0, #000) //Black text for better visibility
.card-details-peachpuff
- card-details-color(#ffdab9)
+ card-details-color(#ffdab9, #000) //Black text for better visibility
.card-details-crimson
card-details-color(#dc143c, #ffffff) //White text for better visibility
.card-details-plum
- card-details-color(#dda0dd)
+ card-details-color(#dda0dd, #000) //Black text for better visibility
.card-details-darkgreen
card-details-color(#006400, #ffffff) //White text for better visibility
@@ -198,7 +202,7 @@ card-details-color(background, color...)
card-details-color(#ff00ff, #ffffff) //White text for better visibility
.card-details-gold
- card-details-color(#ffd700)
+ card-details-color(#ffd700, #000) //Black text for better visibility
.card-details-navy
card-details-color(#000080, #ffffff) //White text for better visibility
@@ -210,10 +214,10 @@ card-details-color(background, color...)
card-details-color(#8b4513, #ffffff) //White text for better visibility
.card-details-paleturquoise
- card-details-color(#afeeee)
+ card-details-color(#afeeee, #000) //Black text for better visibility
.card-details-mistyrose
- card-details-color(#ffe4e1)
+ card-details-color(#ffe4e1, #000) //Black text for better visibility
.card-details-indigo
card-details-color(#4b0082, #ffffff) //White text for better visibility
diff --git a/client/components/rules/actions/cardActions.jade b/client/components/rules/actions/cardActions.jade
index dd92d8fe..1fee5231 100644
--- a/client/components/rules/actions/cardActions.jade
+++ b/client/components/rules/actions/cardActions.jade
@@ -39,32 +39,15 @@ template(name="cardActions")
div.trigger-content
div.trigger-text
| {{{_'r-set-color'}}}
- div.trigger-dropdown
- select(id="color-action")
- option(value="white") {{{_'color-white'}}}
- option(value="green") {{{_'color-green'}}}
- option(value="yellow") {{{_'color-yellow'}}}
- option(value="orange") {{{_'color-orange'}}}
- option(value="red") {{{_'color-red'}}}
- option(value="purple") {{{_'color-purple'}}}
- option(value="blue") {{{_'color-blue'}}}
- option(value="sky") {{{_'color-sky'}}}
- option(value="lime") {{{_'color-lime'}}}
- option(value="pink") {{{_'color-pink'}}}
- option(value="black") {{{_'color-black'}}}
- option(value="silver") {{{_'color-silver'}}}
- option(value="peachpuff") {{{_'color-peachpuff'}}}
- option(value="crimson") {{{_'color-crimson'}}}
- option(value="plum") {{{_'color-plum'}}}
- option(value="darkgreen") {{{_'color-darkgreen'}}}
- option(value="slateblue") {{{_'color-slateblue'}}}
- option(value="magenta") {{{_'color-magenta'}}}
- option(value="gold") {{{_'color-gold'}}}
- option(value="navy") {{{_'color-navy'}}}
- option(value="gray") {{{_'color-gray'}}}
- option(value="saddlebrown") {{{_'color-saddlebrown'}}}
- option(value="paleturquoise") {{{_'color-paleturquoise'}}}
- option(value="mistyrose") {{{_'color-mistyrose'}}}
- option(value="indigo") {{{_'color-indigo'}}}
+ button.trigger-button.trigger-button-color.card-details-green.js-show-color-palette(id="color-action")
+ | {{{_'color-green'}}}
div.trigger-button.js-set-color-action.js-goto-rules
i.fa.fa-plus
+
+template(name="setCardActionsColorPopup")
+ form.edit-label
+ .palette-colors: each colors
+ span.card-label.palette-color.js-palette-color(class="card-details-{{color}}")
+ if(isSelected color)
+ i.fa.fa-check
+ button.primary.confirm.js-submit {{_ 'save'}}
diff --git a/client/components/rules/actions/cardActions.js b/client/components/rules/actions/cardActions.js
index b66556b4..6c858358 100644
--- a/client/components/rules/actions/cardActions.js
+++ b/client/components/rules/actions/cardActions.js
@@ -1,3 +1,8 @@
+let cardColors;
+Meteor.startup(() => {
+ cardColors = Cards.simpleSchema()._schema.color.allowedValues;
+});
+
BlazeComponent.extendComponent({
onCreated() {
this.subscribe('allRules');
@@ -112,10 +117,22 @@ BlazeComponent.extendComponent({
boardId,
});
},
+ 'click .js-show-color-palette'(event){
+ const funct = Popup.open('setCardActionsColor');
+ const colorButton = this.find('#color-action');
+ if (colorButton.value === '') {
+ colorButton.value = 'green';
+ }
+ funct.call(this, event);
+ },
'click .js-set-color-action' (event) {
const ruleName = this.data().ruleName.get();
const trigger = this.data().triggerVar.get();
- const selectedColor = this.find('#color-action').value;
+ const colorButton = this.find('#color-action');
+ if (colorButton.value === '') {
+ colorButton.value = 'green';
+ }
+ const selectedColor = colorButton.value;
const boardId = Session.get('currentBoard');
const desc = Utils.getTriggerActionDesc(event, this);
const triggerId = Triggers.insert(trigger);
@@ -136,3 +153,34 @@ BlazeComponent.extendComponent({
},
}).register('cardActions');
+
+BlazeComponent.extendComponent({
+ onCreated() {
+ this.currentAction = this.currentData();
+ this.colorButton = Popup.getOpenerComponent().find('#color-action');
+ this.currentColor = new ReactiveVar(this.colorButton.value);
+ },
+
+ colors() {
+ return cardColors.map((color) => ({ color, name: '' }));
+ },
+
+ isSelected(color) {
+ return this.currentColor.get() === color;
+ },
+
+ events() {
+ return [{
+ 'click .js-palette-color'() {
+ this.currentColor.set(this.currentData().color);
+ },
+ 'click .js-submit' () {
+ this.colorButton.classList.remove(`card-details-${ this.colorButton.value }`);
+ this.colorButton.value = this.currentColor.get();
+ this.colorButton.innerText = `${TAPi18n.__(`color-${ this.currentColor.get() }`)}`;
+ this.colorButton.classList.add(`card-details-${ this.colorButton.value }`);
+ Popup.close();
+ },
+ }];
+ },
+}).register('setCardActionsColorPopup');
diff --git a/client/components/rules/rules.styl b/client/components/rules/rules.styl
index 27463d12..05302f7f 100644
--- a/client/components/rules/rules.styl
+++ b/client/components/rules/rules.styl
@@ -174,6 +174,15 @@
top:30px
.trigger-button.trigger-button-person
right:-40px
+ .trigger-button.trigger-button-color
+ top: unset
+ position: unset
+ transform: unset
+ font-size: 16px
+ width:auto
+ padding-left: 10px
+ padding-right: 10px
+ height:40px
.trigger-item.trigger-item-mail
height:300px
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 7097af7d..6c5f22a5 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -517,7 +517,8 @@
"card-end-on": "Ends on",
"editCardReceivedDatePopup-title": "Change received date",
"editCardEndDatePopup-title": "Change end date",
- "setCardColor-title": "Set color",
+ "setCardColorPopup-title": "Set color",
+ "setCardActionsColorPopup-title": "Choose a color",
"assigned-by": "Assigned By",
"requested-by": "Requested By",
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
diff --git a/models/cards.js b/models/cards.js
index c5d9bf05..9b32e89a 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -69,7 +69,7 @@ Cards.attachSchema(new SimpleSchema({
type: String,
optional: true,
allowedValues: [
- 'green', 'yellow', 'orange', 'red', 'purple',
+ 'white', 'green', 'yellow', 'orange', 'red', 'purple',
'blue', 'sky', 'lime', 'pink', 'black',
'silver', 'peachpuff', 'crimson', 'plum', 'darkgreen',
'slateblue', 'magenta', 'gold', 'navy', 'gray',
@@ -1571,13 +1571,16 @@ if (Meteor.isServer) {
*
* @description Edit a card
*
- * The color has to be chosen between `green`, `yellow`, `orange`, `red`,
- * `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`, `peachpuff`,
- * `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`, `gold`, `navy`,
- * `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo`:
+ * The color has to be chosen between `white`, `green`, `yellow`, `orange`,
+ * `red`, `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`,
+ * `peachpuff`, `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`,
+ * `gold`, `navy`, `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`,
+ * `indigo`:
*
* <img src="/card-colors.png" width="40%" alt="Wekan card colors" />
*
+ * Note: setting the color to white has the same effect than removing it.
+ *
* @param {string} boardId the board ID of the card
* @param {string} list the list ID of the card
* @param {string} cardId the ID of the card