diff options
57 files changed, 533 insertions, 57 deletions
diff --git a/.eslintrc.json b/.eslintrc.json index 51b2037f..b93dd916 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -130,6 +130,7 @@ "Authentication": true, "Integrations": true, "HTTP": true, - "AccountSettings": true + "AccountSettings": true, + "Announcements": true } } diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a22e813..72cbbff1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,37 @@ +# Upcoming Wekan release + +This release fixes the following bugs: + +* [Fix: Slider for Comments only does not work correctly with over 21 activities](https://github.com/wekan/wekan/pull/1247). + +Thanks to Github user nztqa for contributions. + +# v0.45 2017-10-01 Wekan release + +This release adds the following new features: + +* [Slider for Comments only in activity feed](https://github.com/wekan/wekan/issues/1247); +* [Site Wide Announcement](https://github.com/wekan/wekan/pull/1260). + +and fixes the following bugs: + +* [Data inconsistency when copying card](https://github.com/wekan/wekan/pull/1246). Note: There is no feature for copying card attachment yet; +* [Hide create label from normal users, because only board admin can create labels](https://github.com/wekan/wekan/pull/1261). + +Thanks to Github user nztqa for contributions. + +# v0.44 2017-09-30 Wekan release + +This release adds the following new features: + +* [Confirm popup appears before Checklist Delete](https://github.com/wekan/wekan/pull/1257). + +and fixes the following bugs: + +* [Fix errors when importing from Trello](https://github.com/wekan/wekan/pull/1259). + +Thanks to GitHub users amadilsons and GhassenRjab for their contributions. + # v0.43 2017-09-25 Wekan release This release fixes the following bugs: diff --git a/client/components/activities/activities.jade b/client/components/activities/activities.jade index be12a728..4d5410d4 100644 --- a/client/components/activities/activities.jade +++ b/client/components/activities/activities.jade @@ -31,7 +31,7 @@ template(name="boardActivities") .activity-checklist(href="{{ card.absoluteUrl }}") +viewer = checklist.title - + if($eq activityType 'addChecklistItem') | {{{_ 'activity-checklist-item-added' checklist.title cardLink}}}. .activity-checklist(href="{{ card.absoluteUrl }}") diff --git a/client/components/activities/activities.styl b/client/components/activities/activities.styl index 2285fc0a..36efd771 100644 --- a/client/components/activities/activities.styl +++ b/client/components/activities/activities.styl @@ -1,5 +1,10 @@ @import 'nib' +.activity-title + margin: 0 0.5em 0.8em + display: flex + justify-content:space-between + .activities clear: both diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index 09e0532c..caea222f 100644 --- a/client/components/cards/cardDetails.jade +++ b/client/components/cards/cardDetails.jade @@ -85,7 +85,15 @@ template(name="cardDetails") +attachmentsGalery hr - h2 {{ _ 'activity'}} + .activity-title + h2 {{ _ 'activity'}} + .material-toggle-switch + span.toggle-switch-title {{_ 'hide-system-messages'}} + if hiddenSystemMessages + input.toggle-switch(type="checkbox" id="toggleButton" checked="checked") + else + input.toggle-switch(type="checkbox" id="toggleButton") + label.toggle-label(for="toggleButton") if currentUser.isBoardMember +commentForm if isLoaded.get diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index 7c6c3ce7..836a2353 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -28,6 +28,10 @@ BlazeComponent.extendComponent({ return card.findWatcher(Meteor.userId()); }, + hiddenSystemMessages() { + return Meteor.user().hasHiddenSystemMessages(); + }, + canModifyCard() { return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); }, @@ -99,6 +103,9 @@ BlazeComponent.extendComponent({ this.parentComponent().showOverlay.set(true); this.parentComponent().mouseHasEnterCardDetails = true; }, + 'click #toggleButton'() { + Meteor.call('toggleSystemMessages'); + }, }]; }, }).register('cardDetails'); @@ -220,6 +227,7 @@ Template.copyCardPopup.events({ if (title) { card.title = title; + card.coverId = ''; const _id = Cards.insert(card); // In case the filter is active we need to add the newly inserted card in // the list of exceptions -- cards that are not filtered. Otherwise the diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index e1dd1d14..9ff52d8e 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -1,8 +1,14 @@ template(name="checklists") h2 {{_ 'checklists'}} + if toggleDeleteDialog.get + .board-overlay#card-details-overlay + +checklistDeleteDialog(checklist = checklistToDelete) + + .card-checklist-items each checklist in currentCard.checklists +checklistDetail(checklist = checklist) + if canModifyCard +inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId) +addChecklistItemForm @@ -18,7 +24,8 @@ template(name="checklistDetail") .checklist-title .checkbox.fa.fa-check-square-o if canModifyCard - a.js-delete-checklist {{_ "delete"}}... + a.js-delete-checklist.toggle-delete-checklist-dialog {{_ "delete"}}... + span.checklist-stat(class="{{#if checklist.isFinished}}is-finished{{/if}}") {{checklist.finishedCount}}/{{checklist.itemCount}} if canModifyCard h2.title.js-open-inlined-form.is-editable {{checklist.title}} @@ -26,6 +33,18 @@ template(name="checklistDetail") h2.title {{checklist.title}} +checklistItems(checklist = checklist) +template(name="checklistDeleteDialog") + .js-confirm-checklist-delete + p + i(class="fa fa-exclamation-triangle" aria-hidden="true") + p + | {{_ 'confirm-checklist-delete-dialog'}} + span {{checklist.title}} + | ? + .js-checklist-delete-buttons + button.confirm-checklist-delete(type="button") {{_ 'delete'}} + button.toggle-delete-checklist-dialog(type="button") {{_ 'cancel'}} + template(name="addChecklistItemForm") textarea.js-add-checklist-item(rows='1' autofocus) .edit-controls.clearfix diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index ba3384a9..1cd77c9f 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -66,6 +66,7 @@ Template.checklists.onRendered(function () { }); BlazeComponent.extendComponent({ + addChecklist(event) { event.preventDefault(); const textarea = this.find('textarea.js-add-checklist-item'); @@ -101,6 +102,26 @@ BlazeComponent.extendComponent({ textarea.focus(); }, + canModifyCard() { + return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); + }, + + deleteChecklist() { + const checklist = this.currentData().checklist; + if (checklist && checklist._id) { + Checklists.remove(checklist._id); + this.toggleDeleteDialog.set(false); + } + }, + + deleteItem() { + const checklist = this.currentData().checklist; + const item = this.currentData().item; + if (checklist && item && item._id) { + checklist.removeItem(item._id); + } + }, + editChecklist(event) { event.preventDefault(); const textarea = this.find('textarea.js-edit-checklist-item'); @@ -109,10 +130,6 @@ BlazeComponent.extendComponent({ checklist.setTitle(title); }, - canModifyCard() { - return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); - }, - editChecklistItem(event) { event.preventDefault(); @@ -123,19 +140,9 @@ BlazeComponent.extendComponent({ checklist.editItem(itemId, title); }, - deleteItem() { - const checklist = this.currentData().checklist; - const item = this.currentData().item; - if (checklist && item && item._id) { - checklist.removeItem(item._id); - } - }, - - deleteChecklist() { - const checklist = this.currentData().checklist; - if (checklist && checklist._id) { - Checklists.remove(checklist._id); - } + onCreated() { + this.toggleDeleteDialog = new ReactiveVar(false); + this.checklistToDelete = null; //Store data context to pass to checklistDeleteDialog template }, pressKey(event) { @@ -148,18 +155,50 @@ BlazeComponent.extendComponent({ }, events() { + const events = { + 'click .toggle-delete-checklist-dialog'(event) { + if($(event.target).hasClass('js-delete-checklist')){ + this.checklistToDelete = this.currentData().checklist; //Store data context + } + this.toggleDeleteDialog.set(!this.toggleDeleteDialog.get()); + }, + }; + return [{ + ...events, 'submit .js-add-checklist': this.addChecklist, 'submit .js-edit-checklist-title': this.editChecklist, 'submit .js-add-checklist-item': this.addChecklistItem, 'submit .js-edit-checklist-item': this.editChecklistItem, 'click .js-delete-checklist-item': this.deleteItem, - 'click .js-delete-checklist': this.deleteChecklist, + 'click .confirm-checklist-delete': this.deleteChecklist, keydown: this.pressKey, }]; }, }).register('checklists'); +Template.checklistDeleteDialog.onCreated(() => { + const $cardDetails = this.$('.card-details'); + this.scrollState = { position: $cardDetails.scrollTop(), //save current scroll position + top: false, //required for smooth scroll animation + }; + //Callback's purpose is to only prevent scrolling after animation is complete + $cardDetails.animate({ scrollTop: 0 }, 500, () => { this.scrollState.top = true; }); + + //Prevent scrolling while dialog is open + $cardDetails.on('scroll', () => { + if(this.scrollState.top) { //If it's already in position, keep it there. Otherwise let animation scroll + $cardDetails.scrollTop(0); + } + }); +}); + +Template.checklistDeleteDialog.onDestroyed(() => { + const $cardDetails = this.$('.card-details'); + $cardDetails.off('scroll'); //Reactivate scrolling + $cardDetails.animate( { scrollTop: this.scrollState.position }); +}); + Template.itemDetail.helpers({ canModifyCard() { return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); diff --git a/client/components/cards/checklists.styl b/client/components/cards/checklists.styl index 77668349..d4776397 100644 --- a/client/components/cards/checklists.styl +++ b/client/components/cards/checklists.styl @@ -38,6 +38,46 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item .js-delete-checklist @extends .delete-text + +.js-confirm-checklist-delete + background-color: darken(white, 3%) + position: absolute + float: left; + width: 60% + margin-top: 0 + margin-left: 13% + padding-bottom: 2% + padding-left: 3% + padding-right: 3% + z-index: 17 + border-radius: 3px + + p + position: relative + margin-top: 3% + width: 100% + text-align: center + span + font-weight: bold + + i + font-size: 2em + + .js-checklist-delete-buttons + position: relative + padding: left 2% right 2% + .confirm-checklist-delete + margin-left: 12% + float: left + .toggle-delete-checklist-dialog + margin-right: 12% + float: right + +#card-details-overlay + top: 0 + bottom: -600px + right: 0 + .checklist-items margin: 0 0 0.5em 1.33em diff --git a/client/components/cards/labels.jade b/client/components/cards/labels.jade index 31bd4d06..6c6efb08 100644 --- a/client/components/cards/labels.jade +++ b/client/components/cards/labels.jade @@ -34,4 +34,5 @@ template(name="cardLabelsPopup") = name if(isLabelSelected ../_id) i.card-label-selectable-icon.fa.fa-check - a.quiet-button.full.js-add-label {{_ 'label-create'}} + if currentUser.isBoardAdmin + a.quiet-button.full.js-add-label {{_ 'label-create'}} diff --git a/client/components/forms/forms.styl b/client/components/forms/forms.styl index 646da657..1947c11d 100644 --- a/client/components/forms/forms.styl +++ b/client/components/forms/forms.styl @@ -630,6 +630,59 @@ button a, .quiet color: white +// Material Design Toggle Switch +.material-toggle-switch + display: flex + +.toggle-label + position: relative + display: block + height: 20px + width: 44px + background-color: #a6a6a6 + border-radius: 100px + cursor: pointer + transition: all 0.3s ease + + &:after + position: absolute + left: -2px + top: -3px + display: block + width: 26px + height: 26px + border-radius: 100px + background-color: #fff + box-shadow: 0px 3px 3px rgba(0,0,0,0.05) + content: '' + transition: all 0.3s ease + + &:active + &:after + transform: scale(1.15, 0.85) + +.toggle-switch:checked ~ .toggle-label + background-color: #6fbeb5 + + &:after + left: 20px + background-color: #179588 + +.toggle-switch:checked:disabled ~ .toggle-label + background-color: #d5d5d5 + pointer-events: none + + &:after + background-color: #bcbdbc + +.toggle-switch + display: none + +.toggle-switch-title + margin: 0 0.5em + display: flex + + @media screen and (max-width: 800px) .edit-controls, .add-controls diff --git a/client/components/main/header.jade b/client/components/main/header.jade index bd0af880..613dd736 100644 --- a/client/components/main/header.jade +++ b/client/components/main/header.jade @@ -49,6 +49,13 @@ template(name="header") if appIsOffline +offlineWarning + if hasAnnouncement + .announcement + p + i.fa.fa-bullhorn + | #{announcement} + i.fa.fa-times-circle.js-close-announcement + template(name="offlineWarning") .offline-warning p diff --git a/client/components/main/header.js b/client/components/main/header.js index 49acbfef..c8f415df 100644 --- a/client/components/main/header.js +++ b/client/components/main/header.js @@ -10,8 +10,22 @@ Template.header.helpers({ appIsOffline() { return !Meteor.status().connected; }, + + hasAnnouncement() { + const announcements = Announcements.findOne(); + return announcements && announcements.enabled; + }, + + announcement() { + $('.announcement').show(); + const announcements = Announcements.findOne(); + return announcements && announcements.body; + }, }); Template.header.events({ 'click .js-create-board': Popup.open('headerBarCreateBoard'), + 'click .js-close-announcement'() { + $('.announcement').hide(); + }, }); diff --git a/client/components/main/header.styl b/client/components/main/header.styl index 0e35d38a..191e8893 100644 --- a/client/components/main/header.styl +++ b/client/components/main/header.styl @@ -197,6 +197,7 @@ li height: 28px +.announcement, .offline-warning width: 100% text-align: center diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade index 5864efd5..2152cc2c 100644 --- a/client/components/settings/settingBody.jade +++ b/client/components/settings/settingBody.jade @@ -14,6 +14,8 @@ template(name="setting") a.js-setting-menu(data-id="email-setting") {{_ 'email'}} li a.js-setting-menu(data-id="account-setting") {{_ 'accounts'}} + li + a.js-setting-menu(data-id="announcement-setting") {{_ 'admin-announcement'}} .main-body if loading.get +spinner @@ -23,6 +25,8 @@ template(name="setting") +email else if accountSetting.get +accountSettings + else if announcementSetting.get + +announcementSettings template(name="general") ul#registration-setting.setting-detail @@ -96,3 +100,19 @@ template(name='accountSettings') span {{_ 'no'}} li button.js-accounts-save.primary {{_ 'save'}} + +template(name='announcementSettings') + ul#announcement-setting.setting-detail + li + a.flex.js-toggle-activemessage + .materialCheckBox(class="{{#if currentSetting.enabled}}is-checked{{/if}}") + + span {{_ 'admin-announcement-active'}} + li + .admin-announcement(class="{{#if currentSetting.enabled}}{{else}}hide{{/if}}") + ul + li + .title {{_ 'admin-announcement-title'}} + textarea#admin-announcement.form-control= currentSetting.body + li + button.js-announcement-save.primary {{_ 'save'}} diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index a2993426..27f690ee 100644 --- a/client/components/settings/settingBody.js +++ b/client/components/settings/settingBody.js @@ -1,6 +1,7 @@ Meteor.subscribe('setting'); Meteor.subscribe('mailServer'); Meteor.subscribe('accountSettings'); +Meteor.subscribe('announcements'); BlazeComponent.extendComponent({ onCreated() { @@ -9,6 +10,7 @@ BlazeComponent.extendComponent({ this.generalSetting = new ReactiveVar(true); this.emailSetting = new ReactiveVar(false); this.accountSetting = new ReactiveVar(false); + this.announcementSetting = new ReactiveVar(false); }, setError(error) { @@ -65,6 +67,7 @@ BlazeComponent.extendComponent({ this.generalSetting.set('registration-setting' === targetID); this.emailSetting.set('email-setting' === targetID); this.accountSetting.set('account-setting' === targetID); + this.announcementSetting.set('announcement-setting' === targetID); } }, @@ -152,3 +155,45 @@ BlazeComponent.extendComponent({ }]; }, }).register('accountSettings'); + +BlazeComponent.extendComponent({ + onCreated() { + this.loading = new ReactiveVar(false); + }, + + setLoading(w) { + this.loading.set(w); + }, + + currentSetting(){ + return Announcements.findOne(); + }, + + saveMessage() { + const message = $('#admin-announcement').val().trim(); + Announcements.update(Announcements.findOne()._id, { + $set: { 'body': message }, + }); + }, + + toggleActive(){ + this.setLoading(true); + const isActive = this.currentSetting().enabled; + Announcements.update(Announcements.findOne()._id, { + $set:{ 'enabled': !isActive}, + }); + this.setLoading(false); + if(isActive){ + $('.admin-announcement').slideUp(); + }else{ + $('.admin-announcement').slideDown(); + } + }, + + events() { + return [{ + 'click a.js-toggle-activemessage': this.toggleActive, + 'click button.js-announcement-save': this.saveMessage, + }]; + }, +}).register('announcementSettings'); diff --git a/client/components/settings/settingBody.styl b/client/components/settings/settingBody.styl index 118d364c..fec64cee 100644 --- a/client/components/settings/settingBody.styl +++ b/client/components/settings/settingBody.styl @@ -61,10 +61,11 @@ .is-checked border-bottom: 2px solid #2980b9; border-right: 2px solid #2980b9; - - span + + span padding: 0 0.5rem - + + .admin-announcement, .invite-people padding-left 20px; li diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index ebf743d8..3ef30996 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "الأعضاء", "admin": "المدير", "admin-desc": "إمكانية مشاهدة و تعديل و حذف أعضاء ، و تعديل إعدادات اللوحة أيضا.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "كل اللوحات", "and-n-other-card": "And __count__ other بطاقة", "and-n-other-card_plural": "And __count__ other بطاقات", @@ -146,6 +149,7 @@ "comment-only": "التعليق فقط", "comment-only-desc": "يمكن التعليق على بطاقات فقط.", "computer": "حاسوب", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "إنشاء", diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index c6882ba1..2b77db28 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Izili", "admin": "Merour", "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "All boards", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Krouiñ", diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index a3a0e7aa..3764d81f 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Membres", "admin": "Administrador", "admin-desc": "Pots veure i editar fitxes, eliminar membres, i canviar la configuració del tauler", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Tots els taulers", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Només comentaris", "comment-only-desc": "Només pots fer comentaris a les fitxes", "computer": "Ordinador", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copia l'enllaç de la ftixa al porta-retalls", "copyCardPopup-title": "Copia la fitxa", "create": "Crea", diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index ca2cf7ef..a46529e1 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Členové", "admin": "Administrátor", "admin-desc": "Může zobrazovat a upravovat karty, mazat členy a měnit nastavení tabla.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Všechna tabla", "and-n-other-card": "A __count__ další karta(y)", "and-n-other-card_plural": "A __count__ dalších karet", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Počítač", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Kopírovat adresu karty do mezipaměti", "copyCardPopup-title": "Kopírovat kartu", "create": "Vytvořit", diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index bc1120ed..7d180656 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Mitglieder", "admin": "Admin", "admin-desc": "Kann Karten anschauen und bearbeiten, Mitglieder entfernen und Boardeinstellungen ändern.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Alle Boards", "and-n-other-card": "und eine andere Karte", "and-n-other-card_plural": "und __count__ andere Karten", @@ -146,6 +149,7 @@ "comment-only": "Nur kommentierbar", "comment-only-desc": "Kann Karten nur Kommentieren", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Kopiere die Karte in die Zwischenablage", "copyCardPopup-title": "Karte kopieren", "create": "Erstellen", diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 8db041a5..2c18438d 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Members", "admin": "Admin", "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "All boards", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Create", diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 64a720db..95be9865 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Members", "admin": "Admin", "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "All boards", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Create", diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index 5da9e81a..c7fa1264 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Membroj", "admin": "Admin", "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "All boards", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Komputilo", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Krei", diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index 5dca2df5..804fc816 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Miembros", "admin": "Administrador", "admin-desc": "Puedes ver y editar fichas, eliminar miembros, y cambiar los ajustes del tablero", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Tableros", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Sólo comentario", "comment-only-desc": "Solo se puede comentar en tarjetas.", "computer": "Ordenador", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copiar enlace a la tarjeta al portapapeles", "copyCardPopup-title": "Copy Card", "create": "Crear", diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index edf7e09a..4aac43d4 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Kideak", "admin": "Kudeatzailea", "admin-desc": "Txartelak ikusi eta editatu ditzake, kideak kendu, eta arbelaren ezarpenak aldatu.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Arbel guztiak", "and-n-other-card": "Eta beste txartel __count__", "and-n-other-card_plural": "Eta beste __count__ txartel", @@ -146,6 +149,7 @@ "comment-only": "Iruzkinak besterik ez", "comment-only-desc": "Iruzkinak txarteletan soilik egin ditzake", "computer": "Ordenagailua", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Kopiatu txartela arbelera", "copyCardPopup-title": "Copy Card", "create": "Sortu", diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index c7c05a2b..3ff24ff7 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "اعضا", "admin": "مدیر", "admin-desc": "امکان دیدن و ویرایش کارتها،پاک کردن کاربران و تغییر تنظیمات برای تخته", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "تمام بردها", "and-n-other-card": "و __count__ کارت دیگر", "and-n-other-card_plural": "و __count__ کارت دیگر", @@ -146,6 +149,7 @@ "comment-only": "صرفا یادداشت", "comment-only-desc": "صرفا یادداشت برروی کارت ها", "computer": "رایانه", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "ایجاد", diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index 0a834996..9587cee6 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Jäsenet", "admin": "Ylläpitäjä", "admin-desc": "Voi nähfä ja muokata kortteja, poistaa jäseniä, ja muuttaa taulun asetuksia.", + "admin-announcement": "Ilmoitus", + "admin-announcement-active": "Aktiivinen järjestelmänlaajuinen ilmoitus", + "admin-announcement-title": "Ilmoitus ylläpitäjältä", "all-boards": "Kaikki taulut", "and-n-other-card": "Ja __count__ muu kortti", "and-n-other-card_plural": "Ja __count__ muuta korttia", @@ -146,6 +149,7 @@ "comment-only": "Vain kommentointi", "comment-only-desc": "Voi vain kommentoida kortteja", "computer": "Tietokone", + "confirm-checklist-delete-dialog": "Haluatko varmasti poistaa tarkistuslistan", "copy-card-link-to-clipboard": "Kopioi kortin linkki leikepöydälle", "copyCardPopup-title": "Kopioi kortti", "create": "Luo", diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index 4f431961..90738b72 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -2,8 +2,8 @@ "accept": "Accepter", "act-activity-notify": "[Wekan] Notification d'activité", "act-addAttachment": "a joint __attachment__ à __card__", - "act-addChecklist": "added checklist __checklist__ to __card__", - "act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__", + "act-addChecklist": "a ajouté la checklist __checklist__ à __card__", + "act-addChecklistItem": "a ajouté l'élément __checklistItem__ à la checklist __checklist__ de __card__", "act-addComment": "a commenté __card__ : __comment__", "act-createBoard": "a créé __board__", "act-createCard": "a ajouté __card__ à __list__", @@ -54,6 +54,9 @@ "addMemberPopup-title": "Membres", "admin": "Admin", "admin-desc": "Peut voir et éditer les cartes, supprimer des membres et changer les paramètres du tableau.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Tous les tableaux", "and-n-other-card": "Et __count__ autre carte", "and-n-other-card_plural": "Et __count__ autres cartes", @@ -146,6 +149,7 @@ "comment-only": "Commentaire uniquement", "comment-only-desc": "Ne peut que commenter des cartes.", "computer": "Ordinateur", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copier le lien vers la carte dans le presse-papier", "copyCardPopup-title": "Copier la carte", "create": "Créer", diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index 6b2dd9b6..523a6f53 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Membros", "admin": "Admin", "admin-desc": "Pode ver e editar tarxetas, retirar membros e cambiar a configuración do taboleiro.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Todos os taboleiros", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Computador", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Crear", diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index 17eb1ea1..ca20ac04 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -2,8 +2,8 @@ "accept": "אישור", "act-activity-notify": "[Wekan] הודעת פעילות", "act-addAttachment": " __attachment__ צורף לכרטיס __card__", - "act-addChecklist": "added checklist __checklist__ to __card__", - "act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__", + "act-addChecklist": "רשימת משימות __checklist__ נוספה ל __card__", + "act-addChecklistItem": " __checklistItem__ נוסף לרשימת משימות __checklist__ בכרטיס __card__", "act-addComment": "התקבלה תגובה על הכרטיס __card__: __comment__", "act-createBoard": "הלוח __board__ נוצר", "act-createCard": "הכרטיס __card__ התווסף לרשימה __list__", @@ -54,6 +54,9 @@ "addMemberPopup-title": "חברים", "admin": "מנהל", "admin-desc": "יש הרשאות לצפייה ולעריכת כרטיסים, להסרת חברים ולשינוי הגדרות לוח.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "כל הלוחות", "and-n-other-card": "וכרטיס אחר", "and-n-other-card_plural": "ו־__count__ כרטיסים אחרים", @@ -146,6 +149,7 @@ "comment-only": "הערה בלבד", "comment-only-desc": "ניתן להעיר על כרטיסים בלבד.", "computer": "מחשב", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "העתק כרטיס", "create": "יצירה", diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index 65bed443..37a296d0 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Tagok", "admin": "Adminisztrátor", "admin-desc": "Lehet szerkeszteni a lapot, tagokat távolíthat el, és és a fórumon-beállításainak módosítása.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Összes tábla", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Számítógép", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Létrehoz", diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index a8bb170f..08c03788 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Daftar Anggota", "admin": "Admin", "admin-desc": "Bisa tampilkan dan sunting kartu, menghapus partisipan, dan merubah setting panel", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Semua Panel", "and-n-other-card": "Dan__menghitung__kartu lain", "and-n-other-card_plural": "Dan__menghitung__kartu lain", @@ -146,6 +149,7 @@ "comment-only": "Hanya komentar", "comment-only-desc": "Bisa komen hanya di kartu", "computer": "Komputer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Buat", diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index 72963a0f..02245f73 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Membri", "admin": "Amministratore", "admin-desc": "Può vedere e modificare schede, rimuovere membri e modificare le impostazioni della bacheca.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Tutte le bacheche", "and-n-other-card": "E __count__ altra scheda", "and-n-other-card_plural": "E __count__ altre schede", @@ -146,6 +149,7 @@ "comment-only": "Solo commenti", "comment-only-desc": "Puoi commentare solo le schede.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copia link della scheda sulla clipboard", "copyCardPopup-title": "Copy Card", "create": "Crea", diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index f5c38263..2dcf87cd 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "メンバー", "admin": "管理", "admin-desc": "カードの閲覧と編集、メンバーの削除、ボードの設定変更が可能", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "全てのボード", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "コメントのみ", "comment-only-desc": "カードにのみコメント可能", "computer": "コンピューター", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "カードへのリンクをクリップボードにコピー", "copyCardPopup-title": "Copy Card", "create": "作成", diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index 1842be0a..d253d999 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "멤버", "admin": "관리자", "admin-desc": "카드를 보거나 수정하고, 멤버를 삭제하고, 보드에 대한 설정을 수정할 수 있습니다.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "전체 보드", "and-n-other-card": "__count__ 개의 다른 카드", "and-n-other-card_plural": "__count__ 개의 다른 카드들", @@ -146,6 +149,7 @@ "comment-only": "댓글만 입력 가능", "comment-only-desc": "카드에 댓글만 달수 있습니다.", "computer": "내 컴퓨터", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "생성", diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json index e8cbed4d..fead15c6 100644 --- a/i18n/nb.i18n.json +++ b/i18n/nb.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Medlemmer", "admin": "Admin", "admin-desc": "Kan se og redigere kort, fjerne medlemmer, og endre innstillingene for tavlen.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Alle tavler", "and-n-other-card": "Og __count__ andre kort", "and-n-other-card_plural": "Og __count__ andre kort", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Create", diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index 6cbcca6b..cfebef2b 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Leden", "admin": "Administrator", "admin-desc": "Kan kaarten bekijken en wijzigen, leden verwijderen, en instellingen voor het bord aanpassen.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Alle borden", "and-n-other-card": "En nog __count__ ander", "and-n-other-card_plural": "En __count__ andere kaarten", @@ -146,6 +149,7 @@ "comment-only": "Alleen reageren", "comment-only-desc": "Kan alleen op kaarten reageren.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Kopieer kaart link naar klembord", "copyCardPopup-title": "Copy Card", "create": "Aanmaken", diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index 024382ff..929c89d8 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Członkowie", "admin": "Admin", "admin-desc": "Może widzieć i edytować karty, usuwać członków oraz zmieniać ustawienia tablicy.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Wszystkie tablice", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Komputer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Utwórz", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 1ea99b76..ccb2bbe6 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Membros", "admin": "Administrador", "admin-desc": "Pode ver e editar cartões, remover membros e alterar configurações do quadro.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Todos os quadros", "and-n-other-card": "E __count__ outro cartão", "and-n-other-card_plural": "E __count__ outros cartões", @@ -146,6 +149,7 @@ "comment-only": "Somente comentários", "comment-only-desc": "Pode comentar apenas em cartões.", "computer": "Computador", + "confirm-checklist-delete-dialog": "Tem a certeza de que pretende eliminar lista de verificação", "copy-card-link-to-clipboard": "Copiar link do cartão para a área de transferência", "copyCardPopup-title": "Copy Card", "create": "Criar", diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index 926d63dc..ad95902b 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Members", "admin": "Admin", "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "All boards", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Create", diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index 5b26f7c2..88dfbce2 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Участники", "admin": "Администратор", "admin-desc": "Может просматривать и редактировать карточки, удалять участников и управлять настройками доски.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Все доски", "and-n-other-card": "И __count__ другая карточка", "and-n-other-card_plural": "И __count__ другие карточки", @@ -146,6 +149,7 @@ "comment-only": "Только комментирование", "comment-only-desc": "Может комментировать только карточки.", "computer": "Загрузить с компьютера", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Создать", diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index 01b83edb..9c1a8245 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Članovi", "admin": "Administrator", "admin-desc": "Može da pregleda i menja kartice, uklanja članove i menja podešavanja table", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Sve table", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Create", diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index 180e6f58..574dc3e3 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -2,8 +2,8 @@ "accept": "Acceptera", "act-activity-notify": "[Wekan] Aktivitetsavisering", "act-addAttachment": "bifogade __attachment__ to __card__", - "act-addChecklist": "added checklist __checklist__ to __card__", - "act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__", + "act-addChecklist": "lade till checklist __checklist__ till __card__", + "act-addChecklistItem": "lade till __checklistItem__ till checklistan __checklist__ on __card__", "act-addComment": "kommenterade __card__: __comment__", "act-createBoard": "skapade __board__", "act-createCard": "lade till __card__ to __list__", @@ -54,6 +54,9 @@ "addMemberPopup-title": "Medlemmar", "admin": "Adminstratör", "admin-desc": "Kan visa och redigera kort, ta bort medlemmar och ändra inställningarna för anslagstavlan.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Alla anslagstavlor", "and-n-other-card": "Och __count__ annat kort", "and-n-other-card_plural": "Och __count__ andra kort", @@ -146,6 +149,7 @@ "comment-only": "Kommentera endast", "comment-only-desc": "Kan endast kommentera kort.", "computer": "Dator", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Kopiera kortlänk till urklipp", "copyCardPopup-title": "Kopiera kort", "create": "Skapa", diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index a1f81080..c7794d4f 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Members", "admin": "Admin", "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "All boards", "and-n-other-card": "And __count__ other card", "and-n-other-card_plural": "And __count__ other cards", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Create", diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index a5cee692..0568ceae 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "สมาชิก", "admin": "ผู้ดูแลระบบ", "admin-desc": "สามารถดูและแก้ไขการ์ด ลบสมาชิก และเปลี่ยนการตั้งค่าบอร์ดได้", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "บอร์ดทั้งหมด", "and-n-other-card": "และการ์ดอื่น __count__", "and-n-other-card_plural": "และการ์ดอื่น ๆ __count__", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "คอมพิวเตอร์", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "สร้าง", diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index e64510b5..b9270ae5 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Üyeler", "admin": "Yönetici", "admin-desc": "Kartları görüntüleyebilir ve düzenleyebilir, üyeleri çıkarabilir ve pano ayarlarını değiştirebilir.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Tüm panolar", "and-n-other-card": "Ve __count__ diğer kart", "and-n-other-card_plural": "Ve __count__ diğer kart", @@ -146,6 +149,7 @@ "comment-only": "Sadece yorum", "comment-only-desc": "Sadece kartlara yorum yazabilir.", "computer": "Bilgisayar", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Kartın linkini kopyala", "copyCardPopup-title": "Kartı Kopyala", "create": "Oluştur", diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index 0da6ce1f..04121321 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Користувачі", "admin": "Адмін", "admin-desc": "Може переглядати і редагувати картки, відаляти учасників та змінювати налаштування для дошки.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Всі дошки", "and-n-other-card": "та __count__ інших карток", "and-n-other-card_plural": "та __count__ інших карток", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Create", diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index 93248d56..6ae0d150 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "Thành Viên", "admin": "Quản Trị Viên", "admin-desc": "Có thể xem và chỉnh sửa những thẻ, xóa thành viên và thay đổi cài đặt cho bảng.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "Tất cả các bảng", "and-n-other-card": "Và __count__ thẻ khác", "and-n-other-card_plural": "Và __count__ thẻ khác", @@ -146,6 +149,7 @@ "comment-only": "Comment only", "comment-only-desc": "Can comment on cards only.", "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "Copy card link to clipboard", "copyCardPopup-title": "Copy Card", "create": "Create", diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index f49f7b26..3c4fafb2 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "成员", "admin": "管理员", "admin-desc": "可以浏览并编辑卡片,移除成员,并且更改该看板的设置", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "全部看板", "and-n-other-card": "和其他 __count__ 个卡片", "and-n-other-card_plural": "和其他 __count__ 个卡片", @@ -146,6 +149,7 @@ "comment-only": "仅能评论", "comment-only-desc": "只能在卡片上评论。", "computer": "从本机上传", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "复制卡片链接到剪贴板", "copyCardPopup-title": "复制卡片", "create": "创建", diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index 23566314..60045b91 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -54,6 +54,9 @@ "addMemberPopup-title": "成員", "admin": "管理員", "admin-desc": "可以瀏覽並編輯卡片,移除成員,並且更改該看板的設定", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", "all-boards": "全部看板", "and-n-other-card": "和其他 __count__ 個卡片", "and-n-other-card_plural": "和其他 __count__ 個卡片", @@ -146,6 +149,7 @@ "comment-only": "只可以發表評論", "comment-only-desc": "只可以對卡片發表評論", "computer": "從本機上傳", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", "copy-card-link-to-clipboard": "將卡片連結複製到剪貼板", "copyCardPopup-title": "Copy Card", "create": "建立", diff --git a/models/announcements.js b/models/announcements.js new file mode 100644 index 00000000..2cb1e1b7 --- /dev/null +++ b/models/announcements.js @@ -0,0 +1,36 @@ +Announcements = new Mongo.Collection('announcements'); + +Announcements.attachSchema(new SimpleSchema({ + enabled: { + type: Boolean, + defaultValue: false, + }, + title: { + type: String, + optional: true, + }, + body: { + type: String, + optional: true, + }, + sort: { + type: Number, + decimal: true, + }, +})); + +Announcements.allow({ + update(userId) { + const user = Users.findOne(userId); + return user && user.isAdmin; + }, +}); + +if (Meteor.isServer) { + Meteor.startup(() => { + const announcements = Announcements.findOne({}); + if(!announcements){ + Announcements.insert({enabled: false, sort: 0}); + } + }); +} diff --git a/models/trelloCreator.js b/models/trelloCreator.js index e7f98e85..0f801ea3 100644 --- a/models/trelloCreator.js +++ b/models/trelloCreator.js @@ -113,7 +113,6 @@ export class TrelloCreator { check(trelloLabels, [Match.ObjectIncluding({ // XXX refine control by validating 'color' against a list of allowed // values (is it worth the maintenance?) - color: String, name: String, })]); } @@ -184,7 +183,7 @@ export class TrelloCreator { trelloBoard.labels.forEach((label) => { const labelToCreate = { _id: Random.id(6), - color: label.color, + color: label.color ? label.color : 'black', name: label.name, }; // We need to remember them by Trello ID, as this is the only ref we have @@ -398,27 +397,29 @@ export class TrelloCreator { createChecklists(trelloChecklists) { trelloChecklists.forEach((checklist) => { - // Create the checklist - const checklistToCreate = { - cardId: this.cards[checklist.idCard], - title: checklist.name, - createdAt: this._now(), - sort: checklist.pos, - }; - const checklistId = Checklists.direct.insert(checklistToCreate); - // keep track of Trello id => WeKan id - this.checklists[checklist.id] = checklistId; - // Now add the items to the checklist - const itemsToCreate = []; - checklist.checkItems.forEach((item) => { - itemsToCreate.push({ - _id: checklistId + itemsToCreate.length, - title: item.name, - isFinished: item.state === 'complete', - sort: item.pos, + if (this.cards[checklist.idCard]) { + // Create the checklist + const checklistToCreate = { + cardId: this.cards[checklist.idCard], + title: checklist.name, + createdAt: this._now(), + sort: checklist.pos, + }; + const checklistId = Checklists.direct.insert(checklistToCreate); + // keep track of Trello id => WeKan id + this.checklists[checklist.id] = checklistId; + // Now add the items to the checklist + const itemsToCreate = []; + checklist.checkItems.forEach((item) => { + itemsToCreate.push({ + _id: checklistId + itemsToCreate.length, + title: item.name, + isFinished: item.state === 'complete', + sort: item.pos, + }); }); - }); - Checklists.direct.update(checklistId, {$set: {items: itemsToCreate}}); + Checklists.direct.update(checklistId, {$set: {items: itemsToCreate}}); + } }); } diff --git a/package.json b/package.json index 0cad0e28..71c63104 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "0.43.0", + "version": "0.45.0", "description": "The open-source Trello-like kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 07f1c8ef..bfd99481 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 30, + appVersion = 32, # Increment this for every release. - appMarketingVersion = (defaultText = "0.43.0~2017-09-25"), + appMarketingVersion = (defaultText = "0.45.0~2017-10-01"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/server/publications/announcements.js b/server/publications/announcements.js new file mode 100644 index 00000000..efebf640 --- /dev/null +++ b/server/publications/announcements.js @@ -0,0 +1,3 @@ +Meteor.publish('announcements', function() { + return Announcements.find(); +}); |