summaryrefslogtreecommitdiffstats
path: root/client/components
diff options
context:
space:
mode:
Diffstat (limited to 'client/components')
-rw-r--r--client/components/boards/boardHeader.js1
-rw-r--r--client/components/cards/cardDetails.jade243
-rw-r--r--client/components/cards/cardDetails.js87
-rwxr-xr-xclient/components/main/editor.js4
-rw-r--r--client/components/rules/actions/boardActions.jade37
-rw-r--r--client/components/rules/actions/boardActions.js30
-rw-r--r--client/components/sidebar/sidebar.jade29
-rw-r--r--client/components/sidebar/sidebar.js125
8 files changed, 392 insertions, 164 deletions
diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js
index eea43bd3..8dea0f85 100644
--- a/client/components/boards/boardHeader.js
+++ b/client/components/boards/boardHeader.js
@@ -30,6 +30,7 @@ Template.boardMenuPopup.events({
'click .js-outgoing-webhooks': Popup.open('outgoingWebhooks'),
'click .js-import-board': Popup.open('chooseBoardSource'),
'click .js-subtask-settings': Popup.open('boardSubtaskSettings'),
+ 'click .js-Date-settings': Popup.open('boardDateSettings')
});
Template.boardMenuPopup.helpers({
diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade
index de4e102a..aec95486 100644
--- a/client/components/cards/cardDetails.jade
+++ b/client/components/cards/cardDetails.jade
@@ -8,10 +8,13 @@ template(name="cardDetails")
a.fa.fa-times-thin.close-card-details.js-close-card-details
if currentUser.isBoardMember
a.fa.fa-navicon.card-details-menu.js-open-card-details-menu
+ input.inline-input(type="text" id="cardURL_copy" value="{{ absoluteUrl }}" autofocus="autofocus")
+ a.fa.fa-link.card-copy-button.js-copy-link
if isMiniScreen
a.fa.fa-times-thin.close-card-details-mobile-web.js-close-card-details
if currentUser.isBoardMember
a.fa.fa-navicon.card-details-menu-mobile-web.js-open-card-details-menu
+ a.fa.fa-link.card-copy-mobile-button
h2.card-details-title.js-card-title(
class="{{#if canModifyCard}}js-open-inlined-form is-editable{{/if}}")
+viewer
@@ -36,49 +39,41 @@ template(name="cardDetails")
p.warning {{_ 'card-archived'}}
.card-details-items
- .card-details-item.card-details-item-received
- h3
- i.fa.fa-sign-out
- card-details-item-title {{_ 'card-received'}}
- if getReceived
- +cardReceivedDate
- else
- if canModifyCard
- unless currentUser.isWorker
- a.js-received-date {{_ 'add'}}
-
- .card-details-item.card-details-item-start
- h3
- i.fa.fa-hourglass-start
- card-details-item-title {{_ 'card-start'}}
- if getStart
- +cardStartDate
- else
- if canModifyCard
- unless currentUser.isWorker
- a.js-start-date {{_ 'add'}}
-
- .card-details-item.card-details-item-due
- h3
- i.fa.fa-sign-in
- card-details-item-title {{_ 'card-due'}}
- if getDue
- +cardDueDate
- else
- if canModifyCard
- unless currentUser.isWorker
- a.js-due-date {{_ 'add'}}
-
- .card-details-item.card-details-item-end
- h3
- i.fa.fa-hourglass-end
- card-details-item-title {{_ 'card-end'}}
- if getEnd
- +cardEndDate
- else
- if canModifyCard
- unless currentUser.isWorker
- a.js-end-date {{_ 'add'}}
+ if currentBoard.allowsReceivedDate
+ .card-details-item.card-details-item-received
+ h3
+ i.fa.fa-sign-out
+ card-details-item-title {{_ 'card-received'}}
+ if getReceived
+ +cardReceivedDate
+ else
+ if canModifyCard
+ unless currentUser.isWorker
+ a.js-received-date {{_ 'add'}}
+
+ if currentBoard.allowsStartDate
+ .card-details-item.card-details-item-start
+ h3
+ i.fa.fa-hourglass-start
+ card-details-item-title {{_ 'card-start'}}
+ if getStart
+ +cardStartDate
+ else
+ if canModifyCard
+ unless currentUser.isWorker
+ a.js-start-date {{_ 'add'}}
+
+ if currentBoard.allowsEndDate
+ .card-details-item.card-details-item-end
+ h3
+ i.fa.fa-hourglass-end
+ card-details-item-title {{_ 'card-end'}}
+ if getEnd
+ +cardEndDate
+ else
+ if canModifyCard
+ unless currentUser.isWorker
+ a.js-end-date {{_ 'add'}}
.card-details-items
.card-details-item.card-details-item-members
@@ -92,22 +87,34 @@ template(name="cardDetails")
unless currentUser.isWorker
a.member.add-member.card-details-item-add-button.js-add-members(title="{{_ 'card-members-title'}}")
i.fa.fa-plus
-
- .card-details-item.card-details-item-assignees
- h3
- i.fa.fa-user
- card-details-item-title {{_ 'assignee'}}
- each getAssignees
- +userAvatarAssignee(userId=this cardId=../_id)
- | {{! XXX Hack to hide syntaxic coloration /// }}
- if canModifyCard
- a.assignee.add-assignee.card-details-item-add-button.js-add-assignees(title="{{_ 'assignee'}}")
- i.fa.fa-plus
- if currentUser.isWorker
- unless assigneeSelected
+ if currentBoard.allowsDueDate
+ .card-details-item.card-details-item-due
+ h3
+ i.fa.fa-sign-in
+ card-details-item-title {{_ 'card-due'}}
+ if getDue
+ +cardDueDate
+ else
+ if canModifyCard
+ unless currentUser.isWorker
+ a.card-label.add-label.js-due-date
+ i.fa.fa-plus
+
+ if assigngeeSelected
+ .card-details-item.card-details-item-assignees
+ h3
+ i.fa.fa-user
+ card-details-item-title {{_ 'assignee'}}
+ each getAssignees
+ +userAvatarAssignee(userId=this cardId=../_id)
+ | {{! XXX Hack to hide syntaxic coloration /// }}
+ if canModifyCard
a.assignee.add-assignee.card-details-item-add-button.js-add-assignees(title="{{_ 'assignee'}}")
i.fa.fa-plus
-
+ if currentUser.isWorker
+ unless assigneeSelected
+ a.assignee.add-assignee.card-details-item-add-button.js-add-assignees(title="{{_ 'assignee'}}")
+ i.fa.fa-plus
.card-details-item.card-details-item-labels
h3
@@ -143,9 +150,9 @@ template(name="cardDetails")
//- XXX We should use "editable" to avoid repetiting ourselves
if canModifyCard
unless currentUser.isWorker
- h3
- i.fa.fa-align-left
- card-details-item-title {{_ 'description'}}
+ //h3
+ //- i.fa.fa-align-left
+ //- card-details-item-title {{_ 'description'}}
+inlinedCardDescription(classNames="card-description js-card-description")
+editor(autofocus=true)
| {{getUnsavedValue 'cardDescription' _id getDescription}}
@@ -153,16 +160,16 @@ template(name="cardDetails")
button.primary(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
- a.js-open-inlined-form
+ a.description-item.add-description.js-open-inlined-form
if getDescription
+viewer
= getDescription
else
- | {{_ 'edit'}}
+ | {{_ 'addmore-detail'}}
if (hasUnsavedValue 'cardDescription' _id)
p.quiet
| {{_ 'unsaved-description'}}
- a.js-open-inlined-form {{_ 'view-it'}}
+ a.description-item.add-description.js-open-inlined-form {{_ 'view-it'}}
= ' - '
a.js-close-inlined-form {{_ 'discard'}}
else if getDescription
@@ -171,57 +178,59 @@ template(name="cardDetails")
= getDescription
.card-details-items
- .card-details-item.card-details-item-name
- h3
- i.fa.fa-shopping-cart
- card-details-item-title {{_ 'requested-by'}}
- if canModifyCard
- unless currentUser.isWorker
- +inlinedForm(classNames="js-card-details-requester")
- +editCardRequesterForm
- else
- a.js-open-inlined-form
- if getRequestedBy
- +viewer
- = getRequestedBy
- else
- | {{_ 'add'}}
- else if getRequestedBy
- +viewer
- = getRequestedBy
-
- .card-details-item.card-details-item-name
- h3
- i.fa.fa-user-plus
- card-details-item-title {{_ 'assigned-by'}}
- if canModifyCard
- unless currentUser.isWorker
- +inlinedForm(classNames="js-card-details-assigner")
- +editCardAssignerForm
- else
- a.js-open-inlined-form
- if getAssignedBy
- +viewer
- = getAssignedBy
- else
- | {{_ 'add'}}
- else if getRequestedBy
- +viewer
- = getAssignedBy
-
- hr
- +checklists(cardId = _id)
-
- if currentBoard.allowsSubtasks
- hr
- +subtasks(cardId = _id)
-
- hr
- h3
- i.fa.fa-paperclip
- | {{_ 'attachments'}}
+ if requestBySelected
+ .card-details-item.card-details-item-name
+ h3
+ i.fa.fa-shopping-cart
+ card-details-item-title {{_ 'requested-by'}}
+ if canModifyCard
+ unless currentUser.isWorker
+ +inlinedForm(classNames="js-card-details-requester")
+ +editCardRequesterForm
+ else
+ a.js-open-inlined-form
+ if getRequestedBy
+ +viewer
+ = getRequestedBy
+ else
+ | {{_ 'add'}}
+ else if getRequestedBy
+ +viewer
+ = getRequestedBy
- +attachmentsGalery
+ if assigneeBySelected
+ .card-details-item.card-details-item-name
+ h3
+ i.fa.fa-user-plus
+ card-details-item-title {{_ 'assigned-by'}}
+ if canModifyCard
+ unless currentUser.isWorker
+ +inlinedForm(classNames="js-card-details-assigner")
+ +editCardAssignerForm
+ else
+ a.js-open-inlined-form
+ if getAssignedBy
+ +viewer
+ = getAssignedBy
+ else
+ | {{_ 'add'}}
+ else if getRequestedBy
+ +viewer
+ = getAssignedBy
+
+ .card-checklist-attachmentGalerys
+ .card-checklist-attachmentGalery.card-checklists
+ +checklists(cardId = _id)
+ if currentBoard.allowsSubtasks
+ hr
+ +subtasks(cardId = _id)
+
+ //- hr
+ //- h3
+ //- i.fa.fa-paperclip
+ //- | {{_ 'attachments'}}
+ .card-checklist-attachmentGalery.card-attachmentGalery
+ +attachmentsGalery
hr
unless currentUser.isNoComments
@@ -239,7 +248,13 @@ template(name="cardDetails")
label.toggle-label(for="toggleButton")
if currentUser.isBoardMember
unless currentUser.isNoComments
- +commentForm
+ if canModifyCard
+ +inlinedForm(autoclose=false classNames="js-new-comment-form")
+ +commentForm
+ else
+ +userAvatar(userId=currentUser._id)
+ a.comment-item.add-comment.js-open-inlined-form
+ | {{_ 'Write Comment'}}
unless currentUser.isNoComments
if isLoaded.get
if isLinkedCard
diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js
index 07dcac44..231cbb10 100644
--- a/client/components/cards/cardDetails.js
+++ b/client/components/cards/cardDetails.js
@@ -279,6 +279,29 @@ BlazeComponent.extendComponent({
'click .js-close-card-details'() {
Utils.goBoardId(this.data().boardId);
},
+ 'click .js-copy-link'() {
+ StringToCopyElement = document.getElementById('cardURL_copy');
+ StringToCopyElement.select();
+ if (document.execCommand('copy')) {
+ StringToCopyElement.blur();
+ } else {
+ document.getElementById('cardURL_copy').selectionStart = 0;
+ document.getElementById('cardURL_copy').selectionEnd = 999;
+ document.execCommand('copy');
+ if (window.getSelection) {
+ if (window.getSelection().empty) {
+ // Chrome
+ window.getSelection().empty();
+ } else if (window.getSelection().removeAllRanges) {
+ // Firefox
+ window.getSelection().removeAllRanges();
+ }
+ } else if (document.selection) {
+ // IE?
+ document.selection.empty();
+ }
+ }
+ },
'click .js-open-card-details-menu': Popup.open('cardDetailsActions'),
'submit .js-card-description'(event) {
event.preventDefault();
@@ -371,6 +394,54 @@ Template.cardDetails.helpers({
});
},
+ receivedSelected() {
+ if (this.getReceived().length === 0) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+
+ startSelected() {
+ if (this.getstart().length === 0) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+
+ endSelected() {
+ if (this.getEnd().length === 0) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+
+ dueSelected() {
+ if (this.getDue().length === 0) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+
+ memberSelected() {
+ if (this.getMembers().length === 0) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+
+ labelSelected() {
+ if (this.getLabels().length === 0) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+
assigneeSelected() {
if (this.getAssignees().length === 0) {
return false;
@@ -379,6 +450,22 @@ Template.cardDetails.helpers({
}
},
+ requestBySelected() {
+ if (this.getRequestBy().length === 0) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+
+ assigneeBySelected() {
+ if (this.getAssigneeBy().length === 0) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+
memberType() {
const user = Users.findOne(this.userId);
return user && user.isBoardAdmin() ? 'admin' : 'normal';
diff --git a/client/components/main/editor.js b/client/components/main/editor.js
index 39c03aa9..6c5b72b7 100755
--- a/client/components/main/editor.js
+++ b/client/components/main/editor.js
@@ -120,6 +120,10 @@ Template.editor.onRendered(() => {
autosize($textarea);
$textarea.escapeableTextComplete(mentions);
};
+<<<<<<< HEAD
+=======
+
+>>>>>>> ac37e360b69b799c12f03e1c158cfc0367d26e55
if (Meteor.settings.public.RICHER_CARD_COMMENT_EDITOR !== false) {
const isSmall = Utils.isMiniScreen();
const toolbar = isSmall
diff --git a/client/components/rules/actions/boardActions.jade b/client/components/rules/actions/boardActions.jade
index fda15062..6034184c 100644
--- a/client/components/rules/actions/boardActions.jade
+++ b/client/components/rules/actions/boardActions.jade
@@ -1,42 +1,29 @@
template(name="boardActions")
div.trigger-item
div.trigger-content
- div.trigger-text
+ div.trigger-text
| {{_'r-move-card-to'}}
div.trigger-dropdown
select(id="move-gen-action")
option(value="top") {{_'r-top-of'}}
option(value="bottom") {{_'r-bottom-of'}}
- div.trigger-text
+ div.trigger-text
| {{_'r-its-list'}}
div.trigger-button.js-add-gen-move-action.js-goto-rules
i.fa.fa-plus
div.trigger-item
div.trigger-content
- div.trigger-text
+ div.trigger-text
| {{_'r-move-card-to'}}
div.trigger-dropdown
select(id="move-spec-action")
option(value="top") {{_'r-top-of'}}
option(value="bottom") {{_'r-bottom-of'}}
- div.trigger-text
- | {{_'r-the-board'}}
- div.trigger-dropdown
- select(id="board-id")
- each boards
- if $eq _id currentBoard._id
- option(value="{{_id}}" selected) {{_ 'current'}}
- else
- option(value="{{_id}}") {{title}}
- div.trigger-text
- | {{_'r-in-list'}}
+ div.trigger-text
+ | {{_'r-list'}}
div.trigger-dropdown
input(id="listName",type=text,placeholder="{{_'r-name'}}")
- div.trigger-text
- | {{_'r-in-swimlane'}}
- div.trigger-dropdown
- input(id="swimlaneName",type=text,placeholder="{{_'r-name'}}")
div.trigger-button.js-add-spec-move-action.js-goto-rules
i.fa.fa-plus
@@ -46,14 +33,14 @@ template(name="boardActions")
select(id="arch-action")
option(value="archive") {{_'r-archive'}}
option(value="unarchive") {{_'r-unarchive'}}
- div.trigger-text
+ div.trigger-text
| {{_'r-card'}}
div.trigger-button.js-add-arch-action.js-goto-rules
i.fa.fa-plus
div.trigger-item
div.trigger-content
- div.trigger-text
+ div.trigger-text
| {{_'r-add-swimlane'}}
div.trigger-dropdown
input(id="swimlane-name",type=text,placeholder="{{_'r-name'}}")
@@ -62,15 +49,15 @@ template(name="boardActions")
div.trigger-item
div.trigger-content
- div.trigger-text
+ div.trigger-text
| {{_'r-create-card'}}
div.trigger-dropdown
input(id="card-name",type=text,placeholder="{{_'r-name'}}")
- div.trigger-text
+ div.trigger-text
| {{_'r-in-list'}}
div.trigger-dropdown
input(id="list-name",type=text,placeholder="{{_'r-name'}}")
- div.trigger-text
+ div.trigger-text
| {{_'r-in-swimlane'}}
div.trigger-dropdown
input(id="swimlane-name2",type=text,placeholder="{{_'r-name'}}")
@@ -78,8 +65,8 @@ template(name="boardActions")
i.fa.fa-plus
-
-
+
+
diff --git a/client/components/rules/actions/boardActions.js b/client/components/rules/actions/boardActions.js
index c2f2375a..8568d2bf 100644
--- a/client/components/rules/actions/boardActions.js
+++ b/client/components/rules/actions/boardActions.js
@@ -1,22 +1,6 @@
BlazeComponent.extendComponent({
onCreated() {},
- boards() {
- const boards = Boards.find(
- {
- archived: false,
- 'members.userId': Meteor.userId(),
- _id: {
- $ne: Meteor.user().getTemplatesBoardId(),
- },
- },
- {
- sort: ['title'],
- },
- );
- return boards;
- },
-
events() {
return [
{
@@ -68,18 +52,15 @@ BlazeComponent.extendComponent({
const ruleName = this.data().ruleName.get();
const trigger = this.data().triggerVar.get();
const actionSelected = this.find('#move-spec-action').value;
- const swimlaneName = this.find('#swimlaneName').value;
- const listName = this.find('#listName').value;
+ const listTitle = this.find('#listName').value;
const boardId = Session.get('currentBoard');
- const destBoardId = this.find('#board-id').value;
const desc = Utils.getTriggerActionDesc(event, this);
if (actionSelected === 'top') {
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
actionType: 'moveCardToTop',
- listName,
- swimlaneName,
- boardId: destBoardId,
+ listTitle,
+ boardId,
desc,
});
Rules.insert({
@@ -93,9 +74,8 @@ BlazeComponent.extendComponent({
const triggerId = Triggers.insert(trigger);
const actionId = Actions.insert({
actionType: 'moveCardToBottom',
- listName,
- swimlaneName,
- boardId: destBoardId,
+ listTitle,
+ boardId,
desc,
});
Rules.insert({
diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade
index 8e84cd61..fc5ff3a6 100644
--- a/client/components/sidebar/sidebar.jade
+++ b/client/components/sidebar/sidebar.jade
@@ -72,6 +72,25 @@ template(name="boardChangeColorPopup")
if isSelected
i.fa.fa-check
+template(name="boardDateSettingsPopup")
+ form.board-Date-settings
+ div.check-div
+ a.flex.js-field-has-receiveddate(class="{{#if allowsReceivedDate}}is-checked{{/if}}")
+ .materialCheckBox(class="{{#if allowsReceivedDate}}is-checked{{/if}}")
+ span {{_ 'show-receiveddate-field'}}
+ div.check-div
+ a.flex.js-field-has-startdate(class="{{#if allowsStartDate}}is-checked{{/if}}")
+ .materialCheckBox(class="{{#if allowsStartDate}}is-checked{{/if}}")
+ span {{_ 'show-startdate-field'}}
+ div.check-div
+ a.flex.js-field-has-enddate(class="{{#if allowsEndDate}}is-checked{{/if}}")
+ .materialCheckBox(class="{{#if allowsEndDate}}is-checked{{/if}}")
+ span {{_ 'show-enddate-field'}}
+ div.check-div
+ a.flex.js-field-has-duedate(class="{{#if allowsDueDate}}is-checked{{/if}}")
+ .materialCheckBox(class="{{#if allowsDueDate}}is-checked{{/if}}")
+ span {{_ 'show-duedate-field'}}
+
template(name="boardSubtaskSettingsPopup")
form.board-subtask-settings
h3 {{_ 'show-parent-in-minicard'}}
@@ -201,6 +220,10 @@ template(name="boardMenuPopup")
a.js-subtask-settings
i.fa.fa-sitemap
| {{_ 'subtask-settings'}}
+ li
+ a.js-Date-settings
+ i.fa.fa-calendar
+ | {{_ 'Date-settings'}}
unless currentBoard.isTemplatesBoard
hr
ul.pop-over-list
@@ -238,6 +261,12 @@ template(name="boardMenuPopup")
a.js-subtask-settings
i.fa.fa-sitemap
| {{_ 'subtask-settings'}}
+ hr
+ ul.pop-over-list
+ li
+ a.js-Date-settings
+ i.fa.fa-calendar
+ | {{_ 'Date-settings'}}
template(name="labelsWidget")
.board-widget.board-widget-labels
diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js
index e8f38b8c..d909a8ae 100644
--- a/client/components/sidebar/sidebar.js
+++ b/client/components/sidebar/sidebar.js
@@ -208,6 +208,7 @@ Template.boardMenuPopup.events({
'click .js-outgoing-webhooks': Popup.open('outgoingWebhooks'),
'click .js-import-board': Popup.open('chooseBoardSource'),
'click .js-subtask-settings': Popup.open('boardSubtaskSettings'),
+ 'click .js-Date-settings': Popup.open('boardDateSettings')
});
Template.boardMenuPopup.helpers({
@@ -586,6 +587,130 @@ BlazeComponent.extendComponent({
}).register('boardSubtaskSettingsPopup');
BlazeComponent.extendComponent({
+ onCreated(){
+ this.currentBoard = Boards.findOne(Session.get('currentBoard'));
+ },
+
+ allowsReceivedDate(){
+ return this.currentBoard.allowsReceivedDate;
+ },
+
+ allowsStartDate(){
+ return this.currentBoard.allowsStartDate;
+ },
+
+ allowsEndDate(){
+ return this.currentBoard.allowsEndDate;
+ },
+
+ allowsDueDate(){
+ return this.currentBoard.allowsDueDate;
+ },
+
+ isBoardSelected(){
+ return this.currentBoard.dateSettingsDefaultBoardID
+ },
+
+ isNullBoardSelected() {
+ return (
+ this.currentBoard.dateSettingsDefaultBoardId === null ||
+ this.currentBoard.dateSettingsDefaultBoardId === undefined
+ );
+ },
+
+ boards() {
+ return Boards.find(
+ {
+ archived: false,
+ 'members.userId': Meteor.userId(),
+ },
+ {
+ sort: ['title'],
+ },
+ );
+ },
+
+ lists() {
+ return Lists.find(
+ {
+ boardId: this.currentBoard._id,
+ archived: false,
+ },
+ {
+ sort: ['title'],
+ },
+ );
+ },
+
+ hasLists() {
+ return this.lists().count() > 0;
+ },
+
+ isListSelected() {
+ return this.currentBoard.dateSettingsDefaultBoardId === this.currentData()._id;
+ },
+
+ events() {
+ return [
+ {
+ 'click .js-field-has-receiveddate'(evt) {
+ evt.preventDefault();
+ this.currentBoard.allowsReceivedDate = !this.currentBoard.allowsReceivedDate;
+ this.currentBoard.setAllowsReceivedDate(this.currentBoard.allowsReceivedDate);
+ $(`.js-field-has-receiveddate ${MCB}`).toggleClass(
+ CKCLS,
+ this.currentBoard.allowsReceivedDate,
+ );
+ $('.js-field-has-receiveddate').toggleClass(
+ CKCLS,
+ this.currentBoard.allowsReceivedDate,
+ );
+ },
+ 'click .js-field-has-startdate'(evt) {
+ evt.preventDefault();
+ this.currentBoard.allowsStartDate = !this.currentBoard.allowsStartDate;
+ this.currentBoard.setAllowsStartDate(this.currentBoard.allowsStartDate);
+ $(`.js-field-has-startdate ${MCB}`).toggleClass(
+ CKCLS,
+ this.currentBoard.allowsStartDate,
+ );
+ $('.js-field-has-startdate').toggleClass(
+ CKCLS,
+ this.currentBoard.allowsStartDate,
+ );
+ },
+ 'click .js-field-has-enddate'(evt) {
+ evt.preventDefault();
+ this.currentBoard.allowsEndDate = !this.currentBoard.allowsEndDate;
+ this.currentBoard.setAllowsEndDate(this.currentBoard.allowsEndDate);
+ $(`.js-field-has-enddate ${MCB}`).toggleClass(
+ CKCLS,
+ this.currentBoard.allowsEndDate,
+ );
+ $('.js-field-has-enddate').toggleClass(
+ CKCLS,
+ this.currentBoard.allowsEndDate,
+ );
+ },
+ 'click .js-field-has-duedate'(evt) {
+ evt.preventDefault();
+ this.currentBoard.allowsDueDate = !this.currentBoard.allowsDueDate;
+ this.currentBoard.setAllowsDueDate(this.currentBoard.allowsDueDate);
+ $(`.js-field-has-duedate ${MCB}`).toggleClass(
+ CKCLS,
+ this.currentBoard.allowsDueDate,
+ );
+ $('.js-field-has-duedate').toggleClass(
+ CKCLS,
+ this.currentBoard.allowsDueDate,
+ );
+ },
+ },
+ ];
+ },
+}).register('boardDateSettingsPopup');
+
+BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);