summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2018-05-18 16:19:48 +0300
committerLauri Ojansivu <x@xet7.org>2018-05-18 16:19:48 +0300
commit1984a6b1c80dbd8b4eff89aa92913f943bacc63b (patch)
tree5ab5ade69721a03896ba1bfa6e19879dffee59b7
parentc0c7b269a794fb28ddf5ffc17744f6724041de96 (diff)
parent1d904adc610afa3106acc00886a0a848e26e1cb1 (diff)
downloadwekan-1984a6b1c80dbd8b4eff89aa92913f943bacc63b.tar.gz
wekan-1984a6b1c80dbd8b4eff89aa92913f943bacc63b.tar.bz2
wekan-1984a6b1c80dbd8b4eff89aa92913f943bacc63b.zip
Merge branch 'feuerball11-feature-custom-fields' into devel
-rw-r--r--.eslintrc.json2
-rw-r--r--.gitignore1
-rw-r--r--CHANGELOG.md8
-rw-r--r--client/components/activities/activities.jade3
-rw-r--r--client/components/activities/activities.js5
-rw-r--r--client/components/boards/boardHeader.jade1
-rw-r--r--client/components/boards/boardHeader.js4
-rw-r--r--client/components/cards/cardCustomFields.jade76
-rw-r--r--client/components/cards/cardCustomFields.js179
-rw-r--r--client/components/cards/cardDate.jade16
-rw-r--r--client/components/cards/cardDate.js4
-rw-r--r--client/components/cards/cardDate.styl19
-rw-r--r--client/components/cards/cardDetails.jade8
-rw-r--r--client/components/cards/cardDetails.js1
-rw-r--r--client/components/cards/cardDetails.styl8
-rw-r--r--client/components/forms/datepicker.jade15
-rw-r--r--client/components/forms/datepicker.styl17
-rw-r--r--client/components/forms/forms.styl3
-rw-r--r--client/components/lists/listBody.js7
-rw-r--r--client/components/main/popup.styl3
-rw-r--r--client/components/sidebar/sidebar.js1
-rw-r--r--client/components/sidebar/sidebar.styl61
-rw-r--r--client/components/sidebar/sidebarCustomFields.jade52
-rw-r--r--client/components/sidebar/sidebarCustomFields.js131
-rw-r--r--client/lib/datepicker.js86
-rw-r--r--i18n/ar.i18n.json22
-rw-r--r--i18n/bg.i18n.json22
-rw-r--r--i18n/br.i18n.json22
-rw-r--r--i18n/ca.i18n.json22
-rw-r--r--i18n/cs.i18n.json22
-rw-r--r--i18n/de.i18n.json22
-rw-r--r--i18n/el.i18n.json22
-rw-r--r--i18n/en-GB.i18n.json22
-rw-r--r--i18n/en.i18n.json22
-rw-r--r--i18n/eo.i18n.json22
-rw-r--r--i18n/es-AR.i18n.json22
-rw-r--r--i18n/es.i18n.json22
-rw-r--r--i18n/eu.i18n.json22
-rw-r--r--i18n/fa.i18n.json22
-rw-r--r--i18n/fi.i18n.json22
-rw-r--r--i18n/fr.i18n.json22
-rw-r--r--i18n/gl.i18n.json22
-rw-r--r--i18n/he.i18n.json22
-rw-r--r--i18n/hu.i18n.json22
-rw-r--r--i18n/hy.i18n.json22
-rw-r--r--i18n/id.i18n.json22
-rw-r--r--i18n/ig.i18n.json22
-rw-r--r--i18n/it.i18n.json22
-rw-r--r--i18n/ja.i18n.json22
-rw-r--r--i18n/ko.i18n.json22
-rw-r--r--i18n/lv.i18n.json22
-rw-r--r--i18n/mn.i18n.json22
-rw-r--r--i18n/nb.i18n.json22
-rw-r--r--i18n/nl.i18n.json22
-rw-r--r--i18n/pl.i18n.json22
-rw-r--r--i18n/pt-BR.i18n.json22
-rw-r--r--i18n/pt.i18n.json22
-rw-r--r--i18n/ro.i18n.json22
-rw-r--r--i18n/ru.i18n.json22
-rw-r--r--i18n/sr.i18n.json22
-rw-r--r--i18n/sv.i18n.json22
-rw-r--r--i18n/ta.i18n.json22
-rw-r--r--i18n/th.i18n.json22
-rw-r--r--i18n/tr.i18n.json22
-rw-r--r--i18n/uk.i18n.json22
-rw-r--r--i18n/vi.i18n.json22
-rw-r--r--i18n/zh-CN.i18n.json22
-rw-r--r--i18n/zh-TW.i18n.json22
-rw-r--r--models/activities.js8
-rw-r--r--models/attachments.js158
-rw-r--r--models/boards.js4
-rw-r--r--models/cards.js69
-rw-r--r--models/customFields.js132
-rw-r--r--sandstorm.js10
-rw-r--r--server/migrations.js12
-rw-r--r--server/publications/boards.js1
-rw-r--r--server/publications/customFields.js3
77 files changed, 1902 insertions, 152 deletions
diff --git a/.eslintrc.json b/.eslintrc.json
index 0a9f3c90..255e00ba 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -100,7 +100,9 @@
"Attachments": true,
"Boards": true,
"CardComments": true,
+ "DatePicker" : true,
"Cards": true,
+ "CustomFields": true,
"Lists": true,
"UnsavedEditCollection": true,
"Users": true,
diff --git a/.gitignore b/.gitignore
index acb9bcc7..3b63d811 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@ package-lock.json
**/prime
**/*.snap
snap/.snapcraft/
+.idea
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 49ee9b39..859c7145 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+# Upcoming Wekan release
+
+This release adds the following new features:
+
+* [Custom Fields](https://github.com/wekan/wekan/issues/807).
+
+Thanks to GitHub users feuerball11, papoola and xet7 for their contributions.
+
# v0.95 2018-05-08 Wekan release
This release adds the following new features:
diff --git a/client/components/activities/activities.jade b/client/components/activities/activities.jade
index 2054777a..d3e3d5ba 100644
--- a/client/components/activities/activities.jade
+++ b/client/components/activities/activities.jade
@@ -53,6 +53,9 @@ template(name="boardActivities")
if($eq activityType 'createCard')
| {{{_ 'activity-added' cardLink boardLabel}}}.
+ if($eq activityType 'createCustomField')
+ | {{_ 'activity-customfield-created' customField}}.
+
if($eq activityType 'createList')
| {{_ 'activity-added' list.title boardLabel}}.
diff --git a/client/components/activities/activities.js b/client/components/activities/activities.js
index ccb064f3..95699961 100644
--- a/client/components/activities/activities.js
+++ b/client/components/activities/activities.js
@@ -91,6 +91,11 @@ BlazeComponent.extendComponent({
}, attachment.name()));
},
+ customField() {
+ const customField = this.currentData().customField();
+ return customField.name;
+ },
+
events() {
return [{
// XXX We should use Popup.afterConfirmation here
diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade
index fe0771cb..b4ccd3b3 100644
--- a/client/components/boards/boardHeader.jade
+++ b/client/components/boards/boardHeader.jade
@@ -113,6 +113,7 @@ template(name="boardHeaderBar")
template(name="boardMenuPopup")
ul.pop-over-list
+ li: a.js-custom-fields {{_ 'custom-fields'}}
li: a.js-open-archives {{_ 'archived-items'}}
if currentUser.isBoardAdmin
li: a.js-change-board-color {{_ 'board-change-color'}}
diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js
index 2b587831..e0b19246 100644
--- a/client/components/boards/boardHeader.js
+++ b/client/components/boards/boardHeader.js
@@ -1,5 +1,9 @@
Template.boardMenuPopup.events({
'click .js-rename-board': Popup.open('boardChangeTitle'),
+ 'click .js-custom-fields'() {
+ Sidebar.setView('customFields');
+ Popup.close();
+ },
'click .js-open-archives'() {
Sidebar.setView('archives');
Popup.close();
diff --git a/client/components/cards/cardCustomFields.jade b/client/components/cards/cardCustomFields.jade
new file mode 100644
index 00000000..65081e3b
--- /dev/null
+++ b/client/components/cards/cardCustomFields.jade
@@ -0,0 +1,76 @@
+template(name="cardCustomFieldsPopup")
+ ul.pop-over-list
+ each board.customFields
+ li.item(class="")
+ a.name.js-select-field(href="#")
+ span.full-name
+ = name
+ if hasCustomField
+ i.fa.fa-check
+ hr
+ a.quiet-button.full.js-settings
+ i.fa.fa-cog
+ span {{_ 'settings'}}
+
+template(name="cardCustomField")
+ +Template.dynamic(template=getTemplate)
+
+template(name="cardCustomField-text")
+ if canModifyCard
+ +inlinedForm(classNames="js-card-customfield-text")
+ +editor(autofocus=true)
+ = value
+ .edit-controls.clearfix
+ button.primary(type="submit") {{_ 'save'}}
+ a.fa.fa-times-thin.js-close-inlined-form
+ else
+ a.js-open-inlined-form
+ if value
+ +viewer
+ = value
+ else
+ | {{_ 'edit'}}
+
+template(name="cardCustomField-number")
+ if canModifyCard
+ +inlinedForm(classNames="js-card-customfield-number")
+ input(type="number" value=data.value)
+ .edit-controls.clearfix
+ button.primary(type="submit") {{_ 'save'}}
+ a.fa.fa-times-thin.js-close-inlined-form
+ else
+ a.js-open-inlined-form
+ if value
+ = value
+ else
+ | {{_ 'edit'}}
+
+template(name="cardCustomField-date")
+ if canModifyCard
+ a.js-edit-date(title="{{showTitle}}" class="{{classes}}")
+ if value
+ div.card-date
+ time(datetime="{{showISODate}}")
+ | {{showDate}}
+ else
+ | {{_ 'edit'}}
+
+template(name="cardCustomField-dropdown")
+ if canModifyCard
+ +inlinedForm(classNames="js-card-customfield-dropdown")
+ select.inline
+ each items
+ if($eq data.value this._id)
+ option(value=_id selected="selected") {{name}}
+ else
+ option(value=_id) {{name}}
+ .edit-controls.clearfix
+ button.primary(type="submit") {{_ 'save'}}
+ a.fa.fa-times-thin.js-close-inlined-form
+ else
+ a.js-open-inlined-form
+ if value
+ +viewer
+ = selectedItem
+ else
+ | {{_ 'edit'}} \ No newline at end of file
diff --git a/client/components/cards/cardCustomFields.js b/client/components/cards/cardCustomFields.js
new file mode 100644
index 00000000..aa50caec
--- /dev/null
+++ b/client/components/cards/cardCustomFields.js
@@ -0,0 +1,179 @@
+Template.cardCustomFieldsPopup.helpers({
+ hasCustomField() {
+ const card = Cards.findOne(Session.get('currentCard'));
+ const customFieldId = this._id;
+ return card.customFieldIndex(customFieldId) > -1;
+ },
+});
+
+Template.cardCustomFieldsPopup.events({
+ 'click .js-select-field'(evt) {
+ const card = Cards.findOne(Session.get('currentCard'));
+ const customFieldId = this._id;
+ card.toggleCustomField(customFieldId);
+ evt.preventDefault();
+ },
+ 'click .js-settings'(evt) {
+ EscapeActions.executeUpTo('detailsPane');
+ Sidebar.setView('customFields');
+ evt.preventDefault();
+ },
+});
+
+// cardCustomField
+const CardCustomField = BlazeComponent.extendComponent({
+
+ getTemplate() {
+ return `cardCustomField-${this.data().definition.type}`;
+ },
+
+ onCreated() {
+ const self = this;
+ self.card = Cards.findOne(Session.get('currentCard'));
+ self.customFieldId = this.data()._id;
+ },
+
+ canModifyCard() {
+ return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
+ },
+});
+CardCustomField.register('cardCustomField');
+
+// cardCustomField-text
+(class extends CardCustomField {
+
+ onCreated() {
+ super.onCreated();
+ }
+
+ events() {
+ return [{
+ 'submit .js-card-customfield-text'(evt) {
+ evt.preventDefault();
+ const value = this.currentComponent().getValue();
+ this.card.setCustomField(this.customFieldId, value);
+ },
+ }];
+ }
+
+}).register('cardCustomField-text');
+
+// cardCustomField-number
+(class extends CardCustomField {
+
+ onCreated() {
+ super.onCreated();
+ }
+
+ events() {
+ return [{
+ 'submit .js-card-customfield-number'(evt) {
+ evt.preventDefault();
+ const value = parseInt(this.find('input').value, 10);
+ this.card.setCustomField(this.customFieldId, value);
+ },
+ }];
+ }
+
+}).register('cardCustomField-number');
+
+// cardCustomField-date
+(class extends CardCustomField {
+
+ onCreated() {
+ super.onCreated();
+ const self = this;
+ self.date = ReactiveVar();
+ self.now = ReactiveVar(moment());
+ window.setInterval(() => {
+ self.now.set(moment());
+ }, 60000);
+
+ self.autorun(() => {
+ self.date.set(moment(self.data().value));
+ });
+ }
+
+ showDate() {
+ // this will start working once mquandalle:moment
+ // is updated to at least moment.js 2.10.5
+ // until then, the date is displayed in the "L" format
+ return this.date.get().calendar(null, {
+ sameElse: 'llll',
+ });
+ }
+
+ showISODate() {
+ return this.date.get().toISOString();
+ }
+
+ classes() {
+ if (this.date.get().isBefore(this.now.get(), 'minute') &&
+ this.now.get().isBefore(this.data().value)) {
+ return 'current';
+ }
+ return '';
+ }
+
+ showTitle() {
+ return `${TAPi18n.__('card-start-on')} ${this.date.get().format('LLLL')}`;
+ }
+
+ events() {
+ return [{
+ 'click .js-edit-date': Popup.open('cardCustomField-date'),
+ }];
+ }
+
+}).register('cardCustomField-date');
+
+// cardCustomField-datePopup
+(class extends DatePicker {
+ onCreated() {
+ super.onCreated();
+ const self = this;
+ self.card = Cards.findOne(Session.get('currentCard'));
+ self.customFieldId = this.data()._id;
+ this.data().value && this.date.set(moment(this.data().value));
+ }
+
+ _storeDate(date) {
+ this.card.setCustomField(this.customFieldId, date);
+ }
+
+ _deleteDate() {
+ this.card.setCustomField(this.customFieldId, '');
+ }
+}).register('cardCustomField-datePopup');
+
+// cardCustomField-dropdown
+(class extends CardCustomField {
+
+ onCreated() {
+ super.onCreated();
+ this._items = this.data().definition.settings.dropdownItems;
+ this.items = this._items.slice(0);
+ this.items.unshift({
+ _id: '',
+ name: TAPi18n.__('custom-field-dropdown-none'),
+ });
+ }
+
+ selectedItem() {
+ const selected = this._items.find((item) => {
+ return item._id === this.data().value;
+ });
+ return (selected) ? selected.name : TAPi18n.__('custom-field-dropdown-unknown');
+ }
+
+ events() {
+ return [{
+ 'submit .js-card-customfield-dropdown'(evt) {
+ evt.preventDefault();
+ const value = this.find('select').value;
+ this.card.setCustomField(this.customFieldId, value);
+ },
+ }];
+ }
+
+}).register('cardCustomField-dropdown');
diff --git a/client/components/cards/cardDate.jade b/client/components/cards/cardDate.jade
index 525f27ed..2e447506 100644
--- a/client/components/cards/cardDate.jade
+++ b/client/components/cards/cardDate.jade
@@ -1,19 +1,3 @@
-template(name="editCardDate")
- .edit-card-date
- form.edit-date
- .fields
- .left
- label(for="date") {{_ 'date'}}
- input.js-date-field#date(type="text" name="date" value=showDate placeholder=dateFormat autofocus)
- .right
- label(for="time") {{_ 'time'}}
- input.js-time-field#time(type="text" name="time" value=showTime placeholder=timeFormat)
- .js-datepicker
- if error.get
- .warning {{_ error.get}}
- button.primary.wide.left.js-submit-date(type="submit") {{_ 'save'}}
- button.js-delete-date.negate.wide.right.js-delete-date {{_ 'delete'}}
-
template(name="dateBadge")
if canModifyCard
a.js-edit-date.card-date(title="{{showTitle}}" class="{{classes}}")
diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js
index 7c0ad6ab..f33e8c19 100644
--- a/client/components/cards/cardDate.js
+++ b/client/components/cards/cardDate.js
@@ -110,7 +110,7 @@ Template.dateBadge.helpers({
// editCardStartDatePopup
-(class extends EditCardDate {
+(class extends DatePicker {
onCreated() {
super.onCreated();
this.data().startAt && this.date.set(moment(this.data().startAt));
@@ -133,7 +133,7 @@ Template.dateBadge.helpers({
}).register('editCardStartDatePopup');
// editCardDueDatePopup
-(class extends EditCardDate {
+(class extends DatePicker {
onCreated() {
super.onCreated();
this.data().dueAt && this.date.set(moment(this.data().dueAt));
diff --git a/client/components/cards/cardDate.styl b/client/components/cards/cardDate.styl
index 1ad3adb3..9775e82b 100644
--- a/client/components/cards/cardDate.styl
+++ b/client/components/cards/cardDate.styl
@@ -1,22 +1,3 @@
-.edit-card-date
- .fields
- .left
- width: 56%
- .right
- width: 38%
- .datepicker
- width: 100%
- table
- width: 100%
- border: none
- border-spacing: 0
- border-collapse: collapse
- thead
- background: none
- td, th
- box-sizing: border-box
-
-
.card-date
display: block
border-radius: 4px
diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade
index 047d7518..55ee8d32 100644
--- a/client/components/cards/cardDetails.jade
+++ b/client/components/cards/cardDetails.jade
@@ -66,6 +66,13 @@ template(name="cardDetails")
i.fa.fa-plus
.card-details-items
+ each customFieldsWD
+ .card-details-item.card-details-item-customfield
+ h3.card-details-item-title
+ = definition.name
+ +cardCustomField
+
+ .card-details-items
if spentTime
.card-details-item.card-details-item-spent
if isOvertime
@@ -144,6 +151,7 @@ template(name="cardDetailsActionsPopup")
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-start-date {{_ 'editCardStartDatePopup-title'}}
li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
li: a.js-end-date {{_ 'editCardEndDatePopup-title'}}
diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js
index cdd027e6..26549fda 100644
--- a/client/components/cards/cardDetails.js
+++ b/client/components/cards/cardDetails.js
@@ -216,6 +216,7 @@ Template.cardDetailsActionsPopup.events({
'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-start-date': Popup.open('editCardStartDate'),
'click .js-due-date': Popup.open('editCardDueDate'),
'click .js-end-date': Popup.open('editCardEndDate'),
diff --git a/client/components/cards/cardDetails.styl b/client/components/cards/cardDetails.styl
index e5739a93..7dbe8732 100644
--- a/client/components/cards/cardDetails.styl
+++ b/client/components/cards/cardDetails.styl
@@ -69,6 +69,7 @@
.card-details-items
display: flex
+ flex-wrap: wrap
margin: 15px 0
.card-details-item
@@ -80,9 +81,10 @@
&.card-details-item-received,
&.card-details-item-start,
&.card-details-item-due,
- &.card-details-item-end
- width: 50%
- flex-shrink: 1
+ &.card-details-item-end,
+ &.card-details-item-customfield
+ max-width: 50%
+ flex-grow: 1
.card-details-item-title
font-size: 16px
diff --git a/client/components/forms/datepicker.jade b/client/components/forms/datepicker.jade
new file mode 100644
index 00000000..96f63bc4
--- /dev/null
+++ b/client/components/forms/datepicker.jade
@@ -0,0 +1,15 @@
+template(name="datepicker")
+ .datepicker-container
+ form.edit-date
+ .fields
+ .left
+ label(for="date") {{_ 'date'}}
+ input.js-date-field#date(type="text" name="date" value=showDate placeholder=dateFormat autofocus)
+ .right
+ label(for="time") {{_ 'time'}}
+ input.js-time-field#time(type="text" name="time" value=showTime placeholder=timeFormat)
+ .js-datepicker
+ if error.get
+ .warning {{_ error.get}}
+ button.primary.wide.left.js-submit-date(type="submit") {{_ 'save'}}
+ button.js-delete-date.negate.wide.right.js-delete-date {{_ 'delete'}} \ No newline at end of file
diff --git a/client/components/forms/datepicker.styl b/client/components/forms/datepicker.styl
new file mode 100644
index 00000000..a2558094
--- /dev/null
+++ b/client/components/forms/datepicker.styl
@@ -0,0 +1,17 @@
+.datepicker-container
+ .fields
+ .left
+ width: 56%
+ .right
+ width: 38%
+ .datepicker
+ width: 100%
+ table
+ width: 100%
+ border: none
+ border-spacing: 0
+ border-collapse: collapse
+ thead
+ background: none
+ td, th
+ box-sizing: border-box \ No newline at end of file
diff --git a/client/components/forms/forms.styl b/client/components/forms/forms.styl
index 1947c11d..0a905943 100644
--- a/client/components/forms/forms.styl
+++ b/client/components/forms/forms.styl
@@ -85,6 +85,9 @@ select
width: 256px
margin-bottom: 8px
+ &.inline
+ width: 100%
+
option[disabled]
color: #8c8c8c
diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js
index 52f34fab..4bf7b369 100644
--- a/client/components/lists/listBody.js
+++ b/client/components/lists/listBody.js
@@ -35,6 +35,10 @@ BlazeComponent.extendComponent({
const members = formComponent.members.get();
const labelIds = formComponent.labels.get();
+ const customFields = formComponent.customFields.get();
+ //console.log('members', members);
+ //console.log('labelIds', labelIds);
+ //console.log('customFields', customFields);
const boardId = this.data().board()._id;
let swimlaneId = '';
@@ -49,6 +53,7 @@ BlazeComponent.extendComponent({
title,
members,
labelIds,
+ customFields,
listId: this.data()._id,
boardId: this.data().board()._id,
sort: sortIndex,
@@ -146,11 +151,13 @@ BlazeComponent.extendComponent({
onCreated() {
this.labels = new ReactiveVar([]);
this.members = new ReactiveVar([]);
+ this.customFields = new ReactiveVar([]);
},
reset() {
this.labels.set([]);
this.members.set([]);
+ this.customFields.set([]);
},
getLabels() {
diff --git a/client/components/main/popup.styl b/client/components/main/popup.styl
index b7c9e264..ff00eef3 100644
--- a/client/components/main/popup.styl
+++ b/client/components/main/popup.styl
@@ -33,6 +33,9 @@ $popupWidth = 300px
textarea
height: 72px
+ form a span
+ padding: 0 0.5rem
+
.header
height: 36px
position: relative
diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js
index bff96dcb..5a9de74b 100644
--- a/client/components/sidebar/sidebar.js
+++ b/client/components/sidebar/sidebar.js
@@ -6,6 +6,7 @@ const viewTitles = {
filter: 'filter-cards',
search: 'search-cards',
multiselection: 'multi-selection',
+ customFields: 'custom-fields',
archives: 'archives',
};
diff --git a/client/components/sidebar/sidebar.styl b/client/components/sidebar/sidebar.styl
index 8f2f493e..740186b5 100644
--- a/client/components/sidebar/sidebar.styl
+++ b/client/components/sidebar/sidebar.styl
@@ -45,28 +45,45 @@
display: flex
flex-direction: column
- li > a
- display: flex
- height: 30px
- margin: 0
- padding: 4px
- border-radius: 3px
- align-items: center
-
- &:hover
- &, i, .quiet
- color white
-
- .member, .card-label
- margin-right: 7px
- margin-top: 5px
-
- .sidebar-list-item-description
- flex: 1
- overflow: ellipsis
-
- .fa.fa-check
- margin: 0 4px
+ li
+ & > a
+ display: flex
+ height: 30px
+ margin: 0
+ padding: 4px
+ border-radius: 3px
+ align-items: center
+
+ &:hover
+ &, i, .quiet
+ color white
+
+ .member, .card-label
+ margin-right: 7px
+ margin-top: 5px
+
+ .minicard-edit-button
+ float: right
+ padding: 8px
+ border-radius: 3px
+
+ .sidebar-list-item-description
+ flex: 1
+ overflow: ellipsis
+
+ .fa.fa-check
+ margin: 0 4px
+
+ .minicard
+ padding: 6px 8px 4px
+
+ .minicard-edit-button
+ float: right
+ padding: 4px
+ border-radius: 3px
+
+ &:hover
+ background: #dbdbdb
.sidebar-btn
display: block
diff --git a/client/components/sidebar/sidebarCustomFields.jade b/client/components/sidebar/sidebarCustomFields.jade
new file mode 100644
index 00000000..def083e9
--- /dev/null
+++ b/client/components/sidebar/sidebarCustomFields.jade
@@ -0,0 +1,52 @@
+template(name="customFieldsSidebar")
+ ul.sidebar-list
+ each customFields
+ li
+ div.minicard-wrapper.js-minicard
+ div.minicard
+ a.fa.fa-pencil.js-edit-custom-field.minicard-edit-button
+ div.minicard-title
+ | {{ name }} ({{ type }})
+
+ if currentUser.isBoardMember
+ hr
+ a.sidebar-btn.js-open-create-custom-field
+ i.fa.fa-plus
+ span {{_ 'createCustomField'}}
+
+template(name="createCustomFieldPopup")
+ form
+ label
+ | {{_ 'name'}}
+ unless _id
+ input.js-field-name(type="text" autofocus)
+ else
+ input.js-field-name(type="text" value=name)
+
+ label
+ | {{_ 'type'}}
+ select.js-field-type(disabled="{{#if _id}}disabled{{/if}}")
+ each types
+ if selected
+ option(value=value selected="selected") {{name}}
+ else
+ option(value=value) {{name}}
+ div.js-field-settings.js-field-settings-dropdown(class="{{#if isTypeNotSelected 'dropdown'}}hide{{/if}}")
+ label
+ | {{_ 'custom-field-dropdown-options'}}
+ each dropdownItems.get
+ input.js-dropdown-item(type="text" value=name placeholder="")
+ input.js-dropdown-item.last(type="text" value="" placeholder="{{_ 'custom-field-dropdown-options-placeholder'}}")
+ a.flex.js-field-show-on-card
+ .materialCheckBox(class="{{#if showOnCard}}is-checked{{/if}}")
+
+ span {{_ 'show-field-on-card'}}
+ button.primary.wide.left(type="button")
+ | {{_ 'save'}}
+ if _id
+ button.negate.wide.right.js-delete-custom-field(type="button")
+ | {{_ 'delete'}}
+
+template(name="deleteCustomFieldPopup")
+ p {{_ "custom-field-delete-pop"}}
+ button.js-confirm.negate.full(type="submit") {{_ 'delete'}} \ No newline at end of file
diff --git a/client/components/sidebar/sidebarCustomFields.js b/client/components/sidebar/sidebarCustomFields.js
new file mode 100644
index 00000000..e56d744e
--- /dev/null
+++ b/client/components/sidebar/sidebarCustomFields.js
@@ -0,0 +1,131 @@
+BlazeComponent.extendComponent({
+
+ customFields() {
+ return CustomFields.find({
+ boardId: Session.get('currentBoard'),
+ });
+ },
+
+ events() {
+ return [{
+ 'click .js-open-create-custom-field': Popup.open('createCustomField'),
+ 'click .js-edit-custom-field': Popup.open('editCustomField'),
+ }];
+ },
+
+}).register('customFieldsSidebar');
+
+const CreateCustomFieldPopup = BlazeComponent.extendComponent({
+
+ _types: ['text', 'number', 'date', 'dropdown'],
+
+ onCreated() {
+ this.type = new ReactiveVar((this.data().type) ? this.data().type : this._types[0]);
+ this.dropdownItems = new ReactiveVar((this.data().settings && this.data().settings.dropdownItems) ? this.data().settings.dropdownItems : []);
+ },
+
+ types() {
+ const currentType = this.data().type;
+ return this._types.
+ map((type) => {return {
+ value: type,
+ name: TAPi18n.__(`custom-field-${type}`),
+ selected: type === currentType,
+ };});
+ },
+
+ isTypeNotSelected(type) {
+ return this.type.get() !== type;
+ },
+
+ getDropdownItems() {
+ const items = this.dropdownItems.get();
+ Array.from(this.findAll('.js-field-settings-dropdown input')).forEach((el, index) => {
+ //console.log('each item!', index, el.value);
+ if (!items[index]) items[index] = {
+ _id: Random.id(6),
+ };
+ items[index].name = el.value.trim();
+ });
+ return items;
+ },
+
+ getSettings() {
+ const settings = {};
+ switch (this.type.get()) {
+ case 'dropdown': {
+ const dropdownItems = this.getDropdownItems().filter((item) => !!item.name.trim());
+ settings.dropdownItems = dropdownItems;
+ break;
+ }
+ }
+ return settings;
+ },
+
+ events() {
+ return [{
+ 'change .js-field-type'(evt) {
+ const value = evt.target.value;
+ this.type.set(value);
+ },
+ 'keydown .js-dropdown-item.last'(evt) {
+ if (evt.target.value.trim() && evt.keyCode === 13) {
+ const items = this.getDropdownItems();
+ this.dropdownItems.set(items);
+ evt.target.value = '';
+ }
+ },
+ 'click .js-field-show-on-card'(evt) {
+ let $target = $(evt.target);
+ if(!$target.hasClass('js-field-show-on-card')){
+ $target = $target.parent();
+ }
+ $target.find('.materialCheckBox').toggleClass('is-checked');
+ $target.toggleClass('is-checked');
+ },
+ 'click .primary'(evt) {
+ evt.preventDefault();
+
+ const data = {
+ boardId: Session.get('currentBoard'),
+ name: this.find('.js-field-name').value.trim(),
+ type: this.type.get(),
+ settings: this.getSettings(),
+ showOnCard: this.find('.js-field-show-on-card.is-checked') !== null,
+ };
+
+ // insert or update
+ if (!this.data()._id) {
+ CustomFields.insert(data);
+ } else {
+ CustomFields.update(this.data()._id, {$set: data});
+ }
+
+ Popup.back();
+ },
+ 'click .js-delete-custom-field': Popup.afterConfirm('deleteCustomField', function() {
+ const customFieldId = this._id;
+ CustomFields.remove(customFieldId);
+ Popup.close();
+ }),
+ }];
+ },
+
+});
+CreateCustomFieldPopup.register('createCustomFieldPopup');
+
+(class extends CreateCustomFieldPopup {
+
+ template() {
+ return 'createCustomFieldPopup';
+ }
+
+}).register('editCustomFieldPopup');
+
+/*Template.deleteCustomFieldPopup.events({
+ 'submit'(evt) {
+ const customFieldId = this._id;
+ CustomFields.remove(customFieldId);
+ Popup.close();
+ }
+});*/
diff --git a/client/lib/datepicker.js b/client/lib/datepicker.js
new file mode 100644
index 00000000..ab2da0bd
--- /dev/null
+++ b/client/lib/datepicker.js
@@ -0,0 +1,86 @@
+DatePicker = BlazeComponent.extendComponent({
+ template() {
+ return 'datepicker';
+ },
+
+ onCreated() {
+ this.error = new ReactiveVar('');
+ this.card = this.data();
+ this.date = new ReactiveVar(moment.invalid());
+ },
+
+ onRendered() {
+ const $picker = this.$('.js-datepicker').datepicker({
+ todayHighlight: true,
+ todayBtn: 'linked',
+ language: TAPi18n.getLanguage(),
+ }).on('changeDate', function(evt) {
+ this.find('#date').value = moment(evt.date).format('L');
+ this.error.set('');
+ this.find('#time').focus();
+ }.bind(this));
+
+ if (this.date.get().isValid()) {
+ $picker.datepicker('update', this.date.get().toDate());
+ }
+ },
+
+ showDate() {
+ if (this.date.get().isValid())
+ return this.date.get().format('L');
+ return '';
+ },
+ showTime() {
+ if (this.date.get().isValid())
+ return this.date.get().format('LT');
+ return '';
+ },
+ dateFormat() {
+ return moment.localeData().longDateFormat('L');
+ },
+ timeFormat() {
+ return moment.localeData().longDateFormat('LT');
+ },
+
+ events() {
+ return [{
+ 'keyup .js-date-field'() {
+ // parse for localized date format in strict mode
+ const dateMoment = moment(this.find('#date').value, 'L', true);
+ if (dateMoment.isValid()) {
+ this.error.set('');
+ this.$('.js-datepicker').datepicker('update', dateMoment.toDate());
+ }
+ },
+ 'keyup .js-time-field'() {
+ // parse for localized time format in strict mode
+ const dateMoment = moment(this.find('#time').value, 'LT', true);
+ if (dateMoment.isValid()) {
+ this.error.set('');
+ }
+ },
+ 'submit .edit-date'(evt) {
+ evt.preventDefault();
+
+ // if no time was given, init with 12:00
+ const time = evt.target.time.value || moment(new Date().setHours(12, 0, 0)).format('LT');
+
+ const dateString = `${evt.target.date.value} ${time}`;
+ const newDate = moment(dateString, 'L LT', true);
+ if (newDate.isValid()) {
+ this._storeDate(newDate.toDate());
+ Popup.close();
+ }
+ else {
+ this.error.set('invalid-date');
+ evt.target.date.focus();
+ }
+ },
+ 'click .js-delete-date'(evt) {
+ evt.preventDefault();
+ this._deleteDate();
+ Popup.close();
+ },
+ }];
+ },
+});
diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json
index 4e77fa42..7c470976 100644
--- a/i18n/ar.i18n.json
+++ b/i18n/ar.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "علق على __comment__ : __card__",
"act-createBoard": "احدث __board__",
"act-createCard": "اضاف __card__ الى __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "اضاف __list__ الى __board__",
"act-addBoardMember": "اضاف __member__ الى __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "إرفاق %s ل %s",
"activity-created": "أنشأ %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "استبعاد %s عن %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "مستحق في",
"card-spent": "Spent Time",
"card-edit-attachments": "تعديل المرفقات",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "تعديل العلامات",
"card-edit-members": "تعديل الأعضاء",
"card-labels-title": "تعديل علامات البطاقة.",
@@ -118,6 +121,8 @@
"card-start": "بداية",
"card-start-on": "يبدأ في",
"cardAttachmentsPopup-title": "إرفاق من",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "حذف البطاقة ?",
"cardDetailsActionsPopup-title": "إجراءات على البطاقة",
"cardLabelsPopup-title": "علامات",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "إنشاء لوحة",
"chooseBoardSourcePopup-title": "استيراد لوحة",
"createLabelPopup-title": "إنشاء علامة",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "الحالي",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "تاريخ",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "تاريخ",
"decline": "Decline",
"default-avatar": "صورة شخصية افتراضية",
"delete": "حذف",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "حذف العلامة ?",
"description": "وصف",
"disambiguateMultiLabelPopup-title": "تحديد الإجراء على العلامة",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "تغيير تاريخ البدء",
"editCardDueDatePopup-title": "تغيير تاريخ الاستحقاق",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "تعديل العلامة",
"editNotificationPopup-title": "تصحيح الإشعار",
@@ -366,6 +386,7 @@
"title": "عنوان",
"tracking": "تتبع",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "إلغاء تعيين العضو",
"unsaved-description": "لديك وصف غير محفوظ",
"unwatch": "غير مُشاهد",
@@ -430,6 +451,7 @@
"hours": "الساعات",
"minutes": "الدقائق",
"seconds": "الثواني",
+ "show-field-on-card": "Show this field on card",
"yes": "نعم",
"no": "لا",
"accounts": "الحسابات",
diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json
index 26fea252..39cf7a47 100644
--- a/i18n/bg.i18n.json
+++ b/i18n/bg.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "Коментира в __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "прикачи %s към %s",
"activity-created": "създаде %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "изключи %s от %s",
"activity-imported": "импортира %s в/във %s от %s",
"activity-imported-board": "импортира %s от %s",
@@ -111,6 +113,7 @@
"card-due-on": "Готова за",
"card-spent": "Изработено време",
"card-edit-attachments": "Промени прикачените файлове",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Промени етикетите",
"card-edit-members": "Промени членовете",
"card-labels-title": "Променете етикетите за тази карта",
@@ -118,6 +121,8 @@
"card-start": "Начало",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Желаете да изтриете картата?",
"cardDetailsActionsPopup-title": "Опции",
"cardLabelsPopup-title": "Етикети",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Дата",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Дата",
"decline": "Decline",
"default-avatar": "Основен аватар",
"delete": "Изтрий",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Желаете да изтриете етикета?",
"description": "Описание",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Промени началната дата",
"editCardDueDatePopup-title": "Промени датата за готовност",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Промени изработеното време",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Промени известията",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Следене",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Спри наблюдаването",
@@ -430,6 +451,7 @@
"hours": "часа",
"minutes": "минути",
"seconds": "секунди",
+ "show-field-on-card": "Show this field on card",
"yes": "Да",
"no": "Не",
"accounts": "Профили",
diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json
index 817615bf..7f2c7479 100644
--- a/i18n/br.i18n.json
+++ b/i18n/br.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "%s liammet ouzh %s",
"activity-created": "%s krouet",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "%s enporzhiet eus %s da %s",
"activity-imported-board": "%s enporzhiet da %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Diverkañ ar gartenn ?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Diverkañ",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json
index 02e07af8..6d49f9fc 100644
--- a/i18n/ca.i18n.json
+++ b/i18n/ca.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "comentat a __card__: __comment__",
"act-createBoard": "creat __board__",
"act-createCard": "afegit/da __card__ a __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "afegit/da __list__ a __board__",
"act-addBoardMember": "afegit/da __member__ a __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "ha adjuntat %s a %s",
"activity-created": "ha creat %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "ha exclòs %s de %s",
"activity-imported": "importat %s dins %s des de %s",
"activity-imported-board": "importat %s des de %s",
@@ -111,6 +113,7 @@
"card-due-on": "Finalitza a",
"card-spent": "Temps Dedicat",
"card-edit-attachments": "Edita arxius adjunts",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edita etiquetes",
"card-edit-members": "Edita membres",
"card-labels-title": "Canvia les etiquetes de la fitxa",
@@ -118,6 +121,8 @@
"card-start": "Comença",
"card-start-on": "Comença a",
"cardAttachmentsPopup-title": "Adjunta des de",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Esborrar fitxa?",
"cardDetailsActionsPopup-title": "Accions de fitxes",
"cardLabelsPopup-title": "Etiquetes",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Crea tauler",
"chooseBoardSourcePopup-title": "Importa Tauler",
"createLabelPopup-title": "Crea etiqueta",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "Actual",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Data",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Data",
"decline": "Declina",
"default-avatar": "Avatar per defecte",
"delete": "Esborra",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Esborra etiqueta",
"description": "Descripció",
"disambiguateMultiLabelPopup-title": "Desfe l'ambigüitat en les etiquetes",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Canvia data d'inici",
"editCardDueDatePopup-title": "Canvia data de finalització",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Canvia temps dedicat",
"editLabelPopup-title": "Canvia etiqueta",
"editNotificationPopup-title": "Edita la notificació",
@@ -366,6 +386,7 @@
"title": "Títol",
"tracking": "En seguiment",
"tracking-info": "Seràs notificat per cada canvi a aquelles fitxes de les que n'eres creador o membre",
+ "type": "Type",
"unassign-member": "Desassignar membre",
"unsaved-description": "Tens una descripció sense desar.",
"unwatch": "Suprimeix observació",
@@ -430,6 +451,7 @@
"hours": "hores",
"minutes": "minuts",
"seconds": "segons",
+ "show-field-on-card": "Show this field on card",
"yes": "Si",
"no": "No",
"accounts": "Comptes",
diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json
index 09c6f4e6..46d0cb70 100644
--- a/i18n/cs.i18n.json
+++ b/i18n/cs.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "komentář k __card__: __comment__",
"act-createBoard": "přidání __board__",
"act-createCard": "přidání __card__ do __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "přidání __list__ do __board__",
"act-addBoardMember": "přidání __member__ do __board__",
"act-archivedBoard": "__board__ bylo přesunuto do koše",
@@ -30,6 +31,7 @@
"activity-archived": "%s bylo přesunuto do koše",
"activity-attached": "přiloženo %s k %s",
"activity-created": "%s vytvořeno",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "%s vyjmuto z %s",
"activity-imported": "importován %s do %s z %s",
"activity-imported-board": "importován %s z %s",
@@ -111,6 +113,7 @@
"card-due-on": "Do",
"card-spent": "Strávený čas",
"card-edit-attachments": "Upravit přílohy",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Upravit štítky",
"card-edit-members": "Upravit členy",
"card-labels-title": "Změnit štítky karty.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Začít dne",
"cardAttachmentsPopup-title": "Přiložit formulář",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Smazat kartu?",
"cardDetailsActionsPopup-title": "Akce karty",
"cardLabelsPopup-title": "Štítky",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Vytvořit tablo",
"chooseBoardSourcePopup-title": "Importovat tablo",
"createLabelPopup-title": "Vytvořit štítek",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "Aktuální",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Datum",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Datum",
"decline": "Zamítnout",
"default-avatar": "Výchozí avatar",
"delete": "Smazat",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Smazat štítek?",
"description": "Popis",
"disambiguateMultiLabelPopup-title": "Dvojznačný štítek akce",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Mírný WIP limit",
"editCardStartDatePopup-title": "Změnit datum startu úkolu",
"editCardDueDatePopup-title": "Změnit datum dokončení úkolu",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Změnit strávený čas",
"editLabelPopup-title": "Změnit štítek",
"editNotificationPopup-title": "Změnit notifikace",
@@ -366,6 +386,7 @@
"title": "Název",
"tracking": "Pozorující",
"tracking-info": "Budete informováni o všech změnách v kartách, u kterých jste tvůrce nebo člen.",
+ "type": "Type",
"unassign-member": "Vyřadit člena",
"unsaved-description": "Popis neni uložen.",
"unwatch": "Přestat sledovat",
@@ -430,6 +451,7 @@
"hours": "hodin",
"minutes": "minut",
"seconds": "sekund",
+ "show-field-on-card": "Show this field on card",
"yes": "Ano",
"no": "Ne",
"accounts": "Účty",
diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json
index ee508a2c..a823daf2 100644
--- a/i18n/de.i18n.json
+++ b/i18n/de.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "hat __card__ kommentiert: __comment__",
"act-createBoard": "hat __board__ erstellt",
"act-createCard": "hat __card__ zu __list__ hinzugefügt",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "hat __list__ zu __board__ hinzugefügt",
"act-addBoardMember": "hat __member__ zu __board__ hinzugefügt",
"act-archivedBoard": "__board__ in den Papierkorb verschoben",
@@ -30,6 +31,7 @@
"activity-archived": "%s in den Papierkorb verschoben",
"activity-attached": "hat %s an %s angehängt",
"activity-created": "hat %s erstellt",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "hat %s von %s ausgeschlossen",
"activity-imported": "hat %s in %s von %s importiert",
"activity-imported-board": "hat %s von %s importiert",
@@ -111,6 +113,7 @@
"card-due-on": "Fällig am",
"card-spent": "Aufgewendete Zeit",
"card-edit-attachments": "Anhänge ändern",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Labels ändern",
"card-edit-members": "Mitglieder ändern",
"card-labels-title": "Labels für diese Karte ändern.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Start am",
"cardAttachmentsPopup-title": "Anhängen von",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Karte löschen?",
"cardDetailsActionsPopup-title": "Kartenaktionen",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Board erstellen",
"chooseBoardSourcePopup-title": "Board importieren",
"createLabelPopup-title": "Label erstellen",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "aktuell",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Datum",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Datum",
"decline": "Ablehnen",
"default-avatar": "Standard Profilbild",
"delete": "Löschen",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Label löschen?",
"description": "Beschreibung",
"disambiguateMultiLabelPopup-title": "Labels vereinheitlichen",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP-Limit",
"editCardStartDatePopup-title": "Startdatum ändern",
"editCardDueDatePopup-title": "Fälligkeitsdatum ändern",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Aufgewendete Zeit ändern",
"editLabelPopup-title": "Label ändern",
"editNotificationPopup-title": "Benachrichtigung ändern",
@@ -366,6 +386,7 @@
"title": "Titel",
"tracking": "Folgen",
"tracking-info": "Sie werden über alle Änderungen an Karten benachrichtigt, an denen Sie als Ersteller oder Mitglied beteiligt sind.",
+ "type": "Type",
"unassign-member": "Mitglied entfernen",
"unsaved-description": "Sie haben eine nicht gespeicherte Änderung.",
"unwatch": "Beobachtung entfernen",
@@ -430,6 +451,7 @@
"hours": "Stunden",
"minutes": "Minuten",
"seconds": "Sekunden",
+ "show-field-on-card": "Show this field on card",
"yes": "Ja",
"no": "Nein",
"accounts": "Konten",
diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json
index 0befbe1f..09b8fda7 100644
--- a/i18n/el.i18n.json
+++ b/i18n/el.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Έως τις",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Διαγραφή Κάρτας;",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Ετικέτες",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Ημερομηνία",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Ημερομηνία",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Διαγραφή",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Τίτλος",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "ώρες",
"minutes": "λεπτά",
"seconds": "δευτερόλεπτα",
+ "show-field-on-card": "Show this field on card",
"yes": "Ναι",
"no": "Όχι",
"accounts": "Λογαριασμοί",
diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json
index d9b4c0f9..8f8f5c4e 100644
--- a/i18n/en-GB.i18n.json
+++ b/i18n/en-GB.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 6e7d5526..6006a078 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json
index 5b783648..177c2270 100644
--- a/i18n/eo.i18n.json
+++ b/i18n/eo.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "Kreiis __board__",
"act-createCard": "Aldonis __card__ al __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "Aldonis __card__ al __board__",
"act-addBoardMember": "Aldonis __member__ al __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "Kreiis %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Redakti etikedojn",
"card-edit-members": "Redakti membrojn",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Komenco",
"card-start-on": "Komencas je la",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Etikedoj",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Krei tavolon",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Dato",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Dato",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Redakti komencdaton",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Ŝanĝi etikedon",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Titolo",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json
index d450d000..6e410413 100644
--- a/i18n/es-AR.i18n.json
+++ b/i18n/es-AR.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "comentado en __card__: __comment__",
"act-createBoard": "__board__ creado",
"act-createCard": "agregada __card__ a __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "agregada __list__ a __board__",
"act-addBoardMember": "agregado __member__ a __board__",
"act-archivedBoard": "__board__ movido a Papelera de Reciclaje",
@@ -30,6 +31,7 @@
"activity-archived": "%s movido a Papelera de Reciclaje",
"activity-attached": "adjuntadas %s a %s",
"activity-created": "creadas %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluidas %s de %s",
"activity-imported": "importadas %s en %s de %s",
"activity-imported-board": "importadas %s de %s",
@@ -111,6 +113,7 @@
"card-due-on": "Vence en",
"card-spent": "Tiempo Empleado",
"card-edit-attachments": "Editar adjuntos",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Editar etiquetas",
"card-edit-members": "Editar miembros",
"card-labels-title": "Cambiar las etiquetas de la tarjeta.",
@@ -118,6 +121,8 @@
"card-start": "Empieza",
"card-start-on": "Empieza el",
"cardAttachmentsPopup-title": "Adjuntar De",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "¿Borrar Tarjeta?",
"cardDetailsActionsPopup-title": "Acciones de la Tarjeta",
"cardLabelsPopup-title": "Etiquetas",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Crear Tablero",
"chooseBoardSourcePopup-title": "Importar tablero",
"createLabelPopup-title": "Crear Etiqueta",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "actual",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Fecha",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Fecha",
"decline": "Rechazar",
"default-avatar": "Avatar por defecto",
"delete": "Borrar",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "¿Borrar Etiqueta?",
"description": "Descripción",
"disambiguateMultiLabelPopup-title": "Desambiguación de Acción de Etiqueta",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Límite TEP suave",
"editCardStartDatePopup-title": "Cambiar fecha de inicio",
"editCardDueDatePopup-title": "Cambiar fecha de vencimiento",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Cambiar tiempo empleado",
"editLabelPopup-title": "Cambiar Etiqueta",
"editNotificationPopup-title": "Editar Notificación",
@@ -366,6 +386,7 @@
"title": "Título",
"tracking": "Seguimiento",
"tracking-info": "Serás notificado de cualquier cambio a aquellas tarjetas en las que seas creador o miembro.",
+ "type": "Type",
"unassign-member": "Desasignar miembro",
"unsaved-description": "Tienes una descripción sin guardar.",
"unwatch": "Dejar de seguir",
@@ -430,6 +451,7 @@
"hours": "horas",
"minutes": "minutos",
"seconds": "segundos",
+ "show-field-on-card": "Show this field on card",
"yes": "Si",
"no": "No",
"accounts": "Cuentas",
diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json
index 532c7df4..7e575d8b 100644
--- a/i18n/es.i18n.json
+++ b/i18n/es.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "ha comentado en __card__: __comment__",
"act-createBoard": "ha creado __board__",
"act-createCard": "ha añadido __card__ a __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "ha añadido __list__ a __board__",
"act-addBoardMember": "ha añadido a __member__ a __board__",
"act-archivedBoard": "__board__ se ha enviado a la papelera de reciclaje",
@@ -30,6 +31,7 @@
"activity-archived": "%s se ha enviado a la papelera de reciclaje",
"activity-attached": "ha adjuntado %s a %s",
"activity-created": "ha creado %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "ha excluido %s de %s",
"activity-imported": "ha importado %s a %s desde %s",
"activity-imported-board": "ha importado %s desde %s",
@@ -111,6 +113,7 @@
"card-due-on": "Vence el",
"card-spent": "Tiempo consumido",
"card-edit-attachments": "Editar los adjuntos",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Editar las etiquetas",
"card-edit-members": "Editar los miembros",
"card-labels-title": "Cambia las etiquetas de la tarjeta",
@@ -118,6 +121,8 @@
"card-start": "Comienza",
"card-start-on": "Comienza el",
"cardAttachmentsPopup-title": "Adjuntar desde",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "¿Eliminar la tarjeta?",
"cardDetailsActionsPopup-title": "Acciones de la tarjeta",
"cardLabelsPopup-title": "Etiquetas",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Crear tablero",
"chooseBoardSourcePopup-title": "Importar un tablero",
"createLabelPopup-title": "Crear etiqueta",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "actual",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Fecha",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Fecha",
"decline": "Declinar",
"default-avatar": "Avatar por defecto",
"delete": "Eliminar",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "¿Eliminar la etiqueta?",
"description": "Descripción",
"disambiguateMultiLabelPopup-title": "Desambiguar la acción de etiqueta",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Límite del trabajo en proceso flexible",
"editCardStartDatePopup-title": "Cambiar la fecha de comienzo",
"editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
@@ -366,6 +386,7 @@
"title": "Título",
"tracking": "Siguiendo",
"tracking-info": "Serás notificado de cualquier cambio en las tarjetas en las que participas como creador o miembro.",
+ "type": "Type",
"unassign-member": "Desvincular al miembro",
"unsaved-description": "Tienes una descripción por añadir.",
"unwatch": "Dejar de vigilar",
@@ -430,6 +451,7 @@
"hours": "horas",
"minutes": "minutos",
"seconds": "segundos",
+ "show-field-on-card": "Show this field on card",
"yes": "Sí",
"no": "No",
"accounts": "Cuentas",
diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json
index 025fddfb..7a079103 100644
--- a/i18n/eu.i18n.json
+++ b/i18n/eu.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "__card__ txartelean iruzkina: __comment__",
"act-createBoard": "__board__ sortuta",
"act-createCard": "__card__ __list__ zerrrendara gehituta",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "__list__ __board__ arbelera gehituta",
"act-addBoardMember": "__member__ __board__ arbelera gehituta",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "%s %s(e)ra erantsita",
"activity-created": "%s sortuta",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "%s %s(e)tik kanpo utzita",
"activity-imported": "%s inportatuta %s(e)ra %s(e)tik",
"activity-imported-board": "%s inportatuta %s(e)tik",
@@ -111,6 +113,7 @@
"card-due-on": "Epemuga",
"card-spent": "Erabilitako denbora",
"card-edit-attachments": "Editatu eranskinak",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Editatu etiketak",
"card-edit-members": "Editatu kideak",
"card-labels-title": "Aldatu txartelaren etiketak",
@@ -118,6 +121,8 @@
"card-start": "Hasiera",
"card-start-on": "Hasiera",
"cardAttachmentsPopup-title": "Erantsi hemendik",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Ezabatu txartela?",
"cardDetailsActionsPopup-title": "Txartel-ekintzak",
"cardLabelsPopup-title": "Etiketak",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Sortu arbela",
"chooseBoardSourcePopup-title": "Inportatu arbela",
"createLabelPopup-title": "Sortu etiketa",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "unekoa",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Data",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Data",
"decline": "Ukatu",
"default-avatar": "Lehenetsitako avatarra",
"delete": "Ezabatu",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Ezabatu etiketa?",
"description": "Deskripzioa",
"disambiguateMultiLabelPopup-title": "Argitu etiketaren ekintza",
@@ -186,6 +205,7 @@
"soft-wip-limit": "WIP muga malgua",
"editCardStartDatePopup-title": "Aldatu hasiera data",
"editCardDueDatePopup-title": "Aldatu epemuga data",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Aldatu erabilitako denbora",
"editLabelPopup-title": "Aldatu etiketa",
"editNotificationPopup-title": "Editatu jakinarazpena",
@@ -366,6 +386,7 @@
"title": "Izenburua",
"tracking": "Jarraitzen",
"tracking-info": "Sortzaile edo kide gisa parte-hartzen duzun txartelei egindako aldaketak jakinaraziko zaizkizu.",
+ "type": "Type",
"unassign-member": "Kendu kidea",
"unsaved-description": "Gorde gabeko deskripzio bat duzu",
"unwatch": "Utzi ikuskatzeari",
@@ -430,6 +451,7 @@
"hours": "ordu",
"minutes": "minutu",
"seconds": "segundo",
+ "show-field-on-card": "Show this field on card",
"yes": "Bai",
"no": "Ez",
"accounts": "Kontuak",
diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json
index cf9e062f..52f8abbf 100644
--- a/i18n/fa.i18n.json
+++ b/i18n/fa.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "درج نظر برای __card__: __comment__",
"act-createBoard": "__board__ ایجاد شد",
"act-createCard": "__card__ به __list__ اضافه شد",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "__list__ به __board__ اضافه شد",
"act-addBoardMember": "__member__ به __board__ اضافه شد",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "%s به %s پیوست شد",
"activity-created": "%s ایجاد شد",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "%s از %s مستثنی گردید",
"activity-imported": "%s از %s وارد %s شد",
"activity-imported-board": "%s از %s وارد شد",
@@ -111,6 +113,7 @@
"card-due-on": "مقتضی بر",
"card-spent": "زمان صرف شده",
"card-edit-attachments": "ویرایش ضمائم",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "ویرایش برچسب",
"card-edit-members": "ویرایش اعضا",
"card-labels-title": "تغییر برچسب کارت",
@@ -118,6 +121,8 @@
"card-start": "شروع",
"card-start-on": "شروع از",
"cardAttachmentsPopup-title": "ضمیمه از",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "آیا می خواهید کارت را حذف کنید؟",
"cardDetailsActionsPopup-title": "اعمال کارت",
"cardLabelsPopup-title": "برچسب ها",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "ایجاد تخته",
"chooseBoardSourcePopup-title": "بارگذاری تخته",
"createLabelPopup-title": "ایجاد برچسب",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "جاری",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "تاریخ",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "تاریخ",
"decline": "رد",
"default-avatar": "تصویر پیش فرض",
"delete": "حذف",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "آیا می خواهید برچسب را حذف کنید؟",
"description": "توضیحات",
"disambiguateMultiLabelPopup-title": "عمل ابهام زدایی از برچسب",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "تغییر تاریخ آغاز",
"editCardDueDatePopup-title": "تغییر تاریخ بدلیل",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "تغییر زمان صرف شده",
"editLabelPopup-title": "تغیر برچسب",
"editNotificationPopup-title": "اصلاح اعلان",
@@ -366,6 +386,7 @@
"title": "عنوان",
"tracking": "پیگردی",
"tracking-info": "شما از هرگونه تغییر در کارتهایی که بعنوان ایجاد کننده ویا عضو آن هستید، آگاه خواهید شد",
+ "type": "Type",
"unassign-member": "عدم انتصاب کاربر",
"unsaved-description": "شما توضیحات ذخیره نشده دارید.",
"unwatch": "عدم دیده بانی",
@@ -430,6 +451,7 @@
"hours": "ساعت",
"minutes": "دقیقه",
"seconds": "ثانیه",
+ "show-field-on-card": "Show this field on card",
"yes": "بله",
"no": "خیر",
"accounts": "حساب‌ها",
diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json
index a68831dc..31976b9b 100644
--- a/i18n/fi.i18n.json
+++ b/i18n/fi.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "kommentoitu __card__: __comment__",
"act-createBoard": "luotu __board__",
"act-createCard": "lisätty __card__ listalle __list__",
+ "act-createCustomField": "luo mukautettu kenttä __customField__",
"act-createList": "lisätty __list__ taululle __board__",
"act-addBoardMember": "lisätty __member__ taululle __board__",
"act-archivedBoard": "__board__ siirretty roskakoriin",
@@ -30,6 +31,7 @@
"activity-archived": "%s siirretty roskakoriin",
"activity-attached": "liitetty %s kohteeseen %s",
"activity-created": "luotu %s",
+ "activity-customfield-created": "luotu mukautettu kenttä %s",
"activity-excluded": "poistettu %s kohteesta %s",
"activity-imported": "tuotu %s kohteeseen %s lähteestä %s",
"activity-imported-board": "tuotu %s lähteestä %s",
@@ -111,6 +113,7 @@
"card-due-on": "Erääntyy",
"card-spent": "Käytetty aika",
"card-edit-attachments": "Muokkaa liitetiedostoja",
+ "card-edit-custom-fields": "Muokkaa mukautettua kenttää",
"card-edit-labels": "Muokkaa tunnisteita",
"card-edit-members": "Muokkaa jäseniä",
"card-labels-title": "Muokkaa kortin tunnisteita.",
@@ -118,6 +121,8 @@
"card-start": "Alkaa",
"card-start-on": "Alkaa",
"cardAttachmentsPopup-title": "Liitä mistä",
+ "cardCustomField-datePopup-title": "Muokkaa päivää",
+ "cardCustomFieldsPopup-title": "Muokkaa mukautettuja kenttiä",
"cardDeletePopup-title": "Poista kortti?",
"cardDetailsActionsPopup-title": "Kortti toimet",
"cardLabelsPopup-title": "Tunnisteet",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Luo taulu",
"chooseBoardSourcePopup-title": "Tuo taulu",
"createLabelPopup-title": "Luo tunniste",
+ "createCustomField": "Luo kenttä",
+ "createCustomFieldPopup-title": "Luo kenttä",
"current": "nykyinen",
+ "custom-field-delete-pop": "Tätä ei voi peruuttaa. Tämä poistaa tämän mukautetun kentän kaikista korteista ja poistaa sen historian.",
+ "custom-field-checkbox": "Valintaruutu",
+ "custom-field-date": "Päivämäärä",
+ "custom-field-dropdown": "Pudotusvalikko",
+ "custom-field-dropdown-none": "(ei mitään)",
+ "custom-field-dropdown-options": "Luettelon vaihtoehdot",
+ "custom-field-dropdown-options-placeholder": "Paina Enter lisätäksesi lisää vaihtoehtoja",
+ "custom-field-dropdown-unknown": "(tuntematon)",
+ "custom-field-number": "Numero",
+ "custom-field-text": "Teksti",
+ "custom-fields": "Mukautetut kentät",
"date": "Päivämäärä",
"decline": "Kieltäydy",
"default-avatar": "Oletus profiilikuva",
"delete": "Poista",
+ "deleteCustomFieldPopup-title": "Poista mukautettu kenttä?",
"deleteLabelPopup-title": "Poista tunniste?",
"description": "Kuvaus",
"disambiguateMultiLabelPopup-title": "Yksikäsitteistä tunniste toiminta",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Pehmeä WIP raja",
"editCardStartDatePopup-title": "Muokkaa aloituspäivää",
"editCardDueDatePopup-title": "Muokkaa eräpäivää",
+ "editCustomFieldPopup-title": "Muokkaa kenttää",
"editCardSpentTimePopup-title": "Muuta käytettyä aikaa",
"editLabelPopup-title": "Muokkaa tunnistetta",
"editNotificationPopup-title": "Muokkaa ilmoituksia",
@@ -366,6 +386,7 @@
"title": "Otsikko",
"tracking": "Ilmoitukset",
"tracking-info": "Sinulle ilmoitetaan muutoksista korteissa joihin olet osallistunut luojana tai jäsenenä.",
+ "type": "Tyyppi",
"unassign-member": "Peru jäsenvalinta",
"unsaved-description": "Sinulla on tallentamaton kuvaus.",
"unwatch": "Lopeta seuraaminen",
@@ -430,6 +451,7 @@
"hours": "tuntia",
"minutes": "minuuttia",
"seconds": "sekuntia",
+ "show-field-on-card": "Näytä tämä kenttä kortilla",
"yes": "Kyllä",
"no": "Ei",
"accounts": "Tilit",
diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json
index 23a11142..9f0e1fa2 100644
--- a/i18n/fr.i18n.json
+++ b/i18n/fr.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "a commenté __card__ : __comment__",
"act-createBoard": "a créé __board__",
"act-createCard": "a ajouté __card__ à __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "a ajouté __list__ à __board__",
"act-addBoardMember": "a ajouté __member__ à __board__",
"act-archivedBoard": "__board__ a été déplacé vers la corbeille",
@@ -30,6 +31,7 @@
"activity-archived": "%s a été déplacé vers la corbeille",
"activity-attached": "a attaché %s à %s",
"activity-created": "a créé %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "a exclu %s de %s",
"activity-imported": "a importé %s vers %s depuis %s",
"activity-imported-board": "a importé %s depuis %s",
@@ -111,6 +113,7 @@
"card-due-on": "Échéance le",
"card-spent": "Temps passé",
"card-edit-attachments": "Modifier les pièces jointes",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Modifier les étiquettes",
"card-edit-members": "Modifier les membres",
"card-labels-title": "Modifier les étiquettes de la carte.",
@@ -118,6 +121,8 @@
"card-start": "Début",
"card-start-on": "Commence le",
"cardAttachmentsPopup-title": "Joindre depuis",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Supprimer la carte ?",
"cardDetailsActionsPopup-title": "Actions sur la carte",
"cardLabelsPopup-title": "Étiquettes",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Créer un tableau",
"chooseBoardSourcePopup-title": "Importer un tableau",
"createLabelPopup-title": "Créer une étiquette",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "actuel",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Refuser",
"default-avatar": "Avatar par défaut",
"delete": "Supprimer",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Supprimer l'étiquette ?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Préciser l'action sur l'étiquette",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Limite WIP douce",
"editCardStartDatePopup-title": "Modifier la date de début",
"editCardDueDatePopup-title": "Modifier la date d'échéance",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Changer le temps passé",
"editLabelPopup-title": "Modifier l'étiquette",
"editNotificationPopup-title": "Modifier la notification",
@@ -366,6 +386,7 @@
"title": "Titre",
"tracking": "Suivi",
"tracking-info": "Vous serez notifié de toute modification concernant les cartes pour lesquelles vous êtes impliqué en tant que créateur ou membre.",
+ "type": "Type",
"unassign-member": "Retirer le membre",
"unsaved-description": "Vous avez une description non sauvegardée",
"unwatch": "Arrêter de suivre",
@@ -430,6 +451,7 @@
"hours": "heures",
"minutes": "minutes",
"seconds": "secondes",
+ "show-field-on-card": "Show this field on card",
"yes": "Oui",
"no": "Non",
"accounts": "Comptes",
diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json
index faab1d9b..6712c2c6 100644
--- a/i18n/gl.i18n.json
+++ b/i18n/gl.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Editar anexos",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Editar etiquetas",
"card-edit-members": "Editar membros",
"card-labels-title": "Cambiar as etiquetas da tarxeta.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Etiquetas",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Crear taboleiro",
"chooseBoardSourcePopup-title": "Importar taboleiro",
"createLabelPopup-title": "Crear etiqueta",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "actual",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Data",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Data",
"decline": "Rexeitar",
"default-avatar": "Avatar predeterminado",
"delete": "Eliminar",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Eliminar a etiqueta?",
"description": "Descrición",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Cambiar a data de inicio",
"editCardDueDatePopup-title": "Cambiar a data límite",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Cambiar a etiqueta",
"editNotificationPopup-title": "Editar a notificación",
@@ -366,6 +386,7 @@
"title": "Título",
"tracking": "Seguimento",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json
index b3c91549..6d9c9b5c 100644
--- a/i18n/he.i18n.json
+++ b/i18n/he.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "התקבלה תגובה על הכרטיס __card__:‏ __comment__",
"act-createBoard": "הלוח __board__ נוצר",
"act-createCard": "הכרטיס __card__ התווסף לרשימה __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "הרשימה __list__ התווספה ללוח __board__",
"act-addBoardMember": "המשתמש __member__ נוסף ללוח __board__",
"act-archivedBoard": "__board__ הועבר לסל המחזור",
@@ -30,6 +31,7 @@
"activity-archived": "%s הועבר לסל המחזור",
"activity-attached": "%s צורף ל%s",
"activity-created": "%s נוצר",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "%s לא נכלל ב%s",
"activity-imported": "%s ייובא מ%s אל %s",
"activity-imported-board": "%s ייובא מ%s",
@@ -111,6 +113,7 @@
"card-due-on": "תאריך יעד",
"card-spent": "זמן שהושקע",
"card-edit-attachments": "עריכת קבצים מצורפים",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "עריכת תוויות",
"card-edit-members": "עריכת חברים",
"card-labels-title": "שינוי תוויות לכרטיס.",
@@ -118,6 +121,8 @@
"card-start": "התחלה",
"card-start-on": "מתחיל ב־",
"cardAttachmentsPopup-title": "לצרף מ־",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "למחוק כרטיס?",
"cardDetailsActionsPopup-title": "פעולות על הכרטיס",
"cardLabelsPopup-title": "תוויות",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "יצירת לוח",
"chooseBoardSourcePopup-title": "ייבוא לוח",
"createLabelPopup-title": "יצירת תווית",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "נוכחי",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "תאריך",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "תאריך",
"decline": "סירוב",
"default-avatar": "תמונת משתמש כבררת מחדל",
"delete": "מחיקה",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "למחוק תווית?",
"description": "תיאור",
"disambiguateMultiLabelPopup-title": "הבהרת פעולת תווית",
@@ -186,6 +205,7 @@
"soft-wip-limit": "מגבלת „בעבודה” רכה",
"editCardStartDatePopup-title": "שינוי מועד התחלה",
"editCardDueDatePopup-title": "שינוי מועד סיום",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "שינוי הזמן שהושקע",
"editLabelPopup-title": "שינוי תווית",
"editNotificationPopup-title": "שינוי דיווח",
@@ -366,6 +386,7 @@
"title": "כותרת",
"tracking": "מעקב",
"tracking-info": "על כל שינוי בכרטיסים בהם הייתה לך מעורבות ברמת היצירה או כחברות תגיע אליך הודעה.",
+ "type": "Type",
"unassign-member": "ביטול הקצאת חבר",
"unsaved-description": "יש לך תיאור לא שמור.",
"unwatch": "ביטול מעקב",
@@ -430,6 +451,7 @@
"hours": "שעות",
"minutes": "דקות",
"seconds": "שניות",
+ "show-field-on-card": "Show this field on card",
"yes": "כן",
"no": "לא",
"accounts": "חשבונות",
diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json
index 94af52d1..cdec6414 100644
--- a/i18n/hu.i18n.json
+++ b/i18n/hu.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "hozzászólt a(z) __card__ kártyán: __comment__",
"act-createBoard": "létrehozta a táblát: __board__",
"act-createCard": "__card__ kártyát adott hozzá a listához: __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "__list__ listát adott hozzá a táblához: __board__",
"act-addBoardMember": "__member__ tagot hozzáadta a táblához: __board__",
"act-archivedBoard": "A __board__ tábla a lomtárba került.",
@@ -30,6 +31,7 @@
"activity-archived": "%s lomtárba helyezve",
"activity-attached": "%s mellékletet csatolt a kártyához: %s",
"activity-created": "%s létrehozva",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "%s kizárva innen: %s",
"activity-imported": "%s importálva ebbe: %s, innen: %s",
"activity-imported-board": "%s importálva innen: %s",
@@ -111,6 +113,7 @@
"card-due-on": "Esedékes ekkor",
"card-spent": "Eltöltött idő",
"card-edit-attachments": "Mellékletek szerkesztése",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Címkék szerkesztése",
"card-edit-members": "Tagok szerkesztése",
"card-labels-title": "A kártya címkéinek megváltoztatása.",
@@ -118,6 +121,8 @@
"card-start": "Kezdés",
"card-start-on": "Kezdés ekkor",
"cardAttachmentsPopup-title": "Innen csatolva",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Törli a kártyát?",
"cardDetailsActionsPopup-title": "Kártyaműveletek",
"cardLabelsPopup-title": "Címkék",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Tábla létrehozása",
"chooseBoardSourcePopup-title": "Tábla importálása",
"createLabelPopup-title": "Címke létrehozása",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "jelenlegi",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Dátum",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Dátum",
"decline": "Elutasítás",
"default-avatar": "Alapértelmezett avatár",
"delete": "Törlés",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Törli a címkét?",
"description": "Leírás",
"disambiguateMultiLabelPopup-title": "Címkeművelet egyértelműsítése",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Gyenge WIP korlát",
"editCardStartDatePopup-title": "Kezdődátum megváltoztatása",
"editCardDueDatePopup-title": "Esedékesség dátumának megváltoztatása",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Eltöltött idő megváltoztatása",
"editLabelPopup-title": "Címke megváltoztatása",
"editNotificationPopup-title": "Értesítés szerkesztése",
@@ -366,6 +386,7 @@
"title": "Cím",
"tracking": "Követés",
"tracking-info": "Értesítve lesz az összes olyan kártya változásáról, amelyen létrehozóként vagy tagként vesz részt.",
+ "type": "Type",
"unassign-member": "Tag hozzárendelésének megszüntetése",
"unsaved-description": "Van egy mentetlen leírása.",
"unwatch": "Megfigyelés megszüntetése",
@@ -430,6 +451,7 @@
"hours": "óra",
"minutes": "perc",
"seconds": "másodperc",
+ "show-field-on-card": "Show this field on card",
"yes": "Igen",
"no": "Nem",
"accounts": "Fiókok",
diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json
index 8c06d36d..44c20184 100644
--- a/i18n/hy.i18n.json
+++ b/i18n/hy.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "մեկնաբանել է __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json
index 2bc60852..5a1c6683 100644
--- a/i18n/id.i18n.json
+++ b/i18n/id.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "Dikomentari di__kartu__:__comment__",
"act-createBoard": "Panel__dibuat__",
"act-createCard": "Kartu__dilampirkan__ke__Daftar",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "Daftar__ditambahkan__ke__Panel",
"act-addBoardMember": "Partisipan__ditambahkan__ke__Kartu",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "dilampirkan %s ke %s",
"activity-created": "dibuat %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "tidak termasuk %s dari %s",
"activity-imported": "diimpor %s kedalam %s dari %s",
"activity-imported-board": "diimpor %s dari %s",
@@ -111,6 +113,7 @@
"card-due-on": "Jatuh Tempo pada",
"card-spent": "Spent Time",
"card-edit-attachments": "Sunting lampiran",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Sunting label",
"card-edit-members": "Sunting anggota",
"card-labels-title": "Ubah label kartu",
@@ -118,6 +121,8 @@
"card-start": "Mulai",
"card-start-on": "Mulai pada",
"cardAttachmentsPopup-title": "Lampirkan dari",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Hapus kartu",
"cardDetailsActionsPopup-title": "Aksi Kartu",
"cardLabelsPopup-title": "Daftar Label",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Buat Panel",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Buat Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "sekarang",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Tanggal",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Tanggal",
"decline": "Tolak",
"default-avatar": "Avatar standar",
"delete": "Hapus",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Hapus label?",
"description": "Deskripsi",
"disambiguateMultiLabelPopup-title": "Abaikan label Aksi",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Ubah tanggal mulai",
"editCardDueDatePopup-title": "Ubah tanggal selesai",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Ubah Label",
"editNotificationPopup-title": "Sunting Pemberitahuan",
@@ -366,6 +386,7 @@
"title": "Judul",
"tracking": "Pelacakan",
"tracking-info": "Anda akan dinotifikasi semua perubahan di kartu tersebut diaman anda terlibat sebagai creator atau partisipan",
+ "type": "Type",
"unassign-member": "Tidak sertakan partisipan",
"unsaved-description": "Anda memiliki deskripsi yang belum disimpan.",
"unwatch": "Tidak mengamati",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json
index f7746d5c..6c0a259d 100644
--- a/i18n/ig.i18n.json
+++ b/i18n/ig.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Bido",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Aha",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "elekere",
"minutes": "nkeji",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Ee",
"no": "Mba",
"accounts": "Accounts",
diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json
index 36879924..905b8e40 100644
--- a/i18n/it.i18n.json
+++ b/i18n/it.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "ha commentato su __card__: __comment__",
"act-createBoard": "ha creato __board__",
"act-createCard": "ha aggiunto __card__ a __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "ha aggiunto __list__ a __board__",
"act-addBoardMember": "ha aggiunto __member__ a __board__",
"act-archivedBoard": "__board__ spostata nel cestino",
@@ -30,6 +31,7 @@
"activity-archived": "%s spostato nel cestino",
"activity-attached": "allegato %s a %s",
"activity-created": "creato %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "escluso %s da %s",
"activity-imported": "importato %s in %s da %s",
"activity-imported-board": "importato %s da %s",
@@ -111,6 +113,7 @@
"card-due-on": "Scade",
"card-spent": "Tempo trascorso",
"card-edit-attachments": "Modifica allegati",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Modifica etichette",
"card-edit-members": "Modifica membri",
"card-labels-title": "Cambia le etichette per questa scheda.",
@@ -118,6 +121,8 @@
"card-start": "Inizio",
"card-start-on": "Inizia",
"cardAttachmentsPopup-title": "Allega da",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Elimina scheda?",
"cardDetailsActionsPopup-title": "Azioni scheda",
"cardLabelsPopup-title": "Etichette",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Crea bacheca",
"chooseBoardSourcePopup-title": "Importa bacheca",
"createLabelPopup-title": "Crea etichetta",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "corrente",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Data",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Data",
"decline": "Declina",
"default-avatar": "Avatar predefinito",
"delete": "Elimina",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Eliminare etichetta?",
"description": "Descrizione",
"disambiguateMultiLabelPopup-title": "Disambiguare l'azione Etichetta",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Limite Work in progress soft",
"editCardStartDatePopup-title": "Cambia data di inizio",
"editCardDueDatePopup-title": "Cambia data di scadenza",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Cambia tempo trascorso",
"editLabelPopup-title": "Cambia etichetta",
"editNotificationPopup-title": "Modifica notifiche",
@@ -366,6 +386,7 @@
"title": "Titolo",
"tracking": "Monitoraggio",
"tracking-info": "Sarai notificato per tutte le modifiche alle schede delle quali sei creatore o membro.",
+ "type": "Type",
"unassign-member": "Rimuovi membro",
"unsaved-description": "Hai una descrizione non salvata",
"unwatch": "Non seguire",
@@ -430,6 +451,7 @@
"hours": "ore",
"minutes": "minuti",
"seconds": "secondi",
+ "show-field-on-card": "Show this field on card",
"yes": "Sì",
"no": "No",
"accounts": "Profili",
diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json
index c55be771..85094475 100644
--- a/i18n/ja.i18n.json
+++ b/i18n/ja.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "__card__: __comment__ をコメントしました",
"act-createBoard": "__board__ を作成しました",
"act-createCard": "__list__ に __card__ を追加しました",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "__board__ に __list__ を追加しました",
"act-addBoardMember": "__board__ に __member__ を追加しました",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "%s を %s に添付しました",
"activity-created": "%s を作成しました",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "%s を %s から除外しました",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "期限日",
"card-spent": "Spent Time",
"card-edit-attachments": "添付ファイルの編集",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "ラベルの編集",
"card-edit-members": "メンバーの編集",
"card-labels-title": "カードのラベルを変更する",
@@ -118,6 +121,8 @@
"card-start": "開始",
"card-start-on": "開始日",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "カードを削除しますか?",
"cardDetailsActionsPopup-title": "カード操作",
"cardLabelsPopup-title": "ラベル",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "ボードの作成",
"chooseBoardSourcePopup-title": "ボードをインポート",
"createLabelPopup-title": "ラベルの作成",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "現在",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "日付",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "日付",
"decline": "拒否",
"default-avatar": "デフォルトのアバター",
"delete": "削除",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "ラベルを削除しますか?",
"description": "詳細",
"disambiguateMultiLabelPopup-title": "不正なラベル操作",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "開始日の変更",
"editCardDueDatePopup-title": "期限の変更",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "ラベルの変更",
"editNotificationPopup-title": "通知の変更",
@@ -366,6 +386,7 @@
"title": "タイトル",
"tracking": "トラッキング",
"tracking-info": "これらのカードへの変更が通知されるようになります。",
+ "type": "Type",
"unassign-member": "未登録のメンバー",
"unsaved-description": "未保存の変更があります。",
"unwatch": "アンウォッチ",
@@ -430,6 +451,7 @@
"hours": "時",
"minutes": "分",
"seconds": "秒",
+ "show-field-on-card": "Show this field on card",
"yes": "はい",
"no": "いいえ",
"accounts": "アカウント",
diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json
index 35d2b447..5d28430b 100644
--- a/i18n/ko.i18n.json
+++ b/i18n/ko.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "__card__에 내용 추가 : __comment__",
"act-createBoard": "__board__ 생성",
"act-createCard": "__list__에 __card__ 추가",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "__board__에 __list__ 추가",
"act-addBoardMember": "__board__에 __member__ 추가",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "%s를 %s에 첨부함",
"activity-created": "%s 생성됨",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "%s를 %s에서 제외함",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "종료일",
"card-spent": "Spent Time",
"card-edit-attachments": "첨부 파일 수정",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "라벨 수정",
"card-edit-members": "멤버 수정",
"card-labels-title": "카드의 라벨 변경.",
@@ -118,6 +121,8 @@
"card-start": "시작일",
"card-start-on": "시작일",
"cardAttachmentsPopup-title": "첨부 파일",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "카드를 삭제합니까?",
"cardDetailsActionsPopup-title": "카드 액션",
"cardLabelsPopup-title": "라벨",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "보드 생성",
"chooseBoardSourcePopup-title": "보드 가져오기",
"createLabelPopup-title": "라벨 생성",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "경향",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "날짜",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "날짜",
"decline": "쇠퇴",
"default-avatar": "기본 아바타",
"delete": "삭제",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "라벨을 삭제합니까?",
"description": "설명",
"disambiguateMultiLabelPopup-title": "라벨 액션의 모호성 제거",
@@ -186,6 +205,7 @@
"soft-wip-limit": "원만한 WIP 제한",
"editCardStartDatePopup-title": "시작일 변경",
"editCardDueDatePopup-title": "종료일 변경",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "라벨 변경",
"editNotificationPopup-title": "알림 수정",
@@ -366,6 +386,7 @@
"title": "제목",
"tracking": "추적",
"tracking-info": "보드 생성자 또는 멤버로 참여하는 모든 카드에 대한 변경사항 알림 받음",
+ "type": "Type",
"unassign-member": "멤버 할당 해제",
"unsaved-description": "저장되지 않은 설명이 있습니다.",
"unwatch": "감시 해제",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json
index 82bfa1cc..9dbdfaa2 100644
--- a/i18n/lv.i18n.json
+++ b/i18n/lv.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "komentēja __card__: __comment__",
"act-createBoard": "izveidoja __board__",
"act-createCard": "pievienoja __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "pievienoja __list__ to __board__",
"act-addBoardMember": "pievienoja __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "pievienoja %s pie %s",
"activity-created": "izveidoja%s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "izslēdza%s no%s",
"activity-imported": "importēja %s iekšā%s no%s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json
index 13e96ed6..04f11c2c 100644
--- a/i18n/mn.i18n.json
+++ b/i18n/mn.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Самбар үүсгэх",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Шошго үүсгэх",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Мэдэгдэл тохируулах",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json
index 3b30ada9..8fa570ac 100644
--- a/i18n/nb.i18n.json
+++ b/i18n/nb.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "kommenterte til __card__: __comment__",
"act-createBoard": "opprettet __board__",
"act-createCard": "la __card__ til __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "la __list__ til __board__",
"act-addBoardMember": "la __member__ til __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "la %s til %s",
"activity-created": "opprettet %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "ekskluderte %s fra %s",
"activity-imported": "importerte %s til %s fra %s",
"activity-imported-board": "importerte %s fra %s",
@@ -111,6 +113,7 @@
"card-due-on": "Frist til",
"card-spent": "Spent Time",
"card-edit-attachments": "Rediger vedlegg",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Rediger etiketter",
"card-edit-members": "Endre medlemmer",
"card-labels-title": "Endre etiketter for kortet.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starter på",
"cardAttachmentsPopup-title": "Legg ved fra",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Slett kort?",
"cardDetailsActionsPopup-title": "Kort-handlinger",
"cardLabelsPopup-title": "Etiketter",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json
index 0696409d..e062d3de 100644
--- a/i18n/nl.i18n.json
+++ b/i18n/nl.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "gereageerd op __card__:__comment__",
"act-createBoard": "aangemaakte __bord__",
"act-createCard": "toegevoegd __kaart__ aan __lijst__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "toegevoegd __lijst__ aan __bord__",
"act-addBoardMember": "__member__ aan __board__ toegevoegd",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "%s bijgevoegd aan %s",
"activity-created": "%s aangemaakt",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "%s uitgesloten van %s",
"activity-imported": "%s geimporteerd in %s van %s",
"activity-imported-board": "%s geimporteerd van %s",
@@ -111,6 +113,7 @@
"card-due-on": "Deadline: ",
"card-spent": "gespendeerde tijd",
"card-edit-attachments": "Wijzig bijlagen",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Wijzig labels",
"card-edit-members": "Wijzig leden",
"card-labels-title": "Wijzig de labels vam de kaart.",
@@ -118,6 +121,8 @@
"card-start": "Begin",
"card-start-on": "Begint op",
"cardAttachmentsPopup-title": "Voeg bestand toe vanuit",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Kaart verwijderen?",
"cardDetailsActionsPopup-title": "Kaart actie ondernemen",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Bord aanmaken",
"chooseBoardSourcePopup-title": "Importeer bord",
"createLabelPopup-title": "Label aanmaken",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "Huidige",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Datum",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Datum",
"decline": "Weigeren",
"default-avatar": "Standaard avatar",
"delete": "Verwijderen",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Verwijder label?",
"description": "Beschrijving",
"disambiguateMultiLabelPopup-title": "Disambigueer Label Actie",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Zachte WIP limiet",
"editCardStartDatePopup-title": "Wijzig start datum",
"editCardDueDatePopup-title": "Wijzig deadline",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Verander gespendeerde tijd",
"editLabelPopup-title": "Wijzig label",
"editNotificationPopup-title": "Wijzig notificatie",
@@ -366,6 +386,7 @@
"title": "Titel",
"tracking": "Volgen",
"tracking-info": "Je wordt op de hoogte gesteld als er veranderingen zijn aan de kaarten waar je lid of maker van bent.",
+ "type": "Type",
"unassign-member": "Lid ontkennen",
"unsaved-description": "Je hebt een niet opgeslagen beschrijving.",
"unwatch": "Niet bekijken",
@@ -430,6 +451,7 @@
"hours": "uren",
"minutes": "minuten",
"seconds": "seconden",
+ "show-field-on-card": "Show this field on card",
"yes": "Ja",
"no": "Nee",
"accounts": "Accounts",
diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json
index 99c7ae3c..fa6fa060 100644
--- a/i18n/pl.i18n.json
+++ b/i18n/pl.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s przeniesiono do Kosza",
"activity-attached": "załączono %s z %s",
"activity-created": "utworzono %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "wyłączono %s z %s",
"activity-imported": "zaimportowano %s to %s z %s",
"activity-imported-board": "zaimportowano %s z %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edytuj załączniki",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edytuj etykiety",
"card-edit-members": "Edytuj członków",
"card-labels-title": "Zmień etykiety karty",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Załącz z",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Usunąć kartę?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Etykiety",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Utwórz tablicę",
"chooseBoardSourcePopup-title": "Import tablicy",
"createLabelPopup-title": "Utwórz etykietę",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "obecny",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Data",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Data",
"decline": "Odrzuć",
"default-avatar": "Domyślny avatar",
"delete": "Usuń",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Usunąć etykietę?",
"description": "Opis",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Zmień etykietę",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Tytuł",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Nieprzypisany członek",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "godzin",
"minutes": "minut",
"seconds": "sekund",
+ "show-field-on-card": "Show this field on card",
"yes": "Tak",
"no": "Nie",
"accounts": "Konto",
diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json
index 613ae44b..dbebd048 100644
--- a/i18n/pt-BR.i18n.json
+++ b/i18n/pt-BR.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "comentou em __card__: __comment__",
"act-createBoard": "criou __board__",
"act-createCard": "__card__ adicionado à __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "__list__ adicionada à __board__",
"act-addBoardMember": "__member__ adicionado à __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "anexou %s a %s",
"activity-created": "criou %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluiu %s de %s",
"activity-imported": "importado %s em %s de %s",
"activity-imported-board": "importado %s de %s",
@@ -111,6 +113,7 @@
"card-due-on": "Finaliza em",
"card-spent": "Tempo Gasto",
"card-edit-attachments": "Editar anexos",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Editar etiquetas",
"card-edit-members": "Editar membros",
"card-labels-title": "Alterar etiquetas do cartão.",
@@ -118,6 +121,8 @@
"card-start": "Data início",
"card-start-on": "Começa em",
"cardAttachmentsPopup-title": "Anexar a partir de",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Excluir Cartão?",
"cardDetailsActionsPopup-title": "Ações do cartão",
"cardLabelsPopup-title": "Etiquetas",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Criar Quadro",
"chooseBoardSourcePopup-title": "Importar quadro",
"createLabelPopup-title": "Criar Etiqueta",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "atual",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Data",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Data",
"decline": "Rejeitar",
"default-avatar": "Avatar padrão",
"delete": "Excluir",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Excluir Etiqueta?",
"description": "Descrição",
"disambiguateMultiLabelPopup-title": "Desambiguar ações de etiquetas",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Limite de WIP",
"editCardStartDatePopup-title": "Altera data de início",
"editCardDueDatePopup-title": "Altera data fim",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Editar tempo gasto",
"editLabelPopup-title": "Alterar Etiqueta",
"editNotificationPopup-title": "Editar Notificações",
@@ -366,6 +386,7 @@
"title": "Título",
"tracking": "Tracking",
"tracking-info": "Você será notificado se houver qualquer alteração em cards em que você é o criador ou membro",
+ "type": "Type",
"unassign-member": "Membro não associado",
"unsaved-description": "Você possui uma descrição não salva",
"unwatch": "Deixar de observar",
@@ -430,6 +451,7 @@
"hours": "horas",
"minutes": "minutos",
"seconds": "segundos",
+ "show-field-on-card": "Show this field on card",
"yes": "Sim",
"no": "Não",
"accounts": "Contas",
diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json
index b78bbca8..6555af77 100644
--- a/i18n/pt.i18n.json
+++ b/i18n/pt.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "Criado %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Etiquetas",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "Não",
"accounts": "Contas",
diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json
index 014ad3d4..cca2865f 100644
--- a/i18n/ro.i18n.json
+++ b/i18n/ro.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Titlu",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json
index 447e8f0d..456328e2 100644
--- a/i18n/ru.i18n.json
+++ b/i18n/ru.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "прокомментировал __card__: __comment__",
"act-createBoard": "создал __board__",
"act-createCard": "добавил __card__ в __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "добавил __list__ для __board__",
"act-addBoardMember": "добавил __member__ в __board__",
"act-archivedBoard": "Доска __board__ перемещена в Корзину",
@@ -30,6 +31,7 @@
"activity-archived": "%s перемещено в Корзину",
"activity-attached": "прикрепил %s к %s",
"activity-created": "создал %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "исключил %s из %s",
"activity-imported": "импортировал %s в %s из %s",
"activity-imported-board": "импортировал %s из %s",
@@ -111,6 +113,7 @@
"card-due-on": "Выполнить до",
"card-spent": "Затраченное время",
"card-edit-attachments": "Изменить вложения",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Изменить метку",
"card-edit-members": "Изменить участников",
"card-labels-title": "Изменить метки для этой карточки.",
@@ -118,6 +121,8 @@
"card-start": "Дата начала",
"card-start-on": "Начнётся с",
"cardAttachmentsPopup-title": "Прикрепить из",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Удалить карточку?",
"cardDetailsActionsPopup-title": "Действия в карточке",
"cardLabelsPopup-title": "Метки",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Создать доску",
"chooseBoardSourcePopup-title": "Импортировать доску",
"createLabelPopup-title": "Создать метку",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "текущий",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Дата",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Дата",
"decline": "Отклонить",
"default-avatar": "Аватар по умолчанию",
"delete": "Удалить",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Удалить метку?",
"description": "Описание",
"disambiguateMultiLabelPopup-title": "Разрешить конфликт меток",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Мягкий лимит на кол-во задач",
"editCardStartDatePopup-title": "Изменить дату начала",
"editCardDueDatePopup-title": "Изменить дату выполнения",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Изменить затраченное время",
"editLabelPopup-title": "Изменить метки",
"editNotificationPopup-title": "Редактировать уведомления",
@@ -366,6 +386,7 @@
"title": "Название",
"tracking": "Отслеживание",
"tracking-info": "Вы будете уведомлены о любых изменениях в тех карточках, в которых вы являетесь создателем или участником.",
+ "type": "Type",
"unassign-member": "Отменить назначение участника",
"unsaved-description": "У вас есть несохраненное описание.",
"unwatch": "Перестать следить",
@@ -430,6 +451,7 @@
"hours": "часы",
"minutes": "минуты",
"seconds": "секунды",
+ "show-field-on-card": "Show this field on card",
"yes": "Да",
"no": "Нет",
"accounts": "Учетные записи",
diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json
index 14475751..bebe6760 100644
--- a/i18n/sr.i18n.json
+++ b/i18n/sr.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "prikačio %s u %s",
"activity-created": "kreirao %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "izuzmi %s iz %s",
"activity-imported": "uvezao %s u %s iz %s",
"activity-imported-board": "uvezao %s iz %s",
@@ -111,6 +113,7 @@
"card-due-on": "Završava se",
"card-spent": "Spent Time",
"card-edit-attachments": "Uredi priloge",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Uredi natpise",
"card-edit-members": "Uredi članove",
"card-labels-title": "Promeni natpis na kartici.",
@@ -118,6 +121,8 @@
"card-start": "Početak",
"card-start-on": "Počinje",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Datum",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Datum",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Izmeni početni datum",
"editCardDueDatePopup-title": "Izmeni krajnji datum",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Izmeni notifikaciju",
@@ -366,6 +386,7 @@
"title": "Naslov",
"tracking": "Praćenje",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "Imaš nesnimljen opis.",
"unwatch": "Ne posmatraj",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json
index 4cc2d987..3df78262 100644
--- a/i18n/sv.i18n.json
+++ b/i18n/sv.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "kommenterade __card__: __comment__",
"act-createBoard": "skapade __board__",
"act-createCard": "lade till __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "lade till __list__ to __board__",
"act-addBoardMember": "lade till __member__ to __board__",
"act-archivedBoard": "__board__ flyttad till papperskorgen",
@@ -30,6 +31,7 @@
"activity-archived": "%s flyttad till papperskorgen",
"activity-attached": "bifogade %s to %s",
"activity-created": "skapade %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "exkluderade %s från %s",
"activity-imported": "importerade %s till %s från %s",
"activity-imported-board": "importerade %s från %s",
@@ -111,6 +113,7 @@
"card-due-on": "Förfaller på",
"card-spent": "Spenderad tid",
"card-edit-attachments": "Redigera bilaga",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Redigera etiketter",
"card-edit-members": "Redigera medlemmar",
"card-labels-title": "Ändra etiketter för kortet.",
@@ -118,6 +121,8 @@
"card-start": "Börja",
"card-start-on": "Börja med",
"cardAttachmentsPopup-title": "Bifoga från",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Ta bort kort?",
"cardDetailsActionsPopup-title": "Kortåtgärder",
"cardLabelsPopup-title": "Etiketter",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Skapa anslagstavla",
"chooseBoardSourcePopup-title": "Importera anslagstavla",
"createLabelPopup-title": "Skapa etikett",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "aktuell",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Datum",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Datum",
"decline": "Nedgång",
"default-avatar": "Standard avatar",
"delete": "Ta bort",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Ta bort etikett?",
"description": "Beskrivning",
"disambiguateMultiLabelPopup-title": "Otvetydig etikettåtgärd",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Mjuk WIP-gräns",
"editCardStartDatePopup-title": "Ändra startdatum",
"editCardDueDatePopup-title": "Ändra förfallodatum",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Ändra spenderad tid",
"editLabelPopup-title": "Ändra etikett",
"editNotificationPopup-title": "Redigera avisering",
@@ -366,6 +386,7 @@
"title": "Titel",
"tracking": "Spårning",
"tracking-info": "Du kommer att meddelas om eventuella ändringar av dessa kort du deltar i som skapare eller medlem.",
+ "type": "Type",
"unassign-member": "Ta bort tilldelad medlem",
"unsaved-description": "Du har en osparad beskrivning.",
"unwatch": "Avbevaka",
@@ -430,6 +451,7 @@
"hours": "timmar",
"minutes": "minuter",
"seconds": "sekunder",
+ "show-field-on-card": "Show this field on card",
"yes": "Ja",
"no": "Nej",
"accounts": "Konton",
diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json
index d4cf4d88..1986539f 100644
--- a/i18n/ta.i18n.json
+++ b/i18n/ta.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json
index 7cae51e4..4d398c39 100644
--- a/i18n/th.i18n.json
+++ b/i18n/th.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "ออกความเห็นที่ __card__: __comment__",
"act-createBoard": "สร้าง __board__",
"act-createCard": "เพิ่ม __card__ ไปยัง __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "เพิ่ม __list__ ไปยัง __board__",
"act-addBoardMember": "เพิ่ม __member__ ไปยัง __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "แนบ %s ไปยัง %s",
"activity-created": "สร้าง %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "ยกเว้น %s จาก %s",
"activity-imported": "ถูกนำเข้า %s ไปยัง %s จาก %s",
"activity-imported-board": "นำเข้า %s จาก %s",
@@ -111,6 +113,7 @@
"card-due-on": "ครบกำหนดเมื่อ",
"card-spent": "Spent Time",
"card-edit-attachments": "แก้ไขสิ่งที่แนบมา",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "แก้ไขป้ายกำกับ",
"card-edit-members": "แก้ไขสมาชิก",
"card-labels-title": "เปลี่ยนป้ายกำกับของการ์ด",
@@ -118,6 +121,8 @@
"card-start": "เริ่ม",
"card-start-on": "เริ่มเมื่อ",
"cardAttachmentsPopup-title": "แนบจาก",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "ลบการ์ดนี้หรือไม่",
"cardDetailsActionsPopup-title": "การดำเนินการการ์ด",
"cardLabelsPopup-title": "ป้ายกำกับ",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "สร้างบอร์ด",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "สร้างป้ายกำกับ",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "ปัจจุบัน",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "วันที่",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "วันที่",
"decline": "ปฎิเสธ",
"default-avatar": "ภาพเริ่มต้น",
"delete": "ลบ",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "ลบป้ายกำกับนี้หรือไม่",
"description": "คำอธิบาย",
"disambiguateMultiLabelPopup-title": "การดำเนินการกำกับป้ายชัดเจน",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "เปลี่ยนวันเริ่มต้น",
"editCardDueDatePopup-title": "เปลี่ยนวันครบกำหนด",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "เปลี่ยนป้ายกำกับ",
"editNotificationPopup-title": "แก้ไขการแจ้งเตือน",
@@ -366,6 +386,7 @@
"title": "หัวข้อ",
"tracking": "ติดตาม",
"tracking-info": "คุณจะได้รับแจ้งการเปลี่ยนแปลงใด ๆ กับการ์ดที่คุณมีส่วนร่วมในฐานะผู้สร้างหรือสมาชิก",
+ "type": "Type",
"unassign-member": "ยกเลิกสมาชิก",
"unsaved-description": "คุณมีคำอธิบายที่ไม่ได้บันทึก",
"unwatch": "เลิกเฝ้าดู",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json
index 7f9cfd3d..96445407 100644
--- a/i18n/tr.i18n.json
+++ b/i18n/tr.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "__card__ kartına bir yorum bıraktı: __comment__",
"act-createBoard": "__board__ panosunu oluşturdu",
"act-createCard": "__card__ kartını ___list__ listesine ekledi",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "__list__ listesini __board__ panosuna ekledi",
"act-addBoardMember": "__member__ kullanıcısını __board__ panosuna ekledi",
"act-archivedBoard": "__board__ Geri Dönüşüm Kutusu'na taşındı",
@@ -30,6 +31,7 @@
"activity-archived": "%s Geri Dönüşüm Kutusu'na taşındı",
"activity-attached": "%s içine %s ekledi",
"activity-created": "%s öğesini oluşturdu",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "%s içinden %s çıkarttı",
"activity-imported": "%s kaynağından %s öğesini %s öğesinin içine taşıdı ",
"activity-imported-board": "%s i %s içinden aktardı",
@@ -111,6 +113,7 @@
"card-due-on": "Bitiş tarihi:",
"card-spent": "Harcanan Zaman",
"card-edit-attachments": "Ek dosyasını düzenle",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Etiketleri düzenle",
"card-edit-members": "Üyeleri düzenle",
"card-labels-title": "Bu kart için etiketleri düzenle",
@@ -118,6 +121,8 @@
"card-start": "Başlama",
"card-start-on": "Başlama tarihi:",
"cardAttachmentsPopup-title": "Eklenme",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Kart Silinsin mi?",
"cardDetailsActionsPopup-title": "Kart işlemleri",
"cardLabelsPopup-title": "Etiketler",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Pano Oluşturma",
"chooseBoardSourcePopup-title": "Panoyu içe aktar",
"createLabelPopup-title": "Etiket Oluşturma",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "mevcut",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Tarih",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Tarih",
"decline": "Reddet",
"default-avatar": "Varsayılan avatar",
"delete": "Sil",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Etiket Silinsin mi?",
"description": "Açıklama",
"disambiguateMultiLabelPopup-title": "Etiket işlemini izah et",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Zayıf Devam Eden İş Sınırı",
"editCardStartDatePopup-title": "Başlangıç tarihini değiştir",
"editCardDueDatePopup-title": "Bitiş tarihini değiştir",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Harcanan zamanı değiştir",
"editLabelPopup-title": "Etiket Değiştir",
"editNotificationPopup-title": "Bildirimi değiştir",
@@ -366,6 +386,7 @@
"title": "Başlık",
"tracking": "Takip",
"tracking-info": "Oluşturduğunuz veya üyesi olduğunuz tüm kartlardaki değişiklikler size bildirim olarak gelecek.",
+ "type": "Type",
"unassign-member": "Üyeye atamayı kaldır",
"unsaved-description": "Kaydedilmemiş bir açıklama metnin bulunmakta",
"unwatch": "Takibi bırak",
@@ -430,6 +451,7 @@
"hours": "saat",
"minutes": "dakika",
"seconds": "saniye",
+ "show-field-on-card": "Show this field on card",
"yes": "Evet",
"no": "Hayır",
"accounts": "Hesaplar",
diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json
index 599ebf91..66a87965 100644
--- a/i18n/uk.i18n.json
+++ b/i18n/uk.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "комментар в __card__: __comment__",
"act-createBoard": "__board__ створенна",
"act-createCard": "__card__ карта додана до __list__ листа",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json
index 73fc1bcb..ee4a93b8 100644
--- a/i18n/vi.i18n.json
+++ b/i18n/vi.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "đã bình luận trong __card__: __comment__",
"act-createBoard": "đã tạo __board__",
"act-createCard": "đã thêm __card__ vào __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "đã thêm __list__ vào __board__",
"act-addBoardMember": "đã thêm __member__ vào __board__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "đã đính kèm %s vào %s",
"activity-created": "đã tạo %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "đã loại bỏ %s khỏi %s",
"activity-imported": "đã nạp %s vào %s từ %s",
"activity-imported-board": "đã nạp %s từ %s",
@@ -111,6 +113,7 @@
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -118,6 +121,8 @@
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "current",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "Date",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -366,6 +386,7 @@
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+ "type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
@@ -430,6 +451,7 @@
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
+ "show-field-on-card": "Show this field on card",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json
index 3b476dac..1504e568 100644
--- a/i18n/zh-CN.i18n.json
+++ b/i18n/zh-CN.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "在 __card__ 发布评论: __comment__",
"act-createBoard": "创建看板 __board__",
"act-createCard": "添加卡片 __card__ 至列表 __list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "添加列表 __list__ 至看板 __board__",
"act-addBoardMember": "添加成员 __member__ 至看板 __board__",
"act-archivedBoard": "__board__ 已被移入回收站 ",
@@ -30,6 +31,7 @@
"activity-archived": "%s 已被移入回收站",
"activity-attached": "添加附件 %s 至 %s",
"activity-created": "创建 %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "排除 %s 从 %s",
"activity-imported": "导入 %s 至 %s 从 %s 中",
"activity-imported-board": "已导入 %s 从 %s 中",
@@ -111,6 +113,7 @@
"card-due-on": "期限",
"card-spent": "耗时",
"card-edit-attachments": "编辑附件",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "编辑标签",
"card-edit-members": "编辑成员",
"card-labels-title": "更改该卡片上的标签",
@@ -118,6 +121,8 @@
"card-start": "开始",
"card-start-on": "始于",
"cardAttachmentsPopup-title": "附件来源",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "彻底删除卡片?",
"cardDetailsActionsPopup-title": "卡片操作",
"cardLabelsPopup-title": "标签",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "创建看板",
"chooseBoardSourcePopup-title": "导入看板",
"createLabelPopup-title": "创建标签",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "当前",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "日期",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "日期",
"decline": "拒绝",
"default-avatar": "默认头像",
"delete": "删除",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "删除标签?",
"description": "描述",
"disambiguateMultiLabelPopup-title": "标签消歧 [?]",
@@ -186,6 +205,7 @@
"soft-wip-limit": "软在制品限制",
"editCardStartDatePopup-title": "修改起始日期",
"editCardDueDatePopup-title": "修改截止日期",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "修改耗时",
"editLabelPopup-title": "更改标签",
"editNotificationPopup-title": "编辑通知",
@@ -366,6 +386,7 @@
"title": "标题",
"tracking": "跟踪",
"tracking-info": "当任何包含您(作为创建者或成员)的卡片发生变更时,您将得到通知。",
+ "type": "Type",
"unassign-member": "取消分配成员",
"unsaved-description": "存在未保存的描述",
"unwatch": "取消关注",
@@ -430,6 +451,7 @@
"hours": "小时",
"minutes": "分钟",
"seconds": "秒",
+ "show-field-on-card": "Show this field on card",
"yes": "是",
"no": "否",
"accounts": "账号",
diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json
index 082668dd..84a4d67b 100644
--- a/i18n/zh-TW.i18n.json
+++ b/i18n/zh-TW.i18n.json
@@ -7,6 +7,7 @@
"act-addComment": "評論__card__: __comment__",
"act-createBoard": "完成新增 __board__",
"act-createCard": "將__card__加入__list__",
+ "act-createCustomField": "created custom field __customField__",
"act-createList": "新增__list__至__board__",
"act-addBoardMember": "在__board__中新增成員__member__",
"act-archivedBoard": "__board__ moved to Recycle Bin",
@@ -30,6 +31,7 @@
"activity-archived": "%s moved to Recycle Bin",
"activity-attached": "新增附件 %s 至 %s",
"activity-created": "建立 %s",
+ "activity-customfield-created": "created custom field %s",
"activity-excluded": "排除 %s 從 %s",
"activity-imported": "匯入 %s 至 %s 從 %s 中",
"activity-imported-board": "已匯入 %s 從 %s 中",
@@ -111,6 +113,7 @@
"card-due-on": "到期",
"card-spent": "Spent Time",
"card-edit-attachments": "編輯附件",
+ "card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "編輯標籤",
"card-edit-members": "編輯成員",
"card-labels-title": "更改該卡片上的標籤",
@@ -118,6 +121,8 @@
"card-start": "開始",
"card-start-on": "開始",
"cardAttachmentsPopup-title": "附件來源",
+ "cardCustomField-datePopup-title": "Change date",
+ "cardCustomFieldsPopup-title": "Edit custom fields",
"cardDeletePopup-title": "徹底刪除卡片?",
"cardDetailsActionsPopup-title": "卡片動作",
"cardLabelsPopup-title": "標籤",
@@ -167,11 +172,25 @@
"createBoardPopup-title": "建立看板",
"chooseBoardSourcePopup-title": "匯入看板",
"createLabelPopup-title": "建立標籤",
+ "createCustomField": "Create Field",
+ "createCustomFieldPopup-title": "Create Field",
"current": "目前",
+ "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+ "custom-field-checkbox": "Checkbox",
+ "custom-field-date": "日期",
+ "custom-field-dropdown": "Dropdown List",
+ "custom-field-dropdown-none": "(none)",
+ "custom-field-dropdown-options": "List Options",
+ "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+ "custom-field-dropdown-unknown": "(unknown)",
+ "custom-field-number": "Number",
+ "custom-field-text": "Text",
+ "custom-fields": "Custom Fields",
"date": "日期",
"decline": "拒絕",
"default-avatar": "預設大頭貼",
"delete": "刪除",
+ "deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "刪除標籤?",
"description": "描述",
"disambiguateMultiLabelPopup-title": "清除標籤動作歧義",
@@ -186,6 +205,7 @@
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "更改開始日期",
"editCardDueDatePopup-title": "更改到期日期",
+ "editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "更改標籤",
"editNotificationPopup-title": "更改通知",
@@ -366,6 +386,7 @@
"title": "標題",
"tracking": "追蹤",
"tracking-info": "你將會收到與你有關的卡片的所有變更通知",
+ "type": "Type",
"unassign-member": "取消分配成員",
"unsaved-description": "未儲存的描述",
"unwatch": "取消觀察",
@@ -430,6 +451,7 @@
"hours": "小時",
"minutes": "分鐘",
"seconds": "秒",
+ "show-field-on-card": "Show this field on card",
"yes": "是",
"no": "否",
"accounts": "帳號",
diff --git a/models/activities.js b/models/activities.js
index 3f1d28ae..f64b53f8 100644
--- a/models/activities.js
+++ b/models/activities.js
@@ -44,6 +44,9 @@ Activities.helpers({
checklistItem() {
return ChecklistItems.findOne(this.checklistItemId);
},
+ customField() {
+ return CustomFields.findOne(this.customFieldId);
+ },
});
Activities.before.insert((userId, doc) => {
@@ -60,6 +63,7 @@ if (Meteor.isServer) {
Activities._collection._ensureIndex({ boardId: 1, createdAt: -1 });
Activities._collection._ensureIndex({ commentId: 1 }, { partialFilterExpression: { commentId: { $exists: true } } });
Activities._collection._ensureIndex({ attachmentId: 1 }, { partialFilterExpression: { attachmentId: { $exists: true } } });
+ Activities._collection._ensureIndex({ customFieldId: 1 }, { partialFilterExpression: { customFieldId: { $exists: true } } });
});
Activities.after.insert((userId, doc) => {
@@ -127,6 +131,10 @@ if (Meteor.isServer) {
const checklistItem = activity.checklistItem();
params.checklistItem = checklistItem.title;
}
+ if (activity.customFieldId) {
+ const customField = activity.customField();
+ params.customField = customField.name;
+ }
if (board) {
const watchingUsers = _.pluck(_.where(board.watchers, {level: 'watching'}), 'userId');
const trackingUsers = _.pluck(_.where(board.watchers, {level: 'tracking'}), 'userId');
diff --git a/models/attachments.js b/models/attachments.js
index 5e5c4926..91dd0dbc 100644
--- a/models/attachments.js
+++ b/models/attachments.js
@@ -1,90 +1,90 @@
- Attachments = new FS.Collection('attachments', {
- stores: [
+Attachments = new FS.Collection('attachments', {
+ stores: [
- // XXX Add a new store for cover thumbnails so we don't load big images in
- // the general board view
- new FS.Store.GridFS('attachments', {
- // If the uploaded document is not an image we need to enforce browser
- // download instead of execution. This is particularly important for HTML
- // files that the browser will just execute if we don't serve them with the
- // appropriate `application/octet-stream` MIME header which can lead to user
- // data leaks. I imagine other formats (like PDF) can also be attack vectors.
- // See https://github.com/wekan/wekan/issues/99
- // XXX Should we use `beforeWrite` option of CollectionFS instead of
- // collection-hooks?
- // We should use `beforeWrite`.
- beforeWrite: (fileObj) => {
- if (!fileObj.isImage()) {
- return {
- type: 'application/octet-stream',
- };
- }
- return {};
- },
- }),
- ],
- });
-
-
- if (Meteor.isServer) {
- Attachments.allow({
- insert(userId, doc) {
- return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
- },
- update(userId, doc) {
- return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
- },
- remove(userId, doc) {
- return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
- },
- // We authorize the attachment download either:
- // - if the board is public, everyone (even unconnected) can download it
- // - if the board is private, only board members can download it
- download(userId, doc) {
- const board = Boards.findOne(doc.boardId);
- if (board.isPublic()) {
- return true;
- } else {
- return board.hasMember(userId);
+ // XXX Add a new store for cover thumbnails so we don't load big images in
+ // the general board view
+ new FS.Store.GridFS('attachments', {
+ // If the uploaded document is not an image we need to enforce browser
+ // download instead of execution. This is particularly important for HTML
+ // files that the browser will just execute if we don't serve them with the
+ // appropriate `application/octet-stream` MIME header which can lead to user
+ // data leaks. I imagine other formats (like PDF) can also be attack vectors.
+ // See https://github.com/wekan/wekan/issues/99
+ // XXX Should we use `beforeWrite` option of CollectionFS instead of
+ // collection-hooks?
+ // We should use `beforeWrite`.
+ beforeWrite: (fileObj) => {
+ if (!fileObj.isImage()) {
+ return {
+ type: 'application/octet-stream',
+ };
}
+ return {};
},
+ }),
+ ],
+});
- fetch: ['boardId'],
- });
- }
-
- // XXX Enforce a schema for the Attachments CollectionFS
- if (Meteor.isServer) {
- Attachments.files.after.insert((userId, doc) => {
- // If the attachment doesn't have a source field
- // or its source is different than import
- if (!doc.source || doc.source !== 'import') {
- // Add activity about adding the attachment
- Activities.insert({
- userId,
- type: 'card',
- activityType: 'addAttachment',
- attachmentId: doc._id,
- boardId: doc.boardId,
- cardId: doc.cardId,
- });
+if (Meteor.isServer) {
+ Attachments.allow({
+ insert(userId, doc) {
+ return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
+ },
+ update(userId, doc) {
+ return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
+ },
+ remove(userId, doc) {
+ return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
+ },
+ // We authorize the attachment download either:
+ // - if the board is public, everyone (even unconnected) can download it
+ // - if the board is private, only board members can download it
+ download(userId, doc) {
+ const board = Boards.findOne(doc.boardId);
+ if (board.isPublic()) {
+ return true;
} else {
- // Don't add activity about adding the attachment as the activity
- // be imported and delete source field
- Attachments.update({
- _id: doc._id,
- }, {
- $unset: {
- source: '',
- },
- });
+ return board.hasMember(userId);
}
- });
+ },
+
+ fetch: ['boardId'],
+ });
+}
- Attachments.files.after.remove((userId, doc) => {
- Activities.remove({
+// XXX Enforce a schema for the Attachments CollectionFS
+
+if (Meteor.isServer) {
+ Attachments.files.after.insert((userId, doc) => {
+ // If the attachment doesn't have a source field
+ // or its source is different than import
+ if (!doc.source || doc.source !== 'import') {
+ // Add activity about adding the attachment
+ Activities.insert({
+ userId,
+ type: 'card',
+ activityType: 'addAttachment',
attachmentId: doc._id,
+ boardId: doc.boardId,
+ cardId: doc.cardId,
});
+ } else {
+ // Don't add activity about adding the attachment as the activity
+ // be imported and delete source field
+ Attachments.update({
+ _id: doc._id,
+ }, {
+ $unset: {
+ source: '',
+ },
+ });
+ }
+ });
+
+ Attachments.files.after.remove((userId, doc) => {
+ Activities.remove({
+ attachmentId: doc._id,
});
- }
+ });
+}
diff --git a/models/boards.js b/models/boards.js
index c863c5ce..44ce0b62 100644
--- a/models/boards.js
+++ b/models/boards.js
@@ -249,6 +249,10 @@ Boards.helpers({
return `board-color-${this.color}`;
},
+ customFields() {
+ return CustomFields.find({ boardId: this._id }, { sort: { name: 1 } });
+ },
+
// XXX currently mutations return no value so we have an issue when using addLabel in import
// XXX waiting on https://github.com/mquandalle/meteor-collection-mutations/issues/1 to remove...
pushLabel(name, color) {
diff --git a/models/cards.js b/models/cards.js
index 01f79847..c77cd682 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -41,6 +41,21 @@ Cards.attachSchema(new SimpleSchema({
}
},
},
+ customFields: {
+ type: [Object],
+ optional: true,
+ },
+ 'customFields.$': {
+ type: new SimpleSchema({
+ _id: {
+ type: String,
+ },
+ value: {
+ type: Match.OneOf(String, Number, Boolean, Date),
+ optional: true,
+ },
+ }),
+ },
dateLastActivity: {
type: Date,
autoValue() {
@@ -192,6 +207,31 @@ Cards.helpers({
return this.checklistItemCount() !== 0;
},
+ customFieldIndex(customFieldId) {
+ return _.pluck(this.customFields, '_id').indexOf(customFieldId);
+ },
+
+ // customFields with definitions
+ customFieldsWD() {
+
+ // get all definitions
+ const definitions = CustomFields.find({
+ boardId: this.boardId,
+ }).fetch();
+
+ // match right definition to each field
+ return this.customFields.map((customField) => {
+ return {
+ _id: customField._id,
+ value: customField.value,
+ definition: definitions.find((definition) => {
+ return definition._id === customField._id;
+ }),
+ };
+ });
+
+ },
+
absoluteUrl() {
const board = this.board();
return FlowRouter.url('card', {
@@ -271,6 +311,35 @@ Cards.mutations({
}
},
+ assignCustomField(customFieldId) {
+ return {$addToSet: {customFields: {_id: customFieldId, value: null}}};
+ },
+
+ unassignCustomField(customFieldId) {
+ return {$pull: {customFields: {_id: customFieldId}}};
+ },
+
+ toggleCustomField(customFieldId) {
+ if (this.customFields && this.customFieldIndex(customFieldId) > -1) {
+ return this.unassignCustomField(customFieldId);
+ } else {
+ return this.assignCustomField(customFieldId);
+ }
+ },
+
+ setCustomField(customFieldId, value) {
+ // todo
+ const index = this.customFieldIndex(customFieldId);
+ if (index > -1) {
+ const update = {$set: {}};
+ update.$set[`customFields.${index}.value`] = value;
+ return update;
+ }
+ // TODO
+ // Ignatz 18.05.2018: Return null to silence ESLint. No Idea if that is correct
+ return null;
+ },
+
setCover(coverId) {
return {$set: {coverId}};
},
diff --git a/models/customFields.js b/models/customFields.js
new file mode 100644
index 00000000..6c5fe7c4
--- /dev/null
+++ b/models/customFields.js
@@ -0,0 +1,132 @@
+CustomFields = new Mongo.Collection('customFields');
+
+CustomFields.attachSchema(new SimpleSchema({
+ boardId: {
+ type: String,
+ },
+ name: {
+ type: String,
+ },
+ type: {
+ type: String,
+ allowedValues: ['text', 'number', 'date', 'dropdown'],
+ },
+ settings: {
+ type: Object,
+ },
+ 'settings.dropdownItems': {
+ type: [Object],
+ optional: true,
+ },
+ 'settings.dropdownItems.$': {
+ type: new SimpleSchema({
+ _id: {
+ type: String,
+ },
+ name: {
+ type: String,
+ },
+ }),
+ },
+ showOnCard: {
+ type: Boolean,
+ },
+}));
+
+CustomFields.allow({
+ insert(userId, doc) {
+ return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
+ },
+ update(userId, doc) {
+ return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
+ },
+ remove(userId, doc) {
+ return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
+ },
+ fetch: ['userId', 'boardId'],
+});
+
+// not sure if we need this?
+//CustomFields.hookOptions.after.update = { fetchPrevious: false };
+
+function customFieldCreation(userId, doc){
+ Activities.insert({
+ userId,
+ activityType: 'createCustomField',
+ boardId: doc.boardId,
+ customFieldId: doc._id,
+ });
+}
+
+if (Meteor.isServer) {
+ /*Meteor.startup(() => {
+ CustomFields._collection._ensureIndex({ boardId: 1});
+ });*/
+
+ CustomFields.after.insert((userId, doc) => {
+ customFieldCreation(userId, doc);
+ });
+
+ CustomFields.after.remove((userId, doc) => {
+ Activities.remove({
+ customFieldId: doc._id,
+ });
+ });
+}
+
+//CUSTOM FIELD REST API
+if (Meteor.isServer) {
+ JsonRoutes.add('GET', '/api/boards/:boardId/custom-fields', function (req, res) {
+ Authentication.checkUserId( req.userId);
+ const paramBoardId = req.params.boardId;
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: CustomFields.find({ boardId: paramBoardId }),
+ });
+ });
+
+ JsonRoutes.add('GET', '/api/boards/:boardId/custom-fields/:customFieldId', function (req, res) {
+ Authentication.checkUserId( req.userId);
+ const paramBoardId = req.params.boardId;
+ const paramCustomFieldId = req.params.customFieldId;
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: CustomFields.findOne({ _id: paramCustomFieldId, boardId: paramBoardId }),
+ });
+ });
+
+ JsonRoutes.add('POST', '/api/boards/:boardId/custom-fields', function (req, res) {
+ Authentication.checkUserId( req.userId);
+ const paramBoardId = req.params.boardId;
+ const id = CustomFields.direct.insert({
+ name: req.body.name,
+ type: req.body.type,
+ settings: req.body.settings,
+ showOnCard: req.body.showOnCard,
+ boardId: paramBoardId,
+ });
+
+ const customField = CustomFields.findOne({_id: id, boardId: paramBoardId });
+ customFieldCreation(req.body.authorId, customField);
+
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: {
+ _id: id,
+ },
+ });
+ });
+
+ JsonRoutes.add('DELETE', '/api/boards/:boardId/custom-fields/:customFieldId', function (req, res) {
+ Authentication.checkUserId( req.userId);
+ const paramBoardId = req.params.boardId;
+ const id = req.params.customFieldId;
+ CustomFields.remove({ _id: id, boardId: paramBoardId });
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: {
+ _id: id,
+ },
+ });
+ });
+}
diff --git a/sandstorm.js b/sandstorm.js
index 3ea85fef..d34bc015 100644
--- a/sandstorm.js
+++ b/sandstorm.js
@@ -75,7 +75,7 @@ if (isSandstorm && Meteor.isServer) {
session.claimRequest(token).then((response) => {
const identity = response.cap.castAs(Identity.Identity);
const promises = [api.getIdentityId(identity), identity.getProfile(),
- httpBridge.saveIdentity(identity)];
+ httpBridge.saveIdentity(identity)];
return Promise.all(promises).then((responses) => {
const identityId = responses[0].id.toString('hex').slice(0, 32);
const profile = responses[1].profile;
@@ -115,9 +115,9 @@ if (isSandstorm && Meteor.isServer) {
const identity = response.identity;
return identity.getProfile().then(() => {
return { identity,
- mentioned: !!user.mentioned,
- subscribed: !!user.subscribed,
- };
+ mentioned: !!user.mentioned,
+ subscribed: !!user.subscribed,
+ };
});
}).catch(() => {
// Ignore identities that fail to restore. Either they were added before we set
@@ -132,7 +132,7 @@ if (isSandstorm && Meteor.isServer) {
return session.activity(event);
}).then(() => done(),
- (e) => done(e));
+ (e) => done(e));
})();
}
diff --git a/server/migrations.js b/server/migrations.js
index 0fdd1fe0..ba5ccd98 100644
--- a/server/migrations.js
+++ b/server/migrations.js
@@ -167,9 +167,9 @@ Migrations.add('add-swimlanes', () => {
Cards.find({ boardId: board._id }).forEach((card) => {
if (!card.hasOwnProperty('swimlaneId')) {
Cards.direct.update(
- { _id: card._id },
- { $set: { swimlaneId } },
- noValidate
+ { _id: card._id },
+ { $set: { swimlaneId } },
+ noValidate
);
}
});
@@ -180,9 +180,9 @@ Migrations.add('add-views', () => {
Boards.find().forEach((board) => {
if (!board.hasOwnProperty('view')) {
Boards.direct.update(
- { _id: board._id },
- { $set: { view: 'board-view-swimlanes' } },
- noValidate
+ { _id: board._id },
+ { $set: { view: 'board-view-swimlanes' } },
+ noValidate
);
}
});
diff --git a/server/publications/boards.js b/server/publications/boards.js
index 17d87f3a..b52ac49f 100644
--- a/server/publications/boards.js
+++ b/server/publications/boards.js
@@ -75,6 +75,7 @@ Meteor.publishRelations('board', function(boardId) {
this.cursor(Lists.find({ boardId }));
this.cursor(Swimlanes.find({ boardId }));
this.cursor(Integrations.find({ boardId }));
+ this.cursor(CustomFields.find({ boardId }, { sort: { name: 1 } }));
// Cards and cards comments
// XXX Originally we were publishing the card documents as a child of the
diff --git a/server/publications/customFields.js b/server/publications/customFields.js
new file mode 100644
index 00000000..25dada59
--- /dev/null
+++ b/server/publications/customFields.js
@@ -0,0 +1,3 @@
+Meteor.publish('customFields', function() {
+ return CustomFields.find();
+});