diff options
author | Lauri Ojansivu <x@xet7.org> | 2018-05-18 16:22:53 +0300 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2018-05-18 16:22:53 +0300 |
commit | 50f751e0a9f8214d690f6fd39136d09a46a8e69a (patch) | |
tree | 3a0e58883030abbfa8eb454d181356a8be299d79 | |
parent | 61b240d126bcce7adcdb303c5b01a202dc7fa395 (diff) | |
parent | 1984a6b1c80dbd8b4eff89aa92913f943bacc63b (diff) | |
download | wekan-50f751e0a9f8214d690f6fd39136d09a46a8e69a.tar.gz wekan-50f751e0a9f8214d690f6fd39136d09a46a8e69a.tar.bz2 wekan-50f751e0a9f8214d690f6fd39136d09a46a8e69a.zip |
Merge branch 'devel' into greenkeeper/initial
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, @@ -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(); +}); |