summaryrefslogtreecommitdiffstats
path: root/client/components/cards
diff options
context:
space:
mode:
authorIgnatzHome <ignatz@maschath.de>2018-06-14 19:42:09 +0200
committerIgnatzHome <ignatz@maschath.de>2018-06-14 19:42:09 +0200
commita433f7d9fe310e1aa5f5c831b2bfacb5b86c941e (patch)
tree6e30c7ebc0106518ec5ea76bcb57d294cc9f48f1 /client/components/cards
parent991e74bfc287d840951b7c707b7ff2a2f26e5001 (diff)
parentfcf262cc9807c1e87e638ce6b0c6151ae2114f60 (diff)
downloadwekan-a433f7d9fe310e1aa5f5c831b2bfacb5b86c941e.tar.gz
wekan-a433f7d9fe310e1aa5f5c831b2bfacb5b86c941e.tar.bz2
wekan-a433f7d9fe310e1aa5f5c831b2bfacb5b86c941e.zip
Merge branch 'feature-custom-fields' of https://github.com/feuerball11/wekan into feature-custom-fields
Diffstat (limited to 'client/components/cards')
-rw-r--r--client/components/cards/cardDate.js14
-rw-r--r--client/components/cards/cardDetails.jade48
-rw-r--r--client/components/cards/cardDetails.js42
-rw-r--r--client/components/cards/cardDetails.styl3
-rw-r--r--client/components/cards/labels.styl54
-rw-r--r--client/components/cards/minicard.jade23
-rw-r--r--client/components/cards/minicard.styl7
7 files changed, 179 insertions, 12 deletions
diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js
index f33e8c19..e95c3a23 100644
--- a/client/components/cards/cardDate.js
+++ b/client/components/cards/cardDate.js
@@ -93,7 +93,7 @@ Template.dateBadge.helpers({
});
// editCardReceivedDatePopup
-(class extends EditCardDate {
+(class extends DatePicker {
onCreated() {
super.onCreated();
this.data().receivedAt && this.date.set(moment(this.data().receivedAt));
@@ -156,7 +156,7 @@ Template.dateBadge.helpers({
}).register('editCardDueDatePopup');
// editCardEndDatePopup
-(class extends EditCardDate {
+(class extends DatePicker {
onCreated() {
super.onCreated();
this.data().endAt && this.date.set(moment(this.data().endAt));
@@ -279,11 +279,14 @@ class CardDueDate extends CardDate {
classes() {
let classes = 'due-date' + ' ';
- if (this.now.get().diff(this.date.get(), 'days') >= 2)
+ if ((this.now.get().diff(this.date.get(), 'days') >= 2) &&
+ (this.date.get().isBefore(this.data().endAt)))
classes += 'long-overdue';
- else if (this.now.get().diff(this.date.get(), 'minute') >= 0)
+ else if ((this.now.get().diff(this.date.get(), 'minute') >= 0) &&
+ (this.date.get().isBefore(this.data().endAt)))
classes += 'due';
- else if (this.now.get().diff(this.date.get(), 'days') >= -1)
+ else if ((this.now.get().diff(this.date.get(), 'days') >= -1) &&
+ (this.date.get().isBefore(this.data().endAt)))
classes += 'almost-due';
return classes;
}
@@ -355,4 +358,3 @@ CardEndDate.register('cardEndDate');
return this.date.get().format('l');
}
}).register('minicardEndDate');
-
diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade
index 55ee8d32..aa4829a9 100644
--- a/client/components/cards/cardDetails.jade
+++ b/client/components/cards/cardDetails.jade
@@ -108,6 +108,39 @@ template(name="cardDetails")
+viewer
= description
+ .card-details-items
+ .card-details-item.card-details-item-name
+ h3.card-details-item-title {{_ 'requested-by'}}
+ if canModifyCard
+ +inlinedForm(classNames="js-card-details-requester")
+ +editCardRequesterForm
+ else
+ a.js-open-inlined-form
+ if requestedBy
+ +viewer
+ = requestedBy
+ else
+ | {{_ 'add'}}
+ else if requestedBy
+ +viewer
+ = requestedBy
+
+ .card-details-item.card-details-item-name
+ h3.card-details-item-title {{_ 'assigned-by'}}
+ if canModifyCard
+ +inlinedForm(classNames="js-card-details-assigner")
+ +editCardAssignerForm
+ else
+ a.js-open-inlined-form
+ if assignedBy
+ +viewer
+ = assignedBy
+ else
+ | {{_ 'add'}}
+ else if requestedBy
+ +viewer
+ = assignedBy
+
hr
+checklists(cardId = _id)
@@ -141,6 +174,18 @@ template(name="editCardTitleForm")
button.primary.confirm.js-submit-edit-card-title-form(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
+template(name="editCardRequesterForm")
+ input.js-edit-card-requester(type='text' autofocus value=requestedBy)
+ .edit-controls.clearfix
+ button.primary.confirm.js-submit-edit-card-requester-form(type="submit") {{_ 'save'}}
+ a.fa.fa-times-thin.js-close-inlined-form
+
+template(name="editCardAssignerForm")
+ input.js-edit-card-assigner(type='text' autofocus value=assignedBy)
+ .edit-controls.clearfix
+ button.primary.confirm.js-submit-edit-card-assigner-form(type="submit") {{_ 'save'}}
+ a.fa.fa-times-thin.js-close-inlined-form
+
template(name="cardDetailsActionsPopup")
ul.pop-over-list
li: a.js-toggle-watch-card {{#if isWatching}}{{_ 'unwatch'}}{{else}}{{_ 'watch'}}{{/if}}
@@ -150,8 +195,8 @@ template(name="cardDetailsActionsPopup")
li: a.js-members {{_ 'card-edit-members'}}
li: a.js-labels {{_ 'card-edit-labels'}}
li: a.js-attachments {{_ 'card-edit-attachments'}}
- li: a.js-received-date {{_ 'editCardReceivedDatePopup-title'}}
li: a.js-custom-fields {{_ 'card-edit-custom-fields'}}
+ li: a.js-received-date {{_ 'editCardReceivedDatePopup-title'}}
li: a.js-start-date {{_ 'editCardStartDatePopup-title'}}
li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
li: a.js-end-date {{_ 'editCardEndDatePopup-title'}}
@@ -178,7 +223,6 @@ template(name="copyCardPopup")
= title
+boardsAndLists
-
template(name="copyChecklistToManyCardsPopup")
label(for='copy-checklist-cards-title') {{_ 'copyChecklistToManyCardsPopup-instructions'}}:
textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js
index a2bf2d02..1a8a8bef 100644
--- a/client/components/cards/cardDetails.js
+++ b/client/components/cards/cardDetails.js
@@ -150,6 +150,20 @@ BlazeComponent.extendComponent({
this.data().setTitle(title);
}
},
+ 'submit .js-card-details-assigner'(evt) {
+ evt.preventDefault();
+ const assigner = this.currentComponent().getValue().trim();
+ if (assigner) {
+ this.data().setAssignedBy(assigner);
+ }
+ },
+ 'submit .js-card-details-requester'(evt) {
+ evt.preventDefault();
+ const requester = this.currentComponent().getValue().trim();
+ if (requester) {
+ this.data().setRequestedBy(requester);
+ }
+ },
'click .js-member': Popup.open('cardMember'),
'click .js-add-members': Popup.open('cardMembers'),
'click .js-add-labels': Popup.open('cardLabels'),
@@ -221,8 +235,8 @@ Template.cardDetailsActionsPopup.events({
'click .js-members': Popup.open('cardMembers'),
'click .js-labels': Popup.open('cardLabels'),
'click .js-attachments': Popup.open('cardAttachments'),
- 'click .js-received-date': Popup.open('editCardReceivedDate'),
'click .js-custom-fields': Popup.open('cardCustomFields'),
+ 'click .js-received-date': Popup.open('editCardReceivedDate'),
'click .js-start-date': Popup.open('editCardStartDate'),
'click .js-due-date': Popup.open('editCardDueDate'),
'click .js-end-date': Popup.open('editCardEndDate'),
@@ -269,6 +283,32 @@ Template.editCardTitleForm.events({
},
});
+Template.editCardRequesterForm.onRendered(function() {
+ autosize(this.$('.js-edit-card-requester'));
+});
+
+Template.editCardRequesterForm.events({
+ 'keydown .js-edit-card-requester'(evt) {
+ // If enter key was pressed, submit the data
+ if (evt.keyCode === 13) {
+ $('.js-submit-edit-card-requester-form').click();
+ }
+ },
+});
+
+Template.editCardAssignerForm.onRendered(function() {
+ autosize(this.$('.js-edit-card-assigner'));
+});
+
+Template.editCardAssignerForm.events({
+ 'keydown .js-edit-card-assigner'(evt) {
+ // If enter key was pressed, submit the data
+ if (evt.keyCode === 13) {
+ $('.js-submit-edit-card-assigner-form').click();
+ }
+ },
+});
+
Template.moveCardPopup.events({
'click .js-done' () {
// XXX We should *not* get the currentCard from the global state, but
diff --git a/client/components/cards/cardDetails.styl b/client/components/cards/cardDetails.styl
index 7dbe8732..11660593 100644
--- a/client/components/cards/cardDetails.styl
+++ b/client/components/cards/cardDetails.styl
@@ -82,7 +82,8 @@
&.card-details-item-start,
&.card-details-item-due,
&.card-details-item-end,
- &.card-details-item-customfield
+ &.card-details-item-customfield,
+ &.card-details-item-name
max-width: 50%
flex-grow: 1
diff --git a/client/components/cards/labels.styl b/client/components/cards/labels.styl
index 361a17ae..3b481d93 100644
--- a/client/components/cards/labels.styl
+++ b/client/components/cards/labels.styl
@@ -3,7 +3,7 @@
// XXX Use .board-widget-labels as a flexbox container
.card-label
border-radius: 4px
- color: white
+ color: white //Default white text, in select cases, changed to black to improve contrast between label colour and text
display: inline-block
font-weight: 700
font-size: 13px
@@ -48,9 +48,11 @@
.card-label-yellow
background-color: #fad900
+ color: #000000 //Black text for better visibility
.card-label-orange
background-color: #ff9f19
+ color: #000000 //Black text for better visibility
.card-label-red
background-color: #eb4646
@@ -63,6 +65,7 @@
.card-label-pink
background-color: #ff78cb
+ color: #000000 //Black text for better visibility
.card-label-sky
background-color: #00c2e0
@@ -72,6 +75,55 @@
.card-label-lime
background-color: #51e898
+ color: #000000 //Black text for better visibility
+
+.card-label-silver
+ background-color: #c0c0c0
+ color: #000000 //Black text for better visibility
+
+.card-label-peachpuff
+ background-color: #ffdab9
+ color: #000000 //Black text for better visibility
+
+.card-label-crimson
+ background-color: #dc143c
+
+.card-label-plum
+ background-color: #dda0dd
+ color: #000000 //Black text for better visibility
+
+.card-label-darkgreen
+ background-color: #006400
+
+.card-label-slateblue
+ background-color: #6a5acd
+
+.card-label-magenta
+ background-color: #ff00ff
+
+.card-label-gold
+ background-color: #ffd700
+ color: #000000 //Black text for better visibility
+
+.card-label-navy
+ background-color: #000080
+
+.card-label-gray
+ background-color: #808080
+
+.card-label-saddlebrown
+ background-color: #8b4513
+
+.card-label-paleturquoise
+ background-color: #afeeee
+ color: #000000 //Black text for better visibility
+
+.card-label-mistyrose
+ background-color: #ffe4e1
+ color: #000000 //Black text for better visibility
+
+.card-label-indigo
+ background-color: #4b0082
.edit-label,
.create-label
diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade
index 9fa4dd57..c912ea70 100644
--- a/client/components/cards/minicard.jade
+++ b/client/components/cards/minicard.jade
@@ -10,20 +10,41 @@ template(name="minicard")
+viewer
= title
.dates
+ if receivedAt
+ unless startAt
+ unless dueAt
+ unless endAt
+ .date
+ +miniCardReceivedDate
if startAt
.date
+minicardStartDate
if dueAt
+ unless endAt
+ .date
+ +minicardDueDate
+ if endAt
.date
- +minicardDueDate
+ +minicardEndDate
if spentTime
.date
+cardSpentTime
+ .minicard-custom-fields
+ each customFieldsWD
+ if definition.showOnCard
+ .minicard-custom-field
+ .minicard-custom-field-item
+ = definition.name
+ .minicard-custom-field-item
+ +viewer
+ = trueValue
+
if members
.minicard-members.js-minicard-members
each members
+userAvatar(userId=this)
+
.badges
if comments.count
.badge(title="{{_ 'card-comments-title' comments.count }}")
diff --git a/client/components/cards/minicard.styl b/client/components/cards/minicard.styl
index d59f1f63..38f829d0 100644
--- a/client/components/cards/minicard.styl
+++ b/client/components/cards/minicard.styl
@@ -77,6 +77,13 @@
height: @width
border-radius: 2px
margin-left: 3px
+ .minicard-custom-fields
+ display:block;
+ .minicard-custom-field
+ display:flex;
+ .minicard-custom-field-item
+ max-width:50%;
+ flex-grow:1;
.minicard-title
p:last-child
margin-bottom: 0